⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy120.pas

📁 一套融入了系统营销管理思想的管理软件产品
💻 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 + -