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里有数据。不知是什么原因!我是新手帮忙看看 展开
{$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里有数据。不知是什么原因!我是新手帮忙看看 展开
3个回答
展开全部
LQuery.Connection:=ADODataSet1.Connection;
lquery.SQL.Add('delete * from jbbxx');
lquery.ExecSQL;
这不是把数据全部删除了吗?
如果没有执行过ToolButton4Click这个过程,那就可能是fr的数据源的问题
lquery.SQL.Add('delete * from jbbxx');
lquery.ExecSQL;
这不是把数据全部删除了吗?
如果没有执行过ToolButton4Click这个过程,那就可能是fr的数据源的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询