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

QReport的Detail無法顯示資料

答題得分者是:smallfox
cilan
一般會員


發表:6
回覆:13
積分:3
註冊:2011-06-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-12-22 10:30:35 IP:220.134.xxx.xxx 訂閱
程式片段如下:
procedure TfrmAst31.btnPrn5Click(Sender: TObject);
var
strSQL:String;
QryTemp:TADOQuery;
begin
QryTemp:=TADOQuery.Create(nil);
QryTemp.LockType:=ltReadOnly;
QryTemp.ConnectionString := AstDM.conAsset;
strSQL:= 'select a.*,b.DEPNA as LOCATNA, c.DEPNA as DEPNONA, d.SUPNA as SUPNONA, e.TEL as SUPTEL from '
' ASBASSM a '
' LEFT JOIN ASBDEPT b on b.DEPNO=a.LOCAT '
' LEFT JOIN ASBDEPT c on c.DEPNO=a.DEPNO '
' LEFT JOIN ASBSUPM d on d.SUPNO=a.SUPNO '
' LEFT JOIN ASBSUPM e on e.SUPNO=a.SUPNO '
' where (a.MODIMRK <> ''D'' or a.MODIMRK is null) ';
QryTemp.SQL.Text:=strSQL;
try
QryTemp.Open;
Application.CreateForm(TfrmASSET, frmASSET);
with frmASSET do
begin
qrCreator.Caption:= DMast.pSysInfo^.sSysAcc;
rptASSET.Dataset := QryTemp;
qrASSNO.Dataset := QryTemp;
qrASSNA.Dataset := QryTemp;
qrASSSN.Dataset := QryTemp;
qrTYPENO.Dataset := QryTemp;
qrSUPNA.Dataset := QryTemp;
qrTEL.Dataset := QryTemp;
qrGETDAY.Dataset := QryTemp;
qrLOCAT.Dataset := QryTemp;
qrDEPNA.Dataset := QryTemp;
qrMEMO.Dataset := QryTemp;
qrASSNO.DataField := QryTemp.Fieldbyname('ASSNO').AsString;
qrASSNA.DataField := QryTemp.Fieldbyname('ASSNA').AsString;
qrASSSN.DataField := QryTemp.Fieldbyname('ASSSN').AsString;
qrTYPENO.DataField := QryTemp.Fieldbyname('TYPENO').AsString;
qrSUPNA.DataField := QryTemp.Fieldbyname('SUPNONA').AsString;
qrTEL.DataField := QryTemp.Fieldbyname('SUPTEL').AsString;
qrGETDAY.DataField := QryTemp.Fieldbyname('GETDAY').AsString;
qrLOCAT.DataField := QryTemp.Fieldbyname('LOCATNA').AsString;
qrDEPNA.DataField := QryTemp.Fieldbyname('DEPNONA').AsString;
qrMEMO.DataField := QryTemp.Fieldbyname('AMEMO').AsString;
end;
if messagedlg('預覽報表畫面?',mtinformation,[mbyes,mbno],0)
=mryes then
frmASSET.rptAsset.Preview
else
frmASSET.rptAsset.Print ;
finally
QryTemp.Free;
end;

end;

TfrmASSET是報表的Layout
資料來源QryTemp是用ADOQuery的查詢結果
是資料來源的問題嗎?至少這段語法在SQL上是可以正確查出資料的.
嘗試找範例程式做參考,在QR元件上的設定上並沒有特殊差異,
稍早還出現ColumnHeader不顯示的插曲,
最後怎麼解決問題的,自已也搞不清了!
對QReport不熟悉......,請各位先進指導一下!
謝謝!
------
- 嵐 -
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-12-30 00:03:32 IP:175.180.xxx.xxx 訂閱
改寫下列程式碼:

qrASSNO.DataField := 'ASSNO';
qrASSNA.DataField := 'ASSNA';
qrASSSN.DataField := 'ASSSN';
qrTYPENO.DataField := 'TYPENO';
qrSUPNA.DataField := 'SUPNONA';
qrTEL.DataField := 'SUPTEL';
qrGETDAY.DataField := 'GETDAY';
qrLOCAT.DataField := 'LOCATNA';
qrDEPNA.DataField := 'DEPNONA';
qrMEMO.DataField := 'AMEMO';

試看看....

cilan
一般會員


發表:6
回覆:13
積分:3
註冊:2011-06-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-12-30 15:51:40 IP:220.134.xxx.xxx 訂閱
原來DataField是直接給欄位名稱就好......
謝謝smallFox兄的指導!
------
- 嵐 -
系統時間:2017-12-15 6:48:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!