uni_branchs.pas
来自「一个非常不错的经费报销管理软件」· PAS 代码 · 共 253 行
PAS
253 行
unit Uni_Branchs;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask,
DBCtrls, ADODB, Menus, XPMenu,StrUtils;
type
TFrm_Branchs = class(TForm)
Splitter1: TSplitter;
TB_Main: TToolBar;
TB_Insert: TToolButton;
TB_Update: TToolButton;
TB_Delete: TToolButton;
TB_Post: TToolButton;
TB_Cancel: TToolButton;
TB_Refresh: TToolButton;
TB_Help: TToolButton;
Tree: TTreeView;
Panel1: TPanel;
DSbsBranchs: TDataSource;
PopupMenu1: TPopupMenu;
N_State: TMenuItem;
P_Edit: TPanel;
Label1: TLabel;
Label2: TLabel;
DB_cClassNum: TDBEdit;
DB_cName: TDBEdit;
XPMenu1: TXPMenu;
TB_Close: TToolButton;
CoolBar1: TCoolBar;
StatusBar1: TStatusBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ShowHide: TCheckBox;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TB_RefreshClick(Sender: TObject);
procedure TreeClick(Sender: TObject);
procedure TB_InsertClick(Sender: TObject);
procedure N_StateClick(Sender: TObject);
procedure TB_PostClick(Sender: TObject);
procedure TB_UpdateClick(Sender: TObject);
procedure TB_DeleteClick(Sender: TObject);
procedure TB_CancelClick(Sender: TObject);
procedure TB_CloseClick(Sender: TObject);
procedure TreeDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
strid,strNo,strName:string;
end;
var
iGrade:Integer; //分类层次
Frm_Branchs: TFrm_Branchs;
implementation
{$R *.dfm}
uses uni_main,uni_dm,Uni_Function,Uni_Tiein_Branchs;
procedure TFrm_Branchs.FormShow(Sender: TObject);
begin
if Choosed
then begin
DM.bsBranchs.SQL.Text:=' select *from bsbranchs where istate=1 order by cNum';
TB_Main.Visible:=False;
end
else
DM.bsBranchs.SQL.Text:=' select *from bsbranchs where istate>0 order by cNum';
TB_RefreshClick(Sender);
end;
procedure TFrm_Branchs.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Choosed:=False;
end;
procedure TFrm_Branchs.TB_RefreshClick(Sender: TObject);
begin
TreeRead('bsBranchs');
Tree.Items.Clear;
Tree.LoadFromFile('SPTREE.TXT');
Tree.TopItem.Expanded:=True;
end;
procedure TFrm_Branchs.TreeClick(Sender: TObject);
var
L,R:Integer;
str:String;
begin
try
L:=Pos('[',(Sender as TTreeView).Selected.Text);
R:=Pos(']',(Sender as TTreeView).Selected.Text);
str:=MidBStr((Sender as TTreeView).Selected.Text,L+1,R-L-1);
except
end;
//
with DM do
begin
bsBranchs.Close;
bsBranchs.Open;
if not bsBranchs.Locate('cNum',str,[])
then
begin
MessageBoxError('获取部门信息数据错误!');
end
else
begin
iGrade:=bsBranchs.FieldByName('iGrade').AsInteger;
if (Tree.Selected.Index<0) or (Tree.Selected.Count>0)
then ShowHide.Enabled:=False
else ShowHide.Enabled:=True;
if bsBranchs.FieldByName('iState').AsInteger=1
then ShowHide.Checked:=False
else ShowHide.Checked:=True;
end;
end;
end;
procedure TFrm_Branchs.TB_InsertClick(Sender: TObject);
begin
N_StateClick(Sender);
//
with DM do
begin
bsBranchs.Insert;
bsBranchs.FieldByName('id').AsString:=GetGUID;
bsBranchs.FieldByName('istate').AsInteger:=0;
DM.bsBranchs.FieldByName('iGrade').AsInteger:=iGrade+1; //Length(Trim(DB_cClassNum.Text)) div 2;
bsBranchs.Post;
end;
end;
procedure TFrm_Branchs.N_StateClick(Sender: TObject);
var
i:Integer;
begin
for i:=0 to TB_Main.ButtonCount-1 do
TB_Main.Buttons[i].Enabled:=not TB_Main.Buttons[i].Enabled;
//
P_Edit.Enabled:=TB_Post.Enabled;
Tree.Enabled:=TB_Insert.Enabled;
end;
procedure TFrm_Branchs.TB_PostClick(Sender: TObject);
begin
TRY
IF Trim(DB_cClassNum.Text)=''
then begin
MessageBoxInfo('请输入部门编码!');
Exit;
end;
IF DM.bsBranchs.State=dsInsert
THEN
IF MessageBoxQuery('请确认,上级部门是'+Tree.Selected.Text+',保存吗?')=IDNO
then BEGIN
TB_CancelClick(Sender);
Exit;
END;
EXCEPT
MessageBoxWarning('请选择上级部门,保存失败!');
TB_CancelClick(Sender);
Exit;
END;
//
N_StateClick(Sender);
DM.bsBranchs.Edit;
if ShowHide.Checked
then DM.bsBranchs.FieldByName('iState').AsInteger:=2
else DM.bsBranchs.FieldByName('iState').AsInteger:=1;
DM.bsBranchs.Post;
TB_RefreshClick(Sender);
end;
procedure TFrm_Branchs.TB_UpdateClick(Sender: TObject);
begin
N_StateClick(Sender);
end;
procedure TFrm_Branchs.TB_DeleteClick(Sender: TObject);
begin
if MessageBoxQuery('确认删除当前选择项吗?')=IDNO THEN Exit;
if (Tree.Selected.Index<0) or (Tree.Selected.Count>0) then Exit;
//if DM.bsBranchs.FieldByName('cNum').AsString='00' then Exit;
if DM.bsBranchs.RecordCount>1
then begin
DM.bsBranchs.Delete;
//DM.bsBranchs.Edit;
//DM.bsBranchs.FieldByName('iState').AsInteger:=-1;
//DM.bsBranchs.Post;
end;
TB_RefreshClick(Sender);
end;
procedure TFrm_Branchs.TB_CancelClick(Sender: TObject);
begin
N_StateClick(Sender);
DM.bsBranchs.Cancel;
if DM.bsBranchs.FieldByName('iState').AsInteger=0 then
DM.bsBranchs.Delete;
end;
procedure TFrm_Branchs.TB_CloseClick(Sender: TObject);
begin
Close;
end;
procedure TFrm_Branchs.TreeDblClick(Sender: TObject);
begin
if (Choosed) and (Tree.Selected.Count<=0)then
begin
Close;
try
strid:=DM.bsBranchs.FieldByName('id').AsString;
strNo:=DM.bsBranchs.FieldByName('cNum').AsString;
strName:=DM.bsBranchs.FieldByName('cName').AsString;
{
with DM do
begin
if trim(TBname)='' then
begin
strid:=bsBranchs.FieldByName('id').AsString;
end
else
begin
TADOQuery(FindComponent(TBname)).Edit;
TADOQuery(FindComponent(TBname)).FieldByName('cBranchsNum').AsString:=bsBranchs.FieldByName('id').AsString;
end;
end;
}
except
MessageBoxInfo('部门选取失败!');
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?