⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_zhgl_zhgl.pas

📁 这是一个非常使用的DELPHI源码的例子,用的是SQL数据库和DELPHI企业版
💻 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';
   G_str_SelectBh:=dbedit1.Text;
   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 + -