📄 maindlg.pas
字号:
unit MainDlg;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ComCtrls, ExtCtrls, DB, ADODB, DBCtrls, Grids, DBGrids, Mask;
type
Tmain = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TreeView1: TTreeView;
ADOQuery1: TADOQuery;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Panel2: TPanel;
StatusBar1: TStatusBar;
TabSheet4: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
DBGrid1: TDBGrid;
ADOQuery2: TADOQuery;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
PageControl2: TPageControl;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
ADOTable1: TADOTable;
DataSource2: TDataSource;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ComboBox1: TComboBox;
Label9: TLabel;
Edit8: TEdit;
Label10: TLabel;
Edit9: TEdit;
Label11: TLabel;
Edit10: TEdit;
Label12: TLabel;
ComboBox2: TComboBox;
Label13: TLabel;
Edit11: TEdit;
Edit12: TEdit;
Label14: TLabel;
Label15: TLabel;
Edit13: TEdit;
Label16: TLabel;
Label17: TLabel;
Edit14: TEdit;
ComboBox3: TComboBox;
Label18: TLabel;
Edit15: TEdit;
Label19: TLabel;
Edit16: TEdit;
Label20: TLabel;
Edit17: TEdit;
Label21: TLabel;
Edit18: TEdit;
Label22: TLabel;
Edit19: TEdit;
Label23: TLabel;
Edit20: TEdit;
Label24: TLabel;
Edit21: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
DBGrid3: TDBGrid;
Panel3: TPanel;
DataSource3: TDataSource;
ADOQuery3: TADOQuery;
Edit22: TEdit;
Label25: TLabel;
Label26: TLabel;
Edit23: TEdit;
Label27: TLabel;
Edit24: TEdit;
Label28: TLabel;
ComboBox4: TComboBox;
Label29: TLabel;
ComboBox5: TComboBox;
Button4: TButton;
PageControl3: TPageControl;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
TabSheet10: TTabSheet;
TabSheet11: TTabSheet;
ADOTable2: TADOTable;
DataSource4: TDataSource;
DBGrid4: TDBGrid;
DBNavigator3: TDBNavigator;
DBGrid5: TDBGrid;
Panel4: TPanel;
Edit25: TEdit;
Label30: TLabel;
Label31: TLabel;
Edit26: TEdit;
Button5: TButton;
DBNavigator4: TDBNavigator;
Panel7: TPanel;
Edit31: TEdit;
Label36: TLabel;
Button8: TButton;
DBGrid8: TDBGrid;
ADOQuery4: TADOQuery;
DataSource5: TDataSource;
DBEdit1: TDBEdit;
Label37: TLabel;
Label38: TLabel;
DBEdit2: TDBEdit;
Label39: TLabel;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Label56: TLabel;
Label57: TLabel;
DBEdit19: TDBEdit;
DBEdit20: TDBEdit;
DBEdit21: TDBEdit;
Label58: TLabel;
ADOCommand1: TADOCommand;
Panel8: TPanel;
Edit32: TEdit;
Button9: TButton;
Label59: TLabel;
Label60: TLabel;
Edit33: TEdit;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
DataSource6: TDataSource;
DataSource7: TDataSource;
DBNavigator5: TDBNavigator;
Panel10: TPanel;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Label74: TLabel;
DBEdit29: TDBEdit;
DBEdit30: TDBEdit;
DBEdit31: TDBEdit;
DBEdit32: TDBEdit;
DBEdit33: TDBEdit;
DBEdit34: TDBEdit;
DBEdit35: TDBEdit;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
Panel5: TPanel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label75: TLabel;
Label76: TLabel;
Label77: TLabel;
DBEdit36: TDBEdit;
DBEdit37: TDBEdit;
DBEdit38: TDBEdit;
DBEdit39: TDBEdit;
DBEdit40: TDBEdit;
DBEdit41: TDBEdit;
DBEdit42: TDBEdit;
DBNavigator6: TDBNavigator;
Label61: TLabel;
Edit27: TEdit;
Button6: TButton;
procedure TreeView1Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure TabSheet9Show(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure TabSheet7Show(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Ttable=array[1..200,1..3] of string;
//建立一个200行3列的字符串数组,储存在显示树形控件时从组织机构编码表中读出的机构编号等信息以供显示
var
main: Tmain;
mytable:Ttable;
//初始化一个数组
implementation
{$R *.dfm}
//--------------------------------------------------------------------
//----------------机构设置及编码功能的实现----------------------------
//---------------------------------------------------------------------
procedure Tmain.Button12Click(Sender: TObject);
//完成树形图的显示
var
pnode:TTreeNode;
i:integer;
//pnode为树节点类型的变量
scode,scodel,sname:string;
ItemLevel,ParentIndex:integer;
begin
adoquery1.Open;
i:=1;
while not adoquery1.Eof do
begin
scode:=adoquery1.FieldByName('类别号').AsString;
scodel:=adoquery1.FieldByName('单位编号').AsString;
sname:=adoquery1.FieldByName('类别').AsString;
ItemLevel:=adoquery1.FieldByName('ItemLevel').AsInteger;
ParentIndex:=adoquery1.FieldByName('ParentIndex').AsInteger;
//将表中的数据按数据储存的绝对顺序AbsIndex排列依次取出
//按绝对顺序读出数据可以为本实例的完成提供许多方便
mytable[i,1]:=scode;
mytable[i,2]:=scodel;
mytable[i,3]:=sname;
i:=i+1;
//储存类别名,单位编号和类别到前面定义好的字符串数组中
if (ItemLevel=0) then
begin
treeview1.Items.AddFirst(nil,sname);
//如果是第一个节点,那么它没有父节点,其父节点是nil(空),创建第一个节点的数据
end
else
begin
pnode:=treeview1.Items.Item[ParentIndex];
treeview1.Items.AddChild(pnode,sname);
//根据记录的父节点属性,依次为所有记录创建树形图
end;
adoquery1.Next;
end;
end;
procedure Tmain.TreeView1Click(Sender: TObject);
//这个过程是为了在机构设置及编码窗体上显示鼠标在树控件上所选的某一节点的信息
var
temp:integer;
pnode:TTreeNode;
begin
edit1.Text:=treeview1.Selected.Text;
//显示当前所选取的节点的名称,也就是单位名
if treeview1.Selected.Parent.Index<>-1 then
edit2.Text:=treeview1.Selected.Parent.Text
else
edit2.Text:='省医药集团';
//显示当前选取节点的父节点的名称,也就是上级单位名
//如果当前选取的时节点时第一个主节点,则直接显示'省医药集团'
edit3.Text:=mytable[treeview1.Selected.AbsoluteIndex+1,2];
temp:=length(edit3.Text)-1;
temp:=round(temp/2);
edit27.Text:=inttostr(temp);
if treeview1.Selected.Parent.index<>-1 then
edit4.Text:=mytable[treeview1.Selected.Parent.AbsoluteIndex+1,2]
else
edit4.Text:='0';
//index是指某单元在该级别中的序号,而absolute则是在整个树中的绝对序号
//将储存在字符串数组中的,与当前节点相对应的信息提取出来,显示在窗体上
//上面五行代码是为了显示当前节点的编号和父节点的编号
//--------------------------------------------------------------------
button13.Enabled:=true;
button14.Enabled:=true;
button15.Enabled:=true;
button6.Enabled:=true;
//允许对某个所选取的节点进行删除,修改名称,增加子节点等功能
end;
procedure Tmain.Button13Click(Sender: TObject);
//在当前节点下,增加一个子节点
var
pnode:TTreeNode;
begin
pnode:=treeview1.Selected;
//pnode相当于一个指针,它指向当前用户所选取的节点
treeview1.Items.AddChild(pnode,pnode.Text);
//用这个命令为当前节点增加一个子节点
button16.Enabled:=true;
//允许保存所作的设置
//发送消息,提示用户保存
MessageBox(0,'请保存所作的修改,程序将自动为新节点重新编码','提示',MB_OK);
end;
//--------增加为同级节点------------------
procedure Tmain.Button6Click(Sender: TObject);
var
pnode:TTreeNode;
begin
//指向选中节点的父节点
pnode:=treeview1.Selected.Parent;
if pnode=nil then
MessageBox(0,'不允许为本级节点添加同级节点,操作被取消','注意!',MB_OK)
else
//在父节点上添加子节点,相当与添加同类节点
begin
treeview1.Items.AddChild(pnode,pnode.Text);
button16.Enabled:=true;
//允许保存所作的设置
//发送消息,提示用户保存
MessageBox(0,'请保存所作的修改,程序将自动为新节点重新编码','提示',MB_OK);
end;
end;
procedure Tmain.Button14Click(Sender: TObject);
//删除当前节点
begin
treeview1.Selected.Delete;
button16.Enabled:=true;
//删除当前所选取的节点并允许保存所做的设置
end;
//-----------------------------------------------------------------------
procedure Tmain.Button15Click(Sender: TObject);
//修改当前所选取的节点名称
begin
treeview1.Selected.Text:=edit1.Text;
button16.Enabled:=true;
//用户从第一个编辑框中修改当前节点名称并提交修改
//允许保存所做的设置
end;
procedure Tmain.Button16Click(Sender: TObject);
//保存对树形图所作的全部设置
var
i,temp:integer;
name,number,absindex,itemindex,itemlevel,parentindex:string;
order,code,s,sp:string;
//上面的变量为节点的数据和循环控制变量
pnode:TTreeNode;
//树形图节点
begin
adocommand1.CommandText:='set IDENTITY_insert 组织机构编码表 on';
adocommand1.Execute;
//打开SQL SERVER中的组织机构编码表的插入许可
adocommand1.CommandText:='select * into zztemp from 组织机构编码表';
adocommand1.Execute;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -