Calculate Value hook
Use this hook to calculate the value for the calculated field. The value must be assigned to the variable with the name of the Name
property. You must implement this hook for Expression Type Function
.
In this hook all fields of the main table are available. Those fields can be found in the Table Definitions session (ttadv4520m000). Additionally, all selected fields from the Table Selections and the Calculated Fields with other Expression Types than Function
are available. You cannot use other Calculated Fields with Expression Type Function
, because the order in which the Calculate Value hooks are executed is arbitrary.
Example for a field with Control Type Normal, no array field:
function extern void ext.price.calculate()
{
txprcdll0001.calculate.price(
tcibd001.item,
tcmcs023.catg,
utc.num(),
ext.price)
}
Example for a field with Control Type Normal, array field:
function extern void ext.turnover.calculate(i.elem.number)
{
long month
month = i.elem.number
txprcdll0001.calculate.turnover(tcibd001.item, month,
ext.turnover(i.elem.number))
}
Example for a field with Control Type URL Area:
function extern void ext.url.calculate()
{
ext.url = "https://www.infor.com"
}
Example for a field with Control Type Picture, graph:
function extern void ext.graph.calculate()
{
long ch, sr, cnt, ret
domain tccwoc office
ch = chart.new(CHART_TYPE_BAR)
chart.set.title(ch, "Orders by Sales Office")
chart.set.axis.type(ch, CHART_XAXIS, DB.STRING)
chart.set.axis.type(ch, CHART_YAXIS, DB.LONG)
sr = chart.add.series(ch, "Orders")
select tdsls400.cofc:office,count(tdsls400.orno):cnt
from tdsls400
group by tdsls400.cofc
order by tdsls400.cofc
selectdo
chart.add.data.point(sr, office, cnt)
endselect
ext.graph = creat.tmp.file$(bse.tmp.dir$())
ret = chart.write(ch, ext.graph, 400, 400)
}
Example for a field with Control Type Picture, the image stored on the file system in a custom location:
function extern void ext.item.image.calculate()
{
long ret
string image.file(256)
image.file = sprintf$(
"{BSE}/AppData/images/items/%s",trim$(tcibd001.item))
ext.item.image = creat.tmp.file$(bse.tmp.dir$())
ret = file.cp(image.file, ext.item.image)
}
Example for a field with Control Type Picture, the image that is linked to an existing Infor LN object. In this case a Business Partner:
function extern void ext.image.calculate()
{
long ret
ext.image = creat.tmp.file$(bse.tmp.dir$())
|* Field tccom100.imag included by Table Selection
ret = copy.image.to.file(get.compnr(), tccom100.imag,
"tccom100", ext.image)
}