You can write override with only the INVITE keyword set. No need to put
all the screen back out again.
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Smith, Julius
Michael
Sent: Monday, October 13, 2008 8:14 AM
To: Midrange Systems Technical Discussion
Subject: RE: QsnReadScr Api
Thanks to both Simon and Carsten for their responeses.
The requirement to do this was in a legacy application and removing the
"INVITE" keyword was not an option... The display file is attached to a
data queue.
I solved the problem by doing a 2nd write which(as I read both Simon's
and Carsten's suggestions attempt to do this same thing). It was my
hope that there was a more "elegant" way to accomplish this request.
Michael
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Flensburg, Carsten
Sent: Sunday, October 12, 2008 3:20 AM
To: Midrange Systems Technical Discussion
Subject: RE: QsnReadScr Api
Hi Michael,
I'm wondering whether saving and restoring the screen would resolve the
issue that you're dealing with. According to the manual the QsnSavScr
(Save screen) API saves the current state of the display. I've not been
able to reproduce the behavior that you've reported though, so I don't
know if state in that sense is supposed to include the display's current
INVITE setting.
It's quite simple to test so maybe you'd find it worthwhile to try it
out. Here are the prototypes for the two DSM API's involved in saving
and restoring a display in a direct operation:
**-- Save screen:
D QsnSavScr Pr 10i 0 ExtProc( 'QsnSavScr' )
D SavBufHdl 10i 0 Options( *Omit )
D CmdBufHdl 10i 0 Const Options( *Omit )
D LlvEnvHdl 10i 0 Const Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**-- Put command buffer:
D QsnPutBuf Pr 10i 0 ExtProc( 'QsnPutBuf' )
D CmdBufHdl 10i 0 Options( *Omit )
D LlvEnvHdl 10i 0 Const Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**
D Handle s 10i 0
Save the display immediately prior to performing the read, and restore
it immediately after:
/Free
.
.
Handle = QsnSavScr( *Omit: *Omit: *Omit: *Omit );
QsnReadScr( *omit
: inbuf
: *omit
: *omit
: *omit );
QsnPutBuf( Handle: *Omit: *Omit );
p_screen = QsnRtvDta( inbuf
: *omit
: *omit );
.
.
/End-Free
As I said, I don't know if this will work - but I'd be interested in
hearing what you find out!
Best regards,
Carsten Flensburg
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Smith, Julius
Michael
Sent: 10. oktober 2008 14:53
To: Midrange Systems Technical Discussion
Subject: QsnReadScr Api
Based on Scott Klement's article in System iNetwork Programming Tips:
Q: We have a requirement to extract data from an existing green-screen
display into an Attention-key program.
I used this technique with success on a display without the "INVITE"
keyword.... however, when using it on one that did have the "INVITE"
keyword the following happened:
1> The QsnReadScr API worked and retreived the screen buffer
2> From that point forward, no keys worked.... Fkeys, enter, anything,
therefore the screen was unuseable to the user. Based on that
observation, it is my thought that the QsnReadScr API turns the "INVITE"
keyword off
Does anyone have a resolution for this issue.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/midrange-l.
_____________
The information contained in this message is proprietary and/or
confidential. If you are not the intended recipient, please: (i) delete
the message and all copies; (ii) do not disclose, distribute or use the
message in any manner; and (iii) notify the sender immediately. In
addition, please be aware that any message addressed to our domain is
subject to archiving and review by persons other than the intended
recipient. Thank you.
_____________
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.