全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1248
推到 Plurk!
推到 Facebook!

Quick Report大困擾

尚未結案
ooctiger
一般會員


發表:25
回覆:46
積分:14
註冊:2002-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-26 22:15:43 IP:218.172.xxx.xxx 未訂閱
各位前輩 小弟使用一個TQuery來做報表 如果光只是SELECT 單一Table那就沒問題. 如果用TQuery來SELECT兩個Table以上的資料我就不知要如何來用報表 來表達出來 Ex.報表應該表示成 代號 , 名稱 ,OrdNo ========================== 00001 , AA ,200040426001 200040426002 200040426005 00002 , BB ,200040426003 200040426004 請各位前輩賜教 另外我可以在程式執行是對報表下Query條件嗎? 要如何去做? 請各位前輩幫忙 Thank You
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-26 22:39:07 IP:218.163.xxx.xxx 未訂閱
引言: 小弟使用一個TQuery來做報表 如果光只是SELECT 單一Table那就沒問題. 如果用TQuery來SELECT兩個Table以上的資料我就不知要如何來用報表 來表達出來 Ex.報表應該表示成 代號 , 名稱 ,OrdNo ========================== 00001 , AA ,200040426001 200040426002 200040426005 00002 , BB ,200040426003 200040426004
您Select單一Table作報表沒有問題,那用TQuery來Select兩個Table就用Join的方式即可,例: Select T1.Field1, T2.Field2 From Table1 T1, Table2 T2 Where T1.KeyField = T2.KeyField
引言: 另外我可以在程式執行是對報表下Query條件嗎? 要如何去做?
當然可以,您可以使用:
  • with Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select * From TableName Where Field = :FieldValue');
      ParamByName('FieldValue').AsString := 'xxx';
      Open;
    end;
    
  • 使用Filtered的方式
    with Query do
    begin
      Filtered := True;
      Filter := 'Field = xxx';
    end;
    註:其實Filter您可以把他看成是SQL語法的Where,所以就是Assign條件式
    
您提供問題的資訊不是很清楚,我僅能如此回答,有問題再問吧.... ~小弟淺見,參考看看~ 發表人 - channel 於 2003/04/26 22:40:15
------
~小弟淺見,參考看看~
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-27 01:27:09 IP:211.76.xxx.xxx 未訂閱
引言: 各位前輩 小弟使用一個TQuery來做報表 如果光只是SELECT 單一Table那就沒問題. 如果用TQuery來SELECT兩個Table以上的資料我就不知要如何來用報表 來表達出來 Ex.報表應該表示成

代號  , 名稱 ,OrdNo 
========================== 
00001 , AA   ,200040426001
              200040426002
              200040426005
00002 , BB   ,200040426003
              200040426004
請各位前輩賜教 另外我可以在程式執行是對報表下Query條件嗎? 要如何去做? 請各位前輩幫忙 Thank You
以上紅色部份是你報表呈現結果,提供以下步驟參考
假設產品TABLE為PART,訂單TABLE為ORD
欄位
代號為PARTNO ,名稱為PARTNAME , ORDNO為訂單號    1.在Query.SQL之SQL語法
  SELECT A.PARTNO,A.PARTNAME,B.ORDNO
  FROM PART A
  LEFT JOIN ORD B ON B.PARTNO=A.PARTNO
  WHERE 條件式
  ORDER BY A.PARTNO     2.執行後所得資料為
  00001 , AA   ,200040426001
  00001 , AA   ,200040426002
  00001 , AA   ,200040426005
  00002 , BB   ,200040426003
  00002 , BB   ,200040426004    3.報表如何把上述紅色部份資料不列印
  假設
  QrDBText1.DataSet:=Query;  QrDbText1.DataField:='PARTNO';
  QrDBText2.DataSet:=Query;  QrDbText1.DataField:='PARTNAME';
  QrDBText3.DataSet:=Query;  QrDbText1.DataField:='ORDNO';      QuickRep.DataSet:=Query;      在報表FORM設一公用變數以控制紅色資料是否列印
  var mpartno:String;      在RepForm.Create內
    mpartno:='';       在RepForm.Detail1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);內      if Query.FieldByName('PARTNO').AsString=mpartno then 
   begin
     QrDbText1.Enabled:=False; //不列印
     QrDbText2.Enabled:=False; //
   end
  else
   begin
     QrDbText1.Enabled:=True; //列印,同代號第一筆
     QrDbText2.Enabled:=True; 
     mpartno:=Query.FieldByName('PARTNO').AsString;
   end; 
             
發表人 - cmj 於 2003/04/27 01:29:09
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-28 14:17:16 IP:211.74.xxx.xxx 未訂閱
前面二位的都滿詳細了,我提供一個我自己的做法,僅供參考... 在DetailBand放二個QRLabel,QRLabel1->代號,QRLabel2->名稱...
var
OLD_NO,NEW_NO:string;//全域變數
Implementation
.
.
Procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  Var PrintReport: Boolean);
Begin
  OLD_NO:= '';
  NEW_NO:= '';
End;
procedure TForm2.QRBand5BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);//QRBand5是DetailBand
begin
  NEW_NO:=Query1.FieldByName('NO').Vlaue;
  if NEW_NO = OLD_NO then
    begin
      QRLabel1.Caption:='';
      QRLabel2.Caption:='';
    end
    else
    begin
      QRLabel1.Caption:=Query1.FieldByName('NO').Vlaue;
      QRLabel2.Caption:=Query1.FieldByName('NAME').Vlaue;
      OLD_NO:=NEW_NO;
    end;
end;
TRY TRY SEE
發表人 - chih 於 2003/04/28 14:32:13
系統時間:2024-05-18 7:32:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!