Syntax

code

Function: GetJobTotal(const Propertyname: WideString; const ItemType: WideString = ''): Double;

Description

Retrieves the total number of items of a certain type in the entire opened job.

Code Reference

  • 1. Create a New Form application
  • 2. Add a button to the form
  • 3. add Planswift to reference (Planswift9_tlb in the uses)
  • 4. copy code to button onclick event

code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

procedure TForm1.psGetJobTotal(Sender: TObject);

var

  ps: IPlanSwift;

  est: IItem;

  folder: IItem;

  i: Integer;

  itm: IItem;

  CostEachTotal,QtyTotal: Extended;

begin

//Create the Planswift Interface

  ps := coPlanswift.Create;

//Begin Update Procedure

  ps.BeginUpdate;

//Get the Takeoff item (Estimating Tab in Planswift)

  est := ps.GetItem('Job\Takeoff');

//Create a New Folder in Estimating

  folder := est.NewItem('Folder','Material Items');

// Add 20 Material Part Items to the folder

  for i := 0 to 20 - 1 do begin

    itm := folder.NewItem('Material','Job Total Demo Material ' + intToStr(i));

//Set their Qty and Cost Each

    itm.SetPropertyFormula('Qty','20');

    itm.SetPropertyFormula('Cost Each','1.50');

  end;

//get Cost Each Total

  CostEachTotal := ps.GetJobTotal('Cost Each','Material');

//get Qty Total

  QtyTotal := ps.GetJobTotal('Qty','Material');

//Show the values

  ShowMessage('Qty Total: ' + FloatToStr(QtyTotal) + ' Cost Each Total: ' + FloatToStr(CostEachTotal));

//End Update Procedure

  ps.EndUpdate;

//Free Planswift

  ps := nil;

end;