?? csh140_01.pas.svn-base
字號:
unit Csh140_01;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BAS200_04, ActnList, DB, ADODB, ComCtrls, ToolWin, ExtCtrls,
dxtree, dxdbtree, dxdbtrel, StdCtrls, Mask, DBCtrls, Menus;
type
TCsh140_01Form = class(TBas200_04Form)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
ComboBox1: TComboBox;
dxTreeViewEdit1: TdxTreeViewEdit;
ADOQuery2: TADOQuery;
ADOQuery1C140_001: TAutoIncField;
ADOQuery1C140_002: TStringField;
ADOQuery1C140_003: TIntegerField;
ADOQuery1C140_004: TIntegerField;
ADOQuery1C140_005: TBooleanField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ActInsertExecute(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure ActDeleteExecute(Sender: TObject);
procedure ActSaveExecute(Sender: TObject);
procedure dxTreeViewEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dxTreeViewEdit1CloseUp(Sender: TObject; Accept: Boolean);
private
{ Private declarations }
public
procedure SetInterface; override;
{ Public declarations }
end;
var
Csh140_01Form: TCsh140_01Form;
implementation
uses CommFun, SYSDATA;
{$R *.dfm}
procedure TCsh140_01Form.SetInterface;
begin
inherited;
Caption:=GetDBString('CSH14001001'); //業(yè)務分類維護
Label1.Caption:=GetDBString('CSH14001002'); //業(yè)務名稱
Label2.Caption:=GetDBString('CSH14001003'); //業(yè)務類型
Label3.Caption:=GetDBString('CSH14001004'); //上級業(yè)務
ADOQuery1C140_002.DisplayLabel:=GetDBString('CSH14001002'); //業(yè)務名稱
ADOQuery1C140_003.DisplayLabel:=GetDBString('CSH14001003'); //業(yè)務類型
ADOQuery1C140_004.DisplayLabel:=GetDBString('CSH14001004'); //上級業(yè)務
ComboBox1.Items.Clear;
ComboBox1.Items.Add(GetDBString('CSH14001005')); //收入類
ComboBox1.Items.Add(GetDBString('CSH14001006')); //支出類
end;
procedure TCsh140_01Form.FormCreate(Sender: TObject);
begin
inherited;
//
end;
procedure TCsh140_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//
end;
procedure TCsh140_01Form.ActInsertExecute(Sender: TObject);
begin
inherited;
//新增
dxTreeViewEdit1.Items:=dxDBTreeView1.Items;
dxTreeViewEdit1.Text:='';
dxTreeViewEdit1.Enabled:=True;
ComboBox1.Enabled:=dxTreeViewEdit1.Text='';
ComboBox1.ItemIndex:=0;
DBEdit1.SetFocus;
end;
procedure TCsh140_01Form.ActUpdateExecute(Sender: TObject);
begin
inherited;
//修改
dxTreeViewEdit1.Items:=dxDBTreeView1.Items;
ComboBox1.Enabled:=False;
if dxDBTreeView1.Selected.Parent<>nil then
dxTreeViewEdit1.Text:=dxDBTreeView1.Selected.Parent.Text
else
dxTreeViewEdit1.Text:='';
DBEdit1.SetFocus;
//設置上級業(yè)務的類型
ADOQuery2.Close;
ADOQuery2.Open;
if dxTreeViewEdit1.Text='' then
begin
if ADOQuery2.Locate('C140_002',DBEdit1.Text,[loCaseInsensitive]) then
ComboBox1.ItemIndex:=ADOQuery2.FieldByName('C140_003').Value;
end else
begin
if ADOQuery2.Locate('C140_002',dxTreeViewEdit1.Text,[loCaseInsensitive]) then
ComboBox1.ItemIndex:=ADOQuery2.FieldByName('C140_003').Value;
end;
//不能修改有子集,不能修改已被使用的業(yè)務分類
dxTreeViewEdit1.Enabled:=(not dxDBTreeView1.Selected.HasChildren) and
(not IsExists('select 1 from CSH500 where C500_006='+ADOQuery1C140_001.AsString));
end;
procedure TCsh140_01Form.ActDeleteExecute(Sender: TObject);
var
ATreeNode:TTreeNode;
begin
//刪除
ATreeNode:=nil;
if dxDBTreeView1.Selected<>nil then
if dxDBTreeView1.Selected.Parent<>nil then ATreeNode:=dxDBTreeView1.Selected.Parent;
//檢查業(yè)務分類是否已經(jīng)在使用
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select 1 from CSH500 where C500_006='+IntToStr(ADOQuery1C140_001.Value));
SYSDM.qryQuery.Open;
if not SYSDM.qryQuery.IsEmpty then
begin
ShowMsg('UMS10000085'); //該記錄已存在相關資料,不能刪除該記錄
Abort;
end;
inherited;
//修改"最低層否"標識
if ATreeNode=nil then Exit;
if not ATreeNode.HasChildren then
begin
ADOQuery1.Edit;
ADOQuery1C140_005.Value:=True;
ADOQuery1.Post;
end;
end;
procedure TCsh140_01Form.ActSaveExecute(Sender: TObject);
var
AUpdateFlag:Boolean;
AName:string;
AClassNo, AParentNo:Integer;
begin
//保存
AUpdateFlag:=False;
//設置上級業(yè)務編號
if dxTreeViewEdit1.Text='' then
ADOQuery1C140_004.Value:=0
else
begin
ADOQuery2.Close;
ADOQuery2.Open;
if ADOQuery2.Locate('C140_002',dxTreeViewEdit1.Text,[loCaseInsensitive]) then
begin
ADOQuery2.Edit;
ADOQuery2.FieldByName('C140_005').Value:=False;
ADOQuery2.Post;
ADOQuery1C140_004.Value:=ADOQuery2.FieldByName('C140_001').Value;
ADOQuery1C140_005.Value:=True;
end;
end;
ADOQuery1C140_005.Value:=True;
ADOQuery1C140_003.Value:=ComboBox1.ItemIndex;
AName:=trim(DBEdit1.Text);
if AName='' then
begin
ShowMsg('UMS10000257'); //業(yè)務名稱不能為空
DBEdit1.SetFocus;
Abort;
end;
//檢查上級業(yè)務是否已在使用
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select 1 from CSH500 where C500_006='+IntToStr(ADOQuery1C140_004.Value));
SYSDM.qryQuery.Open;
if not SYSDM.qryQuery.IsEmpty then
begin
if ShowDialog('UMS10000135')<>IDYES then Abort; //上級業(yè)務已存在相關資料,如果增加下級業(yè)務,則相關記錄會被替換,是否繼續(xù)?
AUpdateFlag:=True;
end;
inherited;
ADOQuery1.Refresh;
ADOQuery1.Locate('C140_002',AName,[loCaseInsensitive]);
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from CSH140 where C140_002='+''''+AName+'''');
SYSDM.qryQuery.Open;
AClassNo:=SYSDM.qryQuery.FieldByName('C140_001').Value;
AParentNo:=SYSDM.qryQuery.FieldByName('C140_004').Value;
//替換上級業(yè)務
if AUpdateFlag then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update CSH500 set C500_006='+IntToStr(AClassNo)+' where C500_006='+IntToStr(AParentNo));
SYSDM.qryQuery.ExecSQL;
end;
end;
procedure TCsh140_01Form.dxTreeViewEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
if (Key=vk_delete) or (key=vk_back) then dxTreeViewEdit1.Text:='';
ComboBox1.Enabled:=dxTreeViewEdit1.Text='';
end;
procedure TCsh140_01Form.dxTreeViewEdit1CloseUp(Sender: TObject;
Accept: Boolean);
begin
inherited;
ADOQuery2.Close;
ADOQuery2.Open;
if ADOQuery2.Locate('C140_002',dxTreeViewEdit1.Text,[loCaseInsensitive]) then
ComboBox1.ItemIndex:=ADOQuery2.FieldByName('C140_003').Value;
ComboBox1.Enabled:=dxTreeViewEdit1.Text='';
end;
initialization
RegisterClass(TCsh140_01Form);
finalization
UnRegisterClass(TCsh140_01Form);
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -