크리스탈 레포트를 델파이에서 사용하시는 분들이 별루 없으신가봐요..ㅜ.ㅜ
질문을 올리는데.. 답변이 없어서 혼자 할려니 무지 힘듭니다.
질문요지는요..
델파이에서
레이블에 TQuery 를 사용해서 필드값을 옮길경우
label1.Caption := Query1.FieldByName('Name').AsString;
이런식으루 필드값을 사용하잖아요..
그런데, 크리스탈 레포트에서도 그게 가능한지요..
도저히 그런 기능을 찾을수가 없네요..
Formula를 사용하는것 같기도 하구...
암튼.. 좀 가르쳐 주세요~
쿼리는 소스내에서 직접 처리했습니다.
Crpe1.SQL.Query.Text := 쿼리내용
이 쿼리한 내용을 레포트에 나오게 하려고 하는데요..
Formula를 사용하는 건지, 아님 그냥 레이블로 하는건지..
또 동적으로 생성된 쿼리의 내용을 어떤식으로 가져다 써야 하는지..
꼭 좀 답변 부탁합니다.
글세요 원하는 답이 델넌지 모르겠네요
그런데 저희회사 Print (크리스탈 레포트로 만듬)아주 잘됨
압측을 해서 파일을 첨부를 하려고 했는데
파일 첨부하는데가 없어서 그냥 올립니다.
파일 길다고 무엇라고 하지 마세요
그럼 수고 하세요
감사 합니다.
procedure TFCusOrder.BitBtn5Click(Sender: TObject);// Form에서 Print 버튼 클릭
begin
Prt_Area(2);
end;
procedure TFCusOrder.Prt_Area(const JobTag:integer);
begin
TTemp_1.Active:=True;
TTemp_1.Active:=False;
TTemp_1.DatabaseName:=TempPath;
TTemp_1.Tablename:='Tmp_01.db';
TTemp_1.Exclusive:=True;
TTemp_1.EmptyTable;
TTemp_1.Active:=True;
List_Area(JobTag);
with fmMain.Crpe1 do
begin
Clear;
if (JobTag = 1) then
ReportName:=RptPath + 'Rpt24.Rpt'
else
ReportName:=RptPath + 'Rpt11.Rpt';
Formulas.Clear;
Formulas.Retrieve;
if (JobTag <> 1) then
begin
ReportName:=RptPath + 'Rpt11.Rpt';
Formulas.Name := 'H_1';
if Radiobutton7.checked=true then
Formulas.Formula.Text := '"Bal Qty"'
else
Formulas.Formula.Text := '"Worker"';
end;
Formulas.Name := 'T_t';
Formulas.Formula.Text := '"Proforma Invoice"';
WindowState:=wsMaximized;
Output :=toWindow;
Execute;
end;
end;
procedure TFCusOrder.List_Area(const AcptTag:integer);
var
Seq:integer;
begin
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add(' select a.*, b.GRAP_PATH, b.matr_name from Corder a, matr_code b');
Sql.Add(' where a.matr_code = b.matr_code and a.matr_size=b.matr_size');
Sql.Add(' and a.Bill_no = :p1');
ParamByName('p1').asstring:=FlatEdit2.text;
open;
Seq:=0;
while not eof do
begin
Seq:=Seq + 1;
TTemp_1.Append;
TTemp_1.FieldByName('Key_1').asstring :=FieldByName('Bill_no').asstring;
TTemp_1.FieldByName('Key_2').asstring :=FieldByName('Comp_code').asstring;
TTemp_1.FieldByName('Key_3').asstring :=FieldByName('Matr_code').asstring;
TTemp_1.FieldByName('Key_4').asstring :=formatFloat('000001',Seq);
TTemp_1.FieldByName('Data_1').asstring :=CompFind(FieldByName('Comp_Code').asstring);
TTemp_1.FieldByName('Data_2').asstring :=FieldByName('Matr_Name').asstring;
TTemp_1.FieldByName('Data_3').asstring :=FieldByName('Matr_size').asstring;
TTemp_1.FieldByName('Data_4').asstring :=FieldByName('Matr_Color').asstring;
TTemp_1.FieldByName('Data_5').asstring :=FieldByName('Notes').asstring;
if Radiobutton8.checked=true then
begin
if AcptTag=1 then
TTemp_1.FieldByName('Qty_1').asinteger :=FieldByName('Matr_Qty').asinteger
else
TTemp_1.FieldByName('Qty_1').asinteger :=0;
TTemp_1.FieldByName('Qty_2').asinteger :=0;
TTemp_1.FieldByName('Qty_3').asinteger :=FieldByName('Matr_Qty').asinteger
-FieldByName('Out_Qty').asinteger;
end else
begin
TTemp_1.FieldByName('Qty_1').asinteger :=FieldByName('Matr_Qty').asinteger;
TTemp_1.FieldByName('Qty_2').asinteger :=FieldByName('Out_Qty').asinteger;
TTemp_1.FieldByName('Qty_3').asinteger :=FieldByName('Matr_Qty').asinteger
-FieldByName('Out_Qty').asinteger;
end;
TTemp_1.FieldByName('Date_1').asstring :=FieldByName('Order_date').asstring;
TTemp_1.FieldByName('Date_2').asstring :=DateDisplay(FieldByName('Order_date').asstring);
if AcptTag=1 then
begin
TTemp_1.FieldByName('Amt_1').ascurrency :=FieldByName('Matr_dan').ascurrency;
TTemp_1.FieldByName('Amt_2').ascurrency :=FieldByName('Matr_Amt').ascurrency;
end;
TTemp_1.Post;
Next;
end;
end;
Query1.Close;
TTemp_1.Close;
end;