Marco Cantù 1998, Mastering Delphi 4

Project: MASTDET.DPR


Project Structure


MASTDET.DPR

program Mastdet;

uses
  Forms,
  MastdetF in 'MastdetF.pas' {Form2};

{$R *.RES}

begin
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

MASTDETF.PAS

unit MastdetF;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, DBGrids, DBTables, Grids, Mask, ExtCtrls;

type
  TForm2 = class(TForm)
    ScrollBox: TScrollBox;
    Label1: TLabel;
    EditCompany: TDBEdit;
    Label2: TLabel;
    EditAddr: TDBEdit;
    Label3: TLabel;
    EditAddr2: TDBEdit;
    Label4: TLabel;
    EditCity: TDBEdit;
    Label5: TLabel;
    EditState: TDBEdit;
    Label6: TLabel;
    EditZip: TDBEdit;
    Label7: TLabel;
    EditCountry: TDBEdit;
    Label8: TLabel;
    EditPhone: TDBEdit;
    Label9: TLabel;
    EditFAX: TDBEdit;
    DBGrid1: TDBGrid;
    DBNavigator: TDBNavigator;
    Panel1: TPanel;
    DataSource1: TDataSource;
    Panel2: TPanel;
    Panel3: TPanel;
    Table1: TTable;
    Table2: TTable;
    DataSource2: TDataSource;
    Table2OrderNo: TFloatField;
    Table2CustNo: TFloatField;
    Table2SaleDate: TDateTimeField;
    Table2ShipDate: TDateTimeField;
    Table2EmpNo: TIntegerField;
    Table2ShipToContact: TStringField;
    Table2ShipToAddr1: TStringField;
    Table2ShipToAddr2: TStringField;
    Table2ShipToCity: TStringField;
    Table2ShipToState: TStringField;
    Table2ShipToZip: TStringField;
    Table2ShipToCountry: TStringField;
    Table2ShipToPhone: TStringField;
    Table2ShipVIA: TStringField;
    Table2PO: TStringField;
    Table2Terms: TStringField;
    Table2PaymentMethod: TStringField;
    Table2ItemsTotal: TCurrencyField;
    Table2TaxRate: TFloatField;
    Table2Freight: TCurrencyField;
    Table2AmountPaid: TCurrencyField;
    Table2Employee: TStringField;
    Table3: TTable;
    DataSource3: TDataSource;
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Table1.Open;
  Table2.Open;
end;

end.

MASTDETF.DFM

object Form2: TForm2
  Left = 205
  Top = 116
  Width = 596
  Height = 305
  ActiveControl = Panel1
  Caption = 'Master Detail with Lookup'
  Font.Color = clBlack
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  Position = poScreenCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 588
    Height = 41
    Align = alTop
    TabOrder = 0
    object DBNavigator: TDBNavigator
      Left = 8
      Top = 8
      Width = 161
      Height = 25
      DataSource = DataSource1
      VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbPost, nbCancel, nbRefresh]
      Flat = False
      Ctl3D = False
      ParentCtl3D = False
      TabOrder = 0
    end
  end
  object Panel2: TPanel
    Left = 0
    Top = 41
    Width = 588
    Height = 104
    Align = alTop
    BevelInner = bvLowered
    BorderWidth = 4
    Caption = 'Panel2'
    TabOrder = 1
    object ScrollBox: TScrollBox
      Left = 6
      Top = 6
      Width = 576
      Height = 92
      HorzScrollBar.Margin = 6
      VertScrollBar.Margin = 6
      Align = alClient
      BorderStyle = bsNone
      TabOrder = 0
      object Label1: TLabel
        Left = 6
        Top = 6
        Width = 44
        Height = 13
        Caption = 'Company'
        FocusControl = EditCompany
      end
      object Label2: TLabel
        Left = 162
        Top = 6
        Width = 28
        Height = 13
        Caption = 'Addr1'
        FocusControl = EditAddr
      end
      object Label3: TLabel
        Left = 318
        Top = 6
        Width = 28
        Height = 13
        Caption = 'Addr2'
        FocusControl = EditAddr2
      end
      object Label4: TLabel
        Left = 474
        Top = 6
        Width = 17
        Height = 13
        Caption = 'City'
        FocusControl = EditCity
      end
      object Label5: TLabel
        Left = 6
        Top = 50
        Width = 25
        Height = 13
        Caption = 'State'
        FocusControl = EditState
      end
      object Label6: TLabel
        Left = 112
        Top = 50
        Width = 15
        Height = 13
        Caption = 'Zip'
        FocusControl = EditZip
      end
      object Label7: TLabel
        Left = 168
        Top = 50
        Width = 36
        Height = 13
        Caption = 'Country'
        FocusControl = EditCountry
      end
      object Label8: TLabel
        Left = 318
        Top = 50
        Width = 31
        Height = 13
        Caption = 'Phone'
        FocusControl = EditPhone
      end
      object Label9: TLabel
        Left = 439
        Top = 50
        Width = 20
        Height = 13
        Caption = 'FAX'
        FocusControl = EditFAX
      end
      object EditCompany: TDBEdit
        Left = 6
        Top = 21
        Width = 150
        Height = 21
        DataField = 'Company'
        DataSource = DataSource1
        MaxLength = 30
        TabOrder = 0
      end
      object EditAddr: TDBEdit
        Left = 162
        Top = 21
        Width = 150
        Height = 21
        DataField = 'Addr1'
        DataSource = DataSource1
        MaxLength = 30
        TabOrder = 1
      end
      object EditAddr2: TDBEdit
        Left = 318
        Top = 21
        Width = 150
        Height = 21
        DataField = 'Addr2'
        DataSource = DataSource1
        MaxLength = 30
        TabOrder = 2
      end
      object EditCity: TDBEdit
        Left = 474
        Top = 21
        Width = 75
        Height = 21
        DataField = 'City'
        DataSource = DataSource1
        MaxLength = 15
        TabOrder = 3
      end
      object EditState: TDBEdit
        Left = 6
        Top = 65
        Width = 100
        Height = 21
        DataField = 'State'
        DataSource = DataSource1
        MaxLength = 20
        TabOrder = 4
      end
      object EditZip: TDBEdit
        Left = 112
        Top = 65
        Width = 50
        Height = 21
        DataField = 'Zip'
        DataSource = DataSource1
        MaxLength = 10
        TabOrder = 5
      end
      object EditCountry: TDBEdit
        Left = 168
        Top = 65
        Width = 145
        Height = 21
        DataField = 'Country'
        DataSource = DataSource1
        MaxLength = 20
        TabOrder = 6
      end
      object EditPhone: TDBEdit
        Left = 318
        Top = 65
        Width = 115
        Height = 21
        DataField = 'Phone'
        DataSource = DataSource1
        MaxLength = 15
        TabOrder = 7
      end
      object EditFAX: TDBEdit
        Left = 439
        Top = 65
        Width = 114
        Height = 21
        DataField = 'FAX'
        DataSource = DataSource1
        MaxLength = 15
        TabOrder = 8
      end
    end
  end
  object Panel3: TPanel
    Left = 0
    Top = 145
    Width = 588
    Height = 133
    Align = alClient
    BevelInner = bvLowered
    BorderWidth = 4
    Caption = 'Panel3'
    TabOrder = 2
    object DBGrid1: TDBGrid
      Left = 6
      Top = 6
      Width = 576
      Height = 121
      Align = alClient
      BorderStyle = bsNone
      DataSource = DataSource2
      TabOrder = 0
      TitleFont.Color = clBlack
      TitleFont.Height = -11
      TitleFont.Name = 'MS Sans Serif'
      TitleFont.Style = []
    end
  end
  object DataSource1: TDataSource
    DataSet = Table1
    Left = 311
    Top = 5
  end
  object DataSource2: TDataSource
    DataSet = Table2
    Left = 429
    Top = 5
  end
  object Table1: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    TableName = 'customer.db'
    Left = 260
    Top = 5
  end
  object Table2: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    IndexFieldNames = 'CustNo'
    MasterFields = 'CustNo'
    MasterSource = DataSource1
    TableName = 'orders.db'
    Left = 378
    Top = 5
    object Table2OrderNo: TFloatField
      DisplayWidth = 10
      FieldName = 'OrderNo'
    end
    object Table2CustNo: TFloatField
      DisplayWidth = 10
      FieldName = 'CustNo'
      Required = True
    end
    object Table2SaleDate: TDateTimeField
      DisplayWidth = 10
      FieldName = 'SaleDate'
    end
    object Table2ShipDate: TDateTimeField
      DisplayWidth = 10
      FieldName = 'ShipDate'
    end
    object Table2Employee: TStringField
      DisplayWidth = 16
      FieldName = 'Employee'
      Lookup = True
      LookupDataSet = Table3
      LookupKeyFields = 'EmpNo'
      LookupResultField = 'LastName'
      KeyFields = 'EmpNo'
      Size = 25
    end
    object Table2EmpNo: TIntegerField
      FieldName = 'EmpNo'
      Required = True
      Visible = False
    end
    object Table2ShipToContact: TStringField
      DisplayWidth = 13
      FieldName = 'ShipToContact'
    end
    object Table2ShipToAddr1: TStringField
      DisplayWidth = 20
      FieldName = 'ShipToAddr1'
      Size = 30
    end
    object Table2ShipToAddr2: TStringField
      DisplayWidth = 19
      FieldName = 'ShipToAddr2'
      Size = 30
    end
    object Table2ShipToCity: TStringField
      DisplayWidth = 12
      FieldName = 'ShipToCity'
      Size = 15
    end
    object Table2ShipToState: TStringField
      DisplayWidth = 16
      FieldName = 'ShipToState'
    end
    object Table2ShipToZip: TStringField
      DisplayWidth = 10
      FieldName = 'ShipToZip'
      Size = 10
    end
    object Table2ShipToCountry: TStringField
      DisplayWidth = 20
      FieldName = 'ShipToCountry'
    end
    object Table2ShipToPhone: TStringField
      DisplayWidth = 15
      FieldName = 'ShipToPhone'
      Size = 15
    end
    object Table2ShipVIA: TStringField
      DisplayWidth = 7
      FieldName = 'ShipVIA'
      Size = 7
    end
    object Table2PO: TStringField
      DisplayWidth = 15
      FieldName = 'PO'
      Size = 15
    end
    object Table2Terms: TStringField
      DisplayWidth = 6
      FieldName = 'Terms'
      Size = 6
    end
    object Table2PaymentMethod: TStringField
      DisplayWidth = 13
      FieldName = 'PaymentMethod'
      Size = 7
    end
    object Table2ItemsTotal: TCurrencyField
      DisplayWidth = 10
      FieldName = 'ItemsTotal'
    end
    object Table2TaxRate: TFloatField
      DisplayWidth = 10
      FieldName = 'TaxRate'
    end
    object Table2Freight: TCurrencyField
      DisplayWidth = 10
      FieldName = 'Freight'
    end
    object Table2AmountPaid: TCurrencyField
      DisplayWidth = 10
      FieldName = 'AmountPaid'
    end
  end
  object Table3: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    IndexName = 'ByName'
    TableName = 'EMPLOYEE.DB'
    Left = 488
    Top = 8
  end
  object DataSource3: TDataSource
    DataSet = Table3
    Left = 536
    Top = 8
  end
end


Copyright Marco Cantù 1998