📄 upermiss.pas
字号:
unit upermiss;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MDIbase, ComCtrls, Grids, DBGridEh, ToolWin, DB, DBClient,
ImgList, Menus, ActnList;
Type
pnodeData=^TnodeData;
TnodeData=Record
userid:integer;
usercode:string;
username:string;
end;
PnodeData2=^TnodeData2;
TnodeData2=Record
formid:integer;
formcode:string;
formname:string;
end;
type
Tfrmpermiss = class(TfrmMDIbase)
ToolBar1: TToolBar;
Grid: TDBGridEh;
treeuser: TTreeView;
treeform: TTreeView;
ActionList: TActionList;
a01: TAction;
a02: TAction;
a03: TAction;
a04: TAction;
a05: TAction;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
ImageListuser: TImageList;
CDSuser: TClientDataSet;
DSuser: TDataSource;
CDSuser2: TClientDataSet;
CDSform: TClientDataSet;
CDSform2: TClientDataSet;
ImageListform: TImageList;
CDSgrid: TClientDataSet;
DSgrid: TDataSource;
ActionListtoolbar: TActionList;
acopen: TAction;
acadd: TAction;
acmodify: TAction;
acdelete: TAction;
acprint: TAction;
accounteract: TAction;
acfinish: TAction;
acconfirm: TAction;
acall: TAction;
acclear: TAction;
acsave: TAction;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
CDSuserfid: TAutoIncField;
CDSuserfusercode: TWideStringField;
CDSuserfusername: TWideStringField;
CDSuserfpassword: TWideStringField;
CDSuserfadmin: TBooleanField;
CDSuserfgroupid: TWordField;
CDSuserfgroupname: TWideStringField;
CDSgridfid: TAutoIncField;
CDSgridfusercode: TWideStringField;
CDSgridfformcode: TWideStringField;
CDSgridfuserid: TIntegerField;
CDSgridfformid: TIntegerField;
CDSgridfopen: TBooleanField;
CDSgridfadd: TBooleanField;
CDSgridfmodify: TBooleanField;
CDSgridfdelete: TBooleanField;
CDSgridfprint: TBooleanField;
CDSgridfconfirm: TBooleanField;
CDSgridffinish: TBooleanField;
CDSgridfcounteract: TBooleanField;
procedure FormCreate(Sender: TObject);
procedure treeuserChange(Sender: TObject; Node: TTreeNode);
procedure treeformChange(Sender: TObject; Node: TTreeNode);
procedure acopenExecute(Sender: TObject);
procedure acaddExecute(Sender: TObject);
procedure acmodifyExecute(Sender: TObject);
procedure acdeleteExecute(Sender: TObject);
procedure acprintExecute(Sender: TObject);
procedure accounteractExecute(Sender: TObject);
procedure acfinishExecute(Sender: TObject);
procedure acconfirmExecute(Sender: TObject);
procedure acallExecute(Sender: TObject);
procedure acclearExecute(Sender: TObject);
procedure acsaveExecute(Sender: TObject);
procedure a01Execute(Sender: TObject);
procedure a02Execute(Sender: TObject);
procedure a03Execute(Sender: TObject);
procedure a05Execute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure addusercode;
procedure addformnode;
procedure getgriddata;
function getuserid:integer;
function getformid:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
frmpermiss: Tfrmpermiss;
implementation
uses common, Global, uuser_m, ugroup;
{$R *.dfm}
procedure Tfrmpermiss.addformnode;
var
pnode:pnodedata2;
RootNode,Rootnode1,Rootnode2:Ttreenode;
formid:integer;
formcode:string;
formname:string;
cclass:string;
begin
treeform.Items.Clear;
treeform.Items.BeginUpdate;
Rootnode:=treeform.Items.AddChild(nil,'表单资料');
Rootnode.ImageIndex:=0;
Rootnode.SelectedIndex:=1;
GetsqlData(CDSform,'Vform','fid','fid in (select max(fid) from Vform group by ftype)',20);
CDSform.First;
while not CDSform.Eof do
begin
cclass:=CDSform.fieldbyname('ftype').AsString;
Rootnode1:=treeform.Items.AddChild(Rootnode,cclass);
Rootnode1.ImageIndex:=0;
Rootnode1.SelectedIndex:=1;
Getsqldata(CDSform2,'Vform','fid','ftype='+Quotedstr(cclass),20);
CDSform2.First;
while not CDSform2.Eof do
begin
new(pnode);
formid:=CDSform2.fieldbyname('fid').AsInteger;
formcode:=CDSform2.fieldbyname('Fcode').AsString;
formname:=CDSform2.fieldbyname('fname').AsString;
pnode^.formid:=formid;
pnode^.formcode:=formcode;
pnode^.formname:=formname;
Rootnode2:=treeform.Items.AddChildObject(Rootnode1,formname,pnode);
Rootnode2.ImageIndex:=0;
Rootnode2.SelectedIndex:=1;
CDSform2.Next;
end;
CDSform.Next;
end;
treeform.Items.EndUpdate;
treeform.FullExpand;
end;
procedure Tfrmpermiss.addusercode;
var
pnode:pnodeData;
Rootnode,Rootnode1,Rootnode2:Ttreenode;
userid:integer;
usercode:string;
username:string;
fgroup:string;
begin
treeuser.Items.Clear;
treeuser.Items.BeginUpdate;
Rootnode:=treeuser.Items.AddChild(nil,'用户资料');
Rootnode.ImageIndex:=0;
Rootnode.SelectedIndex:=0;
GetsqlData(CDSuser,'Vusergroup','fid','fid in (select max(fid) from vusergroup group by fgroupid)',20);
CDSuser.First;
while not CDSuser.Eof do
begin
fgroup:=cdsuser.fieldbyname('fgroupname').AsString;
Rootnode1:=treeuser.Items.AddChild(Rootnode,fgroup);
Rootnode1.ImageIndex:=0;
Rootnode1.SelectedIndex:=1;
Getsqldata(CDSuser2,'Vusergroup','fid','fgroupname='+Quotedstr(fgroup),20);
CDSuser2.First;
while not CDSuser2.Eof do
begin
new(pnode);
userid:=CDSuser2.fieldbyname('fid').AsInteger;
usercode:=CDSuser2.fieldbyname('fusercode').AsString;
username:=CDSuser2.fieldbyname('fusername').AsString;
pnode^.userid:=userid;
pnode^.usercode:=usercode;
pnode^.username:=username;
Rootnode2:=treeuser.Items.AddChildObject(Rootnode1,username,pnode);
Rootnode2.ImageIndex:=0;
Rootnode2.SelectedIndex:=1;
CDSuser2.Next;
end;
CDSuser.Next;
end;
treeuser.Items.EndUpdate;
treeuser.FullExpand;
end;
function Tfrmpermiss.getformid: integer;
var
gsformid:Pnodedata2;
begin
try
new(gsformid);
gsformid:=treeform.Selected.Data;
Result:=gsformid.formid;
gsformid:=nil;
except
Result:=0;
end;
end;
procedure Tfrmpermiss.getgriddata;
var
userid:integer;
formid:integer;
begin
userid:=getuserid;
formid:=getformid;
if (userid>0) and (formid>0) then
begin
Getsqldata(CDSGrid,'Vpermiss','Fid',
'fuserid='+inttostr(userid)+' and fformid='+inttostr(formid),20);
if CDSgrid.RecordCount=0 then
begin
Execsql('Insert into tpermiss(fuserid,fformid) values('+
inttostr(userid)+','+inttostr(formid)+')');
Getsqldata(CDSGrid,'Vpermiss','Fid',
'fuserid='+inttostr(userid)+' and fformid='+inttostr(formid),20);
end;
end;
end;
function Tfrmpermiss.getuserid: integer;
var
gsuserid:pnodedata;
begin
try
new(gsuserid);
gsuserid:=treeuser.Selected.Data;
Result:=gsuserid.userid;
gsuserid:=nil;
except
Result:=0;
end;
end;
procedure Tfrmpermiss.FormCreate(Sender: TObject);
begin
inherited;
addusercode;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -