Forráskód Böngészése

其他台账 -- 全额计量遗漏单元

MaiXinRong 8 éve
szülő
commit
3b2e6af8af
2 módosított fájl, 168 hozzáadás és 0 törlés
  1. 68 0
      DataModules/OtherMeasureOnceDm.dfm
  2. 100 0
      DataModules/OtherMeasureOnceDm.pas

+ 68 - 0
DataModules/OtherMeasureOnceDm.dfm

@@ -0,0 +1,68 @@
+object OtherMeasureOnceData: TOtherMeasureOnceData
+  OldCreateOrder = False
+  Left = 626
+  Top = 317
+  Height = 256
+  Width = 167
+  object sdpOnce: TsdADOProvider
+    TableName = 'OtherMeasureOnce'
+    Left = 48
+    Top = 32
+  end
+  object sddOnce: TsdDataSet
+    Active = False
+    Provider = sdpOnce
+    AfterAddRecord = sddOnceAfterAddRecord
+    Left = 48
+    Top = 88
+    FieldListData = {
+      0101044E616D6506024944094669656C644E616D650602494408446174615479
+      70650203084461746153697A6502040549734B6579080F4E65656450726F6365
+      73734E616D650909507265636973696F6E02000453697A6502000001044E616D
+      65060853657269616C4E6F094669656C644E616D65060853657269616C4E6F08
+      44617461547970650203084461746153697A6502040549734B6579080F4E6565
+      6450726F636573734E616D650909507265636973696F6E02000453697A650200
+      0001044E616D650604436F6465094669656C644E616D650604436F6465084461
+      7461547970650218084461746153697A6502320549734B6579080F4E65656450
+      726F636573734E616D650909507265636973696F6E02000453697A6502000001
+      044E616D6506044E616D65094669656C644E616D6506044E616D650844617461
+      547970650218084461746153697A6503FF000549734B6579080F4E6565645072
+      6F636573734E616D650909507265636973696F6E02000453697A650200000104
+      4E616D6506054D54797065094669656C644E616D6506054D5479706508446174
+      61547970650203084461746153697A6502040549734B6579080F4E6565645072
+      6F636573734E616D650909507265636973696F6E02000453697A650200000104
+      4E616D65060A546F74616C5072696365094669656C644E616D65060A546F7461
+      6C50726963650844617461547970650206084461746153697A6502080549734B
+      6579080F4E65656450726F636573734E616D650909507265636973696F6E0200
+      0453697A6502000001044E616D6506074D656D6F537472094669656C644E616D
+      6506074D656D6F5374720844617461547970650218084461746153697A6503FF
+      000549734B6579080F4E65656450726F636573734E616D650909507265636973
+      696F6E02000453697A6502000001044E616D65060D4372656174655068617365
+      4944094669656C644E616D65060D437265617465506861736549440844617461
+      547970650203084461746153697A6502040549734B6579080F4E65656450726F
+      636573734E616D650909507265636973696F6E02000453697A6502000000}
+  end
+  object sdvOnce: TsdDataView
+    Active = False
+    DataSet = sddOnce
+    Filtered = False
+    Columns = <
+      item
+        FieldName = 'Code'
+      end
+      item
+        FieldName = 'Name'
+      end
+      item
+        FieldName = 'MType'
+      end
+      item
+        FieldName = 'TotalPrice'
+      end
+      item
+        FieldName = 'MemoStr'
+      end>
+    Left = 48
+    Top = 152
+  end
+end

+ 100 - 0
DataModules/OtherMeasureOnceDm.pas

@@ -0,0 +1,100 @@
+unit OtherMeasureOnceDm;
+
+interface
+
+uses
+  SysUtils, Classes, sdDB, sdProvider, ADODB;
+
+type
+  TOtherMeasureOnceData = class(TDataModule)
+    sdpOnce: TsdADOProvider;
+    sddOnce: TsdDataSet;
+    sdvOnce: TsdDataView;
+    procedure sddOnceAfterAddRecord(ARecord: TsdDataRecord);
+  private
+    FProjectData: TObject;
+
+    function GetNewID: Integer;
+    function GetNewSerialNo: Integer;
+  public
+    constructor Create(AProjectData: TObject);
+    destructor Destroy; override;
+
+    procedure Open(AConnection: TADOConnection);
+    procedure Close;
+    procedure Save;    
+  end;
+
+implementation
+
+uses
+  ProjectData;
+
+{$R *.dfm}
+
+{ TOtherMeasureOnceData }
+
+procedure TOtherMeasureOnceData.Close;
+begin
+  sddOnce.Close;
+end;
+
+constructor TOtherMeasureOnceData.Create(AProjectData: TObject);
+begin
+  inherited Create(nil);
+  FProjectData := AProjectData;
+end;
+
+destructor TOtherMeasureOnceData.Destroy;
+begin
+  inherited;
+end;
+
+function TOtherMeasureOnceData.GetNewID: Integer;
+var
+  idx: TsdIndex;
+begin
+  idx := sddOnce.FindIndex('idxID');
+  if idx.RecordCount > 0 then
+    Result := idx.Records[idx.RecordCount - 1].ValueByName('ID').AsInteger + 1
+  else
+    Result := 1;
+end;
+
+function TOtherMeasureOnceData.GetNewSerialNo: Integer;
+var
+  idx: TsdIndex;
+begin
+  idx := sddOnce.FindIndex('idxSerial');
+  if idx.RecordCount > 0 then
+    Result := idx.Records[idx.RecordCount - 1].ValueByName('SerialNo').AsInteger + 1
+  else
+    Result := 1;
+end;
+
+procedure TOtherMeasureOnceData.Open(AConnection: TADOConnection);
+begin
+  sdpOnce.Connection := AConnection;
+  sddOnce.Open;
+  if not Assigned(sddOnce.FindIndex('idxID')) then
+    sddOnce.AddIndex('idxID', 'ID');
+  if not Assigned(sddOnce.FindIndex('idxSerial')) then
+    sddOnce.AddIndex('idxSerial', 'SerialNo');
+  sdvOnce.Open;
+  sdvOnce.IndexName := 'idxSerial';
+end;
+
+procedure TOtherMeasureOnceData.Save;
+begin
+  sddOnce.Save;
+end;
+
+procedure TOtherMeasureOnceData.sddOnceAfterAddRecord(
+  ARecord: TsdDataRecord);
+begin
+  ARecord.ValueByName('ID').AsInteger := GetNewID;
+  ARecord.ValueByName('SerialNo').AsInteger := GetNewSerialNo;
+  ARecord.ValueByName('CreatePhaseID').AsInteger := TProjectData(FProjectData).PhaseIndex;
+end;
+
+end.