Op het moment ben ik een Delphi applicatie aan het schrijven hetgeen gebruik maakt van een Rave report. De applicatie bestaat uit drie forms:
- Main,
- InternePrint,
- ExternePrint.
Op het Main form heb ik de volgende componenten geplaatst:
- ADO connection object,
- ADO query object,
- Rave Dataset object,
- Rave Project object.
Om het Rave report te voorzien van de juist datafields, heb ik een simpele query in het ADO query object geplaatst met de benodigde velden. In het Rave report maak ik een nieuwe Dataview aan die gekoppeld is aan het Rave Dataset object op het Main form van de Delphi applicatie.
Nu pas ik de volgende truuk toe. Ik verwijder de query uit het ADO query object en vul dit ADO query object met een query die ik dynamisch opbouw in de code. (Zie een stuk uit de code hieronder.)
Wanneer ik deze code opbouw vanuit het InternePrint form (hetgeen één object produceert) en het Rave report start, dan krijg ik netjes de gegevens in het report terug.
Echter, wanneer ik deze code opbouw vanuit het ExternePrint form (hetgeen meerdere objecten produceert) en het Rave report start, krijg ik netjes het aantal records te zien (en evenzoveel report pages), maar alle velden geeven (INVALID) weer.
Heeft iemand iets soortgelijks meegemaakt en/of weet iemand hier een oplossing voor? Er is weinig over Rave op internet te vinden en ik heb reeds een email gestuurd naar Nevrona, maar ik vermoed dat die niet gaan reageren.
Alvast bedankt!
- Main,
- InternePrint,
- ExternePrint.
Op het Main form heb ik de volgende componenten geplaatst:
- ADO connection object,
- ADO query object,
- Rave Dataset object,
- Rave Project object.
Om het Rave report te voorzien van de juist datafields, heb ik een simpele query in het ADO query object geplaatst met de benodigde velden. In het Rave report maak ik een nieuwe Dataview aan die gekoppeld is aan het Rave Dataset object op het Main form van de Delphi applicatie.
Nu pas ik de volgende truuk toe. Ik verwijder de query uit het ADO query object en vul dit ADO query object met een query die ik dynamisch opbouw in de code. (Zie een stuk uit de code hieronder.)
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
| qryBarcodeStickers.SQL.Text := 'SELECT CodeObject, Straat, HuisNr, Toevoeging1, Toevoeging2, Toevoeging3,'; qryBarcodeStickers.SQL.Add( 'Postcode, Woonplaats, Gemeente, :pmFrac AS Frac, :pmVol AS Vol' ); qryBarcodeStickers.SQL.Add( 'FROM Objecten' ); qryBarcodeStickers.SQL.Add( 'WHERE CodeObject = :pmCodeObject' ); qryBarcodeStickers.Parameters.ParamByName( 'pmCodeObject' ).Value := dbgObjecten.Fields[0].AsString; qryBarcodeStickers.Parameters.ParamByName( 'pmFrac' ).Value := edtFractie.Text; qryBarcodeStickers.Parameters.ParamByName( 'pmVol' ).Value := edtVol.Text; qryBarcodeStickers.Active := True; rpBarSticker.ProjectFile := sRepPath + '\Barcode sticker.rav'; rpBarSticker.Execute; qryBarcodeStickers.Active := False; qryBarcodeStickers.SQL.Clear; |
Wanneer ik deze code opbouw vanuit het InternePrint form (hetgeen één object produceert) en het Rave report start, dan krijg ik netjes de gegevens in het report terug.
Echter, wanneer ik deze code opbouw vanuit het ExternePrint form (hetgeen meerdere objecten produceert) en het Rave report start, krijg ik netjes het aantal records te zien (en evenzoveel report pages), maar alle velden geeven (INVALID) weer.
Heeft iemand iets soortgelijks meegemaakt en/of weet iemand hier een oplossing voor? Er is weinig over Rave op internet te vinden en ik heb reeds een email gestuurd naar Nevrona, maar ik vermoed dat die niet gaan reageren.
Alvast bedankt!