StandardBillsDm.pas 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. unit StandardBillsDm;
  2. interface
  3. uses
  4. SysUtils, Classes, ADODB, DB, DBClient, Provider, sdIDTree,
  5. UtilMethods, sdDB, sdProvider;
  6. type
  7. TStandardBillsData = class(TDataModule)
  8. sdpStdBills: TsdADOProvider;
  9. sddStdBills: TsdDataSet;
  10. sdvStdBills: TsdDataView;
  11. private
  12. FBillsTree: TsdIDTree;
  13. procedure CreateBillsTree;
  14. procedure OpenConnetion(AConnection: TADOConnection);
  15. procedure ExpandFirstNode;
  16. public
  17. constructor Create(AOwner: TComponent); override;
  18. destructor Destroy; override;
  19. procedure Open(AConnection: TADOConnection);
  20. property BillsTree: TsdIDTree read FBillsTree;
  21. end;
  22. implementation
  23. {$R *.dfm}
  24. { TStandardBillsData }
  25. constructor TStandardBillsData.Create(AOwner: TComponent);
  26. begin
  27. inherited;
  28. CreateBillsTree;
  29. end;
  30. procedure TStandardBillsData.CreateBillsTree;
  31. begin
  32. FBillsTree := TsdIDTree.Create;
  33. FBillsTree.KeyFieldName := 'ID';
  34. FBillsTree.ParentFieldName := 'ParentID';
  35. FBillsTree.NextSiblingFieldName := 'NextID';
  36. FBillsTree.AutoExpand := False;
  37. end;
  38. destructor TStandardBillsData.Destroy;
  39. begin
  40. FBillsTree.Free;
  41. inherited;
  42. end;
  43. procedure TStandardBillsData.ExpandFirstNode;
  44. begin
  45. if FBillsTree.FirstNode <> nil then
  46. FBillsTree.FirstNode.Expand;
  47. end;
  48. procedure TStandardBillsData.Open(AConnection: TADOConnection);
  49. begin
  50. OpenConnetion(AConnection);
  51. FBillsTree.DataView := sdvStdBills;
  52. ExpandFirstNode;
  53. end;
  54. procedure TStandardBillsData.OpenConnetion(AConnection: TADOConnection);
  55. begin
  56. sdpStdBills.Connection := AConnection;
  57. sdpStdBills.TableName := 'BillsTree';
  58. sddStdBills.Open;
  59. sdvStdBills.Open;
  60. sddStdBills.AddIndex('idxID', 'ID');
  61. sddStdBills.AddIndex('sdxCode', 'Code');
  62. sddStdBills.AddIndex('sddBCode', 'B_Code');
  63. end;
  64. end.