用SQL查询,应该是用的数据集控件吧,比如TQuery。
1、保存(用循环的方法写到文本文件中)
procedure SaveData(qrData:TQuery;strFile:String);
var
f:TextFile;
cc:Integer;
//Column Counter
begin
Assign(f,strFile);
Rewrite(f);
with qrDatado
begin
DisableControls;
First;
while not Eofdo
begin
For cc:=0 to FieldCount-1do
Write(f,Fields.AsString);
Next;
end;
First;
EnableControls;
end;
Close(f);
end;
2、打印(使用QuickReport直接打印数据集的数据)
菜单File->New,选择Report,即可新建一个QuickReport报表,假设名叫QuickReport1;
菜单Project -> Options -> Forms -> Auto-create Forms,取消QuickReport1的自动创建;
将QuickReport1的DataSet属性设为要打印的数据集,例如Form1.Query1;
修改QuickReport1的Bands属性:将HasColumnHeader和HasDetail设置为True;
在ColumnHeader中放几个QRText(有几个字段就放几个),将其Caption属性分别设成数据集的字段名;
在Detail中放等量的QRDBText,其DataSet属性设置为你要打印的数据集,DataField分别指向各个字段;
在QuickReport1的AfterPreview事件中写 Self.Free;
在DBGrid所在的窗体中添加一个“打印”按钮,在其OnClick中写
with QuickReport1.Create(self)do
PreviewModal;
可以运行试一试了。