I have a report which has a table which contains array fields. When I pass these fields to LL through the OpenEdge Dataprovider, the report ends up empty. The Log file shows an error about reference to an ivalid object (don’t have the exact error available at this moment).
The fields show correctly in the designer (as fieldname_1, fieldname_2, etc) but at print time, an error is generated. The error is related to the extent fields because the report runs fine is I remove the extent fields from the layout.
EDIT: I think I have found the cause of the behavior: For extent fields I adapted the OpenEdge DataProvider class file “OpenEdgeSchema.cls”. The “RegisterTable” method, parses index fields using the convention: FieldName + “_” + STRING(index). I had changed this to FieldName + “.” + STRING(index,“99”) as it would nicely sort array fields (FieldName.01, FieldName.02, FieldName.03), etc.
For the List&Label design, that worked fine (which is why I did not get any errors during design time) but when the dataprovider tries to send values, it crashed. I looked into the source code and found code in DataProvider.cs which also assumes the convention FieldName + “_” + STRING(index). As I changed the fields to FieldName + “.” + STRING(index, “99”) it failed.
So mystery solved, question remains: So I am considering whether to change the DataProvider.cs code to “match” my convention or (alternatively) change my report layouts to match the expected provider.