도와주세요.
타임피커를 2개 이용해서 두 기간사이의 데이터를 퀵레포터로 보여줄려고 합니다.
그래서 처음에는
Form1에는 타임피커 2개와 미리보기 버튼을 올렸구요.
Form2에는 레포터와 쿼리를 올렸습니다.
그랬더니 이상한 에러나 나더라구요.
그래서 Form1에 쿼리를 올렸놓고 퀵레포터의 DataSet속성을 보니 Form2에서 쿼리를 놓았을때는 자동으로 목록에 나왔는데 안나왔더라구요.
그래서 강제로 써 넣었지요.Form1.Query1이라구요.
그랬더니 레포터의 내용은 나오기는 나오는데 기간사이의 것이 나오는 것이 아니라 첫날의 데이터만 출력됩니다.
그래서 Q&A게시판을 뒤지다가 보니 레포터와 테이블의 연결이 잘못된것 같다는 것이 있어서 다시 Form2에다가 쿼리를 놓고(물론 dateset속성에 자동으로 나오더라구요)실행을 했더니 Access violation at adress 004E735C in module 'Project.EXE', Read of address FFFFFFFF 이라는 에러가 계속됩니다.
From1에서 미리보기 버튼을 클릭했을때
var
forDate:TDateTime;
aftDate:TDateTime;
begin
with Form2.qryDay do
begin
Close;
SQL.Clear;
SQL.Add('select * from saleDate where saleDate BETWEEN :forDay AND :aftday ORDER BY saleDate');
Params[0].DataType:=ftDate;
Params[1].DataType:=ftDate;
forDate:=DateTimePicker1.Date; //여기의 날짜로만 데이터가 나와요(Form1에다가 쿼리를 놓았을때
aftDate:=DateTimePicker1.Date;
close;
ParamByName('forday').value:=forDate;
ParamByName('aftday').value:=aftDate;
open;
close;
open;
end;
Application.CreateForm(TForm2,Form2);
Form2.QuickRep1.preview;
end;
제발 도와주세요.
수요일에 프로그램 발표회가 있습니다. 학술제거든요...
이은혜 잊지 않겠습니다.
행복한 하루되세요....
Query & QuickReport component.
make sure form1 uses clause contains form2.
with TForm2.Create(Application) do
begin
with QryDay do
begin
Close;
SQL.Clear;
SQL.Add('select * from saleDate where saleDate BETWEEN :forDay
AND :aftday ORDER BY saleDate');
ParamByName('forDay').asDateTime:=DateTimePicker1.Date;
ParamByName('aftday').asDateTime:=DateTimePicker2.Date;
Open;
if not EOF then Form2.QuickRep1.preview;
Close;
end;
Free;
end;