Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Problems in upgrade from 17.01 to 19.03

I'm testing upgrade from 17.01 to 19.03

noticed that report parameter cannot have same name as component in same form.
For example if I have some ppDbText which component name is Profit I can't add parameter to report with that same name ppReport1.parameters.add('Profit', dtDouble, fProfit);
I can change the code, but our customers have plenty of customized report templates which are looking parameter with old name.

Is there anyway to avoid huge conversion jobs?

Comments

  • Hi Mika,

    The Report and all its child objects (Parameters, Bands, Groups, Labels, DBTexts, ...) are Owned by the Form/DataModule. Delphi requires the names be unique.

    In older versions, there was a bug in which TppParameter had a nil Owner.




    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • Hi Nard,
    Thanks for reply. I realized that already by looking the source difference after posting the message.
    :)
    So you have any practical tip for handling upgrade in customer side. I really don't like idea of our distributor to modify our 2000 customized invoices manually.
    I think that I could write little program to scan all rtm's and if it detects problematic report template replace component name in.
  • Hi Mika,

    I recommend writing a utility that can edit the template text. The format is the same as the Delphi .dfm.

    Search for TppParameter objects and prefix the name with 'p'. For example

    object Company: TppParameter

    convert to

    object pCompany: TppParameter

    If storing the .rtm's as binary, convert to text. Here is an rbWiki 'How To' with details

    http://rbwiki.digital-metaphors.com/end-user/fundamentals-end-user/how-to-edit-templates-as-text/



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • Hi Nard,
    That exactly what I had in my mind. And it works perfectly.
Sign In or Register to comment.