📄 basecompanyinfo.pas
字号:
unit BaseCompanyInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base, DB, ADODB, StdCtrls, DBCtrls, Mask, ExtCtrls;
type
TfrmBaseCompanyInfo = class(TfrmBase)
dsCompanyInfo: TDataSource;
Panel1: TPanel;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
Label11: TLabel;
DBEdit11: TDBEdit;
Label12: TLabel;
DBEdit12: TDBEdit;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBCheckBox2: TDBCheckBox;
DBCheckBox3: TDBCheckBox;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
btModify: TButton;
btExit: TButton;
btSave: TButton;
btCancel: TButton;
procedure FormCreate(Sender: TObject);
procedure dsCompanyInfoStateChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btModifyClick(Sender: TObject);
procedure btSaveClick(Sender: TObject);
procedure btCancelClick(Sender: TObject);
procedure btExitClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
protected
bCanModify: Boolean;
function CheckSave: Boolean; {检测当前数据是否保存函数}
procedure GetPermiss; virtual; {得到当前用户的权限}
public
{ Public declarations }
end;
var
frmBaseCompanyInfo: TfrmBaseCompanyInfo;
implementation
uses DataModule, Global;
{$R *.dfm}
{检测当前数据是否保存函数}
function TfrmBaseCompanyInfo.CheckSave: Boolean;
begin
Result := True;
if dmClient.QCompanyInfo.State in [dsInsert, dsEdit] then //判断当前状态
case Messagedlg('是否保存当前的修改?', mtWarning, [mbYes, mbNo, mbCancel], 0) of
mrYes:
begin
dmClient.QCompanyInfo.Post;
Result := dmClient.QCompanyInfo.State = dsBrowse; //状态是否为Browse
end;
mrNo:
begin
dmClient.QCompanyInfo.Cancel;
Result := dmClient.QCompanyInfo.State = dsBrowse; //状态是否为Browse
end;
mrCancel:
Result := false;
end
end;
{得到用户对当前窗体的操作权限}
procedure TfrmBaseCompanyInfo.GetPermiss;
begin
{初始化变量}
bCanModify := G_bAdmin;
if G_bAdmin then //判断是否为超级用户
bCanModify := G_bAdmin
else //否则查找当前用户是否有当前窗体的操作权限
with dmClient.spUserRight do
if Locate('fModuleID;fActionName', varArrayOf([iModuleID, sFunctionName]), []) then
bCanModify := FieldbyName('fEdit').asBoolean;
end;
procedure TfrmBaseCompanyInfo.FormCreate(Sender: TObject);
begin
inherited;
GetPermiss;
if not dmClient.QCompanyInfo.Active then dmClient.QCompanyInfo.Open;
dsCompanyInfoStateChange(self);
end;
procedure TfrmBaseCompanyInfo.dsCompanyInfoStateChange(Sender: TObject);
var
i : Integer;
begin
inherited;
btSave.Enabled := dmClient.QCompanyInfo.State in [dsInsert, dsEdit];
btCancel.Enabled := btSave.Enabled;
btModify.Enabled := not btSave.Enabled and bCanModify;
{设置编辑控件的ReadOnly}
with Panel1 do
for i := 0 to ControlCount - 1 do
if Controls[i] is TDBEdit then
(Controls[i] as TDBEdit).ReadOnly := not btSave.Enabled
else if Controls[i] is TDBMemo then
(Controls[i] as TDBMemo).ReadOnly := not btSave.Enabled;
end;
procedure TfrmBaseCompanyInfo.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
frmBaseCompanyInfo := nil;
end;
procedure TfrmBaseCompanyInfo.btModifyClick(Sender: TObject);
begin
inherited;
dmClient.QCompanyInfo.Edit;
end;
procedure TfrmBaseCompanyInfo.btSaveClick(Sender: TObject);
begin
inherited;
dmClient.QCompanyInfo.Post;
end;
procedure TfrmBaseCompanyInfo.btCancelClick(Sender: TObject);
begin
inherited;
if Messagedlg('您确定要取消修改吗?', mtWarning, [mbOk, mbCancel], 0) = mrOk then
dmClient.QCompanyInfo.Cancel;
end;
procedure TfrmBaseCompanyInfo.btExitClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmBaseCompanyInfo.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
CanClose := CheckSave;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -