📄 u_userface_set.pas
字号:
unit U_userFace_set;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_Form_base, DB, ADODB, Grids, DBGridEh, StdCtrls, Buttons,
ExtCtrls;
type
TF_UserFace_set = class(TF_Form_base)
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
BTN_COPY: TBitBtn;
Edit2: TEdit;
GroupBox2: TGroupBox;
DBGridEh2: TDBGridEh;
Q_mainSID: TGuidField;
Q_mainCNID: TGuidField;
Q_mainMainmenu: TStringField;
Q_mainMCaption: TStringField;
Q_mainOrderNO: TIntegerField;
Q_detailSID: TGuidField;
Q_detailCNID: TGuidField;
Q_detailOrderNO: TIntegerField;
Q_detailFormname: TStringField;
Q_detail_Insert: TBooleanField;
Q_detail_Edit: TBooleanField;
Q_detail_Delete: TBooleanField;
Q_detail_Find: TBooleanField;
Q_detail_Print: TBooleanField;
Q_detail_View: TBooleanField;
Q_detail_EditPrint: TBooleanField;
Q_detail_Aduit: TBooleanField;
Q_detail_Other: TBooleanField;
Label2: TLabel;
Q_TEMP: TADOQuery;
Q_detailFcaption: TStringField;
GroupBox1: TGroupBox;
DBGridEh1: TDBGridEh;
Q_detailHasChild: TBooleanField;
Q_detailMCaption: TStringField;
procedure Edit1Change(Sender: TObject);
procedure BTN_COPYClick(Sender: TObject);
procedure Q_mainBeforeInsert(DataSet: TDataSet);
procedure Q_mainAfterInsert(DataSet: TDataSet);
procedure Q_detailBeforeInsert(DataSet: TDataSet);
procedure Q_detailAfterInsert(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure DBGridEh1Exit(Sender: TObject);
procedure DBGridEh2Exit(Sender: TObject);
procedure DBGridEh2Columns1EditButtonClick(Sender: TObject;
var Handled: Boolean);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
private
{ Private declarations }
public
LAST_ORDER: integer;
UserCNID: string;
{ Public declarations }
end;
var
F_UserFace_set: TF_UserFace_set;
implementation
uses U_data, U_Form_Select;
{$R *.dfm}
procedure TF_UserFace_set.Edit1Change(Sender: TObject);
begin
inherited;
SQL_S := 'Select * from TB_Acount where Ucode=''' + Trim(edit1.Text) + '''';
SQL_OPen(sql_s);
UserCNID := DM.Q_TempA.fieldbyname('SID').AsString; //先得到此用户的SID
SQL_S := 'SELECT * FRoM TB_Acount_Menu WHERE Cnid in (Select SID from TB_Acount where Ucode= ''' + Trim(edit1.Text) + ''') ORDER BY OrderNo';
Q_main.Close;
Q_main.SQL.Clear;
Q_main.SQL.Add(Sql_s);
Q_main.Open;
Dbgrideh1.ReadOnly := not (Q_main.RecordCount > 0);
DbgridEh2.ReadOnly := not (Q_main.RecordCount > 0);
end;
procedure TF_UserFace_set.BTN_COPYClick(Sender: TObject);
var
CODE: string;
OCNID: string;
begin
inherited;
CODE := TRIM(EDIT2.TEXT);
if UPPERCASE(CODE) = UPPERCASE(EDIT1.TEXT) then
begin
MessageDlg('账号相同不能复制!', mtWarning, [mbOK], 0);
EXIT;
end;
if CODE = '' then
begin
MessageDlg('请填写好要复制的目标账号!', mtWarning, [mbOK], 0);
Edit2.SetFocus;
Exit;
end;
SQL_S := 'select * from TB_Acount_Menu where CNID in (Select Sid from TB_Acount where Ucode=''' + CODE + ''') ORDER BY OrderNo';
DM.Q_TempC.Close;
DM.Q_TempC.SQL.Clear;
DM.Q_TempC.SQL.Add(Sql_s);
DM.Q_TempC.Open;
if DM.Q_TempC.Eof then
begin
MessageDlg('没有这个目标账号,请检查输入的是否正确!', mtWarning, [mbOK], 0);
Edit2.SetFocus;
exit;
end;
//////////////////先删除以前的
SQL_S := 'SELECT COUNT(*) FROM TB_Acount_Menu WHERE CNID in (select SID from TB_ACount where UCode=''' + Code + '''';
SQL_OPEN(SQL_S);
if DM.Q_TempA.FieldS[0].ASINTEGER > 0 then
begin
if APPLICATION.MessageBox('这个工号已经设置过权限,请问是否删除以前的设置', '提示', MB_YESNO) = IDYES then
begin
SQL_S := 'DELETE TB_Acount_menu WHERE CNID in (select SID from TB_Acount where Ucode=''' + Code + '''';
SQL_EXEC(SQL_S);
end;
end;
//////////////////////////////// 得到这个账号的CNID
SQL_S := 'Select * from TB_Acount where Ucode=''' + code + '''';
SQL_OPEN(Sql_s);
OCNID := DM.Q_TempA.fieldbyname('SID').AsString;
/////////////////////////////
SQL_S := 'Select * from TB_Acount_Menu where CNID in (select SID from TB_Acount where Ucode=''' + edit1.Text + ''')';
SQL_OPEN(Sql_s);
//开始复制
while not DM.Q_TempA.Eof do
begin
Q_MAIN.Append;
Q_main.FieldByName('CNID').AsString := OCNID;
Q_MAIN.FieldByName('Orderno').ASSTRING := DM.Q_TempA.FIELDBYNAME('Orderno').ASSTRING;
Q_MAIN.FieldByName('Mainmenu').ASSTRING := DM.Q_TempA.FIELDBYNAME('Mainmenu').ASSTRING;
Q_MAIN.FieldByName('MCaption').ASSTRING := DM.Q_TempA.FIELDBYNAME('MCaption').ASSTRING;
// Q_MAIN.FieldByName('BackGround').ASSTRING:=F_DATA.Q_TEMP5.FIELDBYNAME('BackGround').ASSTRING;
Q_MAIN.UpdateBatch(ARALL); //更新主表
SQL_S := 'SELECT * FROM TB_Acount_detail WHERE CNID=''' + DM.Q_TempA.FIELDBYNAME('SID').ASSTRING + '''';
DM.Q_TempC.Close;
DM.Q_TempC.SQL.Clear;
DM.Q_TempC.SQL.Add(SQL_S);
DM.Q_TempC.OPEN;
while not DM.Q_TempC.Eof do
begin
Q_DETAIL.APPEND;
Q_DETAIL.FieldByName('Formname').ASSTRING := DM.Q_TempC.FIELDBYNAME('Formname').ASSTRING;
Q_DETAIL.FieldByName('_INSERT').ASSTRING := DM.Q_TempC.FIELDBYNAME('_INSERT').ASSTRING;
Q_DETAIL.FieldByName('_DELETE').ASSTRING := DM.Q_TempC.FIELDBYNAME('_DELETE').ASSTRING;
Q_DETAIL.FieldByName('_EDIT').ASSTRING := DM.Q_TempC.FIELDBYNAME('_EDIT').ASSTRING;
Q_DETAIL.FieldByName('_FIND').ASSTRING := DM.Q_TempC.FIELDBYNAME('_FIND').ASSTRING;
Q_DETAIL.FieldByName('_OTHER').ASSTRING := DM.Q_TempC.FIELDBYNAME('_OTHER').ASSTRING;
Q_DETAIL.FieldByName('_view').ASSTRING := DM.Q_TempC.FIELDBYNAME('_view').ASSTRING;
Q_DETAIL.FieldByName('_Print').ASSTRING := DM.Q_TempC.FIELDBYNAME('_print').ASSTRING;
Q_DETAIL.FieldByName('_editprint').ASSTRING := DM.Q_TempC.FIELDBYNAME('_editprint').ASSTRING;
Q_DETAIL.FieldByName('_aduit').ASSTRING := DM.Q_TempC.FIELDBYNAME('_aduit').ASSTRING;
Q_DETAIL.UpdateBatch(ARALL);
///////////////////////
DM.Q_TempC.NEXT;
end;
DM.Q_TempA.next;
end;
end;
procedure TF_UserFace_set.Q_mainBeforeInsert(DataSet: TDataSet);
begin
inherited;
if UserCNID = '' then Abort;
LAST_ORDER := Q_MAIN.FIELDBYNAME('OrderNo').ASINTEGER;
end;
procedure TF_UserFace_set.Q_mainAfterInsert(DataSet: TDataSet);
begin
inherited;
//CREATEGUID(MY_GUID);
//Q_MAIN.FIELDBYNAME('SID').ASSTRING := GUIDTOSTRING(MY_GUID);
Q_main.FieldByName('CNID').AsString := Usercnid;
Q_MAIN.FIELDBYNAME('OrderNo').ASINTEGER := LAST_ORDER + 1;
end;
procedure TF_UserFace_set.Q_detailBeforeInsert(DataSet: TDataSet);
begin
inherited;
LAST_ORDER := Q_detail.FIELDBYNAME('OrderNo').ASINTEGER;
end;
procedure TF_UserFace_set.Q_detailAfterInsert(DataSet: TDataSet);
//var
//MY_GUID: TGUID;
begin
inherited;
//CREATEGUID(MY_GUID);
//Q_DETAIL.FIELDBYNAME('SID').ASSTRING := GUIDTOSTRING(MY_GUID);
Q_Detail.FieldByName('CNID').ASSTRING := Q_MAIN.FIELDBYNAME('Sid').ASSTRING;
Q_detail.FIELDBYNAME('OrderNo').ASINTEGER := LAST_ORDER + 1;
end;
procedure TF_UserFace_set.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Q_DETAIL.UpdateBatch(ARALL);
Q_MAIN.UpdateBatch(ARALL);
inherited;
end;
procedure TF_UserFace_set.FormShow(Sender: TObject);
begin
inherited;
UserCNID := '';
EDIT1.Text := LOGIN_CODE;
Edit1Change(SENDER);
//EDIT1.Enabled := Upcase(LOGIN_CODE)= 'SYSTEM';
// BTN_COPY.enabled := Upcase(LOGIN_CODE) = 'SYSTEM';
//DBGRIDEH1.ReadOnly := not (Upcase(LOGIN_CODE) = 'SYSTEM');
// DBGRIDEH2.ReadOnly := not (Upcase(LOGIN_CODE) = 'SYSTEM');
Q_DETAIL.Open;
end;
procedure TF_UserFace_set.DBGridEh1Exit(Sender: TObject);
begin
inherited;
Q_MAIN.UpdateBatch(ARALL);
end;
procedure TF_UserFace_set.DBGridEh2Exit(Sender: TObject);
begin
inherited;
Q_DETAIL.UpdateBatch(ARALL)
end;
procedure TF_UserFace_set.DBGridEh2Columns1EditButtonClick(Sender: TObject;
var Handled: Boolean);
begin
inherited;
Application.CreateForm(TF_Form_Select, F_Form_Select);
F_Form_Select.ShowModal;
Q_DETAIL.EDIT;
Q_DETAIL.FIELDBYNAME('Formname').ASSTRING := F_Form_Select.RESULT_FORM;
F_Form_Select.RELEASE;
end;
procedure TF_UserFace_set.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
inherited;
MYDBGridEHDrawColumnCelL(DBGRIDEH1, Rect, Datacol, Column, State);
end;
procedure TF_UserFace_set.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
inherited;
MYDBGridEHDrawColumnCelL(DBGRIDEH2, Rect, Datacol, Column, State);
end;
initialization
RegisterClass(TF_UserFace_set);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -