⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dept_select.pas

📁 完整的一个用于考勤排班功能的程序
💻 PAS
字号:
unit dept_select;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls,adodb;

type
  Tfempl_dept = class(TForm)
    GroupBox1: TGroupBox;
    TreeView1: TTreeView;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function GetLevel(sFormat,sCode:String):Integer;
    Procedure LoadCode(crTbl:TADOQuery;tvwcode:TTreeView);

  end;

var
  fempl_dept: Tfempl_dept;

implementation
uses net_main;
{$R *.dfm}

procedure Tfempl_dept.FormCreate(Sender: TObject);
begin
if netmain.dept.Active then
LoadCode(netmain.dept,TreeView1);
end;


procedure Tfempl_dept.LoadCode(crTbl:TADOQuery;tvwcode:TTreeView);
    var NowID,ShowTxt,SCodeFormat:String;
    Level:Integer;
    MyNode:array[0..6]of TTreeNode;//保存各级节点,最长支持6级(重点)
  MyRecPtr: PMyRec;
 begin
  New(MyRecPtr);
    Level:=0;
    SCodeFormat:='133333';
    With crTbl do
    begin
    First;
    tvwCode.Items.Clear;
    MyRecPtr^.deptno:=FieldByName('dept_no').AsString;
     MyNode[Level]:=tvwCode.Items.AddObject(nil,FieldByName('dept_desc').AsString,MyRecPtr);
    Next;
    While Not Eof do
      begin
     NowID:=Trim(FieldByName('dept_no').AsString);
    ShowTxt:=FieldByName('dept_desc').AsString;
    Level:=GetLevel(SCodeFormat,NowID)-1; //返回代码的级数
     if Level>0 then//确保代码符合标准
     begin
    New(MyRecPtr);
    MyRecPtr^.deptno:=FieldByName('dept_no').AsString;
    MyNode[Level]:=tvwCode.Items.AddChildObject(MyNode[Level-1],ShowTxt,MyRecPtr);

    end;
    Next;
    end;
    end;
    MyNode[0].Expand(true);//将首节点展开
    end;

    function Tfempl_dept.GetLevel(sFormat,sCode:String):Integer;
    var iq,Level,iLen:Integer;
    begin
    Level:=-1;//如果代码不符合标准,则返回-1
    iLen:=0;
    if (sFormat<>'')and(sCode<>'')then
     for iq:=1 to Length(sFormat) do
     begin
     iLen:=iLen+StrToInt(sFormat[iq]);
     if Length(sCode)=iLen then
     begin
    Level:=iq;
    Break;
     end;
     end;
    Result:=Level;
  end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -