【delphi开源代码栏目提醒】:本文主要为网学会员提供Class_Dictionary_Browser_U.pas,希望对需要Class_Dictionary_Browser_U.pas网友有所帮助,学习一下!
{
unit name : Class_Dictionary_BaseBrowser_U
Author : 李涛
Create date: 2004-03-20 09:11:13
description: 类别信息编辑管理,可以通用给各个模块的基础信息管理
}
unit Class_Dictionary_Browser_U;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseBrowser_Form_U, StdCtrls, Buttons, ExtCtrls, Public_Unit_U,
DB, ADODB, ComCtrls;
type
TClass_Dictionary_Browser = class(TBaseBrowser_Form)
GroupBox1: TGroupBox;
Label1: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Class_info_Text: TEdit;
Label2: TLabel;
Label3: TLabel;
LX_checked: TCheckBox;
Stop_Check: TCheckBox;
Tree_Save_ADO: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Class_info_TextEnter(Sender: TObject);
procedure Class_info_TextExit(Sender: TObject);
procedure ADD_BitClick(Sender: TObject);
private
{ Private declarations }
public
UserComponent: TComponent;
State: string; //描述当前窗口处于什么状态。insert添加update修改delete删除
Parent_Code: String; //父节点编码
Kind: String; //节点所在范围
Mode_Code: String; //作用模块,这里使用父接点的作用模块为默认模块。
Sel_Level: integer; //选择添加的层
Sel_TreeNode: TTreeNode; //选择的树节点
Parent_TreeNode: TTreeNode;//选择的树的父节点
{ Public declarations }
end;
var
Class_Dictionary_Browser: TClass_Dictionary_Browser;
implementation
Uses MainForm_U,MainDataModule_U;
{$R *.dfm}
procedure TClass_Dictionary_Browser.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Class_Dictionary_Browser:=nil;
end;
procedure TClass_Dictionary_Browser.Class_info_TextEnter(Sender: TObject);
begin
EnterColor(Sender);
inherited;
end;
procedure TClass_Dictionary_Browser.Class_info_TextExit(Sender: TObject);
begin
ExitColor(Sender);
inherited;
end;
procedure TClass_Dictionary_Browser.ADD_BitClick(Sender: TObject);
var
code,Aname,Akind,parent,stop: string; //编码,名称,作用范围,父节点
layer: integer; //层
UserComponent: TComponent;//临时控件
Tree_new: TTreeNode; //新节点
Tree_new_point: TreePoint; //新节点的指针
Tree_Temp_Point: TreePoint;//临时指针
begin
if Length(Class_info_Text.Text)=0 then
begin
ShowMessage('请将信息填写完整!');
Class_info_Text.SetFocus;
Exit;
end;
//-------------------------------------------------------------------------
Aname:=Class_info_Text.Text;
if Stop_check.Checked then Stop:='1' else Stop:='0';
if State='append' then
begin
with MainDataModule.Temp_Query do
begin
Close;
SQL.Clear;
SQL.Add('Select C_values from T_sys_set');
SQL.Add('Where C_code=:code and C_stop=:stop and C_flag=:flag');
Parameters.ParamByName('stop').Value:='0'; //停用标志
Parameters.ParamByName('flag').Value:='1'; //系统参数标志
parameters.ParamByName('code').Value:='T_pub_dia_kind'; //在系统参数表中提取类别最大编号
Open;
code:=IntToStr(StrToint(FieldByName('C_values').AsString)+1); //类别编号
Edit;
FieldByName('C_values').AsString:=code;//再次记录最大编号
Post;
end;
if self.RadioButton1.Checked then //同级添加
begin
Tree_Temp_Point:=Parent_TreeNode.Data;
if Sel_TreeNode.Level=1 then
parent:='0'
else
Parent:=Tree_Temp_Point^.Value;
Akind:=Tree_Temp_Point^.Kind;
layer:=Sel_Level;
end
else //子级添加
begin
Tree_Temp_Point:=Sel_TreeNode.Data;
if Sel_TreeNode.Level=1 then
parent:='0'
else
Parent:=Tree_Temp_Point^.Value;
AKind:=Tree_Temp_Point^.Kind;
layer:=Sel_Level +1;
end;
end;
//---update------------------
if state='update' then
begin
Tree_temp_Point:=Sel_TreeNode.Data;
Code:=Tree_temp_point^.Value; //要修改的节点编号
end;
//----Save----------------------------------------------------------------------
With Tree_Save_ADO do
begin
Close;
SQL.Clear;
if Class_Dictionary_Browser.State='append' then
begin
SQL.Add('insert T_pub_dia_kind (C_code, C_mod, C_kind, C_name, C_parent, I_layer, C_flag, C_stop, I_sc)');
SQL.Add('values(:C_code, :C_mod, :C_kind, :C_name, :C_parent, :I_layer, :C_flag, :C_stop, :I_sc)');
Parameters.ParamByName('C_code').Value:=code;
Parameters.ParamByName('C_mod').Value:=Mode_Code;
Parameters.ParamByName('C_kind').Value:=AKind;
Parameters.ParamByName('C_name').Value:=Aname;
Parameters.ParamByName('C_parent').Value:=Parent;
Parameters.ParamByName('I_layer').Value:=layer;
Parameters.ParamByName('C_flag').Value:='1';
Parameters.ParamByName('C_stop').Value:=stop;
//Parameters.ParamByName('I_sc').Value:=nil;
end;
if Class_Dictionary_Browser.State='update' then
begin
SQL.Add('update T_pub_dia_kind set C_name=:C_name, C_stop=:C_stop');
SQL.Add('where C_code=:C_code');
Parameters.ParamByName('C_code').Value:=code;
Parameters.ParamByName('C_name').Value:=Aname;
Parameters.ParamByName('C_stop').Value:=Stop;
end;
end;
//-------------------------------------------------------------------------
Tree_Save_ADO.ExecSQL;
//-------------------------------------------------------------------------
//返回实例中指定控件。
UserComponent:=GetComponent(Fun_Form.TempForm,'Class_info_TreeView',TTreeView);
//---添加或修改对应显示树状结构--------------------------------------------
if State='append' then
begin
new(Tree_new_point);
Tree_new_Point^.Value:=code;
Tree_new_Point^.Parent:=parent;
Tree_new_Point^.Kind:=Akind;
Tree_new_Point^.Mode:=Mode_Code;
//添加新节点到对应位置。
if Self.RadioButton1.Checked then
//同级时向Parent_Treenode中添加子项
Tree_new:=TTreeView(UserComponent).Items.AddChildObject(Parent_TreeNode,Aname,Tree_new_Point)
else
//子级时想当前级别下添加子项
Tree_new:=TTreeView(UserComponent).Items.AddChildObject(Sel_TreeNode,Aname,Tree_new_Point);
if stop='1' then Tree_new.ImageIndex:=4 else Tree_new.ImageIndex:=2;
Tree_new.SelectedIndex:=3;
end;
if State='update' then
begin
Sel_TreeNode.Text:=Aname;
if stop='1' then
Sel_TreeNode.ImageIndex:=4
else
Sel_TreeNode.ImageIndex:=2;
end;
//-------------------------------------------------------------------------
if LX_checked.Checked then //连续状态
begin
Class_info_Text.Text:='';
Class_info_Text.SetFocus;
end
else
begin
Cancel_Bit.Click;
end;
inherited;
end;
end.
上一篇:
DlgXSINFO.cpp
下一篇:
法律专业开题报告范文