| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- unit ImportDecorate;
- interface
- uses
- Classes, ADODB, DataBase, ConstTypeUnit, Provider,
- ConstMethodUnit, DBClient, DB, ConstVarUnit, ScFileArchiver;
- type
- TImportDecorator = class
- private
- FProjectArchiver: TScProjectFileArchiver;
- FAtExprs: TADOTable;
- FDspExprs: TDataSetProvider;
- FCdsExprs: TClientDataSet;
- procedure DecorateExprs;
- procedure ConnectExprs;
- procedure Save;
- public
- constructor Create(const AProjectFile: string);
- destructor Destroy; override;
- procedure Decorate;
- end;
- implementation
- { TImportDecorator }
- procedure TImportDecorator.ConnectExprs;
- begin
- FAtExprs.Connection := FProjectArchiver.Connection;
- FAtExprs.TableName := 'Exprs';
- FDspExprs.DataSet := FAtExprs;
- FCdsExprs.SetProvider(FDspExprs);
- FCdsExprs.IndexFieldNames := 'RecdID';
- FCdsExprs.Active := True;
- end;
- constructor TImportDecorator.Create(const AProjectFile: string);
- begin
- FProjectArchiver := TScProjectFileArchiver.Create;
- FAtExprs := TADOTable.Create(nil);
- FDspExprs := TDataSetProvider.Create(nil);
- FDspExprs.UpdateMode := upWhereKeyOnly;
- FCdsExprs := TClientDataSet.Create(nil);
- FProjectArchiver.FileName := AProjectFile;
- if FProjectArchiver.OpenFile then
- ConnectExprs;
- end;
- procedure TImportDecorator.Decorate;
- begin
- if FCdsExprs.Active then
- begin
- DecorateExprs;
- Save;
- end;
- end;
- procedure TImportDecorator.DecorateExprs;
- begin
- FCdsExprs.First;
- while not FCdsExprs.Eof do
- begin
- if FCdsExprs.FieldByName('MajorID').AsInteger = 4 then
- begin
- FCdsExprs.Edit;
- FCdsExprs.FieldByName('MajorID').AsInteger := Exprs_DrawQty_ID;
- FCdsExprs.FieldByName('MinorID').AsInteger := Exprs_DQty_ID;
- FCdsExprs.Post;
- end;
- FCdsExprs.Next;
- end;
- end;
- destructor TImportDecorator.Destroy;
- begin
- FProjectArchiver.Free;
- FAtExprs.Free;
- FDspExprs.Free;
- FCdsExprs.Free;
- inherited;
- end;
- procedure TImportDecorator.Save;
- begin
- FCdsExprs.ApplyUpdates(0);
- FProjectArchiver.Save;
- end;
- end.
|