D7gmYongjin/BI(BIView.dll)/U_purview.pas
DESKTOP-E401PHE\Administrator 8452f471f5 新建3-04
2026-03-04 09:51:44 +08:00

314 lines
7.8 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_purview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, ImgList, ComCtrls, ToolWin,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB,
DBClient, cxCheckBox, Menus, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, StdCtrls, ExtCtrls;
type
TfrmpurviewDL = class(TForm)
tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
ToolBar1: TToolBar;
tbqx: TToolButton;
tbclose: TToolButton;
tv1sel: TcxGridDBColumn;
tv1userID: TcxGridDBColumn;
tv1userName: TcxGridDBColumn;
ADO_user: TADOQuery;
DataSource1: TDataSource;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxFormName: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ADO_purview: TADOQuery;
DataSource2: TDataSource;
CDS_User: TClientDataSet;
CDS_purview: TClientDataSet;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
v2sel: TcxGridDBColumn;
ADO_Cmd: TADOQuery;
tbyhadd: TToolButton;
tbyhup: TToolButton;
tbyhdelete: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ThreeImgList: TImageList;
tv1Udept: TcxGridDBColumn;
tv1UType: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
Panel2: TPanel;
Label3: TLabel;
UserName: TEdit;
Label1: TLabel;
Udept: TEdit;
procedure FormCreate(Sender: TObject);
procedure tbcloseClick(Sender: TObject);
procedure tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure tbqxClick(Sender: TObject);
procedure tbyhaddClick(Sender: TObject);
procedure tbyhupClick(Sender: TObject);
procedure tbyhdeleteClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure UserNameChange(Sender: TObject);
private
Procedure InitUser();
procedure InitPurview();
function savePurview():Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frmpurviewDL: TfrmpurviewDL;
implementation
uses U_User,U_DataLink,U_RTFun; //U_Main,U_PublicFunction,
{$R *.dfm}
function TfrmpurviewDL.SavePurview():Boolean;
begin
result:=false;
ADO_Cmd.Connection.BeginTrans;
try
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add(' delete sy_purview ');
sql.Add(' where userID='+quotedstr(trim(CDS_User.fieldbyname('userID').AsString)));
execsql;
end;
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add(' select * from sy_purview ');
sql.Add(' where userID='+quotedstr(trim(CDS_User.fieldbyname('userID').AsString)));
open;
end;
with CDS_purview do
begin
first;
DisableControls;
while not eof do
begin
if fieldbyname('sel').AsBoolean then
begin
ADO_Cmd.Append;
ADO_Cmd.FieldByName('userID').Value:=trim(CDS_User.fieldbyname('userID').AsString);
ADO_Cmd.FieldByName('moduleID').Value:=trim(CDS_purview.fieldbyname('moduleID').AsString);
ADO_Cmd.FieldByName('modulesubID').Value:=trim(CDS_purview.fieldbyname('modulesubID').AsString);
ADO_Cmd.Post;
end;
next;
end;
first;
EnableControls;
end;
ADO_Cmd.Connection.CommitTrans;
result:=true;
except
ADO_Cmd.Connection.RollbackTrans;
end;
end;
procedure TfrmpurviewDL.InitPurview();
begin
if CDS_User.IsEmpty then exit;
with ADO_purview do
begin
close;
Parameters.ParamByName('pUserID').Value:=trim(CDS_User.fieldbyname('userID').AsString);
open;
end;
SCreateCDS20(ADO_purview,CDS_purview);
SInitCDSData20(ADO_purview,CDS_purview);
// CreateAdoToCds(ADO_purview,CDS_purview);
//InitAdoToCds(ADO_purview,CDS_purview);
end;
Procedure TfrmpurviewDL.InitUser();
begin
with ADO_user do
begin
close;
sql.Clear;
sql.Add(' select cast(0 as bit) as sel, * from SY_User WHERE Valid=''Y'' ');
open;
end;
SCreateCDS20(ADO_user,CDS_User);
SInitCDSData20(ADO_user,CDS_User);
//CreateAdoToCds(ADO_user,CDS_User);
//InitAdoToCds(ADO_user,CDS_User);
end;
procedure TfrmpurviewDL.FormCreate(Sender: TObject);
begin
cxGrid2.Align:=AlClient;
InitUser();
InitPurview();
end;
procedure TfrmpurviewDL.tbcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmpurviewDL.tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
InitPurview();
end;
procedure TfrmpurviewDL.N1Click(Sender: TObject);
begin
with CDS_purview do
begin
first;
DisableControls;
while not eof do
begin
edit;
fieldbyname('sel').AsBoolean:=true;
post;
next;
end;
first;
EnableControls;
end;
end;
procedure TfrmpurviewDL.N2Click(Sender: TObject);
begin
with CDS_purview do
begin
first;
DisableControls;
while not eof do
begin
edit;
fieldbyname('sel').AsBoolean:=false;
post;
next;
end;
first;
EnableControls;
end;
end;
procedure TfrmpurviewDL.tbqxClick(Sender: TObject);
begin
if CDS_User.IsEmpty then exit;
if CDS_purview.IsEmpty then exit;
if SavePurview() then
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
end
else
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
end;
procedure TfrmpurviewDL.tbyhaddClick(Sender: TObject);
begin
frmUser:=TfrmUser.create(self);
with frmUser do
begin
formId:=0;
fuserID:='';
if showmodal=1 then
begin
InitUser();
CDS_User.Locate('UserID',trim(fuserID),[]);
InitPurview();
end;
free;
end;
end;
procedure TfrmpurviewDL.tbyhupClick(Sender: TObject);
begin
if CDS_User.IsEmpty then exit;
if trim(CDS_User.FieldByName('userID').AsString)='ADMIN' then exit;
frmUser:=TfrmUser.create(self);
with frmUser do
begin
formId:=1;
fuserID:=trim(CDS_User.fieldByName('UserID').asstring);
//newPassword.PasswordChar:=#0;
//DnewPassword.PasswordChar:=#0;
{if trim(frmMain.username)='ADMIN' THEN
begin
newPassword.PasswordChar:=#0;
DnewPassword.PasswordChar:=#0;
end; }
if showmodal=1 then
begin
InitUser();
CDS_User.Locate('UserID',trim(fuserID),[]);
InitPurview();
end;
free;
end;
end;
procedure TfrmpurviewDL.tbyhdeleteClick(Sender: TObject);
begin
if CDS_User.IsEmpty then exit;
if trim(CDS_User.FieldByName('userID').AsString)='ADMIN' then exit;
if application.MessageBox('<27><>ȷ<EFBFBD><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!',1)=2 then exit;
try
with ADO_Cmd do
begin
close;
sql.Clear;
sql.Add(' delete SY_User ');
sql.Add(' where userID='+quotedstr(trim(CDS_User.fieldbyname('USerID').AsString)));
sql.Add(' delete sy_purview ');
sql.Add(' where userID='+quotedstr(trim(CDS_User.fieldbyname('userID').AsString)));
execsql;
end;
InitUser();
InitPurview();
except
application.MessageBox(<><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',MB_ICONERROR);
end;
end;
procedure TfrmpurviewDL.FormDestroy(Sender: TObject);
begin
frmpurviewDL:=nil;
end;
procedure TfrmpurviewDL.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmpurviewDL.UserNameChange(Sender: TObject);
begin
if ADO_user.Active then
begin
SDofilter(ADO_user, SGetFilters(Panel2, 1, 2));
SCreateCDS20(ADO_user, CDS_User);
SInitCDSData20(ADO_user, CDS_User);
end;
end;
end.