Simon Coulter wrote:
Depends on where the message is displayed. Works OK when sent as a 
*STATUS message to the external queue of the job. I think it still works 
OK when sent to a message subfile. Won't work when sent to a UIM display 
(such as DSPMSG panel). This technique used to work ... on System/38. 
OS/400 has specific support to remove such shenanigans--not sure of the 
rationale behind that behaviour.
  UIM translates all /non-displayable/ characters to avoid any 5250 
data stream characters from ruining the menu; i.e. UIM does not make the 
effort to determine if the control characters might just be for color. 
It is unfortunate there is no option for the user to specify *NOXLT for 
the data; perhaps better if change-capable versus compile-only to enable 
turning off the character conversion, although probably best that such a 
function could be limited to specific variables, as a UIM tag option.
  To understand the rationale one need only run a Query/400 query 
against a variety of random hex data, for which lines of the report may 
randomly break, colorize, or flash.  Input fields may even become 
disabled such that only Enter or function keys allow exit from the 
report.  The results could even be subtle to the point of incorrect 
output being perceived as valid.  A global xlate of all character data 
to remove any non-displayable characters is the _simple_ preventive.
  Query/400 considers attempts to display hex data as a usage problem, 
and the UIM just scrubs all character data to prevent any nasty side 
effects the control characters might otherwise effect.  Query/400 sends 
the data and /assumes/ it is valid, and translates only if\after there 
is an error writing to the workstation; data with colorization, e.g. 
object text from DSPOBJD could write correctly on the first try [given 
the start & stop control characters all fit within the display width?].
Can't even embed colour in object text any more either.
  Not entirely true.  Just like with messages, you just have to know 
where the effect will be manifest.  For example the panels of the 
Query/400 product use DDS and send untranslated results to the DSPF, so 
there, the colors & flashing will be displayed.  Thus a DDS character 
variable or message subfile, for example generated from QUSLOBJ data, 
could still show the colorized object text.
Regards, Chuck
As an Amazon Associate we earn from qualifying purchases.
	
 
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.