tpNoPegDm.pas 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. unit tpNoPegDm;
  2. interface
  3. uses
  4. SysUtils, Classes, sdDB, sdProvider, sdIDTree, tpGatherTree;
  5. type
  6. TtpNoPegData = class(TDataModule)
  7. smpNoPegBills: TsdMemoryProvider;
  8. sddNoPegBills: TsdDataSet;
  9. sdvNoPegBills: TsdDataView;
  10. procedure sdvNoPegBillsGetText(var Text: String;
  11. ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
  12. DisplayText: Boolean);
  13. private
  14. FNoPegTree: TsdIDTree;
  15. public
  16. constructor Create;
  17. destructor Destroy; override;
  18. procedure LoadData(ATree: TtpGatherTree);
  19. property NoPegTree: TsdIDTree read FNoPegTree;
  20. end;
  21. implementation
  22. {$R *.dfm}
  23. { TtpNoPegData }
  24. constructor TtpNoPegData.Create;
  25. begin
  26. inherited Create(nil);
  27. FNoPegTree := TsdIDTree.Create;
  28. FNoPegTree.KeyFieldName := 'ID';
  29. FNoPegTree.ParentFieldName := 'ParentID';
  30. FNoPegTree.NextSiblingFieldName := 'NextSiblingID';
  31. FNoPegTree.AutoCreateKeyID := True;
  32. FNoPegTree.AutoExpand := True;
  33. FNoPegTree.DataView := sdvNoPegBills;
  34. end;
  35. destructor TtpNoPegData.Destroy;
  36. begin
  37. FNoPegTree.Free;
  38. inherited;
  39. end;
  40. procedure TtpNoPegData.LoadData(ATree: TtpGatherTree);
  41. begin
  42. FNoPegTree.Active := False;
  43. try
  44. ATree.WriteData(sddNoPegBills);
  45. finally
  46. FNoPegTree.DataView := nil;
  47. FNoPegTree.DataView := sdvNoPegBills;
  48. end;
  49. end;
  50. procedure TtpNoPegData.sdvNoPegBillsGetText(var Text: String;
  51. ARecord: TsdDataRecord; AValue: TsdValue; AColumn: TsdViewColumn;
  52. DisplayText: Boolean);
  53. procedure GetDisplayText;
  54. begin
  55. if (Pos('TotalPrice', AColumn.FieldName) > 0) or
  56. (Pos('Quantity', AColumn.FieldName) > 0) or
  57. (Pos('Price', AColumn.FieldName) > 0) then
  58. begin
  59. if AValue.AsFloat = 0 then
  60. Text := '';
  61. end;
  62. end;
  63. begin
  64. if DisplayText then
  65. GetDisplayText;
  66. end;
  67. end.