Project MASTDET2
Project Structure
MASTDET2.DPR
program Mastdet2;
uses
Forms,
MastdetF in 'MastdetF.pas' {Form2},
MdData in 'MdData.pas' {DataModule1: TDataModule};
{$R *.RES}
begin
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TDataModule1, DataModule1);
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;
Panel2: TPanel;
Panel3: TPanel;
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
uses MdData;
{$R *.DFM}
end.
MDDATA.PAS
unit MdData;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables;
type
TDataModule1 = class(TDataModule)
Table1: TTable;
Table2: TTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
Table3: TTable;
DataSource3: TDataSource;
Table3EmpNo: TIntegerField;
Table3LastName: TStringField;
Table3FirstName: TStringField;
Table3PhoneExt: TStringField;
Table3HireDate: TDateTimeField;
Table3Salary: TFloatField;
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;
Table1CustNo: TFloatField;
Table1Company: TStringField;
Table1Addr1: TStringField;
Table1Addr2: TStringField;
Table1City: TStringField;
Table1State: TStringField;
Table1Zip: TStringField;
Table1Country: TStringField;
Table1Phone: TStringField;
Table1FAX: TStringField;
Table1TaxRate: TFloatField;
Table1Contact: TStringField;
Table1LastInvoiceDate: TDateTimeField;
procedure DataModule1Create(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
{$R *.DFM}
procedure TDataModule1.DataModule1Create(Sender: TObject);
begin
Table3.Open;
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'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
Position = poScreenCenter
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 = DataModule1.DataSource1
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbPost, nbCancel, nbRefresh]
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 = DataModule1.DataSource1
TabOrder = 0
end
object EditAddr: TDBEdit
Left = 162
Top = 21
Width = 150
Height = 21
DataField = 'Addr1'
DataSource = DataModule1.DataSource1
TabOrder = 1
end
object EditAddr2: TDBEdit
Left = 318
Top = 21
Width = 150
Height = 21
DataField = 'Addr2'
DataSource = DataModule1.DataSource1
TabOrder = 2
end
object EditCity: TDBEdit
Left = 474
Top = 21
Width = 75
Height = 21
DataField = 'City'
DataSource = DataModule1.DataSource1
TabOrder = 3
end
object EditState: TDBEdit
Left = 6
Top = 65
Width = 100
Height = 21
DataField = 'State'
DataSource = DataModule1.DataSource1
TabOrder = 4
end
object EditZip: TDBEdit
Left = 112
Top = 65
Width = 50
Height = 21
DataField = 'Zip'
DataSource = DataModule1.DataSource1
TabOrder = 5
end
object EditCountry: TDBEdit
Left = 168
Top = 65
Width = 145
Height = 21
DataField = 'Country'
DataSource = DataModule1.DataSource1
TabOrder = 6
end
object EditPhone: TDBEdit
Left = 318
Top = 65
Width = 115
Height = 21
DataField = 'Phone'
DataSource = DataModule1.DataSource1
TabOrder = 7
end
object EditFAX: TDBEdit
Left = 439
Top = 65
Width = 114
Height = 21
DataField = 'FAX'
DataSource = DataModule1.DataSource1
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 = DataModule1.DataSource2
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clBlack
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
end
end
MDDATA.DFM
object DataModule1: TDataModule1
OldCreateOrder = False
OnCreate = DataModule1Create
Left = 68
Top = 134
Height = 497
Width = 750
object Table1: TTable
DatabaseName = 'DBDEMOS'
TableName = 'customer.db'
Left = 20
Top = 13
object Table1CustNo: TFloatField
Alignment = taLeftJustify
CustomConstraint = 'CustNo IS NOT NULL'
ConstraintErrorMessage = 'CustNo cannot be blank'
FieldName = 'CustNo'
DisplayFormat = 'CN 0000'
MaxValue = 9999
MinValue = 1000
end
object Table1Company: TStringField
CustomConstraint = 'X IS NOT NULL'
ConstraintErrorMessage = 'Company Field has to have a value'
FieldName = 'Company'
Size = 30
end
object Table1Addr1: TStringField
FieldName = 'Addr1'
Size = 30
end
object Table1Addr2: TStringField
FieldName = 'Addr2'
Size = 30
end
object Table1City: TStringField
FieldName = 'City'
Size = 15
end
object Table1State: TStringField
FieldName = 'State'
end
object Table1Zip: TStringField
FieldName = 'Zip'
Size = 10
end
object Table1Country: TStringField
FieldName = 'Country'
end
object Table1Phone: TStringField
FieldName = 'Phone'
Size = 15
end
object Table1FAX: TStringField
FieldName = 'FAX'
Size = 15
end
object Table1TaxRate: TFloatField
FieldName = 'TaxRate'
DisplayFormat = '0.00%'
MaxValue = 100
end
object Table1Contact: TStringField
FieldName = 'Contact'
end
object Table1LastInvoiceDate: TDateTimeField
FieldName = 'LastInvoiceDate'
end
end
object Table2: TTable
DatabaseName = 'DBDEMOS'
IndexName = 'CustNo'
MasterFields = 'CustNo'
MasterSource = DataSource1
TableName = 'orders.db'
Left = 98
Top = 13
object Table2OrderNo: TFloatField
FieldName = 'OrderNo'
end
object Table2CustNo: TFloatField
FieldName = 'CustNo'
Required = True
end
object Table2SaleDate: TDateTimeField
FieldName = 'SaleDate'
end
object Table2ShipDate: TDateTimeField
FieldName = 'ShipDate'
end
object Table2EmpNo: TIntegerField
FieldName = 'EmpNo'
Required = True
Visible = False
end
object Table2Employee: TStringField
FieldKind = fkLookup
FieldName = 'Employee'
LookupDataSet = Table3
LookupKeyFields = 'EmpNo'
LookupResultField = 'LastName'
KeyFields = 'EmpNo'
Size = 30
Lookup = True
end
object Table2ShipToContact: TStringField
FieldName = 'ShipToContact'
end
object Table2ShipToAddr1: TStringField
FieldName = 'ShipToAddr1'
Size = 30
end
object Table2ShipToAddr2: TStringField
FieldName = 'ShipToAddr2'
Size = 30
end
object Table2ShipToCity: TStringField
FieldName = 'ShipToCity'
Size = 15
end
object Table2ShipToState: TStringField
FieldName = 'ShipToState'
end
object Table2ShipToZip: TStringField
FieldName = 'ShipToZip'
Size = 10
end
object Table2ShipToCountry: TStringField
FieldName = 'ShipToCountry'
end
object Table2ShipToPhone: TStringField
FieldName = 'ShipToPhone'
Size = 15
end
object Table2ShipVIA: TStringField
FieldName = 'ShipVIA'
Size = 7
end
object Table2PO: TStringField
FieldName = 'PO'
Size = 15
end
object Table2Terms: TStringField
FieldName = 'Terms'
Size = 6
end
object Table2PaymentMethod: TStringField
FieldName = 'PaymentMethod'
Size = 7
end
object Table2ItemsTotal: TCurrencyField
FieldName = 'ItemsTotal'
end
object Table2TaxRate: TFloatField
FieldName = 'TaxRate'
end
object Table2Freight: TCurrencyField
FieldName = 'Freight'
end
object Table2AmountPaid: TCurrencyField
FieldName = 'AmountPaid'
end
end
object DataSource1: TDataSource
DataSet = Table1
Left = 24
Top = 64
end
object DataSource2: TDataSource
DataSet = Table2
Left = 101
Top = 61
end
object Table3: TTable
Active = True
DatabaseName = 'DBDEMOS'
IndexName = 'ByName'
TableName = 'EMPLOYEE.DB'
Left = 176
Top = 16
object Table3EmpNo: TIntegerField
FieldName = 'EmpNo'
end
object Table3LastName: TStringField
FieldName = 'LastName'
end
object Table3FirstName: TStringField
FieldName = 'FirstName'
Size = 15
end
object Table3PhoneExt: TStringField
FieldName = 'PhoneExt'
Size = 4
end
object Table3HireDate: TDateTimeField
FieldName = 'HireDate'
end
object Table3Salary: TFloatField
FieldName = 'Salary'
end
end
object DataSource3: TDataSource
DataSet = Table3
Left = 176
Top = 64
end
end
|