📄 u_zhgl_zhgl.~pas
字号:
unit U_Zhgl_Zhgl;
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;
type
TFrm_Zhgl_Zhgl = class(TForm)
Tbar: TToolBar;
ToolButton1: TToolButton;
Tvw_Lb: TTreeView;
Im1: TImage;
P1: TPanel;
P2: TPanel;
Label1: TLabel;
Label2: TLabel;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton16: TToolButton;
ToolButton17: TToolButton;
ToolButton18: TToolButton;
ImageList1: TImageList;
ActionManager1: TActionManager;
Zj: TAction;
Xg: TAction;
Gs: TAction;
Jg: TAction;
Zx: TAction;
Hk: TAction;
Cz: TAction;
Excel: TAction;
Exit1: TAction;
ToolButton15: TToolButton;
Action1: TAction;
Action2: TAction;
Lvw_Lb: TDBGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
ExcelApplication1: TExcelApplication;
ExcelChart1: TExcelChart;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
procedure Size_Tz( x:real);
procedure Im1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Im1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Im1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormResize(Sender: TObject);
procedure ZjExecute(Sender: TObject);
procedure XgExecute(Sender: TObject);
procedure GsExecute(Sender: TObject);
procedure JgExecute(Sender: TObject);
procedure ZxExecute(Sender: TObject);
procedure HkExecute(Sender: TObject);
procedure CzExecute(Sender: TObject);
procedure ExcelExecute(Sender: TObject);
procedure Exit1Execute(Sender: TObject);
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Lvw_LbCellClick(Column: TColumn);
procedure enable_ctrl(bb:boolean);
procedure Lvw_LbDblClick(Sender: TObject); //锁定控件
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Zhgl_Zhgl: TFrm_Zhgl_Zhgl;
implementation
uses u_zhgl_zhgl_zj,u_zhgl_zhgl_hk,u_zhgl_zhgl_zx,u_data,u_data_update,
u_bb_zh_yecz;
var
mbMoving:Boolean ;
{$R *.dfm}
procedure Tfrm_zhgl_Zhgl.Size_Tz( x:real);
begin
if x<150 then x:=150;
if x>(self.Width-150) then
begin
x:=self.Width-150;
end;
tvw_lb.Width:=trunc(x);
im1.Left:=trunc(x);
lvw_lb.Left:=trunc(x)+5;
lvw_lb.Width:=self.Width-(tvw_lb.Width+5)-10;
p1.Width:=tvw_lb.Width-1;
p2.Left:=lvw_lb.Left+1;
p2.Width:=lvw_lb.Width;
//设置 Top 属性
if tbar.Visible then
begin
tvw_lb.Top:=tbar.Height+p1.Height+5;
end
else
begin
tvw_lb.Top:=p1.Height+5;
end;
Lvw_Lb.Top :=Tvw_lb.Top;
//设置 height 属性
Tvw_lb.Height := self.Height - (p1.Top + p1.Height) - 35;
Lvw_Lb.Height := Tvw_lb.Height;
im1.Top := Tvw_lb.Top;
im1.Height := Tvw_lb.Height;
//
end;
procedure TFrm_Zhgl_Zhgl.Im1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
sglSplitLimit:integer;
sglpos:real;
begin
sglSplitLimit:=50;
If mbMoving Then
begin
sglPos :=round(X + im1.Left);
If sglPos < round(sglSplitLimit) Then
begin
im1.Left := sglSplitLimit;
end
Else If sglPos > round(self.Width - sglSplitLimit) Then
begin
im1.Left := trunc(self.Width - sglSplitLimit);
end
Else
begin
im1.Left :=trunc(sglPos);
end;
Size_Tz(round(im1.Left ));
end;
end;
procedure TFrm_Zhgl_Zhgl.Im1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
mbMoving:=true;
end;
procedure TFrm_Zhgl_Zhgl.Im1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
mbMoving:=false;
end;
procedure TFrm_Zhgl_Zhgl.FormResize(Sender: TObject);
begin
Size_Tz(round(im1.Left ));
end;
procedure TFrm_Zhgl_Zhgl.ZjExecute(Sender: TObject);
begin
G_Str_JBxx:='人员insert';
frm_zhgl_zhgl_zj:=Tfrm_zhgl_zhgl_zj.Create(application);
frm_zhgl_zhgl_zj.ShowModal;
//
end;
procedure TFrm_Zhgl_Zhgl.XgExecute(Sender: TObject);
begin
G_Str_JBxx:='人员update';
frm_zhgl_zhgl_zj:=Tfrm_zhgl_zhgl_zj.Create(application);
frm_zhgl_zhgl_zj.ShowModal;
//
end;
procedure TFrm_Zhgl_Zhgl.GsExecute(Sender: TObject);
var aa:string;
begin
if trim(dbedit1.Text)<>'' then
aa:='挂失';
begin
aa:='update mr_people set kzt='+quotedstr(aa)+' where bh='+quotedstr(trim(dbedit1.Text));
with data do
begin
g_con.Open();
g_rst_temp.SQL.Clear;
g_rst_temp.SQL.Add(aa);
g_rst_temp.ExecSQL;
Action2Execute(Sender);
//g_rst_temp.Open;
// g_rst_temp.Active:=ture;
end;
end;
//
end;
procedure TFrm_Zhgl_Zhgl.JgExecute(Sender: TObject);
var aa:string;
begin
if trim(dbedit1.Text)<>'' then
aa:='正常卡';
begin
aa:='update mr_people set kzt='+quotedstr(aa)+' where bh='+quotedstr(trim(dbedit1.Text));
with data do
begin
g_con.Open();
g_rst_temp.SQL.Clear;
g_rst_temp.SQL.Add(aa);
g_rst_temp.ExecSQL;
Action2Execute(Sender);
//g_rst_temp.Open;
// g_rst_temp.Active:=ture;
end;
end;
//
end;
procedure TFrm_Zhgl_Zhgl.ZxExecute(Sender: TObject);
begin
frm_zhgl_zhgl_zx:=Tfrm_zhgl_zhgl_zx.Create(application);
frm_zhgl_zhgl_zx.ShowModal;
Action2Execute(Sender);
//
end;
procedure TFrm_Zhgl_Zhgl.HkExecute(Sender: TObject);
begin
frm_zhgl_zhgl_hk:=Tfrm_zhgl_zhgl_hk.Create(application);
frm_zhgl_zhgl_hk.ShowModal;
Action2Execute(Sender);
//
end;
procedure TFrm_Zhgl_Zhgl.CzExecute(Sender: TObject);
begin
frm_bb_zh_yecz:=Tfrm_bb_zh_yecz.Create(application);
frm_bb_zh_yecz.ShowModal;
//
end;
procedure TFrm_Zhgl_Zhgl.ExcelExecute(Sender: TObject);
var i,j,k:integer;
DataCount,HeadCount:integer;
Bt:array[1..11] of string;
begin
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:=self.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]:='备注';
HeadCount:=10;
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;
end;
procedure TFrm_Zhgl_Zhgl.Exit1Execute(Sender: TObject);
begin
close;
//
end;
procedure TFrm_Zhgl_Zhgl.Action1Execute(Sender: TObject);
var
Treenode: TtreeNode;
begin
Size_Tz(round(im1.Left ));
treenode := self.Tvw_Lb.Items.Add(nil,'部门名称');
data.G_Rst1.SQL.Clear;
data.G_Rst1.SQL.Add('select * from mr_jbb where m_lbbh=1 order by m_bh');
data.G_Rst1.ExecSQL;
data.G_Rst1.Open;
while not data.G_Rst1.Eof do
begin
self.Tvw_Lb.Items.AddChildFirst(treenode,data.G_Rst1.FieldValues['M_name']);
data.G_Rst1.Next;
end;
if g_str_jbxx='账户余额' then
begin
g_str_jbxx:='';
CzExecute(Sender);
end;
end;
procedure TFrm_Zhgl_Zhgl.Action2Execute(Sender: TObject);
var
aa:string;
begin
aa:=tvw_lb.Selected.Text;
if aa<>'部门名称' then
begin
data.G_Rst_temp1.SQL.Clear;
data.G_Rst_temp1.SQL.Add('select * from mr_people where bm='+quotedstr(aa));
data.G_Rst_temp1.ExecSQL;
data.G_Rst_temp1.Open;
dbedit1.DataField:='bh';
dbedit2.DataField:='kh';
// self.DBEdit1.DataSource:=data.G_Rst_Temp1.DataSource;
// data.G_Rst_Temp1.Active:=true;
// data.G_Rst1.Active:=true;
// lvw_lb.Action:=true;
// data.G_Rst1.Open;
//
end;
enable_ctrl(false);
end;
procedure TFrm_Zhgl_Zhgl.Lvw_LbCellClick(Column: TColumn);
begin
g_str_selectkh:=dbedit2.Text;
g_str_selectbh:=dbedit1.Text;
enable_ctrl(true);
end;
procedure Tfrm_zhgl_zhgl.enable_ctrl(bb:boolean);
var aa:string;
begin
self.ToolButton2.Enabled:=bb;
self.ToolButton5.Enabled:=bb;
self.ToolButton7.Enabled:=bb;
self.ToolButton9.Enabled:=bb;
self.ToolButton11.Enabled:=bb;
aa:=dbedit1.Text;
data.G_Rst_temp.SQL.Clear;
data.G_Rst_temp.SQL.Add('select * from mr_people where bh='+quotedstr(aa));
data.G_Rst_temp.ExecSQL;
data.G_Rst_temp.Open;
if not data.G_rst_temp.Eof then
begin
if data.G_Rst_temp.FieldValues['kzt']<>'正常卡' then
begin
if data.G_Rst_temp.FieldValues['kzt']='注销' then
begin
self.ToolButton2.Enabled:=false;
self.ToolButton5.Enabled:=false;
self.ToolButton7.Enabled:=false;
self.ToolButton9.Enabled:=false;
self.ToolButton11.Enabled:=false;
end;
if data.G_Rst_temp.FieldValues['kzt']='挂失' then
begin
self.ToolButton5.Enabled:=false;
self.ToolButton7.Enabled:=true;
end;
if data.G_Rst_temp.FieldValues['kzt']='回收' then
begin
self.ToolButton2.Enabled:=false;
self.ToolButton5.Enabled:=false;
self.ToolButton7.Enabled:=false;
self.ToolButton9.Enabled:=false;
self.ToolButton11.Enabled:=false;
end;
end
{else
begin
self.ToolButton5.Enabled:=true;
self.ToolButton7.Enabled:=false;
end; }
end;
//
end;
procedure TFrm_Zhgl_Zhgl.Lvw_LbDblClick(Sender: TObject);
begin
enable_ctrl(true);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -