?? 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 + -