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

📄 unit_main.pas

📁 用于家庭养殖的财务进出
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit Unit_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, DBGrids, ImgList, ToolWin, Menus,IniFiles,
  DBCtrls, Mask, ExtCtrls,DB, ADODB,jpeg,DBTables, frame_CompanyList,Math,ShellAPI;

type
  Tfrm_main = class(TForm)
    MainMenu1: TMainMenu;
    x_2_1: TMenuItem;
    N_2_new: TMenuItem;
    N_2: TMenuItem;
    N_2_newcszxx: TMenuItem;
    N_2_mod: TMenuItem;
    N_2_save: TMenuItem;
    N_7: TMenuItem;
    N_2_del: TMenuItem;
    N_9: TMenuItem;
    t_2_exit: TMenuItem;
    N_1_1: TMenuItem;
    N_3_search: TMenuItem;
    ToolBar1: TToolBar;
    tbn_new: TToolButton;
    tbn_delall: TToolButton;
    tbn_saveall: TToolButton;
    ImageList1: TImageList;
    tbn_exit: TToolButton;
    N_0_12: TMenuItem;
    N_0_13: TMenuItem;
    N_0_bxwf: TMenuItem;
    N_0_21: TMenuItem;
    N_1_22: TMenuItem;
    N_0_zdwh: TMenuItem;
    N_0_defform: TMenuItem;
    PageControl1: TPageControl;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    tbn_mod: TToolButton;
    N_2_newcs: TMenuItem;
    s_2_delall: TMenuItem;
    N_2_delcszxx: TMenuItem;
    N_0_manage: TMenuItem;
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    Image1: TImage;
    B_ADD: TButton;
    B_DEL: TButton;
    tbn_newcszxx: TToolButton;
    tbn_newcs: TToolButton;
    tbn_print: TToolButton;
    btn1: TToolButton;
    btn2: TToolButton;
    tbn_search: TToolButton;
    tbn_xtsz: TToolButton;
    btn3: TToolButton;
    btn4: TToolButton;
    tbn_xxjh: TToolButton;
    tbn_delzxx: TToolButton;
    s_1_sjjh: TMenuItem;
    N_1_zpdc: TMenuItem;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N3: TMenuItem;
    PageControl2: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    ListBox2: TListBox;
    Label4: TLabel;
    E_SeachTxt: TEdit;
    B_Search: TButton;
    GroupBox3: TGroupBox;
    ListBox3: TListBox;
    ListBox4: TListBox;
    TabSheet3: TTabSheet;
    ListBox5: TListBox;
    ListBox6: TListBox;
    Frame61: TFrame6;
    N11: TMenuItem;
    N_0_infowh: TMenuItem;
    procedure FormCreate(Sender: TObject);  //组建初始化
    procedure N_2_newClick(Sender: TObject);  //新增人员,数据库中添加记录
    procedure N_2_saveClick(Sender: TObject);//保存当前激活页得信息
    procedure N_0_defformClick(Sender: TObject);  //进入动态页面设定
    procedure N_2_modClick(Sender: TObject);   //修改当前用户信息
    procedure N_0_zdwhClick(Sender: TObject);  //进入字段信息维护
    procedure N18Click(Sender: TObject); //查询界面
    //procedure ToolButton8Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure N_2_newcszxxClick(Sender: TObject);//新增从属信息,在dbgrid中显示
    procedure tbn_saveallClick(Sender: TObject);  //保存所有信息
    procedure ListBox2DblClick(Sender: TObject);  //查询出个人所有的项目信息
    procedure PageControl1Change(Sender: TObject); //属性集页面转换显示页面信息
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);                  //监视页面更改信息,并提示保存
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);     //动态提取StringGrid1SelectCell行信息
    procedure t_2_exitClick(Sender: TObject);   //系统退出
    procedure N_2_newcsClick(Sender: TObject);  //增加从属信息
    procedure N_2_delcszxxClick(Sender: TObject); //删除从属子类信息
    procedure s_2_delallClick(Sender: TObject);  //删除所有信息
    procedure N_0_bxwfClick(Sender: TObject);  //进入备选字段维护
    procedure N29Click(Sender: TObject);    // 进入人员照片导出界面(快捷键)
    procedure N_0_manageClick(Sender: TObject); //进入用户管理界面
    procedure N_3_searchClick(Sender: TObject); //进入数据查询界面
    procedure FormActivate(Sender: TObject);  //页面激活下,显示可用按钮
    procedure N31Click(Sender: TObject); //退出系统
    procedure B_ADDClick(Sender: TObject);//载入个人照片
    procedure B_DELClick(Sender: TObject);//清除个人照片
    procedure N_1_zpdcClick(Sender: TObject);//进入人员照片导出界面
    procedure N_HBGBClick(Sender: TObject);
    procedure s_1_sjjhClick(Sender: TObject); //进入数据交换界面
    procedure FormClose(Sender: TObject; var Action: TCloseAction); //主窗体关闭
    procedure N_delcsClick(Sender: TObject);  //删除当前用户该页的从属信息
    procedure lb_companyClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);  //窗体关闭前,更改信息保存提示
    procedure TreeView1Click(Sender: TObject);
    //procedure N4Click(Sender: TObject);
    //procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
    //  Shift: TShiftState; X, Y: Integer);
    procedure N3Click(Sender: TObject);  //修改节点
    procedure TreeView1Edited(Sender: TObject; Node: TTreeNode;
      var S: String);  //
    {procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N8Click(Sender: TObject);}
    procedure B_SearchClick(Sender: TObject); //快速查询出个人,并显示到listbox3里面
    procedure ListBox3DblClick(Sender: TObject); //分页显示查询结果下的个人具体项目信息
    procedure N11Click(Sender: TObject); //删除节点
    procedure N_xinxicaijiClick(Sender: TObject);  //信息采集
    procedure tbn_printClick(Sender: TObject);  //进入打印信息
    procedure PageControl2Change(Sender: TObject);//单位列表,快速查询,不在职人员三者tabsheet相互转换信息显示
    procedure ListBox5DblClick(Sender: TObject);//分页显示不在职人员具体的项目信息
    procedure Frame61TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);     //把单位列表在TreeView1中逐级展开
    procedure Frame61TreeView1Click(Sender: TObject);//把单位列表在TreeView1中逐级展开
    procedure N1Click(Sender: TObject);  //新增节点
    procedure Frame61TreeView1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer); //记录选择节点的鼠标位置
    procedure FormDestroy(Sender: TObject);
    procedure ListBox2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListBox2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState); //主界面关闭后,释放的信息
    procedure showInforRenYuan;
    procedure ListBox2Click(Sender: TObject); // 查询人员具体信息
    procedure ComposeCreate(editflag,comflag:boolean); //动态创建组建
    procedure ChangeComposeState(editflag,comflag:boolean);//改变创建组建的状态
    //procedure DeleteCompose;//删除创建的组建
    procedure ListBox5Click(Sender: TObject);
    procedure ListBox5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListBox5KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure N_1_22Click(Sender: TObject);
    procedure ListBox3Click(Sender: TObject);   //根据数据库,在pagecontrol1页面进行组建创建
  private
    un_editable:boolean;
    submenu_single:tstringlist;
    submenu_multi:tstringlist;
   // procedure CreateSubMenu(single:boolean;MenuItem:TMenuItem);  //创建打印菜单下子 目录
    procedure SubMenuSingle_OnClick(sender:TObject); //调用打印模块
    procedure SubMenuMulti_OnClick(sender:TObject);  //调用打印模块
    { Private declarations }
  public
   procedure MyButtonOnClick(Sender: TObject; var Key: Word;
      Shift: TShiftState);
   procedure MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
   procedure OnEnter(sender:TObject);    //用于帮助判断界面是否有改动
   procedure onclick(sender: TObject);   //checkbox的值是否有改动
   procedure CBOnChange(Sender: TObject);
   procedure CKOnchange(Sender:tobject);   //
   //procedure ShowCompany;   @@@@@@@20053.10屏蔽

   procedure CopyNodeUnder(treeview:TTreeview;sourcenode,targetnode:ttreenode);//复制节点下的目录信息到新的节目目录下
   procedure CreateForm;//动态界面改变位置
   procedure DelAllTable;
   procedure OnExit(Sender: TObject);

end;

var
  frm_main: Tfrm_main;
  //company_listchanged:boolean;
implementation
  uses data_module,unit3,unit4,unit_global,{,frm_tjcx}
  frm_tjcx,frm_bxwh,frm_zdwh,frm_zpdc,frm_manage,frm_sjjh, Ufrm_login,{frmpreview,}
  frm_SJCX,dlg_editnode, dlg_print;//,frm_sjcx;
{$R *.dfm}
//////////////////////////////////////////////
{
procedure Tfrm_main.DeleteCompose;
var
  i,tabsheetcount,index:integer;
  sqlstr:string;
begin
  sqlstr:='select max(page) as maxnum from field_info';
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    open;
    if not eof then
      tabsheetcount:=fieldbyname('maxnum').AsInteger
    else
        tabsheetcount:=0; //没有页数应该exit
  end;
  for i:=1 to  tabsheetcount  do
  begin
    sqlstr:='select * from field_info where yn=''1'' and page='+inttostr(pagecontrol1.ActivePageindex+1);
    with dm.ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add(sqlstr);
      open;
      labcount:=recordcount;
      first;
      while not eof do
      begin
        index:=fieldbyname('ord').AsInteger-1;
        labelcaption[i-1][index].Destroy;
        if  index<=labcount then
        begin
          if (fieldbyname('type').AsString='E') or (fieldbyname('type').AsString='UE') then
          begin
            editbox[i-1][index].Destroy;
            //editbox[i][index].Enabled:=comflag;
          end;
          if fieldbyname('type').AsString='D' then
          begin
            maskedit[i-1][index].Destroy;
          end;
          if (fieldbyname('type').AsString='C')  then
            combobox[i-1][index].Destroy;
          if (fieldbyname('type').AsString='B')  then
            checkbox[i-1][index].Destroy;
          if (fieldbyname('type').AsString='M')  then
            memo[i-1][index].Destroy;
          if (fieldbyname('type').AsString='N')  then
            updown[i-1][index].Destroy;
        end;
        next;
      end;
    end;
    //tabsheet[i].Destroy;
  end;
end;
}
///////////////2006-03////////////////////////
procedure Tfrm_main.ChangeComposeState(editflag,comflag:boolean);
var
  sqlstr:string;
  i,index,labcount:integer;
begin
  i:=pagecontrol1.ActivePageindex;
  sqlstr:='select * from field_info where yn=''1'' and page='+inttostr(pagecontrol1.ActivePageindex+1);
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    open;
    labcount:=recordcount;
    first;
    while not eof do
    begin
      index:=fieldbyname('ord').AsInteger-1;
      if  index<=labcount then
      begin
        if (fieldbyname('type').AsString='E') or (fieldbyname('type').AsString='UE') then
        begin
          editbox[i][index].ReadOnly:=editflag;
          //editbox[i][index].Enabled:=comflag;
        end;
        if fieldbyname('type').AsString='D' then
        begin
          maskedit[i][index].ReadOnly:=editflag;
          maskedit[i][index].Enabled:=comflag;
        end;
        if (fieldbyname('type').AsString='C')  then
          combobox[i][index].Enabled:=comflag;
        if (fieldbyname('type').AsString='B')  then
          checkbox[i][index].Enabled:=comflag;
        if (fieldbyname('type').AsString='M')  then
          memo[i][index].ReadOnly:=editflag;
        if (fieldbyname('type').AsString='N')  then
          updown[i][index].Enabled:=comflag;
      end;
      next;
    end;
  end;
end;
//////////////2006-03/////////////////////////
procedure Tfrm_main.ComposeCreate(editflag,comflag:boolean);
var
  tabsheetcount,comboboxcount:integer;
  editboxcount:integer;
  i,j,k,h,count:integer;
  sqlstr:string;
  pagenum:integer;
  itop,ileft:integer;
  dbgrid:tdbgrid;
  index:integer;
  fieldname:string;
  sqltmp:string;
  image:tdbimage;
  tmpname:string;
  tmpstr:string;
  taborder:integer;
  //yz1119字段变量
  tmpfield:string;
begin
  //company_listchanged:=false;
  is_empty:=true;//序号栏为空
  //|@@@@@@@@@@@@@@@@@
  //创建所有公用的tstringlist变量
  prescodelist:=tstringlist.Create;
  noncompany_list:=tstringlist.create;
  quicksearch_list:=tstringlist.create;
  submenu_single:=tstringlist.Create;
  submenu_multi:=tstringlist.Create;
   //======统计模块用
  //tj_tablelist:=tstringlist.Create;
  //goallist:=tstringlist.Create;
  {//==查询模块用
  sql_conden:=tstringlist.create;
  //UnChoseFieldlist:=tstringlist.Create;
  //ChosedFieldlist:=tstringlist.Create;
  tablelist:=tstringlist.create;
  SJ_PreFieldName:=tstringlist.Create;
  SJ_SelectFieldName:=tstringlist.Create;
  //SelectField_Rellist:=tstringlist.Create;
  SearchTablelist:=tstringlist.create;
  SearchFieldList:=tstringlist.Create;
  SqlTablelist:=tstringlist.Create;
  SqlFieldlist:=Tstringlist.Create;
  SqlRelation:=Tstringlist.Create;
  SqlValue:=Tstringlist.Create;
  SqlConn:=Tstringlist.Create;
  resultlist:=tstringlist.create;}
  //@@@@@@@@@@@@@@@@@@@
  //frame61.OnResize(sender);    //@@@@@@@20053.10
  //showcompany;
  Selected:=false;
  taborder:=0;
  tbn_newcs.Enabled:=false;  //新增从属信息
  tbn_newcszxx.Enabled:=false;//新增从属子信息
  tbn_saveall.Enabled:=false;
  tbn_delall.Enabled:=false;
  tbn_delzxx.Enabled:=false;
  tbn_mod.Enabled:=false;
  tbn_print.Enabled:=false;
  n_2_newcs.Enabled:=false;
  n_2_newcszxx.Enabled:=false;
  n_2_mod.Enabled:=false;
  n_2_save.Enabled:=false;
  s_2_delall.Enabled:=false;
  n_2_delcszxx.Enabled:=false;
  stringgrid1.Visible:=false;
  AppPath:=ExtractFilePath(Application.ExeName);
/////将field_info所有信息导入到ado中
  with dm.ADOQry_gen do
  begin
    close;
    sql.Clear;
    sql.Add('select * from field_info');
    open;
  end;
  addstate:=false;
  upstate:=false;
  is_update:=false;
  is_save:=true;
  is_csadd:=false;
  is_addnew:=false;
  is_mod:=false;
  comboboxcount:=0;
  editboxcount:=0;

  //==========创建pagecontrol
  //计算页面个数
  sqlstr:='select max(page) as maxnum from field_info';
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    open;
    if not eof=bof then
      tabsheetcount:=fieldbyname('maxnum').AsInteger

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -