有關於SaveDialog存檔的兩各問題 |
答題得分者是:eaglewolf
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
有關於SaveDialog存檔的兩各問題
==== 問題一 ===== 我寫一份報表中..在一各DbGrid上作了三各按鈕 兩各搜尋一各存檔 那其中兩各搜尋的時候 其中一各搜尋會把DbGrid的欄位都填滿 但是另一各搜尋後會有些欄位是null值 導致存檔的時候...有null值savedialog會出現問題 但是又不想做兩顆SaveDoalog按鈕 可以加入條件有null值自動幫我填入欄位嗎? ===== 問題二 ===== 再儲存的時候..因為我是.csv存檔 有些欄位如果資料過大...開啟的時候... 資料會被分成兩半...後段跑去後面 導致欄位跟資料不合...有無方法可以修正呢或者 調整最大欄位內的字元組呢 (用MS Office or OpenOffice開都一樣) ====== 程式碼 ==== procedure TForm1.Button20Click(Sender: TObject); var F : TextFile; S : String; iROW , iCO1 : Integer; begin IF not csTemp6.Active Then exit; savedialog1.InitialDir := ('C:\'); savedialog1.filter := '*.csv'; savedialog1.DefaultExt := 'csv'; IF savedialog1.Execute then begin AssignFile(F,savedialog1.FileName); Rewrite(F); s := csTemp6.Fieldbyname ('工單').DisplayLabel ',' csTemp6.Fieldbyname ('產品序號').DisplayLabel ',' csTemp6.Fieldbyname ('產品名稱').DisplayLabel ',' csTemp6.Fieldbyname ('送修日期').DisplayLabel ',' csTemp6.Fieldbyname ('維修時間').DisplayLabel ',' csTemp6.Fieldbyname ('維修天數').DisplayLabel ',' csTemp6.Fieldbyname ('維修人員').DisplayLabel; Writeln(F, S); csTemp6.first; while not csTemp6.Eof do begin s := csTemp6.Fieldbyname ('工單').AsString ',' csTemp6.Fieldbyname ('產品序號').AsString ',' csTemp6.Fieldbyname ('產品名稱').AsString ',' csTemp6.Fieldbyname ('送修日期').AsString ',' csTemp6.Fieldbyname ('維修時間').AsString ',' csTemp6.Fieldbyname ('維修天數').AsString ',' csTemp6.Fieldbyname ('維修人員').AsString; writeln(F, S); csTemp6.next; end; MessageDlg('Report OK!!',mtCustom, [mbOK],0); CloseFile(F); end; end; ====== END ======
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet |
JustinShen
中階會員 發表:22 回覆:104 積分:80 註冊:2003-09-20 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
問題一
先用IsNull判斷吧 s:=''; if Not ISNull(csTemp6.FieldByName('工單')) then s := s csTemp6.Fieldbyname ('工單').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('產品序號')) then s:= s csTemp6.Fieldbyname ('產品序號').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('產品名稱')) then s:= s csTemp6.Fieldbyname ('產品名稱').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('送修日期')) then s:= s csTemp6.Fieldbyname ('送修日期').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('維修時間')) then s:= s csTemp6.Fieldbyname ('維修時間').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('維修天數')) then s:= s csTemp6.Fieldbyname ('維修天數').DisplayLabel ',' ; if Not ISNull(csTemp6.FieldByName('維修人員')) then s:= s csTemp6.Fieldbyname ('維修人員').DisplayLabel ',' ; if RightStr(s,1) = ',' then s:= LeftStr(s,Length(s-1)); 問題二 我覺得應該是資料本身含有','
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |