u_gwbj.pas

来自「一个电力企业的后台管理程序」· PAS 代码 · 共 1,240 行 · 第 1/3 页

PAS
1,240
字号
unit U_Gwbj;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, ComCtrls, ExtCtrls, Db, DBTables, StdCtrls, ImgList, Menus,
  ToolWin, U_EditLst, SystemPH, SystemDM;

type
  TFrm_Gwsz = class(TForm)
    Panel1: TPanel;
    TVPosition: TTreeView;
    Panel2: TPanel;
    Qry_pub1: TQuery;
    Qry_pub2: TQuery;
    Splitter1: TSplitter;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    N_NewGw: TMenuItem;
    N_DelGw: TMenuItem;
    N_DelPerson: TMenuItem;
    N_Property: TMenuItem;
    Nb_Gw: TNotebook;
    Panel5: TPanel;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit2: TEdit;
    DTP_CL: TDateTimePicker;
    CmbOrgan: TComboBox;
    Mm_Prop: TMemo;
    Mm_Note: TMemo;
    Panel3: TPanel;
    SBtn_Save: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Image1: TImage;
    Edit1: TEdit;
    Panel4: TPanel;
    SdBtn_SavePerson: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Panel6: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label15: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Cmb_Sex: TComboBox;
    DTP_Person: TDateTimePicker;
    StBar: TStatusBar;
    Panel7: TPanel;
    GroupBox3: TGroupBox;
    Mm_PersonNt: TMemo;
    Panel8: TPanel;
    Panel9: TPanel;
    GroupBox4: TGroupBox;
    Mm_personProp: TMemo;
    Panel10: TPanel;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    TBtn_Orgtan: TToolButton;
    TBtn_Person: TToolButton;
    TBtn_Exit: TToolButton;
    ImageList2: TImageList;
    Qry_OrganLst: TQuery;
    Qry_PersonLst: TQuery;
    Qry_OrganLstOrganName: TStringField;
    Qry_OrganLstProperty: TStringField;
    Qry_OrganLstCreateTime: TDateTimeField;
    Qry_OrganLstNote: TStringField;
    Qry_PersonLstWorkId: TStringField;
    Qry_PersonLstName: TStringField;
    Qry_PersonLstSex: TStringField;
    Qry_PersonLstPassword: TStringField;
    Qry_PersonLstProperty: TStringField;
    Qry_PersonLstCreateTime: TDateTimeField;
    Qry_PersonLstNote: TStringField;
    Label5: TLabel;
    Label6: TLabel;
    Label16: TLabel;
    Edt_Phone1: TEdit;
    Edt_Phone2: TEdit;
    Edt_Phone3: TEdit;
    Panel11: TPanel;
    Splitter2: TSplitter;
    Label13: TLabel;
    Cmb_cs1: TComboBox;
    Label14: TLabel;
    Cmb_cs2: TComboBox;
    Label17: TLabel;
    Cmb_cs3: TComboBox;
    Btn_DataSyn: TToolButton;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    Batch: TBatchMove;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel12: TPanel;
    Splitter3: TSplitter;
    Panel13: TPanel;
    GroupBox1: TGroupBox;
    LBAllPerson: TListBox;
    GroupBox5: TGroupBox;
    LBGwPerson: TListBox;
    Panel14: TPanel;
    SBtn_Del: TSpeedButton;
    SBtn_Add: TSpeedButton;
    SBtn_DellAll: TSpeedButton;
    SBtn_AddAll: TSpeedButton;
    Panel15: TPanel;
    Splitter4: TSplitter;
    Panel16: TPanel;
    GroupBox6: TGroupBox;
    LbAllAuth: TListBox;
    GroupBox7: TGroupBox;
    LbAuthSel: TListBox;
    Panel17: TPanel;
    sBtn_DelAuth: TSpeedButton;
    sBtn_AddAuth: TSpeedButton;
    sBtn_DellAllAuth: TSpeedButton;
    sBtn_AddAllAuth: TSpeedButton;
    Label18: TLabel;
    Cmb_AcdGroup: TComboBox;
    Label19: TLabel;
    Cmb_SkillLevel: TComboBox;
    DBDFWF: TDatabase;
    procedure AddItemAuth(sInfo :String);
    procedure ListAuth(sPosition :String);
    procedure InsertPeoplePos(sPosition :String);
    procedure AddItem(sInfo :String);
    procedure ListGwPerson(sPosition :String);
    procedure FillList;
    procedure AddPerson(Node: TTreeNode);
    procedure AddAllNode;
    procedure FormShow(Sender: TObject);
    procedure TVPositionExpanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    procedure N_NewGwClick(Sender: TObject);
    procedure N_DelGwClick(Sender: TObject);
    procedure N_DelPersonClick(Sender: TObject);
    procedure N_PropertyClick(Sender: TObject);
    procedure TVPositionChange(Sender: TObject; Node: TTreeNode);
    procedure LBAllPersonClick(Sender: TObject);
    procedure LBGwPersonClick(Sender: TObject);
    procedure SBtn_DelClick(Sender: TObject);
    procedure SBtn_DellAllClick(Sender: TObject);
    procedure SBtn_AddClick(Sender: TObject);
    procedure SBtn_AddAllClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SBtn_SaveClick(Sender: TObject);
    procedure TBtn_ExitClick(Sender: TObject);
    procedure SdBtn_SavePersonClick(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure TBtn_OrgtanClick(Sender: TObject);
    procedure TBtn_PersonClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DataSyn;
    procedure Btn_DataSynClick(Sender: TObject);
    procedure sBtn_DelAuthClick(Sender: TObject);
    procedure LbAuthSelDblClick(Sender: TObject);
    procedure sBtn_AddAuthClick(Sender: TObject);
    procedure sBtn_DellAllAuthClick(Sender: TObject);
    procedure sBtn_AddAllAuthClick(Sender: TObject);
    procedure LbAllAuthClick(Sender: TObject);
    procedure LbAllAuthDblClick(Sender: TObject);
    procedure LbAuthSelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     cYe :Char;
     procedure CmbAddPerson1(cmbAdd :TComboBox;sTblName,sId,sNote :String);
  end;

var
  Frm_Gwsz: TFrm_Gwsz;

type
    PMyRec = ^TMyRec;
    TMyRec = record
        Sign     : Char;  //"0": 岗位; "1": 人员
        WorkID   : String;
        Position : String;
    end;


implementation
Const
    csTitle ='岗位列表';
    BatchTable :array[1..4] of string =('DFWF_People','DFWF_PeoplePos','DFWF_Organ','DFWF_Position');

var
  cSave :Char; {0:新建;1:修改}

{$R *.DFM}




procedure CmbAddPerson(cmbAdd :TComboBox);
begin
   cmbAdd.Clear ;
   
   With Frm_Gwsz.Qry_pub1 do
   begin
      Close;
      DataBaseName := Frm_Gwsz.DBDFWF.DataBaseName;
      Sql.Clear ;
      Sql.Add ('Select WorkId, Name From DFWF_People');
      Open;
      if Not IsEmpty then
      begin
         First;
         While Not Eof do
         begin
            cmbAdd.Items.Values[FieldByName('WorkId').AsString] := FieldByName('Name').AsString;
            Next;
         end;
      end;
      Close;
   end;
end;



procedure TFrm_Gwsz.CmbAddPerson1(cmbAdd :TComboBox;sTblName,sId,sNote :String);
begin
   cmbAdd.Clear ;
   With Frm_Gwsz.Qry_pub1 do
   begin
      Close;
      Sql.Clear ;
      Sql.Add ('Select ' + sID + ',' + sNote + ' From '+sTblName);
      Open;
      if Not IsEmpty then
      begin
         First;
         While Not Eof do
         begin
            cmbAdd.Items.Values[FieldByName(sID).AsString] := FieldByName(sNote).AsString;
            Next;
         end;
      end;
      Close;
   end;
end;



procedure TFrm_Gwsz.AddAllNode;
var
  MyTNode1, MyTNode2, MyTNode3: TTreeNode;
  strNodeName :String;
begin
   With TVPosition.Items do
   begin
      Clear;
      MyTNode1 := Add(nil, csTitle);
   end;
   With Qry_pub1 do
   begin
      Close;
      Sql.Clear ;
      Sql.Add ('Select * From DFWF_Position Where UpperPos IsNull');
      Open;
      if IsEmpty then begin Close; Exit; end;
      First;
      While Not Eof do
      begin
         strNodeName := FieldByName('Position').AsString;  //总务科
         MyTNode2 := TVPosition.Items.Add (MyTNode1,strNodeName);
         With Qry_pub2 do
         Begin
            Close;
            Sql.Clear ;
            Sql.Add ('Select * From DFWF_Position Where UpperPos =:p1');
            ParamByName('p1').AsString := strNodeName;
            Open;
            if Not IsEmpty then
            begin
               First;
               While Not Eof do
               begin
                  strNodeName := FieldByName('Position').AsString;  //投诉处理
                  MyTNode3 := TVPosition.Items.Add (MyTNode2,strNodeName);
                  Next;
               end;
            end;
            Close;
         end;
         Next;
      end;
   end;

end;


procedure TFrm_Gwsz.FormShow(Sender: TObject);
var
  MyTNode1 :TTreeNode;
begin
   if cYe ='1' then Exit;
   With TVPosition.Items do
   begin
      Clear;
      MyTNode1 := Add(nil, csTitle);
      AddChild(MyTNode1,'');
   end;
   Nb_Gw.PageIndex :=0;
   CmbAddPerson(Cmb_cs1);
   CmbAddPerson(Cmb_cs2);
   CmbAddPerson(Cmb_cs3);
   CmbAddPerson1(Cmb_AcdGroup,'AcdGroup','GroupID','Note');
   CmbAddPerson1(Cmb_SkillLevel,'SkillLevel','ID','Note');
end;


procedure TFrm_Gwsz.AddPerson(Node: TTreeNode);
var
  sName :String;
  ndChild :TTreeNode;
  MyRecPtr: PMyRec;
begin
   With Qry_pub2 do
   Begin
      Close;
      Sql.Clear ;
      Sql.Add ('Select t1.*,t2.* From DFWF_PeoplePos t2, DFWF_People t1');
      Sql.Add ('Where (t1.WorkId=t2.WorkId) and (t2.Position =:p1)');
      ParamByName('p1').AsString := Node.Text;
      Open;
      if IsEmpty then begin Close; Exit; end;
      First;
      While Not Eof do
      Begin
         New(MyRecPtr);
         MyRecPtr^.Sign := '1';
         MyRecPtr^.WorkID := FieldByName('WorkID').AsString;
         MyRecPtr^.Position := FieldByName('Position').AsString;
         sName := FieldByName('Name').AsString ;
         ndChild := TVPosition.Items.AddChildObject(Node,sName,MyRecPtr);
         ndChild.ImageIndex :=2;
         ndChild.SelectedIndex :=3;
         Next;
      end;
      Close;
  end;
end;

procedure TFrm_Gwsz.TVPositionExpanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
  MyTNode1 :TTreeNode;
  strNodeName :String;
  MyRecPtr: PMyRec;
begin
   Node.DeleteChildren ;
   if Node.Parent =nil then
   begin
       AddPerson(Node);
       With Qry_pub1 do
       begin
          Close;
          Sql.Clear ;
          Sql.Add ('Select Position From DFWF_Position Where (UpperPos Is Null) or (UpperPos =:p1)');
          ParamByName('p1').AsString :='';
          Open;
          if IsEmpty then begin Close; Exit; end;
          First;
          While Not Eof do
          begin
             New(MyRecPtr);
             MyRecPtr^.Sign := '0';
             MyRecPtr^.WorkID := '';
             MyRecPtr^.Position := FieldByName('Position').AsString;

             strNodeName := FieldByName('Position').AsString;  //总务科
             TVPosition.Items.AddChildObject(Node,strNodeName,MyRecPtr);
             MyTNode1 := TVPosition.Items.Item[TVPosition.Items.Count -1];
             MyTNode1.SelectedIndex :=8;
             TVPosition.Items.AddChild(MyTNode1,'');
             Next;
          end;
          Close;
       end;
   end
   else
   begin
       AddPerson(Node);
       With Qry_pub1 do
       begin
          Close;
          Sql.Clear ;
          Sql.Add ('Select * From DFWF_Position Where UpperPos =:p1');
          ParamByName('p1').AsString := Node.Text ;
          Open;
          if IsEmpty then begin Close; Exit; end;
          First;
          While Not Eof do
          begin
             New(MyRecPtr);
             MyRecPtr^.Sign := '0';
             MyRecPtr^.WorkID := '';
             MyRecPtr^.Position := FieldByName('Position').AsString;

⌨️ 快捷键说明

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