StandardLib.pas 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. unit StandardLib;
  2. interface
  3. uses
  4. Classes, Connections, ZhAPI, StandardBillsDm;
  5. type
  6. TStandardLib = class
  7. private
  8. FLibConnection: TCommonConnection;
  9. FStandardBillsData: TStandardBillsData;
  10. function GetFileName: string;
  11. function GetLibName: string;
  12. public
  13. constructor Create;
  14. destructor Destroy; override;
  15. procedure Open(const AFileName: string);
  16. procedure SaveSaasData;
  17. property FileName: string read GetFileName;
  18. property LibName: string read GetLibName;
  19. property StandardBillsData: TStandardBillsData read FStandardBillsData;
  20. end;
  21. implementation
  22. { TStandardLib }
  23. uses
  24. UpdateDataBase;
  25. constructor TStandardLib.Create;
  26. begin
  27. FLibConnection := TCommonConnection.Create;
  28. FStandardBillsData := TStandardBillsData.Create(FLibConnection.Connection);
  29. end;
  30. destructor TStandardLib.Destroy;
  31. begin
  32. FStandardBillsData.Free;
  33. FLibConnection.Free;
  34. inherited;
  35. end;
  36. function TStandardLib.GetFileName: string;
  37. begin
  38. Result := FLibConnection.FileName;
  39. end;
  40. function TStandardLib.GetLibName: string;
  41. begin
  42. Result := ExtractSimpleFileName(FileName);
  43. end;
  44. procedure TStandardLib.Open(const AFileName: string);
  45. procedure Update;
  46. var
  47. Updater: TStandBillsUpdateDB;
  48. begin
  49. Updater := TStandBillsUpdateDB.Create;
  50. try
  51. Updater.Update(FLibConnection);
  52. finally
  53. Updater.Free;
  54. end;
  55. end;
  56. begin
  57. FLibConnection.Open(AFileName);
  58. Update;
  59. FStandardBillsData.Open(FLibConnection.Connection);
  60. SaveSaasData;
  61. end;
  62. procedure TStandardLib.SaveSaasData;
  63. begin
  64. FStandardBillsData.CalcCacheData(StandardBillsData.BillsTree.FirstNode, 1, '');
  65. FStandardBillsData.sddStdBills.Save;
  66. end;
  67. end.