Good Afternoon!
TLDR;
Sharing a Report Designer print expression and domain string formatting suggestions that we used to print the currency check amount (a Double data type) with prepended asterisks in one string value, like "***** 123,456.78".
"***** " & trim$(sprintf$("%A095", str$(tfcmg103.amnt)))
For those with more time and want more details...
I wanted to share a finding with Report Designer for the LN semi-newbies like me. So, our Check report (txcmg1260l1000) has some special requirement where we need to prepend asterisks ("***** ") to the check amount, which was not system standard for us. The check amount is a Double data type using domain "tfgld.amnt" with a display format of "%A095". The display format correlates to the Formats (ttadv4585m000) session, at least in this case. As said, our original implementation had two separate print items (a String and then a Double) butted up to one another, with the potential to minor overlap. We had some instances where this happened, though not regularly, which is how we discovered it. Ideally, the amount is to be laid out like "***** 12345.00".
Based on my past life working with ASCII variable data print forms in the days when moving from greenbar line printers to cut-sheet paper MFPs, I would normally tackle this in LN by converting to a string and formatting with those toolsets, which correlates to "str$() and "sprintf$()" in LN. In past systems, most everything involved in LPD/LPR printing is considered a string (ASCII), so conversion wasn't really necessary. The reason for conversion to String is that you cannot concatenate a string value onto a double value, only string and string.
With said, I wanted to share some print expression syntax that I used to convert the check amount (tfcmg103.amnt), so that I could print it with the required string prepended, but in one object. To explain, the initial double value is converted to a string, which contains extra spacing before/after the value. The value is then converted to string format "%A095" (Amounts Financials), which will include comma thousand separators, and can include the currency symbol, and then final result is trimmed of its leading/trailing spaces, followed by the asterisks prepended to the resulting string value.
"***** " & trim$(sprintf$("%A095", str$(tfcmg103.amnt)))
The next important piece to this setup is using a String domain for the print object. I found that the custom domain "txstr60" seems to work perfect for this. It's only setup value is a 60 string data length. I used the Domains (ttadv4500m000) to locate the domain, though someone else must have created it during implementation. NOTE: LN Multibyte Strings are NOT the same as regular Strings, which is important when working with LN Domains for formatting string data.
The other piece that is so very special about LN checks and their design is that I've found you cannot print checks to report designer, like other reports, and edit with live data from the print. This may be possible for some folks, but something I cannot currently do with my permissions. The way our implementation team made changes to the check report, and how I do it now, is via the Report Personalizations (ttadv9507m000) session. Checkmark your report in the list and then choose REFERENCES>Report Personalization History. From there, you can see history and select specific versions, or the newest, then click the "Report Designer" button to open for editing. The only difference with this view is that you can only see variable names and you cannot print preview. Because of this additional security, it's a team effort with AP personnel to make and test the check report changes, so those printing will need the report personalization copied to their user profile with Report Personalizations (ttadv9507m000) and/or Manage Personalizations (ttadv9150m000) sessions.
Also, I recommend to test your initial check layout checks with the Payment/Receipt Methods (tfcmg0540m000) defaults for checks set to "D" for Display, before switching to the actual physical printer to test the print alignment on the check stock. I believe the session is admin-only, which works out, because I'm not authorized to print checks (as are most admins), but I can do the report design, and change print default values.
Please see attached screenshots for illustration with a before and after of properties from RD.
I just wanted to give a little background and findings for this particular report and its unique setup for the check amount. I hope this helps someone else with their Infor journey.
