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

  1. unit Edparts;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, StdCtrls, ExtCtrls, Mask, DBCtrls, DBLookup,
  8.   Buttons;
  9.  
  10. type
  11.   TEdPartsForm = class(TForm)
  12.     Panel1: TPanel;
  13.     Navigator: TDBNavigator;
  14.     Parts: TTable;
  15.     PartsSource: TDataSource;
  16.     PartsPartNo: TFloatField;
  17.     PartsDescription: TStringField;
  18.     PartsOnHand: TFloatField;
  19.     PartsOnOrder: TFloatField;
  20.     PartsCost: TCurrencyField;
  21.     PartsListPrice: TCurrencyField;
  22.     PartsVendorNo: TFloatField;
  23.     PartsBackOrd: TBooleanField;
  24.     Vendors: TTable;
  25.     VendorSource: TDataSource;
  26.     Panel2: TPanel;
  27.     Label1: TLabel;
  28.     DBEdit2: TDBEdit;
  29.     DBEdit4: TDBEdit;
  30.     DBEdit5: TDBEdit;
  31.     DBEdit7: TDBEdit;
  32.     DBEdit8: TDBEdit;
  33.     DBLookupCombo2: TDBLookupCombo;
  34.     DBEdPartNo: TDBEdit;
  35.     Label6: TLabel;
  36.     DBEdit3: TDBEdit;
  37.     PrintBtn: TSpeedButton;
  38.     DoneBtn: TButton;
  39.     procedure PartsCalcFields(DataSet: TDataSet);
  40.     procedure PartsBeforeOpen(DataSet: TDataset);
  41.     procedure FormCreate(Sender: TObject);
  42.     procedure PrintBtnClick(Sender: TObject);
  43.     procedure DoneBtnClick(Sender: TObject);
  44.     procedure PartsAfterInsert(DataSet: TDataset);
  45.     procedure PartsAfterPost(DataSet: TDataset);
  46.     procedure PartsAfterCancel(DataSet: TDataset);
  47.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  48.   private
  49.     procedure SetPartnoField(Enabled: Boolean);
  50.   public
  51.     procedure Edit(PartNo: Double);
  52.   end;
  53.  
  54. var
  55.   EdPartsForm: TEdPartsForm;
  56.  
  57. implementation
  58.  
  59. {$R *.DFM}
  60.  
  61. uses Main;
  62.  
  63.  
  64. procedure TEdPartsForm.Edit(PartNo: Double);
  65. begin
  66.   if MainForm.Database.IsSQLbased then
  67.     Mainform.Database.StartTransaction;
  68.   Parts.Open;
  69.   Parts.FindKey([PartNo]);
  70.   ShowModal;
  71. end;
  72.  
  73. procedure TEdPartsForm.PartsCalcFields(DataSet: TDataSet);
  74. begin
  75.   PartsBackOrd.Value := PartsOnOrder.Value > PartsOnHand.Value;
  76. end;
  77.  
  78. procedure TEdPartsForm.PartsBeforeOpen(DataSet: TDataset);
  79. begin
  80.   Vendors.Open;
  81. end;
  82.  
  83. procedure TEdPartsForm.FormCreate(Sender: TObject);
  84. begin
  85.   Parts.Open;
  86. end;
  87.  
  88. procedure TEdPartsForm.SetPartnoField(Enabled: Boolean);
  89. begin
  90.   if Enabled then
  91.   begin
  92.     DbEdPartNo.ReadOnly := False;
  93.     DbEdPartNo.Color := clWindow;
  94.   end
  95.   else
  96.   begin
  97.     DbEdPartNo.ReadOnly := True;
  98.     DbEdPartNo.Color := clSilver;
  99.   end;
  100. end;
  101.  
  102. procedure TEdPartsForm.PartsAfterInsert(DataSet: TDataset);
  103. begin
  104.   SetPartnoField(True);
  105. end;
  106.  
  107. procedure TEdPartsForm.PartsAfterPost(DataSet: TDataset);
  108. begin
  109.   SetPartnoField(False);
  110.   if MainForm.Database.IsSQLbased then
  111.   begin
  112.     MainForm.Database.Commit;
  113.     MainForm.Database.StartTransaction;
  114.   end;
  115. end;
  116.  
  117. procedure TEdPartsForm.PartsAfterCancel(DataSet: TDataset);
  118. begin
  119.   SetPartnoField(False);
  120.   if MainForm.Database.IsSQLbased then
  121.   begin
  122.     MainForm.Database.Rollback;
  123.     MainForm.Database.StartTransaction;
  124.   end;
  125. end;
  126.  
  127. procedure TEdPartsForm.PrintBtnClick(Sender: TObject);
  128. begin
  129.   if MessageDlg('   Print this form?', mtConfirmation, [mbYes,mbNo], 0) =
  130.     mrYes then
  131.     Print;
  132. end;
  133.  
  134. procedure TEdPartsForm.DoneBtnClick(Sender: TObject);
  135. begin
  136.   if Parts.State in [dsEdit, dsInsert] then Parts.Post;
  137.   Close;
  138. end;
  139.  
  140. procedure TEdPartsForm.FormClose(Sender: TObject;
  141.   var Action: TCloseAction);
  142. begin
  143.   if Parts.State in [dsEdit, dsInsert] then Parts.Post;
  144.   if MainForm.Database.IsSQLbased then
  145.     MainForm.Database.Commit;
  146. end;
  147.  
  148. end.
  149.