change property

Please,

how to change displayformat property of memo field at runtime, to number %2.2n

Thanks

Comments

  • PolomintPolomint Australia

    G'day

    If you are looking to do this in Delphi code it is quite easy.

    Firstly you need to have connected the Memo to a Delphi variable. Then you can just set the Property of the Variable to the chosen Format. The best place to do all this is in the BeginReport Event.

    Cheers, Paul

  • PolomintPolomint Australia
    edited May 2022

    G'day again Felipe,

    Looking again at your original post, I realised your question might be more about translating '%2.2n' (used in a Delphi Format Function call) to the Property value for FastReport. And my previous answer was too short (wrote it on my phone on the tram)!

    So in your equivalent of the OnBeginDoc Event for your <<Report Object>> you need to:

    • declare a variable (either local to the Event Method or globally in the Unit if you need to refer to it elsewhere) e.g. "FieldOnReport : TfrxMemoView;"
    • link to the variable e.g. "FieldOnReport := <<Report Object>>.FindObject (<<name as a string>>) as TfrxMemoView;"
    • set the Memo up as Numeric e.g. "FieldOnReport.DisplayFormat.Kind := fkNumeric;"
    • set the Memo's Format String e.g. "FieldOnReport.DisplayFormat.FormatStr := '00';"

    Note the last step translated your '%2.2n' into '00'!

    There are other ways to do this in Delphi code (e.g. set "FieldOnReport.Text = Format ('%2.2n', [<<data value>>]);" in the BeforePrint Event for the Band containing your Memo) but if the Format is static for the report then OnBeginDoc Event is the best option.

    Cheers, Paul

Leave a Comment