Table of Contents

KVSPSADistributionMatrix

Procedures

MatrixLoad() :

Summary: Use this procedure to load the matrix cells

procedure MatrixLoad(): 

Events

KVSPSAOnAfterInsertTempPSPLines(Record KVSPSAJobPSPLine, Record KVSPSAJobDistribWPMapping) :

Summary: Use this procedure to add lines to the matrix. Use the line no for positioning and the ActualExpansionStatus Field to identify your line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertTempPSPLines(var TempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; JobDistribWPMapping: Record "KVSPSAJobDistribWPMapping"): 

Parameters:

  • TempJobPSPLine: Instance to add your line
  • JobDistribWPMapping: Mapping in which is defined which lines should be visible

KVSPSAOnBeforeConfirmUpdateDistributionOnClosePage(Record KVSPSAJobPSPLine, Boolean, Boolean) :

Summary: Use this event to decide without user interaction whether forecast and invoicing distribution of the changed lines should be updated when the page is closed.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeConfirmUpdateDistributionOnClosePage(var TempChangedJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var UpdateDistribution: Boolean; var IsHandled: Boolean): 

Parameters:

  • TempChangedJobPSPLine: Changed WBS lines since the last update
  • UpdateDistribution: Set to true to update the changed lines, false to skip the update
  • IsHandled: Set to true to suppress the confirm dialog and use UpdateDistribution instead

KVSPSAOnAfterSetStyleExpr(Record KVSPSAJobPSPLine, Boolean, Boolean) :

Summary: Use this procedure to overwrite GlobalIsPlaning and GlobalIsNotActual for your line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetStyleExpr(CurrentTempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var IsNotActual: Boolean; var IsPlanningLine: Boolean): 

Parameters:

  • CurrentTempJobPSPLine: Current Matrix Line
  • IsNotActual: Is Not Actual Indicator
  • IsPlanningLine: Is Planning Line

KVSPSAOnAfterValidateQuantityOnBeforeFunction(Record KVSPSADistributionEntry, Text, Integer, Record KVSPSAJobPSPLine, Boolean, Boolean, Text, Text, Boolean) :

Summary: Use this procedure to react on User Input on your added lines.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterValidateQuantityOnBeforeFunction(var MatrixRecords: Record "KVSPSADistributionEntry"; var GlobalMatrixCellData: Text; ColumnID: Integer; CurrentTempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var IsHandled: Boolean; IsAggregation: Boolean; var CurrColumn: Text; var CurrRow: Text; var ActivatePage: Boolean): 

Parameters:

  • MatrixRecords: Matrix Records
  • GlobalMatrixCellData: Matrix Cell Values
  • ColumnID: Current Column
  • CurrentTempJobPSPLine: Current Matrix Line
  • IsHandled: use this to skip default code
  • IsAggregation: Information if it is only aggregation of budgetline
  • CurrColumn: Current Column
  • CurrRow: Current Row
  • ActivatePage: Set this to Activate Page after your code

KVSPSAOnCalcMatrixCellDataValueElse(Text, Integer, Record KVSPSADistributionEntry, Record KVSPSAJobPSPLine, Boolean) :

Summary: Use this procedure to calc the CellDataValue for added lines

[IntegrationEvent(false, false)]
local procedure KVSPSAOnCalcMatrixCellDataValueElse(var GlobalMatrixCellData: Text; ColumnID: Integer; var DistributionEntry: Record "KVSPSADistributionEntry"; CurrentTempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var IsHandled: Boolean): 

Parameters:

  • GlobalMatrixCellData: Matrix Cell Values
  • ColumnID: Current Column
  • DistributionEntry: Related Distribution Entry/Entries
  • CurrentTempJobPSPLine: Current Matrix Line
  • IsHandled: use this to skip default code

KVSPSAOnCalcSumsForAggregationElse(Record KVSPSADistributionEntry) :

Summary: Use this procedure to calc the Aggregation from the Budget Lines

[IntegrationEvent(false, false)]
local procedure KVSPSAOnCalcSumsForAggregationElse(var DistributionEntry: Record "KVSPSADistributionEntry"): 

Parameters:

  • DistributionEntry: Filterred Job Budget Line Distributuon Entries

KVSPSAOnDrillDownField(Record KVSPSADistributionEntry, Integer, Record KVSPSAJobPSPLine, Boolean) :

Summary: use this procedure to react on drilldown of a field in your line

[IntegrationEvent(false, false)]
local procedure KVSPSAOnDrillDownField(var MatrixRecords: Record "KVSPSADistributionEntry"; ColumnID: Integer; CurrentTempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var IsHandled: Boolean): 

Parameters:

  • MatrixRecords: Current Matrix Records
  • ColumnID: Current Column
  • CurrentTempJobPSPLine: Current Matrix Line
  • IsHandled: Use this parameter to skip default code

KVSPSAOnGetOriginalJobPSPLineLineNoElse(Integer, Record KVSPSAJobPSPLine) :

Summary: Use this procedure to calc the Line No. of the original Job PSP Line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnGetOriginalJobPSPLineLineNoElse(var LineNo: Integer; CurrentTempJobPSPLine: Record "KVSPSAJobPSPLine" temporary): 

Parameters:

  • LineNo: Line No. of the original Job PSP Line
  • CurrentTempJobPSPLine: Current Matrix Line

Protected Variables

TempGlobalChangedJobPSPLine

Type: Record (KVSPSAJobPSPLine) temporary

GlobalChangesExist

Type: Boolean

GlobalCurrColumn

Type: Text