📄 sy130.pas
字号:
unit SY130;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MasterDetail, Menus, Db, DBTables, Grids, DBGrids, Buttons, ExtCtrls,
StdCtrls, Mask, DBCtrls;
type
TfmSY130 = class(TfmMasterDetail)
qyMasterCreateMan: TStringField;
qyMasterCreateDate: TStringField;
qyMasterCreateTime: TStringField;
qyMasterModifyMan: TStringField;
qyMasterModifyDate: TStringField;
qyMasterModifyTime: TStringField;
qyDetailCompanyID: TStringField;
qyDetailProgramID: TStringField;
qyDetailRun: TStringField;
qyDetailAppend: TStringField;
qyDetailEdit: TStringField;
qyDetailDel: TStringField;
qyDetailReport: TStringField;
qyDetailBrowseAll: TStringField;
qyDetailEditAll: TStringField;
qyMasterCompanyID: TStringField;
Label1: TLabel;
ED4: TDBEdit;
edProgramID: TDBEdit;
qyMasterUserID: TStringField;
qyMasterUserName: TStringField;
Label3: TLabel;
qyDetailProgramName: TStringField;
qyDetailUserID: TStringField;
procedure qyMasterBeforeDelete(DataSet: TDataSet);
procedure qyDetailBeforeOpen(DataSet: TDataSet);
procedure qyDetailNewRecord(DataSet: TDataSet);
procedure qyDetailBeforePost(DataSet: TDataSet);
procedure gdDetailEditButtonClick(Sender: TObject);
procedure dsMasterStateChange(Sender: TObject);
procedure qyDetailProgramIDValidate(Sender: TField);
procedure qyMasterBeforeInsert(DataSet: TDataSet);
procedure qyMasterAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
procedure OpenDB; override;
end;
var
fmSY130: TfmSY130;
implementation
uses Main, DataModule, PublicFunction, CheckData, DataSearch, BaseSearch,
GetData;
{$R *.DFM}
{ TfmSY130 }
procedure TfmSY130.OpenDB;
begin
qyMaster.Close;
OrderBySQL := 'UserID';
qyMaster.SQL.Text := SQLText;
qyMaster.Open;
end;
procedure TfmSY130.qyMasterBeforeDelete(DataSet: TDataSet);
begin
Abort;
inherited;
end;
procedure TfmSY130.qyDetailBeforeOpen(DataSet: TDataSet);
begin
inherited;
qyDetail.ParamByName('UserID').AsString := qyMaster.FieldByName('UserID').AsString;
end;
procedure TfmSY130.qyDetailNewRecord(DataSet: TDataSet);
begin
inherited;
with qyDetail do
begin
FieldByName('ProgramID').AsString := Space(10);
FieldByName('UserID').AsString := qyMaster.FieldByName('UserID').AsString;
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 TfmSY130.qyDetailBeforePost(DataSet: TDataSet);
begin
inherited;
if qyDetail.State = dsInsert then
begin
if not CheckProgramID(qyDetail.FieldByName('ProgramID').AsString) then
begin
gdDetail.SelectedField := qyDetailProgramID;
Abort;
end;
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('SELECT ProgramID ');
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('ProgramID').AsString <> '' then
begin
MyWarning('程序编号:[' + qyDetail.FieldByName('ProgramID').AsString +
']的权限设定数据重复,请重新输入。');
gdDetail.SelectedField := qyDetailProgramID;
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 qyDetail.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 TfmSY130.gdDetailEditButtonClick(Sender: TObject);
begin
inherited;
if (gdDetail.SelectedField.FieldName = 'ProgramID') and
(qyDetail.State in [dsInsert, dsEdit]) then
qyDetail.FieldByName('ProgramID').AsString := Searchdata(edProgramID, DM.qyProgram);
end;
procedure TfmSY130.dsMasterStateChange(Sender: TObject);
begin
inherited;
sbAppend.Enabled := False;
sbDel.Enabled := False;
end;
procedure TfmSY130.qyDetailProgramIDValidate(Sender: TField);
begin
inherited;
qyDetail.FieldByName('ProgramName').AsString :=
GetProgramName(qyDetail.FieldByName('ProgramID').AsString);
end;
procedure TfmSY130.qyMasterBeforeInsert(DataSet: TDataSet);
begin
Abort;
inherited;
end;
procedure TfmSY130.qyMasterAfterScroll(DataSet: TDataSet);
begin
inherited;
sbAppend.Enabled := False;
sbDel.Enabled := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -