I used the Capesoft Code Gen to create a Clarion definition from XML data provided.
The definition includes defined queues.
Is there an example of how to manipulate those queue?
They are part of nested groups and I can’t seem to get the syntax correct.
A little fuzzy as to what you are asking w/o an example but the 3 steps are
- Load the XML into your clarion structures
- Manipulate the data as you would in normal clarion code
- Save the clarion structure back into XML
For some types of structures, the compiler (or whatever you call the thing that does this ) gets confused when you try to reference the entire thing.
In those cases, sometimes it helps to assign sub-parent structures to a reference. Then try manipulating whatever is in the reference.
e.g. some pseudo-code here:
MyBigStructure LIKE(MyBigStructureType)
MySubStructure &MySubStructureType
CODE
MySubStructure &= MyBigStructure.SomeSubStructure
MySubStructure.Whatever = Whatever
Okay, having some luck now but trying to figure this one out…
Here’s the code:
ReportTotals Group,Name('ReportTotals')
AllTotalsGroup Group,Name('AllTotalsGroup')
Sales Real,Name('Sales')
Tax Real,Name('Tax')
End
ProductTotalsGrp &ProductTotalGrpQueueType,Name('ReportTotals | queue | RowName(ProductTotalsGrp)')
End
ProductTotalGrpQueueType Queue,Type,Name('ReportTotals | RowName(ProductTotalsGrp)')
ProductCode STRING(255),Name('ProductCode')
ProductSales Real,Name('ProductSales')
ProductTax Real,Name('ProductTax')
End
Expected Results: Under Report Totals there is an ALL and then one Product for each product (this is the Queue)
<ReportTotals>
<AllTotalsGroup>
<Sales>38000.92</Sales>
<Tax>2000.00</Tax>
</AllTotalsGroup>
<ProductTotalsGrp>
<ProductCode>ABC</ProductCode>
<ProductSales>10000.00</ProductSales>
<ProductTax>2000.00</ProductTax>
</ProductTotalsGrp>
<ProductTotalsGrp>
<ProductCode>XYZ</ProductCode>
<ProductSales>12000.00</ProductSales>
<ProductTax>2000.00</ProductTax>
</ProductTotalsGrp>
</ReportTotals>
Actual Results: I can’t get it to NOT repeat ‘Report Totals’ when building the Queue section.
I’ve tried reversing them, but then it just creates ProductTotalGrp → ReportTotals…
<ReportTotals>
<AllTotalsGroup>
<Sales>38000.92</Sales>
<Tax>2000.00</Tax>
</AllTotalsGroup>
<ReportTotals>
<ProductTotalsGrp>
<ProductCode>ABC</ProductCode>
<ProductSales>10000.00</ProductSales>
<ProductTax>2000.00</ProductTax>
</ProductTotalsGrp>
<ProductTotalsGrp>
<ProductCode>XYZ</ProductCode>
<ProductSales>12000.00</ProductSales>
<ProductTax>2000.00</ProductTax>
</ProductTotalsGrp>
</ReportTotals>
</ReportTotals>
Any ideas / suggestions?
Found the solution:
Needs to be:
ProductTotalsGrp &ProductTotalGrpQueueType,Name(‘ReportTotals | queue | xmlName() | RowName(ProductTotalsGrp)’)