📄 sy120.pas
字号:
unit SY120;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MasterDetail, Menus, Db, DBTables, Grids, DBGrids, Buttons, ExtCtrls,
StdCtrls, Mask, DBCtrls;
type
TfmSY120 = class(TfmMasterDetail)
qyMasterProgramID: TStringField;
qyMasterProgramName: TStringField;
qyMasterCreateMan: TStringField;
qyMasterCreateDate: TStringField;
qyMasterCreateTime: TStringField;
qyMasterModifyMan: TStringField;
qyMasterModifyDate: TStringField;
qyMasterModifyTime: TStringField;
qyDetailCompanyID: TStringField;
qyDetailUserID: TStringField;
qyDetailProgramID: TStringField;
qyDetailRun: TStringField;
qyDetailAppend: TStringField;
qyDetailEdit: TStringField;
qyDetailDel: TStringField;
qyDetailReport: TStringField;
qyDetailBrowseAll: TStringField;
qyDetailEditAll: TStringField;
qyDetailUserName: TStringField;
qyMasterCompanyID: TStringField;
Label1: TLabel;
Label2: TLabel;
ED4: TDBEdit;
rgReportOrModify: TDBRadioGroup;
edUserID: TDBEdit;
qyMasterReportOrModify: TStringField;
procedure FormCreate(Sender: TObject);
procedure qyMasterBeforeOpen(DataSet: TDataSet);
procedure qyMasterNewRecord(DataSet: TDataSet);
procedure qyMasterBeforePost(DataSet: TDataSet);
procedure qyDetailBeforeOpen(DataSet: TDataSet);
procedure qyDetailNewRecord(DataSet: TDataSet);
procedure qyDetailBeforePost(DataSet: TDataSet);
procedure qyMasterUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
procedure gdDetailEditButtonClick(Sender: TObject);
procedure qyDetailUserIDValidate(Sender: TField);
procedure dsMasterStateChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure OpenDB; override;
procedure CalcAmount; override;
end;
var
fmSY120: TfmSY120;
implementation
uses Main, DataModule, PublicFunction, CheckData, DataSearch, BaseSearch,
GetData;
{$R *.DFM}
{ TfmSY120 }
procedure TfmSY120.FormCreate(Sender: TObject);
begin
inherited;
// sPrevID := '';
end;
procedure TfmSY120.OpenDB;
begin
qyMaster.Close;
OrderBySQL := 'ProgramID';
qyMaster.SQL.Text := SQLText;
qyMaster.Open;
end;
procedure TfmSY120.CalcAmount;
begin
end;
procedure TfmSY120.qyMasterBeforeOpen(DataSet: TDataSet);
begin
inherited;
//with qyMaster do
//begin
// ParamByName('CompanyNo').AsString := sCompanyID;
//end;
end;
procedure TfmSY120.qyMasterNewRecord(DataSet: TDataSet);
begin
inherited;
with qyMaster do
begin
FieldByName('ProgramID').AsString := Space(5);
FieldByName('ProgramName').AsString := Space(30);
FieldByName('ReportOrModify').AsString := '2';
end;
end;
procedure TfmSY120.qyMasterBeforePost(DataSet: TDataSet);
begin
inherited;
if qyMaster.State = dsInsert then
begin
if Trim(qyMaster.FieldByName('ProgramID').AsString) = '' then
begin
NullWarning('程序编号');
ED1.SetFocus;
Abort;
end;
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('SELECT ProgramID FROM Programs ');
SQL.Add('WHERE CompanyID = :CompanyID AND ProgramID = :ProgramID ');
ParamByName('CompanyID').AsString := sCompanyID;
ParamByName('ProgramID').AsString := qyMaster.FieldByName('ProgramID').AsString;
Open;
end;
if qyTemp.FieldByName('ProgramID').AsString <> '' then
begin
RepeatWarning('程序编号');
ED1.SetFocus;
Abort;
end;
end;
if Trim(qyMaster.FieldByName('ProgramName').AsString) = '' then
begin
NullWarning('程序名称');
ED4.SetFocus;
Abort;
end;
end;
procedure TfmSY120.qyDetailBeforeOpen(DataSet: TDataSet);
begin
inherited;
qyDetail.ParamByName('ProgramID').AsString := qyMaster.FieldByName('ProgramID').AsString;
end;
procedure TfmSY120.qyDetailNewRecord(DataSet: TDataSet);
begin
inherited;
with qyDetail do
begin
FieldByName('ProgramID').AsString := qyMaster.FieldByName('ProgramID').AsString;
FieldByName('UserID').AsString := Space(10);
FieldByName('Run').AsString := 'Y';
FieldByName('Append').AsString := 'Y';
FieldByName('Edit').AsString := 'Y';
FieldByName('Del').AsString := 'Y';
FieldByName('Report').AsString := 'Y';
FieldByName('BrowseAll').AsString := 'Y';
FieldByName('EditAll').AsString := 'Y';
end;
end;
procedure TfmSY120.qyDetailBeforePost(DataSet: TDataSet);
begin
inherited;
if qyDetail.State = dsInsert then
begin
if not CheckUserID(qyDetail.FieldByName('UserID').AsString) then
begin
gdDetail.SelectedField := qyDetailUserID;
Abort;
end;
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('SELECT UserID ');
SQL.Add('FROM UserAuthority ');
SQL.Add('WHERE CompanyID = :CompanyID AND ProgramID = :ProgramID ');
SQL.Add('AND UserID = :UserID ');
ParamByName('CompanyID').AsString := sCompanyID;
ParamByName('ProgramID').AsString := qyDetail.FieldByName('ProgramID').AsString;
ParamByName('UserID').AsString := qyDetail.FieldByName('UserID').AsString;
Open;
end;
if qyTemp.FieldByName('UserID').AsString <> '' then
begin
MyWarning('使用者:[' + qyDetail.FieldByName('UserID').AsString +
']的权限数据设定重复,请重新输入。');
gdDetail.SelectedField := qyDetailUserID;
Abort;
end;
end;
if AtStr(qyDetail.FieldByName('Run').AsString, 'YN') = 0 then
qyDetail.FieldByName('Run').AsString := 'N';
if AtStr(qyDetail.FieldByName('Append').AsString, 'YN') = 0 then
qyDetail.FieldByName('Append').AsString := 'N';
if AtStr(qyDetail.FieldByName('Edit').AsString, 'YN') = 0 then
qyDetail.FieldByName('Edit').AsString := 'N';
if AtStr(qyDetail.FieldByName('Del').AsString, 'YN') = 0 then
qyDetail.FieldByName('Del').AsString := 'N';
if AtStr(qyDetail.FieldByName('Report').AsString, 'YN') = 0 then
qyDetail.FieldByName('Report').AsString := 'N';
if AtStr(qyDetail.FieldByName('BrowseAll').AsString, 'YN') = 0 then
qyDetail.FieldByName('BrowseAll').AsString := 'N';
if AtStr(qyDetail.FieldByName('EditAll').AsString, 'YN') = 0 then
qyDetail.FieldByName('EditAll').AsString := 'N';
if qyMaster.FieldByName('ReportOrModify').AsString = '1' then
begin
qyDetail.FieldByName('Append').AsString := 'N';
qyDetail.FieldByName('Edit').AsString := 'N';
qyDetail.FieldByName('Del').AsString := 'N';
qyDetail.FieldByName('BrowseAll').AsString := 'N';
qyDetail.FieldByName('EditAll').AsString := 'N';
end;
end;
procedure TfmSY120.qyMasterUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
if UpdateKind = ukDelete then
begin
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('DELETE FROM UserAuthority ');
SQL.Add('WHERE CompanyID = :CompanyID AND ProgramID = :ProgramID ');
ParamByName('CompanyID').AsString := sCompanyID;
ParamByName('ProgramID').AsString := DataSet.FieldByName('ProgramID').OldValue;
ExecSQL;
end;
end;
inherited;
end;
procedure TfmSY120.gdDetailEditButtonClick(Sender: TObject);
begin
inherited;
if (gdDetail.SelectedField.FieldName = 'UserID') and
(qyDetail.State in [dsInsert, dsEdit]) then
qyDetail.FieldByName('UserID').AsString := Searchdata(edUserID, DM.qyUsers);
end;
procedure TfmSY120.qyDetailUserIDValidate(Sender: TField);
begin
inherited;
qyDetail.FieldByName('UserName').AsString :=
GetUsersName(qyDetail.FieldByName('UserID').AsString);
end;
procedure TfmSY120.dsMasterStateChange(Sender: TObject);
begin
inherited;
rgReportOrModify.Enabled := (qyMaster.State = dsInsert);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -