如何确定DBGRID里面的记录
能够实现循环读出每条记录里的内容前面我采用了dbgrid.Columns[i].fieldname 来读出字段名
但底下的记录不知道用什么语句使它们读出。
能够实现循环读出每条记录里的内容前面我采用了dbgrid.Columns[i].fieldname 来读出字段名
但底下的记录不知道用什么语句使它们读出。
解决方案 »
- 如何设计试卷式数据库结构
- 关于在delphi中使用MsWinsock.ocx控件,用senddata发送数据的问题,请专家看看!
- 好好奇怪的问题,怎么会这样呢?在两个这listbox之间赋值,出现丢失字符的现象,怎么也想不出来是什么问题?
- DBGRID里的COLUMNS EDITOR 怎么能动态的在代码里不显示不需要看见的字段呢?
- 有哪位高手知道BDE中数据库的默认用户名和密码吗?
- 只有60分了! ADO怎么连接sybase数据库
- 怎样用Delphi 写一个Quequ?
- 各位兄台:delphi中的帮助文件使用方法!!
- 一个关于 在form最小化时绘制form的小技巧.MS提供,但本人试了一下.为何不好使???????有兴趣进来一下
- 关于拼音助记符的问题!
- FTP(TIdFTP控件)的简单问题,散分啦,在线等待中.....
- 一个最简单的问题!
循环DataSet即可。
AssignFile(ff,"d:\test.txt"); //文件操作
Rewrite(ff); //重写
DataSet.First; //移动指针
while not DataSet.Eof do begin
for i := 0 to DataSet.Fields.Count - 1 do begin
Write(ff,DataSet.FieldValues[i].AsString);
Write(ff,#9); //加入TAB
end;
Write(ff,#13#10); //加入回车换行
end;
CloseFile(ff);
var
I: integer;
FName,OutString: string;
OutFile: TextFile;
note: Tbook;
savedialog1: Tsavedialog;
begin
//创建对话框的容器
try
savedialog1 := Tsavedialog.Create(TextForm);
//Assign a filename to the variable
savedialog1.Filter := 'Text files (*.txt)|*.TXT';
if savedialog1.Execute then
FName := savedialog1.FileName+'.txt';
if FName <> '' then
begin
note := Query1.GetBook;
Query1.DisableControls; //Identify the filename and type as OutFile
AssignFile(OutFile,fname); //create and open a new file identify as OutFile
Rewrite(OutFile); //插入标题
OutString := title+#13;
Writeln(OutFile,OutString);
OutString := ''; //Get text from the Query1
for I:=0 to Query1.FieldCount-1 do
begin
if query1.Fields[i].Visible = True then
begin
OutString:=OutString+Query1.Fields[i].displaylabel;
if I < Query1.FieldCount-1 then
OutString := OutString + ','
else outstring := Outstring;
end;
end;
Writeln(OutFile,OutString);
OutString := ''; While not Query1.EOF do
begin
for I:=0 to Query1.FieldCount-1 do
begin
if query1.Fields[i].Visible = True then
begin
OutString:=OutString+'"'+Query1.Fields[i].AsString+'"';
if I < Query1.FieldCount-1 then
OutString := OutString + ','
else outstring := Outstring ;
end;
end;
//Write out the text in OutString to file
Writeln(OutFile,OutString);
Query1.Next;
OutString := '';
end; //插入总结
Writeln(OutFile,summary);
//Update and close the file
CloseFile(OutFile);
Query1.EnableControls;
Query1.GotoBook(note);
Query1.FreeBook(note);
savedialog1.Destroy;
result := True;
end;
except
CloseFile(OutFile);
Query1.EnableControls;
Savedialog1.free;
Showmessage('过程错误,请退出后重新运行!');
Result := False;
end;
end;
str1:tstrings;
i:integer;
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from table1');
query1.open;
str1:=tstringlist.create;
for i:=1 to query1.recordcount do
begin
str1.add(query1.FieldByName('你要导出的字段').Value+query1.FieldByName('你要导出的字段').Value+...);
query1.next;
end;
str1.savetofile('*******')
end;
Book:tBook;
s:widestring;
i,j:integer;
begin
memo:=tstringlist.Create;
DBGrid.DataSource.DataSet.DisableControls;
Book:=DBGrid.DataSource.DataSet.GetBook;
FDBGrid.DataSource.DataSet.First;
while not FDBGrid.DataSource.DataSet.Eof do
begin
s:='';
for i:=0 to FDBGrid.Columns.Count-1 do if FDBGrid.Columns[i].Visible then
s:=s+'|'+FDBGrid.DataSource.DataSet.fieldbyname(FDBGrid.Columns[i].FieldName).AsString;
memo.Append(s);
FDBGrid.DataSource.DataSet.Next;
end;
DBGrid.DataSource.DataSet.GotoBook(Book);
DBGrid.DataSource.DataSet.EnableControls;
memo.savetofile('c:\ss.txt');
end;
Book:tBook;//标签
s:widestring;
i,j:integer;
begin
memo:=tstringlist.Create;
DBGrid.DataSource.DataSet.DisableControls;//屏蔽DBGrid与dataset连接
Book:=DBGrid.DataSource.DataSet.GetBook; //标注当前纪录位置
FDBGrid.DataSource.DataSet.First; //移到第一条纪录
while not FDBGrid.DataSource.DataSet.Eof do //如果到最后退出
begin
s:='';
for i:=0 to FDBGrid.Columns.Count-1 do if FDBGrid.Columns[i].Visible then
s:=s+'|'+FDBGrid.DataSource.DataSet.fieldbyname(FDBGrid.Columns[i].FieldName).AsString; //当前纪录增加到s用'|'隔开字段
memo.Append(s);//将s追加到memo
FDBGrid.DataSource.DataSet.Next;
end;
DBGrid.DataSource.DataSet.GotoBook(Book); //返回原来纪录
DBGrid.DataSource.DataSet.EnableControls; //恢复连接
memo.savetofile('c:\ss.txt'); //保存到文件
end;
难道你要让客户看txt文件。
如果需要打印出来,你可以用我的控建!
下载地址:http://www.csdn.net/cnshare/soft/15/15471.shtm
procedure DataToTxt(FileName,pCaption:string;var pTitle:TstringList;pDBGrid:TDBGrid);
var
MyFile: TextFile;
FileCaption:String;
FileTitle:TStringList;
DBGrid1:TDBGrid;
i,j: integer;
begin
FileCaption:=pcaption;
FileTitle:=pTitle;
DBGrid1:=pDBGrid;
if ExtractFileExt(uppercase(Filename))<> '.TXT' then
Filename := ChangeFileExt(Filename, '.TXT');
AssignFile(MyFile, Filename);
Rewrite(MyFile);
try
//表头内容
writeln(MyFile,FileCaption);
if FileTitle.Count>0 then
for i:=0 to FileTitle.Count-1 do
begin
writeLn(MyFile,FileTitle.Strings[i]);
end
else
i:=1;
//获取字段名
j:=i+2;
for i:=0 to DBGrid1.Columns.Count-1 do
begin
Write(MyFile,DBGrid1.Columns[i].Title.Caption);
///作为字段分隔符
Write(MyFile,'|');
j:=j;
end;
Writeln(MyFile);
//表体内容
j:=j+1;
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
For i:=0 to DBGrid1.Columns.Count-1 do
begin
Write(MyFile,DBGrid1.DataSource.DataSet.FieldByName(DBGrid1.Columns[i].FieldName).AsString);
///作为字段分隔符
Write(MyFile,'|');
end;
WriteLn(Myfile);
DBGrid1.DataSource.DataSet.Next;
j:=j+1;
end;
DBGrid1.DataSource.DataSet.EnableControls;
CloseFile(MyFile);
Application.MessageBox('数据导出完毕','商务管理系统',MB_ICONQUESTION+MB_OK);
except
////
end;
end;
很容易实现另存为Txt, excel, html等多种文件