delphi FASTREPORT打印问题

implementation{$R*.dfm}procedureTForm1.ToolButton1Click(Sender:TObject);//EXCl导入数据var... implementation

{$R *.dfm}

procedure TForm1.ToolButton1Click(Sender: TObject); //EXCl导入数据
var
excelx,excely,excelz,excelw: string;
ExcelApp,workbook: Variant;
ExcelRowCount,i,j:integer;
begin
adodataset1.Close;
adodataset1.CommandText:='select * from jbbxx';
adodataset1.Open;
if form1.OpenDialog1.Execute then
try
excelapp:= CreateOleObject('Excel.Application');
WorkBook := ExcelApp.WorkBooks.Open(form1.opendialog1.FileName);//使用opendialog对话框指定excel档路径
ExcelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
j:=2;
for i := 0 to excelrowcount - 1 do
begin
excelx := excelapp.Cells[j,1].Value;
excely := excelapp.Cells[j,2].Value;
excelz := excelapp.Cells[j,3].Value;
excelw := excelapp.Cells[j,4].Value;
if ((excelx='') and (excely='')) then exit
//指定excel档的第 i 行 ,第 1,2(看情况而定)行如果为空就退出,这样的设定,最好是你的档案力这两行//对应数据库中不能为空的数据
else
begin

form1.adodataset1.Insert;
form1.adodataset1.FieldByName('chinaname').AsString:= excelx; //excel档的第一列插入到test表的 name栏位;
form1.adodataset1.FieldByName('englishname').AsString:= excely;
form1.adodataset1.FieldByName('jhh').AsString:= excelz; //excel档的第二列插入到test表的 address 栏位;
form1.adodataset1.FieldByName('jhr').AsString:=excelw;
form1.adodataset1.Post;
j:=j+1;
end;
end;
finally
WorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
WorkBook := Unassigned;
adodataset1.Close;
adodataset1.CommandText:='select * from jbbxx';
adodataset1.Open;
//Application.MessageBox('数据已导入完成','提示信息',MB_OK);
end
else
Application.MessageBox('数据已导入失败','提示信息',MB_OK);
end;
procedure TForm1.ToolButton4Click(Sender: TObject); //清除所有数据
var
LQuery:Tadoquery;
begin
LQuery:=TADOQuery.Create(nil);
try
LQuery.Connection:=ADODataSet1.Connection;
lquery.SQL.Add('delete * from jbbxx');
lquery.ExecSQL;
lquery.SQL.Clear;
finally
LQuery.Free;
end;
adodataset1.Close;
adodataset1.CommandText:='select * from jbbxx';
adodataset1.Open;
end;
procedure TForm1.ToolButton2Click(Sender: TObject); //根据模版打印
begin
if RadioButton1.Checked=true then
begin
frxreport1.LoadFromFile('pr.fr3');
frxReport1.PrepareReport();
frxreport1.Print();
end
else if radiobutton2.Checked=true then
begin
frxreport1.LoadFromFile('pr1.fr3');
frxReport1.PrepareReport();
frxreport1.Print();
end;
end;

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
if panel2.Visible=true then
panel2.Visible:=false else panel2.Visible:=true;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin

end;

end.
在程序第一次打的时候可以根据模版打印,一旦导入数据点打印就没有数据。但grid里有数据。不知是什么原因!我是新手帮忙看看
展开
 我来答
maodrc
2009-04-22 · TA获得超过3289个赞
知道小有建树答主
回答量:1090
采纳率:79%
帮助的人:1176万
展开全部
else if radiobutton2.Checked=true then
begin
frxreport1.LoadFromFile('pr1.fr3');
frxReport1.PrepareReport();
frxreport1.Print();
end;

这里是你的打印吧,应该看看 fr3这个报表的设置,检查下数据源设置的是否正确...
myhuy
2009-04-23 · 超过25用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:86.7万
展开全部
LQuery.Connection:=ADODataSet1.Connection;
lquery.SQL.Add('delete * from jbbxx');
lquery.ExecSQL;
这不是把数据全部删除了吗?
如果没有执行过ToolButton4Click这个过程,那就可能是fr的数据源的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
757764903
2009-04-28
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
zz
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式