unit rs_pub;interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB,StdCtrls, Buttons, DBCtrls, Grids, DBGrids, Mask, ExtCtrls,comctrls,
rs_dm1;TYPE
TRS_PUB=Class
Class Function GetCodeStr(Const Code,CodeLen:LongInt):String;
//取得相应的代码
Class Procedure Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
//显示树结构
class Function GetLevel(sFormat,sCode:String):Integer; //返回当前代码的级别 end;implementation
Class Function TRS_PUB.GetCodeStr(Const Code,CodeLen:LongInt):String; //取得相应的代码
Var
aCode,i,ModNum:LongInt;
Begin
ModNum:=1;
for i:=1 to CodeLen Do ModNum:=ModNum*10;
aCode:=(abs(Code) mod ModNum);
Result:=IntToStr(aCode);
while Length(Result)<CodeLen do Result:='0'+Result;
End;
class Function TRS_PUB.GetLevel(sFormat,sCode:String):Integer;
var i,Level,iLen:Integer;
begin
Level:=-1;
//如果代码不符合标准,则返回-1
iLen:=0;
if (sFormat<>'')and(sCode<>'')then
for i:=1 to Length(sFormat) do
begin
iLen:=iLen+StrToInt(sFormat[i]);
if Length(sCode)=iLen then
begin
Level:=i;
Break;
end;
end;
Result:=Level;
end;
//上面函数的功能是返回一代码的级数Class Procedure TRS_PUB.Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
var
NOWID,showtxt:string;
level:integer;
treenode:array[0..6]of TtreeNode; //代码及别支持6级
begin
level:=0;
with treedata do
begin
first;
TreeViewCode.items.clear;
treenode[level]:=TreeViewCode.items.add(TreeviewCode.TopItem,'科目');
treenode[level].ImageIndex:=0;
treenode[level].SelectedIndex:=0;
while not eof do
begin
nowid:=Trim(FieldByName('编码').AsString);
ShowTxt:=NowID+' '+FieldByName('名称').AsString;
Level:=trs_pub.GetLevel('322',NowID);
//返回代码的级数
//以下是增加子项
//以下用上一级节点为父节点添加子节点
if Level>0 then//确保代码符合标准
begin
treeNode[Level]:=TreeViewCode.Items.AddChild(treenode[Level-1],ShowTxt);
treeNode[Level].ImageIndex:=1;
treeNode[Level].SelectedIndex:=2;
end;
//以上是增加子项
Next;
end;
first;
end;
treeNode[0].Expand(false);//将首节点展开
end;end.
使用的时调用Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
在要用的窗体中先加入一个TREEVIEW,在调用
trs_pub.loadtree(rs_dm.ADOTable_bm,rs_list_treeview);
rs_dm.adotable_bm是一个ADO的TABLE,即是一个已连结数据库的构件。
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB,StdCtrls, Buttons, DBCtrls, Grids, DBGrids, Mask, ExtCtrls,comctrls,
rs_dm1;TYPE
TRS_PUB=Class
Class Function GetCodeStr(Const Code,CodeLen:LongInt):String;
//取得相应的代码
Class Procedure Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
//显示树结构
class Function GetLevel(sFormat,sCode:String):Integer; //返回当前代码的级别 end;implementation
Class Function TRS_PUB.GetCodeStr(Const Code,CodeLen:LongInt):String; //取得相应的代码
Var
aCode,i,ModNum:LongInt;
Begin
ModNum:=1;
for i:=1 to CodeLen Do ModNum:=ModNum*10;
aCode:=(abs(Code) mod ModNum);
Result:=IntToStr(aCode);
while Length(Result)<CodeLen do Result:='0'+Result;
End;
class Function TRS_PUB.GetLevel(sFormat,sCode:String):Integer;
var i,Level,iLen:Integer;
begin
Level:=-1;
//如果代码不符合标准,则返回-1
iLen:=0;
if (sFormat<>'')and(sCode<>'')then
for i:=1 to Length(sFormat) do
begin
iLen:=iLen+StrToInt(sFormat[i]);
if Length(sCode)=iLen then
begin
Level:=i;
Break;
end;
end;
Result:=Level;
end;
//上面函数的功能是返回一代码的级数Class Procedure TRS_PUB.Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
var
NOWID,showtxt:string;
level:integer;
treenode:array[0..6]of TtreeNode; //代码及别支持6级
begin
level:=0;
with treedata do
begin
first;
TreeViewCode.items.clear;
treenode[level]:=TreeViewCode.items.add(TreeviewCode.TopItem,'科目');
treenode[level].ImageIndex:=0;
treenode[level].SelectedIndex:=0;
while not eof do
begin
nowid:=Trim(FieldByName('编码').AsString);
ShowTxt:=NowID+' '+FieldByName('名称').AsString;
Level:=trs_pub.GetLevel('322',NowID);
//返回代码的级数
//以下是增加子项
//以下用上一级节点为父节点添加子节点
if Level>0 then//确保代码符合标准
begin
treeNode[Level]:=TreeViewCode.Items.AddChild(treenode[Level-1],ShowTxt);
treeNode[Level].ImageIndex:=1;
treeNode[Level].SelectedIndex:=2;
end;
//以上是增加子项
Next;
end;
first;
end;
treeNode[0].Expand(false);//将首节点展开
end;end.
使用的时调用Loadtree(TreeData:TDataSet;TreeViewCode:TtreeView);
在要用的窗体中先加入一个TREEVIEW,在调用
trs_pub.loadtree(rs_dm.ADOTable_bm,rs_list_treeview);
rs_dm.adotable_bm是一个ADO的TABLE,即是一个已连结数据库的构件。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货