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 + -
显示快捷键?