Takes six parameters, FieldBase, GroupByField, Destination, Action, Source, IfLenFld
Usage:
FieldBase, GroupByField, Destination, Action, Source, IfLenFld
[WorkWith], GroupByField, Destination, Action, Source, IfLenFld
[WorkWith], GroupByField, Destination, Action, Source, [""]
[WorkWith], GroupByField, Destination, Action, [""], [""]
FieldBase, GroupByField, Destination, Action, Source, [WorkIf]
[WorkWith], GroupByField, Destination, Action, Source, [WorkIf]
[WorkWith], GroupByField, Destination, Action, [""], [WorkIf]
Description:
The Work Query should be pre-sorted by the Field specified by GroupByField, unless you are looking for the effect of not doing this, perhaps to calculate on sub-groups. Then, for each record where the GroupByField matches the specified Action will be performed on Source and the result will be stored in Destination for every Record of the same Group.
List of Actions:
IfLenFld Considerations:
This test is applied first, even prior to the logic of testing if a record is part of the same group or not. It is not simply a condition on the end assignment, but the records are skipped entirely as if they were not there.
Example:
Use the images below to understand how this example works, but what is happening here, is we are grouping all of the records in memory by their "Biz.Analysis.Code" and then summing up all of the "Biz.Samples.Qty" in each record. Notice how there is only 1 record for each "Biz.Analysis.Code" with the total summed up for "Biz.Samples.Qty" and "Biz.Samples.Rush"
Rem 'load data
LoadTable "Biz.Job"
KeepIf "Biz.Job.Status", "<>", "`Completed"
Children "Biz.Samples"
KeepIf "Biz.Samples.Status", "<>", "`Completed"
KeepIf "Biz.Samples.Status", "<>", "`Batched"
Children "Biz.Analysis"
KeepIf "Biz.Analysis.Code"
KeepIf "Biz.Analysis.Status", "<>", "`Completed"
KeepIf "Biz.Analysis.Status", "<>", "`Batched"
EndRem
Rem 'sort then count
Sort "Biz.Analysis.Code"
SetIf "Biz.Samples.Rush", "Biz.Samples.Qty", "Biz.Samples.Rush"
Rem 'example input table
HtmlTable
EndRem
WithGroup "Biz.Analysis.Code", "Biz.Samples.Qty", "Sum", "Biz.Samples.Qty"
WithGroup "Biz.Analysis.Code", "Biz.Samples.Rush", "Sum", "Biz.Samples.Rush"
KeepUnique "Biz.Analysis.Code"
EndRem
Rem 'example output table
HtmlTable
EndRem
Input Table:
Output Table: