📄 tbltreeview.pas
字号:
if ThisNode <> nil then
begin
NewNode := Self.items.AddChildObject(ThisNode, ItemList[2], FKey);
end
else
begin
//NewNode:=Self.items.AddObject(nil, ItemList[2], FKey);
Exit;
end;
end;
//节点类型
if ItemList[1] = 'MMROOM' then
begin
NewNode.ImageIndex := 0;
NewNode.SelectedIndex := 0;
end;
if ItemList[1] = 'CLSC' then
begin
NewNode.ImageIndex := 1;
NewNode.SelectedIndex := 1;
end;
if ItemList[1] = 'USET' then
begin
NewNode.ImageIndex := 2;
NewNode.SelectedIndex := 2;
end;
NewNode.Selected := true;
finally
Self.Items.EndUpdate;
end;
end;
function TTBLTreeView.GetValueBySQL(strSQL: string): string;
var
adoRS: TADOQuery;
begin
Result := '''';
try
adoRS := TADOQuery.Create(nil);
adoRS.Connection := FADOconn;
adoRS.SQL.Add(strSQL);
adoRS.Open;
if adoRS.RecordCount > 0 then
if adoRS.Fields[0] = nil then
Result := ''
else
Result := adoRS.Fields[0].AsString;
adoRS.Close;
adoRS.Free;
except
on E: Exception do
Messagebox(self.Handle,
PAnsiChar('数据库操作失败!请检查数据连接是否正常。' + chr(10) + chr(13)
+
'详细错误信息如下:' + chr(10) + chr(13) + E.Message),
PAnsiChar('信息'),
MB_OK + MB_ICONINFORMATION);
end;
end;
function TTBLTreeView.GetValuesBySQL(strSQL: string): TStrings;
var
adoRS: TADOQuery;
ValueTs: TStrings;
iLoop: Integer;
begin
Result := nil;
ValueTs := TStringList.Create;
try
adoRS := TADOQuery.Create(nil);
adoRS.Connection := FADOconn;
adoRS.SQL.Add(strSQL);
adoRS.Open;
if adoRS.RecordCount > 0 then
begin
for iLoop := 0 to adoRS.Fields.Count - 1 do
begin
if adoRS.Fields[iLoop].IsNull then
ValueTs.Add('')
else
ValueTs.Add(adoRS.Fields[iLoop].AsString);
end;
end;
Result := ValueTs;
adoRS.Close;
adoRS.Free;
except
on E: Exception do
Messagebox(self.Handle,
PAnsiChar('数据库操作失败!请检查数据连接是否正常。' + chr(10) + chr(13)
+
'详细错误信息如下:' + chr(10) + chr(13) + E.Message),
PAnsiChar('信息'),
MB_OK + MB_ICONINFORMATION);
end;
end;
procedure TTBLTreeView.TreeModifyItem(ItemList: TStrings);
var
FKey: PTNKEY;
begin
New(FKey);
FKey^.ID := ItemList[0];
FKey^.NODETYPE := ItemList[1];
FKey^.TBLNAME := ItemList[2];
FKey^.MMROOMID := ItemList[3];
FKey^.TBLPROPERTY := ItemList[4];
FKey^.TBLTYPE := ItemList[5];
FKey^.PARENTID := ItemList[6];
Self.Items.BeginUpdate;
try
Self.Selected.Data := FKey;
Self.Selected.Text := ItemList[2];
if ItemList[1] = 'MMROOM' then
begin
Self.Selected.ImageIndex := 0;
Self.Selected.SelectedIndex := 0;
end;
if ItemList[1] = 'CLSC' then
begin
Self.Selected.ImageIndex := 1;
Self.Selected.SelectedIndex := 1;
end;
if ItemList[1] = 'USET' then
begin
Self.Selected.ImageIndex := 2;
Self.Selected.SelectedIndex := 2;
end;
finally
Self.Items.EndUpdate;
end;
end;
//移除节点
procedure TTBLTreeView.TreeRemoveItem();
begin
Self.Items.BeginUpdate;
try
Self.Selected.Delete;
finally
Self.Items.EndUpdate;
end;
end;
procedure TTBLTreeView.TreeRemoveItem(ID: string);
var
STreeNode: TTreeNode;
begin
Self.Items.BeginUpdate;
try
STreeNode := TreeFindItem(nil, ID);
if not (STreeNode = nil) then
STreeNode.Delete;
finally
Self.Items.EndUpdate;
end;
end;
//移动节点
procedure TTBLTreeView.TreeMoveItem(ParentID: string; ID: string);
begin
if ParentID = PTNKEY(TreeFindItem(nil, ID).Parent.Data)^.ID then
Exit;
TreeFindItem(nil, ID).MoveTo(TreeFindItem(nil, ParentID), naAddChild);
end;
procedure TTBLTreeView.TreeLocation(ID: string);
begin
TreeFindItem(nil, ID).Selected := true;
end;
//得到节点ID值
function TTBLTreeView.GetTreeNodeID(): string;
begin
if Self.Items.Count = 0 then
Result := '0'
else
begin
if Copy(PTNKEY(Self.Selected.Data)^.ID, 1, 1) = 'M' then
Result := Copy(PTNKEY(Self.Selected.Data)^.ID, 2,
Length(PTNKEY(Self.Selected.Data)^.ID) - 1)
else
Result := PTNKEY(Self.Selected.Data)^.ID;
end;
end;
function TTBLTreeView.GetTreeNodeID(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := '0'
else
begin
if Copy(PTNKEY(TreeFindItem(nil, ID).Data)^.ID, 1, 1) = 'M' then
Result := Copy(PTNKEY(TreeFindItem(nil, ID).Data)^.ID, 2,
Length(PTNKEY(TreeFindItem(nil, ID).Data)^.ID) - 1)
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.ID;
end;
end;
//得到节点NODETYPE值
function TTBLTreeView.GetTreeNodeNODETYPE(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.NODETYPE;
end;
function TTBLTreeView.GetTreeNodeNODETYPE(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.NODETYPE;
end;
//得到节点TBLNAME值
function TTBLTreeView.GetTreeNodeTBLNAME(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.TBLNAME;
end;
function TTBLTreeView.GetTreeNodeTBLNAME(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.TBLNAME;
end;
//得到节点MMROOMID值
function TTBLTreeView.GetTreeNodeMMROOMID(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.MMROOMID;
end;
function TTBLTreeView.GetTreeNodeMMROOMID(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.MMROOMID;
end;
//得到节点TBLPROPERTY值
function TTBLTreeView.GetTreeNodeTBLPROPERTY(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.TBLPROPERTY;
end;
function TTBLTreeView.GetTreeNodeTBLPROPERTY(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.TBLPROPERTY;
end;
//得到节点TBLTYPE值
function TTBLTreeView.GetTreeNodeTBLTYPE(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.TBLTYPE;
end;
function TTBLTreeView.GetTreeNodeTBLTYPE(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.TBLTYPE;
end;
//得到节点PARENTID值
function TTBLTreeView.GetTreeNodePARENTID(): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(Self.Selected.Data)^.PARENTID;
end;
function TTBLTreeView.GetTreeNodePARENTID(ID: string): string;
begin
if Self.Items.Count = 0 then
Result := ''
else
Result := PTNKEY(TreeFindItem(nil, ID).Data)^.PARENTID;
end;
//角色的档案权限树
procedure TTBLTreeView.TreeCreateByRolePower(RoleCode: string; DATA: string);
var
adoquery: TADOQuery;
itemList: TStrings;
strSql: string;
sT: TStrings;
strShowPower: string;
begin
try
//建立档案室
strSql := 'SELECT ID,C_MMROOMNAME FROM SYS_MMROOM ORDER BY C_MMROOMCODE';
adoquery := TADOQuery.Create(self);
adoquery.Connection := FADOconn;
adoquery.SQL.add(strSql);
adoquery.Open;
Self.Items.Clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -