QuickRep 列印問題(將Stringgrid內容印出) |
答題得分者是:GrandRURU
|
eva_hsieh
一般會員 發表:5 回覆:6 積分:2 註冊:2011-04-24 發送簡訊給我 |
請問各位先進~(我是初學者)
透過程式運算後~我有一個表格資料如下~ 產編 序號 存量 ..... 描述 (共7個colume) 1 A01 001 10 OK 2 A02 002 20 OK 3 A03 003 30 OK (依此類推,假設共3個row) 我做一個「按鈕」的BUTTON~ 裡面的程式如下: (在報表內共有8個qrlabel) begin //將店家名稱存在qrlabel1內,利用quickrep內的「qrband1」(type:rbtitle)列印 qrlabel1.Caption:='店家名稱'; //利用迴圈,1筆1筆資料印出,利用quickrep內的「qrband2」(type:rbdetail)列印 for y:=1 to stringgrid5.rowcount-1 do begin qrlabel2.Caption:=stringgrid5.Cells[1,y]; qrlabel3.Caption:=stringgrid5.Cells[2,y]; qrlabel4.Caption:=stringgrid5.Cells[3,y]; qrlabel5.Caption:=stringgrid5.Cells[4,y]; qrlabel6.Caption:=stringgrid5.Cells[5,y]; qrlabel7.Caption:=stringgrid5.Cells[6,y]; qrlabel8.Caption:=stringgrid5.Cells[7,y]; QRCompositeReport1.Print; end; QuickRep1.Preview; end; 結果~它preview出來是"灰的"(沒有任何資料)~連A4紙白的樣子都沒有出現~ ------------------------------------------------------------------------------- Q1. 我曾經改過qrband的type值,曾一度改到有資料出現,但只有最後一筆資料而已, 但現在怎麼改type值preview都無資料了,請問報表那邊要怎麼設定才正確呢? Q2. 我程式設計沒有使用資料庫,所以才想用「變數」將表格值代入報表內, 這樣的方式行得通嗎? 若行不通,是否懇請各位先進教我~謝謝~ Q3. 請問各位先進是否可推薦「相關書籍」供我學習~謝謝各位先進~ |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Orz
A1 A2. 沒有DataSet, preview當然是一片空啊! 不要再拔獅子的鬃毛了! 請善用ClientDataSet,我相信網路上和書上有很多關於它的知識和教學 因為我的D7有點問題,我改用BCB6實作你的東西 http://delphi.ktop.com.tw/download.php?download=upload/4ddafd27d40b5_QuickRepDemo.7z 包含了ClientDataSet, QuickRep 如果不能開專案,你也可以先執行程式看看結果,再比對一下程式內容。 A3. 陳惟彬老師寫的 Delphi進銷存程式設計 BDE Quick Report Delphi與資料庫開發手札 - 存貨財務會計系統開發實錄 DBX Rave Report C Builder資料庫程式設計 - 人事薪資系統 DBX Quick Report ===================引 用 eva_hsieh 文 章=================== 請問各位先進~(我是初學者) 透過程式運算後~我有一個表格資料如下~ 產編 序號 存量 ..... 描述 (共7個colume) 1 A01 001 10 OK 2 A02 002 20 OK 3 A03 003 30 OK (依此類推,假設共3個row) 我做一個「按鈕」的BUTTON~ 裡面的程式如下: (在報表內共有8個qrlabel) begin //將店家名稱存在qrlabel1內,利用quickrep內的「qrband1」(type:rbtitle)列印 qrlabel1.Caption:='店家名稱'; //利用迴圈,1筆1筆資料印出,利用quickrep內的「qrband2」(type:rbdetail)列印 for y:=1 to stringgrid5.rowcount-1 do begin qrlabel2.Caption:=stringgrid5.Cells[1,y]; qrlabel3.Caption:=stringgrid5.Cells[2,y]; qrlabel4.Caption:=stringgrid5.Cells[3,y]; qrlabel5.Caption:=stringgrid5.Cells[4,y]; qrlabel6.Caption:=stringgrid5.Cells[5,y]; qrlabel7.Caption:=stringgrid5.Cells[6,y]; qrlabel8.Caption:=stringgrid5.Cells[7,y]; QRCompositeReport1.Print; end; QuickRep1.Preview; end; 結果~它preview出來是"灰的"(沒有任何資料)~連A4紙白的樣子都沒有出現~ ------------------------------------------------------------------------------- Q1. 我曾經改過qrband的type值,曾一度改到有資料出現,但只有最後一筆資料而已, 但現在怎麼改type值preview都無資料了,請問報表那邊要怎麼設定才正確呢? Q2. 我程式設計沒有使用資料庫,所以才想用「變數」將表格值代入報表內, 這樣的方式行得通嗎? 若行不通,是否懇請各位先進教我~謝謝~ Q3. 請問各位先進是否可推薦「相關書籍」供我學習~謝謝各位先進~ |
eva_hsieh
一般會員 發表:5 回覆:6 積分:2 註冊:2011-04-24 發送簡訊給我 |
請問GrandRURU大大~
首先先感謝您的回覆~ 關於您的建議我試了但是產生下列的問題~ 再麻煩您協助一下~謝謝~ Q1.您的檔案,我無法執行(它會出現下列圖示),我上網找了一下此檔並放於windows\system32內還是會出現此錯誤訊息~ 不過我有開啟.dfm檔大致看了一下並試著做看看~ Q2.我使用了ClientDataSet1 和 Datasource1元件了,我在ClientDataSet1內的FieldDefs和IndexDefs內都有設定好欄位名稱了, 我寫了下列一段程式,發現他只有存入最後一個欄位資料而已,其它欄位資料沒有存入,這是什麼原因? 謝謝大大~ PS.另外我有多做一個dbgrid1去連結datasource1去看看clientdataset1跑完我上述的程式後,有沒有把值丟入,但我發現它沒有存入其它的值,只有在每筆的最後一個欄位有存入正確的值而已,我有確認過程式在跑時,每個stringgrid5.Cells[1,y]值都是正確的,只是不知為什麼值不會存入clientdataset內~謝謝~ [code delphi] clientdataset1.Close; clientdataset1.Open; for y:=1 to stringgrid5.rowcount-1 do begin clientdataset1.Insert; ClientDataSet1.FieldByName('P_no').AsString:=stringgrid5.Cells[1,y]; ClientDataSet1.FieldByName('P_sn').AsString:=stringgrid5.Cells[2,y]; ClientDataSet1.FieldByName('S_qty').AsString:=stringgrid5.Cells[3,y]; ClientDataSet1.FieldByName('C_qty').AsString:=stringgrid5.Cells[4,y]; ClientDataSet1.FieldByName('L_qty').AsString:=stringgrid5.Cells[5,y]; ClientDataSet1.FieldByName('AREA').AsString:=stringgrid5.Cells[6,y]; ClientDataSet1.FieldByName('DES').AsString:=stringgrid5.Cells[7,y]; ClientDataSet1.Post; end; [/code] ===================引 用 GrandRURU 文 章=================== Orz A1 A2. 沒有DataSet, preview當然是一片空啊! 不要再拔獅子的鬃毛了! 請善用ClientDataSet,我相信網路上和書上有很多關於它的知識和教學 因為我的D7有點問題,我改用BCB6實作你的東西 http://delphi.ktop.com.tw/download.php?download=upload/4ddafd27d40b5_QuickRepDemo.7z 包含了ClientDataSet, QuickRep 如果不能開專案,你也可以先執行程式看看結果,再比對一下程式內容。 A3. 陳惟彬老師寫的 Delphi進銷存程式設計 BDE Quick Report Delphi與資料庫開發手札 - 存貨財務會計系統開發實錄 DBX Rave Report C Builder資料庫程式設計 - 人事薪資系統 DBX Quick Report |
eva_hsieh
一般會員 發表:5 回覆:6 積分:2 註冊:2011-04-24 發送簡訊給我 |
謝謝各位大大~
我找到原因了~ 因為我在clientdataset設定欄位屬性(資料型態) 與 要存放值時的屬性(資料型態) 不同~ 故它無法存入~我重新再做一個clientdataset將所有的欄位改成string的屬性後~ (因為它的屬性我有改過,但是它還是依照我第一次設的資料型態為主,故重做) 再將值丟入,利用dbgrid來檢查是否值都有正確放入後,我的報表就能順利產生了~ ^^ 謝謝各位大大不吝指教~ ===================引 用 eva_hsieh 文 章=================== 請問GrandRURU大大~ 首先先感謝您的回覆~ 關於您的建議我試了但是產生下列的問題~ 再麻煩您協助一下~謝謝~ Q1.您的檔案,我無法執行(它會出現下列圖示),我上網找了一下此檔並放於windows\system32內還是會出現此錯誤訊息~ 不過我有開啟.dfm檔大致看了一下並試著做看看~ Q2.我使用了ClientDataSet1 和 Datasource1元件了,我在ClientDataSet1內的FieldDefs和IndexDefs內都有設定好欄位名稱了, 我寫了下列一段程式,發現他只有存入最後一個欄位資料而已,其它欄位資料沒有存入,這是什麼原因? 謝謝大大~ PS.另外我有多做一個dbgrid1去連結datasource1去看看clientdataset1跑完我上述的程式後,有沒有把值丟入,但我發現它沒有存入其它的值,只有在每筆的最後一個欄位有存入正確的值而已,我有確認過程式在跑時,每個stringgrid5.Cells[1,y]值都是正確的,只是不知為什麼值不會存入clientdataset內~謝謝~ [code delphi] clientdataset1.Close; clientdataset1.Open; for y:=1 to stringgrid5.rowcount-1 do begin clientdataset1.Insert; ClientDataSet1.FieldByName('P_no').AsString:=stringgrid5.Cells[1,y]; ClientDataSet1.FieldByName('P_sn').AsString:=stringgrid5.Cells[2,y]; ClientDataSet1.FieldByName('S_qty').AsString:=stringgrid5.Cells[3,y]; ClientDataSet1.FieldByName('C_qty').AsString:=stringgrid5.Cells[4,y]; ClientDataSet1.FieldByName('L_qty').AsString:=stringgrid5.Cells[5,y]; ClientDataSet1.FieldByName('AREA').AsString:=stringgrid5.Cells[6,y]; ClientDataSet1.FieldByName('DES').AsString:=stringgrid5.Cells[7,y]; ClientDataSet1.Post; end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |