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

同樣的條件,報表結果卻不依樣

尚未結案
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-11 12:07:30 IP:221.169.xxx.xxx 未訂閱
請問先進前輩 我先製作依個Form來查詢,並在給Form2(TQuickRep) 當我下了條件作Preview,第一次結果是正常 但有時候在將報表關閉時,搜尋條件不變,再按依次列印(QuickRep1.Preview) 報表結果卻不依樣,且欄位(BandType:ColumnHeader)也都不見了 From1: 列印鈕之程序 Query1.SQL.Clear;   Query1.SQL.Add('Select * from STA');   Query1.SQL.Add('WHERE p_no IS NOT NULL ');   Query1.SQL.Add(FindForm_WhereKey_DATE('p_date',DateToStr(DateTimePicker1.Date),DateToStr(DateTimePicker2.Date),1));       Query1.SQL.Add(FindForm_WhereKey_String('p_time',TIME_GET_24H(DateTimePicker3.Time),TIME_GET_24H(DateTimePicker4.Time)));       Query1.SQL.Add(FindForm_WhereKey_String('p_maker' ,TM_USER1 ,TM_USER2 ));            Query1.SQL.Add(SortKey1);   Query1.Close;   Query1.Open;      IF Query1.Eof= True Then   Begin   SHOWMESSAGE('查無資料');   ED_USER1.SelectAll;   ED_USER1.SetFocus;   End Else Begin RMSALEREPORT.LB_TBNO.Caption  := _TB_NUMBER;   RMSALEREPORT.LB_MAKER.Caption := _TB_USER_NUMBER + '(' + _TB_USER_NAME + ')';   RMSALEREPORT.LB_DATE.Caption  := DateToStr(DateTimePicker1.Date) +' ~ '+ DateToStr(DateTimePicker2.Date);   RMSALEREPORT.LB_TIME.Caption  := TIME_GET_24H(DateTimePicker3.Time) +' ~ '+ TIME_GET_24H(DateTimePicker4.Time);   RMSALEREPORT.LB_USER1.Caption := Trim(ED_USER1.Text)+'('+Trim(LB_UserName1.Caption)+')'+' ~ '+Trim(ED_USER2.Text)+'('+Trim(LB_UserName2.Caption)+')';      RMSALEREPORT.QuickRep1.Preview;  //(QuickRep1.)   END; --------------------------------------------------------------------- Form1.FormClose:   Query1.Free; --------------------------------------------------------------------- 註:    SortKey1是類似下列之字串    SortKey1 := 'Order by p_no, p_date ';       Form2是內含TQuickRep,並無其他特別的程式碼 --------------------------------------------------------------------- 正常的報表 錯誤的報表 --------------------------------------------------------------------- 於是我再報表的AfterPreview加入以下 procedure TRMSALEREPORT.QuickRep1AfterPreview(Sender: TObject); begin FMSALEREPORT.Query1.SQL.Clear; end; --------------------------------------------------------------------- 結果有時還是依樣,但大部分時候是可以正成顯示, 當一有問題時,就算把Form1給關閉,再來依次都還是依樣錯誤 除非把整個程式均給結束再來一次才會正常顯示 而且我發現奇怪的是連欄位名稱都不見了 起先進朋友給予指教 謝謝
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-25 15:47:31 IP:210.243.xxx.xxx 未訂閱
把query改為傳參數的方式改變條件試試看
example:       in design time:
   query.sql.text:='select fd1,fd2 from tb1 where fd1=:p1';
   
   in run time:
   query.params[0].value:=somestring;
系統時間:2024-05-07 12:42:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!