home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / mastapp.pak / EDCUST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-24  |  3.2 KB  |  134 lines

  1. unit Edcust;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, StdCtrls, ExtCtrls, Mask, DBCtrls, Buttons;
  8.  
  9. type
  10.   TEdCustForm = class(TForm)
  11.     Cust: TTable;
  12.     CustSource: TDataSource;
  13.     CustCustNo: TFloatField;
  14.     CustCompany: TStringField;
  15.     CustAddr: TStringField;
  16.     CustAddr2: TStringField;
  17.     CustCity: TStringField;
  18.     CustState: TStringField;
  19.     CustZip: TStringField;
  20.     CustCountry: TStringField;
  21.     CustPhone: TStringField;
  22.     CustTaxRate: TFloatField;
  23.     CustContact: TStringField;
  24.     CustFAX: TStringField;
  25.     CustLastInvoiceDate: TDateTimeField;
  26.     Panel2: TPanel;
  27.     Label1: TLabel;
  28.     DBEdCustNo: TDBEdit;
  29.     DBEdName: TDBEdit;
  30.     DBEdit3: TDBEdit;
  31.     DBEdit4: TDBEdit;
  32.     DBEdit5: TDBEdit;
  33.     DBEdit6: TDBEdit;
  34.     DBEdit7: TDBEdit;
  35.     DBEdit8: TDBEdit;
  36.     DBEdit9: TDBEdit;
  37.     DBEdit11: TDBEdit;
  38.     DBEdit12: TDBEdit;
  39.     DBEdInv: TDBEdit;
  40.     DBEdit14: TDBEdit;
  41.     Label14: TLabel;
  42.     NextCust: TTable;
  43.     NextCustNewCust: TFloatField;
  44.     Panel: TPanel;
  45.     DBNavigator: TDBNavigator;
  46.     DoneBtn: TButton;
  47.     PrintBtn: TSpeedButton;
  48.     procedure CustNewRecord(DataSet: TDataset);
  49.     procedure PrintBtnClick(Sender: TObject);
  50.     procedure CustAfterCancel(DataSet: TDataset);
  51.     procedure CustAfterPost(DataSet: TDataset);
  52.     procedure DoneBtnClick(Sender: TObject);
  53.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  54.   public
  55.     procedure Edit(CustNo: Double);
  56.   end;
  57.  
  58. var
  59.   EdCustForm: TEdCustForm;
  60.  
  61. implementation
  62.  
  63. {$R *.DFM}
  64.  
  65. uses Main;
  66.  
  67. procedure TEdCustForm.Edit(CustNo: Double);
  68. begin
  69.   if MainForm.Database.IsSQLbased then
  70.     Mainform.Database.StartTransaction;
  71.   Cust.Open;
  72.   Cust.FindKey([CustNo]);
  73.   ShowModal;
  74. end;
  75.  
  76. procedure TEdCustForm.CustNewRecord(DataSet: TDataset);
  77. begin
  78.   { get next CustNo }
  79.   NextCust.Open;
  80.   NextCust.Edit;
  81.   try
  82.     CustCustNo.Value := NextCustNewCust.Value;
  83.     NextCustNewCust.Value := NextCustNewCust.Value + 1;
  84.     NextCust.Post;
  85.     if MainForm.Database.IsSQLbased then
  86.     begin
  87.       MainForm.Database.Commit;
  88.       MainForm.Database.StartTransaction;
  89.     end;
  90.   finally
  91.     NextCust.Cancel;
  92.     NextCust.Close;
  93.   end;
  94. end;
  95.  
  96. procedure TEdCustForm.CustAfterCancel(DataSet: TDataset);
  97. begin
  98.   if MainForm.Database.IsSQLbased then
  99.   begin
  100.     MainForm.Database.Rollback;
  101.     MainForm.Database.StartTransaction;
  102.   end;
  103. end;
  104.  
  105. procedure TEdCustForm.CustAfterPost(DataSet: TDataset);
  106. begin
  107.   if MainForm.Database.IsSQLbased then
  108.   begin
  109.     MainForm.Database.Commit;
  110.     MainForm.Database.StartTransaction;
  111.   end;
  112. end;
  113.  
  114. procedure TEdCustForm.DoneBtnClick(Sender: TObject);
  115. begin
  116.   if Cust.State in [dsEdit, dsInsert] then Cust.Post;
  117.   Close;
  118. end;
  119.  
  120. procedure TEdCustForm.PrintBtnClick(Sender: TObject);
  121. begin
  122.   if MessageDlg('   Print this form?', mtConfirmation, [mbYes,mbNo], 0) = mrYes then
  123.     Print;
  124. end;
  125.  
  126. procedure TEdCustForm.FormClose(Sender: TObject; var Action: TCloseAction);
  127. begin
  128.   if Cust.State in [dsEdit, dsInsert] then Cust.Post;
  129.   if MainForm.Database.IsSQLbased then
  130.     MainForm.Database.Commit;
  131. end;
  132.  
  133. end.
  134.