uuser.pas
上传用户:jiete_yjc
上传日期:2010-02-11
资源大小:422k
文件大小:4k
源码类别:

医药行业

开发平台:

Delphi

  1. unit uuser;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ComCtrls, StdCtrls, Buttons, CheckLst, ImgList;
  6. type intptr=record
  7.          id:integer;
  8.          qx:int64;
  9.       end;
  10. type
  11.   TFuser = class(TForm)
  12.     man: TTreeView;
  13.     BitBtn1: TBitBtn;
  14.     BitBtn2: TBitBtn;
  15.     BitBtn3: TBitBtn;
  16.     BitBtn4: TBitBtn;
  17.     qx: TCheckListBox;
  18.     ImageList1: TImageList;
  19.     procedure BitBtn1Click(Sender: TObject);
  20.     procedure FormShow(Sender: TObject);
  21.     procedure BitBtn4Click(Sender: TObject);
  22.     procedure manChange(Sender: TObject; Node: TTreeNode);
  23.     procedure BitBtn3Click(Sender: TObject);
  24.     procedure BitBtn2Click(Sender: TObject);
  25.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.   end;
  31. var
  32.   Fuser: TFuser;
  33. implementation
  34. uses udm,uuser2;
  35. {$R *.dfm}
  36. procedure TFuser.BitBtn1Click(Sender: TObject);
  37. var newnode:Ttreenode;ptr:^intptr;i:integer;
  38. begin
  39.   adodm.tuser.Append;
  40.   i:= fuser2.ShowModal ;
  41.   //showmessage(inttostr(i));
  42.   if i=mrok then
  43.   begin
  44.   adodm.tuser.Last;
  45.  // showmessage(adodm.tuser.fieldbyname('yh').asstring);
  46.   newnode:=ttreenode.Create(man.Items);
  47.   new(ptr);
  48.   ptr.id:= adodm.tuser.fieldbyname('userid').AsInteger;
  49.   ptr.qx:=adodm.tuser.fieldbyname('able').asinteger;
  50.   man.Items.AddObject(newnode,adodm.tuser.fieldbyname('oper').asstring,ptr) ;
  51.   newnode.Free;
  52.   end;
  53. end;
  54. procedure TFuser.FormShow(Sender: TObject);
  55. var newnode:Ttreenode;
  56.     ptr:^intptr;
  57. begin
  58.  man.Items.Clear;
  59.  adodm.tuser.Close;
  60.  adodm.tuser.Open;
  61.  adodm.tuser.First;
  62.  newnode:=ttreenode.Create(man.Items);
  63.  
  64.  while not adodm.tuser.Eof do
  65.  begin
  66.  new(ptr);
  67.  ptr.id:= adodm.tuser.fieldbyname('userid').AsInteger;
  68.  ptr.qx:=adodm.tuser.fieldbyname('able').asinteger;
  69.  man.Items.AddObject(newnode,adodm.tuser.fieldbyname('oper').asstring,ptr) ;
  70.  adodm.tuser.Next;
  71.  end;
  72.  newnode.Free;
  73. end;
  74. procedure TFuser.BitBtn4Click(Sender: TObject);
  75. begin
  76.   close;
  77. end;
  78. procedure TFuser.manChange(Sender: TObject; Node: TTreeNode);
  79. var a:int64; i:integer;
  80. begin
  81.     a:=intptr(node.Data^).qx;
  82.     //showmessage(inttostr(a));
  83.     a:=a xor 1234567890;
  84.     a:=a shr 10;
  85.     for i:=0 to qx.Items.Count-1 do //共有6 种权限
  86.     if ((1 shl i) and a)<>0 then
  87.     qx.Checked[i]:=true
  88.     else
  89.     qx.Checked[i]:=false;
  90.     
  91. end;
  92. procedure TFuser.BitBtn3Click(Sender: TObject);
  93. var i:integer; a:int64;
  94. begin
  95.   a:=0;
  96.   for i:=0 to  qx.Items.Count-1 do
  97.   if qx.Checked[i] then
  98.   a:=a or (1 shl i);
  99.   a:=a shl 10  ;
  100.   a:=a xor 1234567890;
  101.  // showmessage(inttostr(a));
  102.  if  adodm.tuser.Locate('userid',intptr(man.Selected.Data^).id,[]) then
  103.  begin
  104.     // showmessage('找到了!'+adodm.tuser.FieldByName('yh').Asstring);
  105.      adodm.tuser.Edit;
  106.      adodm.tuser.FieldByName('able').Asstring:=inttostr(a);
  107.     // showmessage(adodm.tuser.FieldByName('qx').Asstring+'  a='+inttostr(a)) ;
  108.      adodm.tuser.Post;
  109.      intptr(man.Selected.Data^).qx:=a;
  110.  end
  111.  else
  112.       showmessage('在数据库中没有找到该用户的信息,请重新录入信息!');
  113.       
  114. end;
  115. procedure TFuser.BitBtn2Click(Sender: TObject);
  116. begin
  117.  if  adodm.tuser.Locate('userid',intptr(man.Selected.Data^).id,[]) then
  118.     begin
  119.     if messagedlg('真的要删除此用户吗?',mtwarning,[mbyes,mbno],0)=mryes then
  120.        adodm.tuser.delete;
  121.     end
  122.  else
  123.       showmessage('在数据库中没有找到该用户的信息,可能已经被删除了!');
  124.        man.Selected.Delete;
  125.  end;
  126.      
  127. procedure TFuser.FormClose(Sender: TObject; var Action: TCloseAction);
  128. begin
  129. action:=cafree;
  130. end;
  131. end.