home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 February / DPPCPRO0299.ISO / February / Delphi / Install / DATA.Z / BRCSTORD.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-06-11  |  4.0 KB  |  150 lines

  1. unit BrCstOrd;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, DBCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons;
  8.  
  9. type
  10.   TBrCustOrdForm = class(TForm)
  11.     CtrlsPanel: TPanel;
  12.     Navigator: TDBNavigator;
  13.     BtnPanel: TPanel;
  14.     EditBtn: TButton;
  15.     CloseBtn: TButton;
  16.     ActivateBtn: TSpeedButton;
  17.     DefineBtn: TSpeedButton;
  18.     CustPanel: TPanel;
  19.     CustGrid: TDBGrid;
  20.     OrdersPanel: TPanel;
  21.     OrdersGrid: TDBGrid;
  22.     Bevel1: TBevel;
  23.     procedure CustGridEnter(Sender: TObject);
  24.     procedure SetQuery(Sender: TObject);
  25.     procedure ActivateQuery(Sender: TObject);
  26.     procedure EditBtnClick(Sender: TObject);
  27.     procedure CloseBtnClick(Sender: TObject);
  28.     procedure OrdersGridEnter(Sender: TObject);
  29.     procedure FormShow(Sender: TObject);
  30.   private
  31.     FActiveSource: TDataSource;
  32.     FCustNo: Double;
  33.     FOrderNo: Double;
  34.     function GetCustNo: Double;
  35.     function GetOrderNo: Double;
  36.     procedure SetActiveSource(DataSource: TDataSource);
  37.     procedure SetCustNo(NewCustNo: Double);
  38.     procedure SetOrderNo(NewOrderNo: Double);
  39.     property ActiveSource: TDataSource read FActiveSource write SetActiveSource;
  40.   public
  41.     property CustNo: Double read GetCustNo write SetCustNo;
  42.     property OrderNo: Double read GetOrderNo write SetOrderNo;
  43.   end;
  44.  
  45. var
  46.   BrCustOrdForm: TBrCustOrdForm;
  47.  
  48. implementation
  49.  
  50. uses QryCust, EdCust, EdOrders, Main, DataMod;
  51.  
  52. {$R *.DFM}
  53.  
  54. { Retrieve from active customer table or query--whichever is active }
  55.  
  56. function TBrCustOrdForm.GetCustNo: Double;
  57. begin
  58.   Result := MastData.CustMasterSrc.Dataset.Fields[0].AsFloat;
  59. end;
  60.  
  61. procedure TBrCustOrdForm.SetCustNo(NewCustNo: Double);
  62. begin
  63.   MastData.CustMasterSrc.Dataset := MastData.Cust;
  64.   MastData.Cust.Locate('CustNo', NewCustNo, []);
  65. end;
  66.  
  67. function TBrCustOrdForm.GetOrderNo: Double;
  68. begin
  69.   Result := MastData.OrdByCustOrderNo.Value;
  70. end;
  71.  
  72. procedure TBrCustOrdForm.SetOrderNo(NewOrderNo: Double);
  73. begin
  74.   MastData.OrdByCust.Locate('OrderNo', NewOrderNo, []);
  75. end;
  76.  
  77. procedure TBrCustOrdForm.SetActiveSource(DataSource: TDataSource);
  78. begin
  79.   FActiveSource := DataSource;
  80.   Navigator.DataSource := FActiveSource;
  81. end;
  82.  
  83. procedure TBrCustOrdForm.CustGridEnter(Sender: TObject);
  84. begin
  85.   ActiveSource := MastData.CustMasterSrc;
  86.   CustGrid.Options := CustGrid.Options + [dgAlwaysShowSelection];
  87.   OrdersGrid.Options := OrdersGrid.Options - [dgAlwaysShowSelection];
  88. end;
  89.  
  90. procedure TBrCustOrdForm.OrdersGridEnter(Sender: TObject);
  91. begin
  92.   ActiveSource := MastData.OrdByCustSrc;
  93.   OrdersGrid.Options := OrdersGrid.Options + [dgAlwaysShowSelection];
  94.   CustGrid.Options := CustGrid.Options - [dgAlwaysShowSelection];
  95. end;
  96.  
  97. procedure TBrCustOrdForm.SetQuery(Sender: TObject);
  98. begin
  99.   if QueryCustDlg.ShowModal = mrOK then
  100.     ActivateQuery(Self);
  101. end;
  102.  
  103. procedure TBrCustOrdForm.ActivateQuery(Sender: TObject);
  104. begin
  105.   if not ActivateBtn.Down then
  106.     MastData.CustMasterSrc.Dataset := MastData.Cust
  107.   else
  108.     with MastData.CustQuery do
  109.     try
  110.       Close;
  111.       Params[0].AsDatetime := QueryCustDlg.FromDate;
  112.       Params[1].AsDatetime := QueryCustDlg.ToDate;
  113.       Open;
  114.       { Any records in the result set? }
  115.       if BOF and EOF then Abort;
  116.       MastData.CustMasterSrc.Dataset := MastData.CustQuery;
  117.     except
  118.       MastData.CustMasterSrc.Dataset := MastData.Cust;
  119.       ActivateBtn.Down := false;
  120.       ShowMessage('No matching records in the specified date range.');
  121.     end;
  122. end;
  123.  
  124. procedure TBrCustOrdForm.EditBtnClick(Sender: TObject);
  125. var
  126.   F: TFloatField;
  127. begin
  128.   F := ActiveSource.Dataset.Fields[0] as TFloatField;
  129.   if ActiveSource = MastData.CustMasterSrc then
  130.     EdCustForm.Edit(F.Value)
  131.   else
  132.   begin
  133.     EdOrderForm.Edit(F.Value);
  134.     ActiveSource.Dataset.Refresh;
  135.   end;
  136. end;
  137.  
  138. procedure TBrCustOrdForm.CloseBtnClick(Sender: TObject);
  139. begin
  140.   Close;
  141. end;
  142.  
  143. procedure TBrCustOrdForm.FormShow(Sender: TObject);
  144. begin
  145.   MastData.Cust.Open;
  146.   MastData.Cust.First;
  147. end;
  148.  
  149. end.
  150.