線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1659
推到 Plurk!
推到 Facebook!

請問DBgrid所連結的query1輸出到文字檔 為何只有標題 沒有內容

答題得分者是:P.D.
');
for nCnt:=0 to Query1.FieldCount -1 do
begin
myStringlist.Add('');
end;
myStringlist.Add('');
while not Query1.Eof do
begin
myStringlist.Add('');
for nCnt:=0 to Query1.FieldCount -1 do
begin
myStringlist.Add('');
end;
myStringlist.Add('');
Query1.Next;
end;
myStringlist.Add('
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-08 17:25:58 IP:114.41.xxx.xxx 訂閱

[code delphi]
procedure TForm1.XT1Click(Sender: TObject);
var
i: integer;
PrintText:TextFile;
s:string;
cw:integer;
begin
SaveDialog1.DefaultExt:='*.txt';
SaveDialog1.Filter := 'Text files (*.txt)|*.TXT';
if SaveDialog1.Execute then begin
AssignFile(PrintText,SaveDialog1.filename);
Rewrite(PrintText);
s:='';
{標題}
for i := 0 to query1.Fields.Count-1 do begin
cw:=dbgrid1.Columns.Items[i].Width div 9;
s:=s format('%' inttostr(cw 2) '.' inttostr(cw) 's',[query1.fields[i].displaylabel ]);
end;
writeln(PrintText, s);
{內容}
with query1 do begin
DisableControls;
First;
while not eof do begin
s:='';
for i := 0 to query1.Fields.Count-1-1 do begin
cw:=dbgrid1.Columns.Items[i].Width div 9;
s:=s format('%' inttostr(cw 2) '.' inttostr(cw) 's',[Fields[i].asstring]);
end;
writeln(PrintText, s);
next;
end;
EnableControls;
CloseFile(PrintText);
end;
end;

end;

[/code]
小弟引用pgdennis 的程式碼 測試 結果只轉出標題 內容全看不見 請教各位大師 指點錯誤在那 謝謝!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-08 22:43:08 IP:61.67.xxx.xxx 未訂閱
你已經切斷 dbgrid 與 query 的連結(DisableControls;), 然後又使用 column[] 來獲取資料, 那怎麼會讀的到呢, 試著把 DisableControls;拿掉看看, 要不就直接引用Query.FieldbyName()方式
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-09 00:22:26 IP:219.84.xxx.xxx 訂閱
試著用 Query1  直接去將資料讀出,不要用 DBGrid ,範例如下

[code delphi]

myStringlist.Add('
' Query1.Fields[nCnt].FieldName '
' Query1.Fields[nCnt].AsString '
');

[/code]
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-10 16:52:49 IP:114.41.xxx.xxx 訂閱

===================引 用 P.D. 文 章===================
你已經切斷 dbgrid 與 query 的連結(DisableControls;), 然後又使用 column[] 來獲取資料, 那怎麼會讀的到呢, 試著把 DisableControls;拿掉看看, 要不就直接引用Query.FieldbyName()方式

for i := 0 to query1.Fields.Count-1-1 do begin 小弟把這行 的 Count-1-1 改成 Count-1 結果就ok可以輸出完整的內容了 請問版主如此修正是否完全合邏輯?至少到目前為止小弟試了 n 次都ok
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-10 16:58:22 IP:114.41.xxx.xxx 訂閱
謝謝 carstyc 關於 直接引用 query1 物件輸出方式 小弟會再測試
系統時間:2024-04-20 2:44:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!