📄 u_zjkgl_zjkgl.pas
字号:
unit U_zjkgl_zjkgl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, ToolWin, StdCtrls, ImgList, ActnList,
XPStyleActnCtrls, ActnMan, Grids, DBGrids,u_public_define, DBCtrls, Mask,
Excel2000, OleServer,strutils;
type
TFrm_Zjkgl_Zjkgl = class(TForm)
Tbar: TToolBar;
ToolButton1: TToolButton;
P2: TPanel;
Label2: TLabel;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton13: TToolButton;
ToolButton16: TToolButton;
ToolButton17: TToolButton;
ToolButton18: TToolButton;
ImageList1: TImageList;
ActionManager1: TActionManager;
Zj: TAction;
Zx: TAction;
Cz: TAction;
Excel: TAction;
Exit1: TAction;
ToolButton15: TToolButton;
Lvw_Lb: TDBGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
procedure Size_Tz();
procedure FormResize(Sender: TObject);
procedure ZjExecute(Sender: TObject);
procedure Exit1Execute(Sender: TObject);
procedure Lvw_LbCellClick(Column: TColumn);
procedure enable_ctrl(bb:boolean);
procedure ZxExecute(Sender: TObject);
procedure CzExecute(Sender: TObject); //锁定控件
procedure excel_out();
procedure ExcelExecute(Sender: TObject); // 报表输出
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Zjkgl_Zjkgl: TFrm_Zjkgl_Zjkgl;
implementation
uses u_zjkgl_zjkgl_grzj,u_data,u_data_update,u_zhgl_zhgl_qtzj,U_Bb_Zjk_Zjkmx;
var
mbMoving:Boolean ;
{$R *.dfm}
procedure TFrm_Zjkgl_Zjkgl.Size_Tz();
begin
lvw_lb.Left:=5;
lvw_lb.Width:=self.Width-18;
p2.Left:=lvw_lb.Left;
p2.Width:=lvw_lb.Width;
//设置 Top 属性
if tbar.Visible then
begin
Lvw_Lb.Top :=tbar.Height+p2.Height+5;
end
else
begin
lvw_lb.Top:=p2.Height+5;
end;
//设置 height 属性
lvw_lb.Height := self.Height- (p2.Top + p2.Height) - 40;
//
end;
procedure TFrm_Zjkgl_Zjkgl.FormResize(Sender: TObject);
begin
Size_Tz();
if g_str_jbxx='增减明细' then
begin
frm_bb_zjk_zjkmx:=Tfrm_bb_zjk_zjkmx.Create(application);
frm_bb_zjk_zjkmx.ShowModal;
g_str_jbxx:='';
end;
end;
procedure TFrm_Zjkgl_Zjkgl.ZjExecute(Sender: TObject);
begin
//G_Str_JBxx:='人员insert';
frm_zjkgl_zjkgl_grzj:=Tfrm_zjkgl_zjkgl_grzj.Create(application);
frm_zjkgl_zjkgl_grzj.ShowModal;
data.Mr_zjb.Close;
data.Mr_zjb.Open;
self.Lvw_Lb.DataSource:=Data.Mr_zjb_s;
data.Mr_zjb.Active:=true;
end;
procedure TFrm_Zjkgl_Zjkgl.Exit1Execute(Sender: TObject);
begin
close;
//
end;
procedure TFrm_Zjkgl_Zjkgl.Lvw_LbCellClick(Column: TColumn);
begin
// g_str_selectkh:=dbedit2.Text;
// g_str_selectbh:=dbedit1.Text;
// enable_ctrl(true);
end;
procedure TFrm_Zjkgl_Zjkgl.enable_ctrl(bb:boolean);
begin
//
end;
procedure TFrm_Zjkgl_Zjkgl.ZxExecute(Sender: TObject);
begin
frm_zhgl_zhgl_qtzj:=Tfrm_zhgl_zhgl_qtzj.Create(application);
frm_zhgl_zhgl_qtzj.ShowModal;
data.Mr_zjb.Close;
data.Mr_zjb.Open;
data.Mr_zjb.Active:=true;
end;
procedure TFrm_Zjkgl_Zjkgl.CzExecute(Sender: TObject);
begin
frm_bb_zjk_zjkmx:=Tfrm_bb_zjk_zjkmx.Create(application);
frm_bb_zjk_zjkmx.ShowModal;
end;
procedure TFrm_zjkgl_zjkgl.excel_out();
var i,j,k:integer;
DataCount,HeadCount:integer;
Bt:array[1..11] of string;
begin
//判断有无数据,如果没数据不能输出
i:=lvw_lb.DataSource.DataSet.RecordCount;
if i=0 then
begin
application.MessageBox('无记录不能打印!','明日科技');
exit;
end;
//判断有无Excel安装
try
excelapplication1.Connect;
except
application.MessageBox('机器没有正确安装Excel!','明日科技有限公司');
exit;
end;
//建立连接,进行命名
excelapplication1.Visible[1]:=true;
excelapplication1.Caption:='增减款管理报表';
excelapplication1.Workbooks.Add(null,0);
excelapplication1.Workbooks.Add(emptyparam,0);
excelworkbook1.ConnectTo(excelapplication1.Workbooks[1]);
excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _Worksheet);
//打印表头
bt[1]:='时间';
bt[2]:='编号';
bt[3]:='卡号';
bt[4]:='部门名称';
bt[5]:='余额';
bt[6]:='增减金额';
bt[7]:='增减后余额';
bt[8]:='增减类别';
bt[9]:='增减方式';
bt[10]:='收费员';
bt[11]:='增减分类';
HeadCount:=11;
for k:=1 to headcount do
begin
excelworksheet1.Cells.Item[1,k]:=Bt[k];
end;
//打印数据
datacount:=lvw_lb.DataSource.DataSet.RecordCount;
while not lvw_lb.DataSource.DataSet.Bof do
begin
lvw_lb.DataSource.DataSet.Prior;
end;
for j:=2 to datacount+1 do
begin
for k:=1 to headcount do
begin
excelworksheet1.Cells.Item[j,k]:=lvw_lb.Fields[k-1].Text;
end;
lvw_lb.DataSource.DataSet.Next;
end;
excelapplication1.Disconnect;
// application.MessageBox('报表导出成功','明日科技');
end;
procedure TFrm_Zjkgl_Zjkgl.ExcelExecute(Sender: TObject);
begin
excel_out;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -