亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rygl.pas

?? delphi開發(fā)的中國移動大客戶管理系統(tǒng),后臺數據庫為oracle
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit rygl;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables, DBCtrls, StdCtrls, Mask, Db, ImgList, ComCtrls, Buttons,
  ExtCtrls, Menus, Grids, DBGrids, TFlatButtonUnit, TFlatComboBoxUnit;

type
  TFormRygl = class(TForm)
    QueryTmp1: TQuery;
    QueryTmp2: TQuery;
    TreeViewRy: TTreeView;
    Splitter1: TSplitter;
    Panel1: TPanel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    QueryTmp3: TQuery;
    ImageList1: TImageList;
    Querytem4: TQuery;
    Query_City: TQuery;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    TreeView_1: TTreeView;
    TreeView1: TTreeView;
    Splitter2: TSplitter;
    Panel5: TPanel;
    Panel6: TPanel;
    TreeView_2: TTreeView;
    TreeView2: TTreeView;
    BitBtnClose: TFlatButton;
    procedure FormShow(Sender: TObject);
    procedure TreeViewRyChange(Sender: TObject; Node: TTreeNode);
    procedure DBGrid1DragOver(Sender, Source: TObject; X,
      Y: Integer; State: TDragState; var Accept: Boolean);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure N1Click(Sender: TObject);
    procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure TreeView2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure TreeView2DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TreeViewRyExpanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtnCloseClick(Sender: TObject);
  private
    { Private declarations }
    //是否重建樹的標志
    P_Refresh :boolean;
    //建樹的第一層
    procedure InitTreeViewRY;
    //刪除人員所有權限
    procedure DeleteAllQX(GH:string);
    procedure InsertAccessMenu(GH:string;ID:integer);
    procedure Insert_Set_Access_Fun(GH:string; FUN_ID:integer);
    procedure insert_init_QX;
    procedure clearXH(Tree:TTreeView);
    procedure dgfather_InsertSetAccess(HT2:TTreeNode);
    procedure dgChild_InsertSetAccess(HT2:TTreeNode);
    procedure InitTreeView_QX(TreeView:TTreeView;GH:string);
    procedure InsertTreeViewMenu(TreeView:TTreeView;GH:string);
    procedure InsertTreeViewFun(TreeView:TTreeView;GH:string);
    procedure InsertFun(TreeView:TTreeView;FunLeaf:string;Form_Code:string);
    procedure locateTree(TreeView:TTreeView;Node:TTreeNode);
    procedure dgChild_DeleteAccess(HT1:TTreeNode);
    procedure DeleteAccessmenu(GH:string;ID:Integer);
    procedure Delete_Set_Access_Fun(GH:string;ID:integer);
    Function getMenu_ID(FORM_CODE:string):Integer;
    //*********************曾慶順********************************
    //釋放節(jié)點
    procedure FreeNode(treeview :TTreeview);
    //插入節(jié)點
    //不展開樹
    Function InsertTreeNode(treeview :TTreeview;SNode:TTreeNode;
         pLabel:string;pData:string):TTreeNode;
    //樹展開時臨時地加上該城市下局向的用戶
    ProceDure TreeExpand(Treeview :TTreeview;SNode:TTreeNode);
    //***********************************************************
  public
    { Public declarations }
    P_jxdm,P_cityno,P_room :string;
    TmpNode:TTreeNode;
  end;

var
  FormRygl: TFormRygl;

implementation

uses Main,unit_public, dmmain;

{$R *.DFM}

procedure TFormRygl.FormShow(Sender: TObject);
begin
  P_Refresh :=true;
  TreeViewRy.Items.clear;
  InitTreeViewRY;      //初始化人員樹

  if JBDM=0
    then InitTreeView_QX(TreeView_2,'')      //可分配的權限樹
    else InitTreeView_QX(TreeView_2,GH);  //可分配的權限樹
  TreeView2.Items:=TreeView_2.Items;
  clearXH(TreeView2);

  P_Refresh :=false;
end;

procedure TFormRygl.clearXH(Tree:TTreeView);
var i,m,n:integer;
begin//清除葉子上的序號
  for i:=0 to Tree.Items.Count-1 do
  begin
    m:=Pos('.',Tree.Items[i].Text)+Pos(':',Tree.Items[i].Text)+Pos('*',Tree.Items[i].Text)+1;
    n:=length(Tree.Items[i].Text);
    Tree.Items[i].Text:=copy(Tree.Items[i].Text,m,n);
  end;{for}
end;

procedure TFormRygl.InitTreeViewRy;
var
  NewJXNode: TTreeNode;
  ljx,lcityno :string;
begin
  //加市
  with QueryTmp1 do
  begin
    close;//局向
    sql.clear;
    //sql.add('select OFF_NO_HOME,COUNTYNAME from T_D_COUNTY');
    sql.add('select CITYNO,CITYNAME from T_D_CITY');
    open;
    first;
    while not Eof do
    begin
      ljx :=Fields[0].AsString;
      lcityno :=Fields[1].AsString;
      //先把第一層建出來
      NewJXNode:=
      InsertTreeNode(TreeViewRy,nil,lcityno,ljx);
      //TreeViewRy.Items.Add(nil,Fields[0].AsString+':'+Fields[1].AsString);
      NewJXNode.ImageIndex := 0;
      NewJXNode.SelectedIndex := 1;
      //***************判斷該市下有沒縣有沒有,如果速度慢去掉*****************
      //QueryTmp2.close;
      //QueryTmp2.sql.text :='select count(OFF_NO_HOME) from T_D_COUNTY where CITYNO='+#39+ljx+#39;
      //QueryTmp2.open;
      //if QueryTmp2.fields[0].asinteger >0 then
      //begin
        //加入臨時結點來強行加上+號
        InsertTreeNode(TreeViewRy,NewJXNode,'TEMP'
            ,'TEMP');
      //end;
      //************************************************************
      //這樣建樹肯定不行的,一次行建樹了,慢!
      {
      if (jbdm=0)or(jx=QueryTmp1.Fields[0].AsInteger) then
        InitJxry(NewJxNode,QueryTmp1.Fields[0].AsInteger);//增加單個局向內的人員  }
      Next;
    end;{while}
  end;
  //TreeViewRY.Selected := TreeViewRY.Items[0];
end;


procedure TFormRygl.TreeViewRyChange(Sender: TObject; Node: TTreeNode);
var
  str :string;
begin
  if Node = nil then exit;
  TreeView_1.Items.Clear;
  TreeView1.Items.Clear;

  case Node.Level of
    0:
    begin
      //Label7.Caption:=' 局  向 :'+Node.Text;
      //P_Jxdm:=StrToint(copy(Node.Text,1,pos(':',Node.Text)-1));
      //ClearRyEdit;
      //SetRyEnable;
    end;
    1:begin
        //得到城市編碼和局向編碼h和關系室
        str :=Pchar(Node.data);
        p_jxdm :=copy(str,1,pos('#',str)-1);
        p_cityno :=copy(str,pos('#',str)+1,length(str)-pos('#',str));
      end;
    2:begin
        //得到城市編碼和局向編碼h和關系室
        str :=Pchar(Node.data);
        p_jxdm :=copy(str,1,pos('#',str)-1);
        str :=copy(str,pos('#',str)+1,length(str)-pos('#',str));
        p_cityno :=copy(str,1,pos('#',str)-1);
        P_room :=copy(str,pos('#',str)+1,length(str)-pos('#',str));
      end;
    3:
    begin
      //得到城市編碼和局向編碼h和關系室
      str :=Pchar(Node.Parent.data);
      p_jxdm :=copy(str,1,pos('#',str)-1);
      str :=copy(str,pos('#',str)+1,length(str)-pos('#',str));
      p_cityno :=copy(str,1,pos('#',str)-1);
      P_room :=copy(str,pos('#',str)+1,length(str)-pos('#',str));
      //
      InitTreeView_QX(TreeView_1,Pchar(Node.data));  //權限樹
      TreeView1.Items:=TreeView_1.Items;
      ClearXH(TreeView1);
    end;
  end;

end;

procedure TFormRygl.insert_init_QX;
begin//設置初始權限
  with QueryTmp2 do
    begin
      close;
      sql.clear;
      sql.add('select INITID,OBJECT');
      sql.add('  from t_d_init');
      sql.add(' where (LEVEL_SEQ=:nJBDM)');
      ParamByName('nJBDM').AsInteger:=100;
      open;
    end;{with}
  while not QueryTmp2.eof do
    begin
      if QueryTmp2.fields[1].AsString='菜單' then
        insertaccessmenu(pchar(TreeViewRy.Selected.data),QueryTmp2.fields[0].AsInteger);
      if QueryTmp2.fields[1].AsString='功能' then
        Insert_Set_Access_Fun(pchar(TreeViewRy.Selected.data),QueryTmp2.fields[0].AsInteger);
      QueryTmp2.next;
    end;{while}
end;

procedure TFormRygl.insertaccessmenu(GH:string;ID:integer);
begin
  with QueryTmp1 do
  begin
    close;
    sql.clear;
    sql.add('select count(*)');
    sql.add('  from t_d_menugrant');
    sql.add(' where (WK_NO=:sTmp1)');
    sql.add('   and (ID=:nTmp2)');
    ParamByName('sTmp1').AsString:=GH;
    ParamByName('nTmp2').AsInteger:=ID;
    open;
    if Fields[0].AsInteger>=1 then exit;
  end;
  try
    Dm_Main.Databasedh.StartTransaction;
    with QueryTmp1 do
    begin
      close;
      sql.clear;
      sql.add('insert into t_d_menugrant');
      sql.add('       (WK_NO,GRANTCODE,ID)');
      sql.add('values (:GH,SEQ_GRANTCODE.nextval,:ID)');
      ParamByName('GH').AsString:=GH;
      ParamByName('ID').AsInteger:=ID;
      execsql;
    end;
    Dm_Main.Databasedh.Commit;
  except
    Dm_Main.Databasedh.Rollback;
    Application.MessageBox('系統(tǒng)在執(zhí)行過程中發(fā)生錯誤!','提示',MB_ICONINFORMATION);
    exit;
  end;
end;

procedure TFormRygl.Insert_Set_Access_Fun(GH:string; FUN_ID:integer);
begin
  with QueryTmp1 do
  begin
    close;
    sql.clear;
    sql.add('select count(*) from t_d_fungrant');
    sql.add(' where (WK_NO=:GH)');
    sql.add('   and (FUN_ID=:FUN_ID)');
    ParamByName('GH').AsString:=GH;
    ParamByName('FUN_ID').AsInteger:=FUN_ID;
    open;
    if Fields[0].AsInteger>0 then exit;
  end;
  try
    Dm_Main.Databasedh.StartTransaction;
    with QueryTmp1 do
    begin
      close;
      sql.clear;
      sql.add('insert into t_d_fungrant');
      sql.add('       (WK_NO,ID,FUN_ID)');
      sql.add('values (:GH,SEQ_FUNGRANTID.nextval,:FUN_ID)');
      ParamByName('GH').AsString:=GH;
      ParamByName('FUN_ID').AsInteger:=FUN_ID;
      execsql;
    end;
    Dm_Main.Databasedh.Commit;
  except
    Dm_Main.Databasedh.Rollback;
    Application.MessageBox('系統(tǒng)在執(zhí)行過程中發(fā)生錯誤!','提示',MB_ICONINFORMATION);
    exit;
  end;
end;

procedure TFormRygl.DBGrid1DragOver(Sender, Source: TObject;
  X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TDBGrid;
end;

procedure TFormRygl.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8,#13]) then
    key:=#0;
end;

procedure TFormRygl.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8,#13,#189]) then
    key:=#0;
end;

procedure TFormRygl.DeleteAllQX(GH:string);
begin//刪除這一工號的所有權限
  with QueryTmp1 do
  begin  //刪除功能
    close;
    sql.clear;
    sql.add('delete t_d_menugrant');
    sql.add(' where (WK_NO=:Gh)');
    ParamByName('Gh').ASString:=GH;
    execsql;
  end;
  with QueryTmp1 do
  begin  //刪除功能
    close;
    sql.clear;
    sql.add('delete t_d_fungrant');
    sql.add(' where (WK_NO=:Gh)');
    ParamByName('Gh').ASString:=GH;
    execsql;
  end;
end;

procedure TFormRygl.N1Click(Sender: TObject);
begin
  if JBDM<>0 then
  begin
    Application.MessageBox('對不起,只有系統(tǒng)管理員才可做這項操作!','錯誤',MB_OK);
    exit;
  end;
  if TreeViewRy.Selected.Level=0 then
  begin
    Application.MessageBox('對不起,請選擇人員!','錯誤',MB_OK);
    exit;
  end;
  DeleteAllQX(copy(TreeViewRy.Selected.text,1,pos(':',TreeViewRy.Selected.text)-1));
  insert_init_QX;
  TreeViewRyChange(Sender,TreeViewRy.Selected);//刷新
end;

procedure TFormRygl.dgfather_InsertSetAccess(HT2:TTreeNode);
var HTTmp:TTreeNode;
    QX_ID:Integer;
begin//遞歸插入權限設置
  HTTmp:=HT2.Parent;
  if HTTmp<>nil then dgfather_InsertSetAccess(HTTmp);
  if pos(':',HT2.text)<>0 then exit;
  if pos('.',HT2.text)<>0 then
  begin
    QX_ID:=StrToInt(copy(HT2.text,1,pos('.',HT2.text)-1));
    insertaccessmenu(pchar(TreeViewRy.Selected.data),QX_ID);
  end
  else
  begin
    QX_ID:=StrToInt(copy(HT2.text,1,pos('*',HT2.text)-1));
    Insert_Set_Access_Fun(pchar(TreeViewRy.Selected.data),QX_ID);
  end;
end;

procedure TFormRygl.dgChild_InsertSetAccess(HT2:TTreeNode);
var HTTmp:TTreeNode;
    QX_ID:Integer;
begin//遞歸孩子
  if pos(':',HT2.text)=0 then
  begin
    if pos('.',HT2.text)<>0 then
    begin
      QX_ID:=StrToInt(copy(HT2.text,1,pos('.',HT2.text)-1));
      insertaccessmenu(pchar(TreeViewRy.Selected.data),QX_ID);
    end
    else
    begin
      QX_ID:=StrToInt(copy(HT2.text,1,pos('*',HT2.text)-1));
      Insert_Set_Access_Fun(pchar(TreeViewRy.Selected.data),QX_ID);
    end;
  end;
  HTTmp:=HT2.getFirstChild;
  while HTTmp<>nil do
  begin
    dgChild_InsertSetAccess(HTTmp);
    HTTmp:=HT2.GetNextChild(HTTmp);
  end;{while}
end;

procedure TFormRygl.InsertTreeViewMenu(TreeView:TTreeView;GH:string);
var Node:TTreeNode;
    i:integer;
begin//插入有權限的菜單
  with QueryTmp1 do
  begin
    close;
    sql.clear;
    if gh<>'' then
    begin
      sql.add('select to_Char(a.ID)||''.''||a.Menu_Name,a.UP_MENU_NO ');
      sql.add('  from t_d_menuset a,t_d_menugrant b');
      sql.add(' where (a.ID=b.ID)');
      sql.add('   and (b.WK_NO=:GH)');
      sql.add(' order by a.ID');
      ParamByName('GH').AsString:=GH;
    end
    else
    begin
      sql.add('select to_Char(ID)||''.''||Menu_Name,UP_MENU_NO ');
      sql.add('  from t_d_menuset');
      sql.add(' order by ID');
    end;
    open;
    while not eof do
    begin
      Node:=Nil;
      for i:=0 to TreeView.Items.Count-1 do
      begin
        if copy(TreeView.Items[i].Text,1,Pos('.',TreeView.Items[i].Text))=Fields[1].ASString+'.' then
        begin
          Node:=TreeView.Items[i];
          break;
        end;{if}
      end;{for}
      Node:=TreeView.Items.AddChild(Node,Fields[0].AsString);
      Node.ImageIndex:=0;
      Node.SelectedIndex:=1;
      next;
    end;{while}
  end;
end;

Function TFormRygl.getMenu_ID(FORM_CODE:string):Integer;
begin
  with QueryTmp3 do
  begin
    close;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产aⅴ天堂久久| 91久久精品一区二区三| 日韩欧美激情在线| 亚洲图片自拍偷拍| 色综合久久88色综合天天| 欧美激情中文字幕一区二区| 亚洲va韩国va欧美va| 91国内精品野花午夜精品| 亚洲日本青草视频在线怡红院 | 7777精品伊人久久久大香线蕉完整版| 国产欧美综合色| 国产1区2区3区精品美女| 国产午夜久久久久| 国产91丝袜在线播放九色| 欧美成人三级在线| 免费在线视频一区| 精品播放一区二区| av中文字幕不卡| 亚洲国产精品自拍| 久久久久九九视频| 美女视频网站黄色亚洲| 国产91清纯白嫩初高中在线观看| 欧美体内she精视频| 日韩电影在线免费看| 欧美精品一区二区三区一线天视频| 精品在线观看免费| 亚洲三级免费电影| 欧美一区二区三区在线观看 | 亚洲素人一区二区| 日韩一区二区视频在线观看| 国产麻豆91精品| 亚洲最大成人网4388xx| 日韩免费看的电影| 91在线视频免费91| 国产一区不卡精品| 亚洲制服丝袜av| 国产精品久久久久久久久快鸭 | 国产情人综合久久777777| 欧美日韩国产综合草草| av一区二区三区| 国内精品伊人久久久久影院对白| 亚洲精选免费视频| 国产精品乱码人人做人人爱 | 午夜av一区二区| 国产欧美一区二区精品忘忧草 | 91在线精品一区二区三区| 国产一区二区三区久久悠悠色av| 亚洲一区精品在线| 亚洲精品你懂的| 一区二区久久久| 一区二区三区欧美| 亚洲国产精品人人做人人爽| 国产精品不卡在线| 伊人一区二区三区| 亚洲精品国产视频| 亚洲午夜久久久久中文字幕久| 欧美精品一区二区三区视频| 精品国产凹凸成av人导航| 欧美成人精品二区三区99精品| 欧美一区二区三区在线观看视频| 欧美高清视频在线高清观看mv色露露十八 | 精品乱码亚洲一区二区不卡| 欧美一级高清片| 久久久久久久久久久久久久久99| 国产情人综合久久777777| 欧美日韩国产综合一区二区三区| 日本高清不卡aⅴ免费网站| 在线观看三级视频欧美| 欧美亚洲图片小说| 欧美精品一区视频| 中文字幕精品在线不卡| 亚洲人亚洲人成电影网站色| 日韩理论在线观看| 日韩av一区二| fc2成人免费人成在线观看播放| 91丝袜呻吟高潮美腿白嫩在线观看| 色综合久久久久网| 欧美视频第二页| 91免费视频网| 欧美性猛片aaaaaaa做受| 欧美精品久久99| 亚洲欧美日韩国产中文在线| 日本系列欧美系列| 99在线热播精品免费| 欧美电影精品一区二区| 亚洲美女淫视频| 不卡的电影网站| 欧美xxxxx裸体时装秀| 日韩久久一区二区| 国产成人精品一区二区三区网站观看| 欧美视频在线一区| 国产精品成人免费在线| 麻豆精品在线观看| 69久久99精品久久久久婷婷| 自拍偷拍亚洲综合| 成人精品国产一区二区4080| 日韩视频中午一区| 日本美女一区二区| 538在线一区二区精品国产| 亚洲精品久久久蜜桃| 97精品视频在线观看自产线路二| 精品成人a区在线观看| 久久激情五月婷婷| 欧美r级电影在线观看| 男女男精品视频| 久久五月婷婷丁香社区| 精品系列免费在线观看| 精品国产精品网麻豆系列| 国产综合久久久久久久久久久久| 日韩一级欧美一级| 精品无人码麻豆乱码1区2区 | 国内精品伊人久久久久av一坑| 久久精品综合网| 不卡一区二区在线| 一区二区三区欧美亚洲| 在线一区二区三区| 精品一区二区三区在线观看国产| 欧美成人女星排名| 91网站黄www| 日本在线观看不卡视频| 国产亚洲精品资源在线26u| 99精品国产热久久91蜜凸| 一区二区欧美视频| 久久新电视剧免费观看| 91在线观看成人| 看电影不卡的网站| 日韩理论电影院| 久久美女艺术照精彩视频福利播放| 国产精品亚洲专一区二区三区| 亚洲精品一卡二卡| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美在线|欧美| 国产精品亚洲成人| 热久久一区二区| 亚洲二区视频在线| 中文字幕不卡的av| 欧美成人一区二区| 欧美肥妇bbw| 欧美亚洲一区三区| 色视频一区二区| 色婷婷综合激情| 成人精品一区二区三区中文字幕 | 一区二区三区资源| 国产农村妇女毛片精品久久麻豆| 欧美一区二区三区日韩| 色素色在线综合| 欧美亚洲综合在线| 欧美日韩卡一卡二| 制服丝袜中文字幕亚洲| 丁香啪啪综合成人亚洲小说| 亚洲品质自拍视频网站| 91精品国产福利在线观看| 欧美专区亚洲专区| 欧美专区在线观看一区| 91精品欧美综合在线观看最新| 欧美日韩国产大片| 欧美电影免费观看高清完整版在 | 国产丶欧美丶日本不卡视频| 国产一区不卡精品| 成人美女视频在线观看18| 成人高清视频在线观看| 99久久精品国产一区二区三区| 91影院在线免费观看| 日本国产一区二区| 91精品国产综合久久蜜臀| 日韩欧美一区二区在线视频| 久久久国产精品不卡| 亚洲欧美色图小说| 经典三级一区二区| 欧美日韩高清一区| 欧美一级搡bbbb搡bbbb| 中文字幕av在线一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 免费xxxx性欧美18vr| 播五月开心婷婷综合| 777色狠狠一区二区三区| 国产精品伦理一区二区| 日韩不卡一区二区| 91视频国产观看| 国产精品视频九色porn| 日本亚洲三级在线| 成人avav在线| 欧美mv日韩mv亚洲| 日韩高清电影一区| 欧美在线你懂的| 亚洲天堂中文字幕| 成人app网站| 国产免费成人在线视频| 亚洲国产成人精品视频| 在线国产电影不卡| 亚洲美女电影在线| 不卡在线视频中文字幕| 久久精品一区二区三区av| 蜜桃视频一区二区三区| 欧美人伦禁忌dvd放荡欲情| 亚洲欧洲制服丝袜| 99vv1com这只有精品| 中文字幕 久热精品 视频在线| 国产在线精品一区二区| 日韩美一区二区三区|