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

📄 masterdetailmultidemodata.pas

📁 DevExpress ExpressQuantumGrid Suite v5.9 Full Source
💻 PAS
字号:
unit MasterDetailMultiDemoData;

interface

uses
  Forms, SysUtils, Classes, DB, cxStyles, cxClasses, cxGridTableView,
  cxGridCardView, cxGridBandedTableView, DBTables, DemoUtils;

type
  TMasterDetailMultiDemoMainDM = class(TDataModule)
    dsFilms: TDataSource;
    dsFilmsPersons: TDataSource;
    dsPersonsLine: TDataSource;
    tblPersonsLine: TTable;
    tblPersonsLineID: TAutoIncField;
    tblPersonsLineNAME: TStringField;
    DataBase: TDataBase;
    qryFilmsPersons: TQuery;
    qryFilmsPersonsName: TStringField;
    qryFilmsPersonsPersonLineID: TIntegerField;
    qryFilmsPersonsFIRSTNAME: TStringField;
    qryFilmsPersonsSECONDNAME: TStringField;
    qryFilmsPersonsNICKNAME: TStringField;
    qryFilmsPersonsBIRTHNAME: TStringField;
    qryFilmsPersonsDATEOFBIRTH: TDateTimeField;
    qryFilmsPersonsLOCATIONOFBIRTH: TStringField;
    qryFilmsPersonsBIOGRAPHY: TMemoField;
    qryFilmsPersonsHOMEPAGE: TStringField;
    qryFilmsPersonsID: TAutoIncField;
    qryFilmsPersonsFilmID: TIntegerField;
    qryFilmsPersonsBIRTHCOUNTRY: TIntegerField;
    qryFilmsPersonsGender: TBooleanField;
    tblPersonsHelper: TTable;
    tblPersonsHelperID: TAutoIncField;
    tblPersonsHelperFIRSTNAME: TStringField;
    tblPersonsHelperSECONDNAME: TStringField;
    tblPersonsHelperGENDER: TBooleanField;
    tblPersonsHelperBIRTHNAME: TStringField;
    tblPersonsHelperDATEOFBIRTH: TDateTimeField;
    tblPersonsHelperBIRTHCOUNTRY: TIntegerField;
    tblPersonsHelperLOCATIONOFBIRTH: TStringField;
    tblPersonsHelperBIOGRAPHY: TMemoField;
    tblPersonsHelperNICKNAME: TStringField;
    tblPersonsHelperHOMEPAGE: TStringField;
    tblPersonsStaffHelper: TTable;
    tblPersonsStaffHelperID: TAutoIncField;
    tblPersonsStaffHelperFILMID: TIntegerField;
    tblPersonsStaffHelperPERSONLINEID: TIntegerField;
    tblPersonsStaffHelperPERSONID: TIntegerField;
    tblPersonsStaffHelperDESCRIPTION: TStringField;
    dsFilmsCompanies: TDataSource;
    qryFilmsCompanies: TQuery;
    qryFilmsCompaniesName: TStringField;
    qryFilmsCompaniesType: TStringField;
    qryFilmsCompaniesCountry: TStringField;
    qryFilmsCompaniesWebSite: TStringField;
    qryFilmsCompaniesID: TIntegerField;
    qryFilmsCompaniesFILMID: TIntegerField;
    tblFilmsScreens: TTable;
    tblFilmsScreensID: TAutoIncField;
    tblFilmsScreensFILMID: TIntegerField;
    tblFilmsScreensSCREEN: TBlobField;
    tblFilmsScreensICON: TBlobField;
    dsFilmsScreens: TDataSource;
    qryFilms: TQuery;
    qryFilmsID: TAutoIncField;
    qryFilmsCAPTION: TStringField;
    qryFilmsYEAR: TIntegerField;
    qryFilmsTAGLINE: TStringField;
    qryFilmsPLOTOUTLINE: TStringField;
    qryFilmsRUNTIME: TIntegerField;
    qryFilmsCOLOR: TStringField;
    qryFilmsPHOTO: TBlobField;
    qryFilmsICON: TBlobField;
    qryFilmsWEBSITE: TStringField;
    tblGenres: TTable;
    tblGenresID: TAutoIncField;
    tblGenresNAME: TStringField;
    cxStyleRepository: TcxStyleRepository;
    GridTableViewStyleSheetDevExpress: TcxGridTableViewStyleSheet;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxStyle4: TcxStyle;
    cxStyle5: TcxStyle;
    cxStyle6: TcxStyle;
    cxStyle7: TcxStyle;
    cxStyle8: TcxStyle;
    cxStyle9: TcxStyle;
    cxStyle10: TcxStyle;
    cxStyle11: TcxStyle;
    cxStyle12: TcxStyle;
    cxStyle13: TcxStyle;
    cxStyle14: TcxStyle;
    GridBandedTableViewStyleSheetDevExpress: TcxGridBandedTableViewStyleSheet;
    cxStyle15: TcxStyle;
    cxStyle16: TcxStyle;
    cxStyle17: TcxStyle;
    cxStyle18: TcxStyle;
    cxStyle19: TcxStyle;
    cxStyle20: TcxStyle;
    cxStyle21: TcxStyle;
    cxStyle22: TcxStyle;
    cxStyle23: TcxStyle;
    cxStyle24: TcxStyle;
    cxStyle25: TcxStyle;
    cxStyle26: TcxStyle;
    cxStyle27: TcxStyle;
    cxStyle28: TcxStyle;
    cxStyle29: TcxStyle;
    cxStyle30: TcxStyle;
    GridCardViewStyleSheetDevExpress: TcxGridCardViewStyleSheet;
    cxStyle31: TcxStyle;
    cxStyle32: TcxStyle;
    cxStyle33: TcxStyle;
    cxStyle34: TcxStyle;
    cxStyle35: TcxStyle;
    cxStyle36: TcxStyle;
    cxStyle37: TcxStyle;
    cxStyle38: TcxStyle;
    cxStyle39: TcxStyle;
    cxStyle40: TcxStyle;
    procedure qryFilmsPersonsCalcFields(DataSet: TDataSet);
    procedure qryFilmsPersonsBeforePost(DataSet: TDataSet);
    procedure qryFilmsPersonsAfterInsert(DataSet: TDataSet);
  private
    { Private declarations }
    FIsInserting: Boolean;
  public
    { Public declarations }
  end;

var
  MasterDetailMultiDemoMainDM: TMasterDetailMultiDemoMainDM;

implementation

{$R *.dfm}


procedure TMasterDetailMultiDemoMainDM.qryFilmsPersonsCalcFields(
  DataSet: TDataSet);
begin
  SetStringFieldValue(qryFilmsPersonsName,
    qryFilmsPersonsFIRSTNAME.Value + ' ' + qryFilmsPersonsSECONDNAME.Value);
end;

procedure TMasterDetailMultiDemoMainDM.qryFilmsPersonsBeforePost(
  DataSet: TDataSet);
  procedure InsertNewPerson;
  begin
    tblPersonsHelper.Insert;

    tblPersonsHelperFIRSTNAME.AsString := qryFilmsPersonsFIRSTNAME.AsString;
    tblPersonsHelperSECONDNAME.Value := qryFilmsPersonsSECONDNAME.Value;
    tblPersonsHelperGENDER.AsBoolean := qryFilmsPersonsGender.AsBoolean;
    tblPersonsHelperBIRTHNAME.AsString := qryFilmsPersonsBIRTHNAME.AsString;
    tblPersonsHelperDATEOFBIRTH.AsDateTime := qryFilmsPersonsDATEOFBIRTH.AsDateTime;
    tblPersonsHelperBIRTHCOUNTRY.AsString := qryFilmsPersonsBIRTHCOUNTRY.AsString;
    tblPersonsHelperLOCATIONOFBIRTH.AsString :=
      qryFilmsPersonsLOCATIONOFBIRTH.AsString;
    tblPersonsHelperBIOGRAPHY.AsString := qryFilmsPersonsBIOGRAPHY.AsString;
    tblPersonsHelperNICKNAME.AsString := qryFilmsPersonsNICKNAME.AsString;
    tblPersonsHelperHOMEPAGE.AsString := qryFilmsPersonsHOMEPAGE.AsString;

    tblPersonsHelper.Post;
  end;
  procedure InsertNewPersonStaff;
  begin
    tblPersonsStaffHelper.Insert;
    tblPersonsStaffHelperPERSONID.AsInteger := tblPersonsHelperID.AsInteger;
    tblPersonsStaffHelperPERSONLINEID.AsInteger :=
      qryFilmsPersonsPersonLineID.AsInteger;
    tblPersonsStaffHelper.Post;
  end;
begin
  if FIsInserting then
  begin
    InsertNewPerson;
    InsertNewPersonStaff;
    DataSet.Cancel;
    DataSet.Close;
    DataSet.Open;
    DataSet.Locate('ID',tblPersonsStaffHelper.FieldByName('ID').AsInteger,[]);
    Abort;
    FIsInserting := False
  end;
end;

procedure TMasterDetailMultiDemoMainDM.qryFilmsPersonsAfterInsert(
  DataSet: TDataSet);
begin
  FIsInserting := True;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -