各位大俠,
我用INTRAWEB 15 + FASTREPORT 6.0 想實作瀏覽器端生成報表(就是在在服務器端臨時目錄生成PDF)代碼如下:
PROCEDURE TIWFORM1.preview_frx(tbname: string;doc_no,i_code:string);
VAR
DM:TDATAMODULE1;
SQL1:STRING;
PDF_PATH:STRING;
PDF_GUID:STRING;
PDF_FILENAME:STRING;
FR3_LOADPATH:STRING;
I:INTEGER;
FRXRP:TfrxReport;
FRXPDFEX:TfrxPDFExport;
begin
FRXRP:=TFRXREPORT.Create(SELF);
FRXPDFEX:=TFRXPDFEXPORT.Create(SELF);
FR3_LOADPATH:=WEBAPPLICATION.ApplicationPath+'PRINT_MODLE_TYPE\';
IWRDGP_PRINT_DETAIL.Items.Add(FR3_LOADPATH);
PDF_PATH:=WEBAPPLICATION.ApplicationPath+'lable\';
PDF_GUID:=getGUID;
PDF_FILENAME:=PDF_PATH+PDF_GUID+'.pdf';
DM:=TDATAMODULE1.Create(SELF);
SQL1:='SELECT * FROM '+TBNAME;
DM.SSPDS.DataSet.CommandText:=SQL1;
DM.sspds.Active:=true;
DM.sspds.DataSet.Active:=true;
FRXRP.LoadFromFile(FR3_LOADPATH+IWEDIT_FR3NAME.Text);
FRXDBDATASET1.DataSet:=DM.sspds;
FRXRP.DataSet:=FRXDBDATASET1;
FRXRP.PrintOptions.ShowDialog:=false;
FRXPDFEX.ShowDialog:=FALSE;
FRXPDFEX.FileName:=PDF_FILENAME;
FRXRP.PrepareReport();
FRXRP.Export(FRXPDFEX);
DM.SSPDS.DataSet.Active:=FALSE;
DM.SSPDS.Active:=FALSE;
DM.Free;
FRXRP.FREE;
FRXPDFEX.FREE;
end;
實際測驗程序中 服務器IIS INTRAWEB生成DLL檔案放在服務器上,現在的問題是,IIS啟動后第一次打開IE生成pdf報表沒有問提,不關閉IE可以一直生成。但是關閉之前打開的IE后再次打開IE ,無法生成報表,跟蹤后發現 FRXRP.PrepareReport(); 未正常執行。
望各位大俠指教一,二
uj5u.com熱心網友回復:
未正常執行的錯誤提示是什么,或什么例外。uj5u.com熱心網友回復:
客戶端IE一直在執行中未匯出希望的PDF檔案,沒有報錯視窗uj5u.com熱心網友回復:
你說了“跟蹤后發現 FRXRP.PrepareReport(); 未正常執行”,這里按理說應該有錯誤。
你的FRXRP是動態生成,應該與上次的沒關系;檔案名是GUID檔案應該不會重復。那么,可能需要把錯誤檢查范圍擴大了。
客戶端肯定會一直等待,因為服務器并沒執行完成,沒有回傳資料的。
uj5u.com熱心網友回復:
現在就是跟蹤到第二次打開IE后的PREPAREREPORT()執行時停住了,服務器端也沒有什么可以跟蹤的。還能怎么找錯呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11150.html
標籤:網絡通信/分布式開發
上一篇:大師,幫看一下左右資料變化規律
下一篇:請問WEP發送資料是怎么現實的?
