ClassesForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:3k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit ClassesForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   Grids, DBGrids, Db, ClassesData, StdCtrls, ComCtrls, DBCtrls, ExtCtrls;
  6. type
  7.   TFormClasses = class(TForm)
  8.     dsClassReg: TDataSource;
  9.     dsClasses: TDataSource;
  10.     Tab: TTabControl;
  11.     DBGridClasses: TDBGrid;
  12.     DBGridPeopleReg: TDBGrid;
  13.     dsPeopleReg: TDataSource;
  14.     Splitter1: TSplitter;
  15.     Panel1: TPanel;
  16.     DBGridClassReg: TDBGrid;
  17.     MemoNote: TDBMemo;
  18.     Splitter2: TSplitter;
  19.     Splitter3: TSplitter;
  20.     procedure FormCreate(Sender: TObject);
  21.     procedure TabChange(Sender: TObject);
  22.     procedure DBGridClassRegEditButtonClick(Sender: TObject);
  23.     procedure DBGridPeopleRegEditButtonClick(Sender: TObject);
  24.     procedure FormDestroy(Sender: TObject);
  25.   private
  26.     dm: TDmClasses;
  27.     SqlCommands: TStringList;
  28.   public
  29.     { Public declarations }
  30.   end;
  31. var
  32.   FormClasses: TFormClasses;
  33. implementation
  34. uses
  35.   CompaniesForm;
  36. {$R *.DFM}
  37. procedure TFormClasses.FormCreate(Sender: TObject);
  38. begin
  39.   dm := TDmClasses.Create (self);
  40.   // connect the datasets to the datasources
  41.   dsClasses.Dataset := dm.IBClasses;
  42.   dsClassReg.DataSet := dm.IBClassReg;
  43.   dsPeopleReg.DataSet := dm.IBPeopleReg;
  44.   // open the datasets
  45.   dm.IBClasses.Active := True;
  46.   dm.IBClassReg.Active := True;
  47.   dm.IBPeopleReg.Active := True;
  48.   // prepare the SQL for the three tabs
  49.   SqlCommands := TStringList.Create;
  50.   SqlCommands.Add (' where Starts_On > ''NOW''');
  51.   SqlCommands.Add (' where Starts_On <= ''NOW'' and ' +
  52.     ' extract (year from Starts_On) >= extract(year from current_timestamp)');
  53.   SqlCommands.Add (' where Extract (YEAR from Starts_On) < ' +
  54.     ' Extract(YEAR from current_timestamp)');
  55. end;
  56. procedure TFormClasses.TabChange(Sender: TObject);
  57. begin
  58.   dm.IBClasses.Active := False;
  59.   dm.IBClasses.SelectSQL [1] :=
  60.     SqlCommands [Tab.TabIndex];
  61.   dm.IBClasses.Active := True;
  62. end;
  63. procedure TFormClasses.DBGridClassRegEditButtonClick(Sender: TObject);
  64. var
  65.   CompanyName: string;
  66.   CompanyId: Integer;
  67. begin
  68.   CompanyId := dm.IBClassReg.FieldByName ('id_Company').AsInteger;
  69.   if TFormCompanies.SelectCompany (CompanyName, CompanyId) then
  70.   begin
  71.     dm.IBClassReg.Edit;
  72.     dm.IBClassReg.FieldByName (
  73.       'Name').AsString := CompanyName;
  74.     dm.IBClassReg.FieldByName (
  75.       'id_Company').AsInteger := CompanyId;
  76.   end;
  77. end;
  78. procedure TFormClasses.DBGridPeopleRegEditButtonClick(Sender: TObject);
  79. var
  80.   PersonName: string;
  81.   CompanyId, PersonId: Integer;
  82. begin
  83.   PersonId := 0;
  84.   CompanyId := dm.IBClassReg.FieldByName ('id_Company').AsInteger;
  85.   if not dm.IBPeopleReg.FieldByName ('id_Person').IsNull then
  86.     PersonId := dm.IBPeopleReg.FieldByName ('id_Person').AsInteger;
  87.   if TFormCompanies.SelectPerson (CompanyId, PersonId, PersonName) then
  88.   begin
  89.     if not (dm.IBPeopleReg.State in dsEditModes) then
  90.       dm.IBPeopleReg.Edit;
  91.     dm.IBPeopleReg.FieldByName (
  92.       'Name').AsString := PersonName;
  93.     dm.IBPeopleReg.FieldByName (
  94.       'ID_Person').AsInteger := PersonId;
  95.   end;
  96. end;
  97. procedure TFormClasses.FormDestroy(Sender: TObject);
  98. begin
  99.   SqlCommands.Free;
  100. end;
  101. end.