📄 ureport.pas
字号:
unit Ureport;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BusinessSkinForm, bsSkinCtrls, ComCtrls;
type
TfrmReport = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinPanel1: TbsSkinPanel;
bsSkinScrollBar1: TbsSkinScrollBar;
bsSkinScrollBar2: TbsSkinScrollBar;
lvFind: TbsSkinListView;
bsSkinPanel3: TbsSkinPanel;
btnFind: TbsSkinButton;
btnExport: TbsSkinButton;
btnClose: TbsSkinButton;
bsSkinStatusPanel1: TbsSkinStatusPanel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnFindClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnExportClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmReport: TfrmReport;
implementation
uses upublic,comobj,excelxp,umain, Ufind;
{$R *.dfm}
procedure TfrmReport.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
frmReport:=nil;
end;
//条件查找
procedure TfrmReport.btnFindClick(Sender: TObject);
begin
if not assigned(frmFind) then
frmFind:=TfrmFind.create(self);
if frmFind.ShowModal=idok then
begin
if strsql='' then
begin
frmmain.bsmessage.MessageDlg('对不起,您没有输入查询条件!',mtWarning,[mbOK],0);
bsSkinStatusPanel1.Caption:=' 没有输入查询条件';
exit;
end;
lvFind.Items.Clear;
rs:=CreateOleObject('ADODB.Recordset');
try
rs.open('select * from tXiaoShou where '+strSql,conn,1,1);
while not rs.eof do
begin
with lvFind.Items.Add do
begin
caption:=rs.fields.Item['rq'].value;
subitems.Add(rs.fields.Item['spmc'].value);
subitems.Add(rs.fields.Item['sptm'].value);
subitems.Add(rs.fields.Item['spclass'].value);
subitems.Add(rs.fields.Item['spdj'].value);
subitems.Add(rs.fields.Item['xssl'].value);
subitems.Add(rs.fields.Item['spje'].value);
subitems.Add(rs.fields.Item['gtdm'].value);
end;
rs.moveNext;
application.ProcessMessages;
end;
finally
rs.close;
rs:=unassigned;
strSql:='';
bsSkinStatusPanel1.Caption:=' 准备就绪';
end;
end;
end;
procedure TfrmReport.btnCloseClick(Sender: TObject);
begin
close;
end;
//导出报表
procedure TfrmReport.btnExportClick(Sender: TObject);
var
i,j,k:integer;
xxx1:string;
begin
bsSkinStatusPanel1.Caption:=' 正在载入Excel,请稍候......';
try
//创建EXCEL对象
VarExcel:=createoleObject('excel.application');
if not varisempty(VarExcel) then
begin
VarExcel.workbooks.add;
VarExcel.workbooks[1].worksheets[1].name:='综合查询报表';
end;
except
frmmain.bsmessage.MessageDlg('请确认是否安装了EXCEL?',mtWarning,[mbOK],0);
exit;
end;
//写入列标题
range:=varexcel.workbooks[1].worksheets[1].columns;
for i:=0 to lvfind.Columns.Count-1 do
begin
varexcel.workbooks[1].worksheets[1].cells[2,i+1].value:=lvfind.Columns.Items[i].Caption;
varexcel.workbooks[1].worksheets[1].cells[2,i+1].font.bold:=true;
range.columns[i+1].horizontalAlignment:=XlCenter;
end;
try
//循环写入数据
j:=3;
for i:=0 to lvfind.Items.Count-1 do
begin
varexcel.workbooks[1].worksheets[1].cells[j,1].value:=lvfind.Items[i].Caption;
varexcel.workbooks[1].worksheets[1].cells[j,2].value:=lvfind.Items[i].SubItems[0];
varexcel.workbooks[1].worksheets[1].cells[j,3].value:=lvfind.Items[i].SubItems[1];
varexcel.workbooks[1].worksheets[1].cells[j,4].value:=lvfind.Items[i].SubItems[2];
varexcel.workbooks[1].worksheets[1].cells[j,5].value:=lvfind.Items[i].SubItems[3];
varexcel.workbooks[1].worksheets[1].cells[j,6].value:=lvfind.Items[i].SubItems[4];
varexcel.workbooks[1].worksheets[1].cells[j,7].value:=lvfind.Items[i].SubItems[5];
varexcel.workbooks[1].worksheets[1].cells[j,8].value:=lvfind.Items[i].SubItems[6];
inc(j);
application.ProcessMessages;
end;
varexcel.workbooks[1].worksheets[1].cells[j+1,2].value:='制表: '+userInfoa.UserName;
varexcel.workbooks[1].worksheets[1].cells[j+1,4].value:='日期: '+datetostr(date);
except
end;
k:=7+ord('A');
xxx1:=chr(k);
xxx1:='A2:'+xxx1+inttostr(j+1);
range:=varexcel.workbooks[1].worksheets[1].range[xxx1];
//将数据表格画线
range.borders.linestyle:=xlcontinuous;
k:=7+ord('A');
xxx1:=chr(k);
xxx1:='a1:'+xxx1+'1';
//将标题列居中
range:=varexcel.workbooks[1].worksheets[1].range[xxx1];
range.horizontalAlignment:=XlCenter;
range.VerticalAlignment:=XlCenter;
range.mergecells:=true;//合并标题烂
//报表标题
varexcel.workbooks[1].worksheets[1].range['a1:a1']:='综合查询报表';
varexcel.workbooks[1].worksheets[1].range['a1:a1'].font.name:='黑体';
varexcel.workbooks[1].worksheets[1].range['a1:a1'].font.size:='19';
varexcel.workbooks[1].worksheets[1].range['a1:a1'].font.fontstyle:='bold';
bsSkinStatusPanel1.Caption:=' 导出报表完成';
varexcel.visible:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -