Q&A

  • 퀵리포트 미리보기시 데이터가 한건밖에 안나타납니다.
안녕하세요! 오늘 가입한 델초보랍니다.
아무쪼록 고수님들의 많은 조언 부탁드리며....

에디트에서 입력받아 테이블에 저장하는 프로그램입니다.
쿼리는 쓰지않았구요.
미리보기를 눌러서 폼2에 출력하려고 하는데 데이타가 한건밖에
나타나질 않습니다. 조회를 해보면 3건이 있는데...
왜 그런지 고수님들의 답변 부탁드립니다.
(폼1에서는 데이타소스와 테이블만 이용)
(폼2에서는 쿼리만 이용)
--- 소스 ---
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, Grids, DBGrids, DBTables, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    DataSource1: TDataSource;
    Label2: TLabel;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label3: TLabel;
    Table1: TTable;
    Table1NAME: TStringField;
    Table1ZIPCODE: TStringField;
    Table1PHONE: TStringField;
    Button6: TButton;
    Query1: TQuery;
    Query1NAME: TStringField;
    Query1ZIPCODE: TStringField;
    Query1PHONE: TStringField;
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    PROCEDURE FORMCREATE(SENDER: TOBJECT);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;
//Uses
// Unit1, Unit2;

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);
begin
WITH table1 do
BEGIN
  table1.indexname := 'SYS_C001313';
   if findkey([edit1.text]) then
  BEGIN
   SHOWMESSAGE('입력된 자료입니다.');
   EDIT1.SetFocus;
  END ELSE
  BEGIN
   TABLE1.APPEND;
   TABLE1NAME.VALUE := EDIT1.TEXT;
   TABLE1ZIPCODE.VALUE := EDIT2.TEXT;
   TABLE1PHONE.VALUE := EDIT3.Text;
   TABLE1.POST;
   SHOWMESSAGE('입력되었습니다.');
   EDIT1.TEXT := '';
   EDIT2.TEXT := '';
   EDIT3.TEXT := '';
   EDIT1.SETFOCUS;
  END;
END;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
TABLE1.ACTIVE := FALSE;
CLOSE;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
WITH TABLE1 DO
BEGIN
  TABLE1.INDEXNAME := 'SYS_C001313';
  IF FINDKEY([EDIT1.TEXT]) THEN
  BEGIN
  TABLE1.EDIT;
  TABLE1NAME.VALUE := EDIT1.TEXT;
  TABLE1ZIPCODE.VALUE := EDIT2.TEXT;
  TABLE1PHONE.VALUE := EDIT3.Text;
  TABLE1.POST;
  SHOWMESSAGE('수정이 되었습니다.');
  EDIT1.TEXT := '';
  EDIT2.TEXT := '';
  EDIT3.TEXT := '';
  EDIT1.SETFOCUS;
END
ELSE
  BEGIN
  SHOWMESSAGE('미등록 자료입니다.');
  EDIT1.SetFocus;
  END;
END;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WITH TABLE1 DO
BEGIN
TABLE1.INDEXNAME := 'SYS_C001313';
IF FINDKEY([EDIT1.TEXT]) THEN
  BEGIN
   EDIT1.TEXT := TABLE1NAME.VALUE;
   EDIT2.TEXT := TABLE1ZIPCODE.VALUE;
   EDIT3.TEXT := TABLE1PHONE.VALUE;
   EDIT1.SetFocus;
  END ELSE
  BEGIN
   SHOWMESSAGE('미등록된 자료입니다.');
   EDIT1.SETFOCUS;
  END;
END;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
WITH TABLE1 DO
BEGIN
TABLE1.INDEXNAME := 'SYS_C001313';
IF FINDKEY([EDIT1.TEXT]) THEN
  BEGIN
   DELETE;
   SHOWMESSAGE('삭제되었습니다.');
   EDIT1.TEXT := '';
   EDIT2.TEXT := '';
   EDIT3.TEXT := '';
   EDIT1.SetFocus;
  END ELSE
  BEGIN
   SHOWMESSAGE('미등록된 자료입니다.');
   EDIT1.SETFOCUS;
  END;
END;
end;

PROCEDURE TFORM1.FORMCREATE(SENDER: TOBJECT);
BEGIN
TABLE1.ACTIVE := TRUE;
TABLE1.INDEXNAME := 'SYS_C001313';
END;
procedure TForm1.Button6Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select name, zipcode, phone');
Query1.Sql.Add('from post');
//Query1.ParamByName('name').Asstring := Edit1.Text;
//Query1.ParamByName('zipcode').Asstring := Edit2.Text;
//Query1.ParamByName('phone').Asstring := Edit3.Text;
Query1.ExecSQL;
Query1.open;
//TABLE1.ACTIVE := TRUE;
FORM2.QUICKREP1.PREVIEW;
end;

end.
2  COMMENTS
  • Profile
    염상철 2002.03.14 20:51
    QuickRep1아시져??
    거기에 dataset이라는 properties가 있는데..
    거기에 뿌려줄 쿼리를 선택 안하신거 같네여..
    query1을 오픈해서 출력하시거 싶으신거면..
    dataset을 query1을 선택하거 해보세염..
    그럼 원하는 자료수만큼 자료가 나올겁니다.


  • Profile
    김태혁 2002.03.14 21:15

    정말 감사합니다.
    그럼 좋은 하루 되세요! ^*^