 




<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Non Subfile Field Not Changing When Doing an EXFMT</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/</link>
	<description></description>
	<lastBuildDate>Tue, 21 May 2013 13:34:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: tomliotta</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-101886</link>
		<dc:creator>tomliotta</dc:creator>
		<pubDate>Fri, 20 Jan 2012 01:15:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-101886</guid>
		<description><![CDATA[&lt;i&gt;Acc. to my work assigned to me, I have to divide a display record into a Subfile and another display record.&lt;/i&gt;

It&#039;s not clear how this relates to this thread. Please open a new question so that your problem can get the attention it needs.

Tom]]></description>
		<content:encoded><![CDATA[<p><i>Acc. to my work assigned to me, I have to divide a display record into a Subfile and another display record.</i></p>
<p>It&#8217;s not clear how this relates to this thread. Please open a new question so that your problem can get the attention it needs.</p>
<p>Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sg29</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-101834</link>
		<dc:creator>sg29</dc:creator>
		<pubDate>Thu, 19 Jan 2012 11:10:38 +0000</pubDate>
		<guid isPermaLink="false">#comment-101834</guid>
		<description><![CDATA[Hi,

i am facing this problem:

Acc. to my work assigned to me, I have to divide a display record into a Subfile and another display record.

Earlier, *in20 was used on each field for DSPATR(PR). 
Now, when in my program *in20 is set on, no field in the subfile and the new display record is protected. 
also, on the Subfile Control format, no indicator like DSPATR(RI) on any field sets Reverse Image after being set to on.]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>i am facing this problem:</p>
<p>Acc. to my work assigned to me, I have to divide a display record into a Subfile and another display record.</p>
<p>Earlier, *in20 was used on each field for DSPATR(PR).<br />
Now, when in my program *in20 is set on, no field in the subfile and the new display record is protected.<br />
also, on the Subfile Control format, no indicator like DSPATR(RI) on any field sets Reverse Image after being set to on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kathan</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-77286</link>
		<dc:creator>kathan</dc:creator>
		<pubDate>Wed, 19 May 2010 11:17:02 +0000</pubDate>
		<guid isPermaLink="false">#comment-77286</guid>
		<description><![CDATA[There r many ways to do that,

1) Use SFLCLR and clear that format.

2) Other way is bit diff, first use CLEAR opcode on that field and just after that use UPDATE on CTL. It will do.]]></description>
		<content:encoded><![CDATA[<p>There r many ways to do that,</p>
<p>1) Use SFLCLR and clear that format.</p>
<p>2) Other way is bit diff, first use CLEAR opcode on that field and just after that use UPDATE on CTL. It will do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tomliotta</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-74367</link>
		<dc:creator>tomliotta</dc:creator>
		<pubDate>Mon, 01 Mar 2010 02:24:02 +0000</pubDate>
		<guid isPermaLink="false">#comment-74367</guid>
		<description><![CDATA[&lt;i&gt;I put in another exfmt before I turned on the indicator...&lt;/i&gt;

Just a comment for you to think about -- why did you use EXFMT instead of a simple WRITE?

Tom]]></description>
		<content:encoded><![CDATA[<p><i>I put in another exfmt before I turned on the indicator&#8230;</i></p>
<p>Just a comment for you to think about &#8212; why did you use EXFMT instead of a simple WRITE?</p>
<p>Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sloopy</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-74327</link>
		<dc:creator>sloopy</dc:creator>
		<pubDate>Fri, 26 Feb 2010 15:46:45 +0000</pubDate>
		<guid isPermaLink="false">#comment-74327</guid>
		<description><![CDATA[Yes, there are other ways to do this. Because of the restrictions and peculiarities of the ERRMSG and ERRMSGID DDS keywords, many places use a message subfile at the bottom of the screen, and display their messages there. This does not affect the EXFMT operation (and it has plenty of other advantages too). 

Once you&#039;ve coded message subfile handling into your screen DDS and program, the code is easy to propagate and resuse elsewhere.

The DDS is like this:

&lt;pre&gt;
A          R D@MSGSFL                   SFL                            
A                                       TEXT(&#039;Message Subfile Record&#039;) 
A                                       SFLMSGRCD(24)                  
A            D#SMK                      SFLMSGKEY                      
A            D#SPQ                      SFLPGMQ                        
                                                                       
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
                                                                       
A          R D@MSGCTL                   SFLCTL(D@MSGSFL)               
A                                       TEXT(&#039;Message Subfile Control&#039;)
A                                       OVERLAY                        
A                                       SFLDSP                         
A                                       SFLINZ                         
A N01                                   SFLEND                         
A                                       SFLSIZ(2)                      
A                                       SFLPAG(1)                      
A            D#SPQ                      SFLPGMQ                        
&lt;/pre&gt;

The code in the program is like this:

&lt;pre&gt;
 * ------------------------------------------------------------------------             
 * Message handling data structures                                                     
 * ------------------------------------------------------------------------             
                                                                                        
D p_MsgRtnCode    S              7                                         Return code  
D p_MsgPgmName    S             10                                         Program name 
D p_MsgDest       S              5                                         Destination  
D p_MsgFile       S             10                                         Message file 
D p_MsgKey        S              4                                         Message key  
D p_MsgType       S              7                                         Message type 
                                                                                        
D p_MsgID         DS             7                                         Message ID   
D  MsgType                1      3                                          Message type
                                                                                        
D p_MsgDta        DS           512                                         Message data 

.......

D D#SPQ           S             10                                         Message Queue name

......

(main screen loop - basically, the message subfile is written before the EXFMT) :

C                   ExSr      SetLegend                                      Cmd.Key legend
C                   Write     D@FOOT                                         Footer        
C                   Write     D@MSGCTL                                       Messages      
C  N14              Write     D@NDT1                                         No Subfile    
C                   Exfmt     D@SF1C                                         Detail screen 

......

(when checking function keys after EXFMT) :

C                   If        Fkey &lt;&gt; fnRollUp                             If not Roll Up  
C                   ExSr      ClearMessage                                   Clear messages
C                   EndIf                                                                  

.......

(Send message and clear message queue subroutines - call your own message sender) :

C     SendMessage   BegSr                                                                  
                                                                                           
 * ========================================================================                
 * Send message to program message queue                                                   
 * ------------------------------------------------------------------------                
                                                                                           
C                   If        MsgType = &#039;ERR&#039;                              If error message
C                   Eval      *In40   = *On                                  Set error flag
C                   EndIf                                                                  
                                                                                           
C                   Call      &#039;TICSNMG&#039;                                    &lt;Send message&gt;  
C                   Parm      *Blank        p_MsgRtnCode                   B:Return code   
C                   Parm      D#SPQ         p_MsgPgmName                   I:Program name  
C                   Parm      &#039;*SAME&#039;       p_MsgDest                      I:Destination   
C                   Parm                    p_MsgID                        I:Message ID    
C                   Parm      &#039;TTSMSGS&#039;     p_MsgFile                      I:Message file  
C                   Parm      *Blank        p_MsgKey                       I:Message key   
C                   Parm                    p_MsgDta                       I:Message data  
C                   Parm      &#039;*INFO&#039;       p_MsgType                      I:Message type
                                                                                         
C                   Clear                   p_MsgID                        Message ID    
C                   Clear                   p_MsgDta                       Message data  
                                                                                         
 * ------------------------------------------------------------------------              
 *                                                                                       
 * ========================================================================              
                                                                                         
C                   EndSr                                                                
                                                                                         
C     ClearMessage  BegSr                                                                
                                                                                         
 * ========================================================================              
 * Clear program message queue                                                           
 * ------------------------------------------------------------------------              
                                                                                         
C                   Call      &#039;TICSNMG&#039;                                    &lt;Send message&gt;
C                   Parm      *Blank        p_MsgRtnCode                   B:Return code 
C                   Parm      D#SPQ         p_MsgPgmName                   I:Program name
C                   Parm      &#039;*SAME&#039;       p_MsgDest                      I:Destination 
C                   Parm      &#039;*CLEAR&#039;      p_MsgID                        I:Message ID  
C                   Parm                    p_MsgFile                      I:Message file
C                   Parm                    p_MsgKey                       I:Message key 
C                   Parm                    p_MsgDta                       I:Message data
C                   Parm                    p_MsgType                      I:Message type
                                                                                         
C                   Clear                   p_MsgID                        ¦ Clear the   
C                   Clear                   p_MsgDta                       ¦ parameters  
C                   MoveA     *Off          *In(40)                        Reset errors  
                                                                                         
 * ------------------------------------------------------------------------              
 *                                                                                       
 * ========================================================================              
                                                                                         
C                   EndSr                                                                
&lt;/pre&gt;

This is just picked out of one program from many, all of which use the same standard code (yes, probably should be /COPY&#039;d or proceduralised....)

Sloopy]]></description>
		<content:encoded><![CDATA[<p>Yes, there are other ways to do this. Because of the restrictions and peculiarities of the ERRMSG and ERRMSGID DDS keywords, many places use a message subfile at the bottom of the screen, and display their messages there. This does not affect the EXFMT operation (and it has plenty of other advantages too). </p>
<p>Once you&#8217;ve coded message subfile handling into your screen DDS and program, the code is easy to propagate and resuse elsewhere.</p>
<p>The DDS is like this:</p>
<pre>
A          R D@MSGSFL                   SFL                            
A                                       TEXT('Message Subfile Record') 
A                                       SFLMSGRCD(24)                  
A            D#SMK                      SFLMSGKEY                      
A            D#SPQ                      SFLPGMQ                        
                                                                       
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
                                                                       
A          R D@MSGCTL                   SFLCTL(D@MSGSFL)               
A                                       TEXT('Message Subfile Control')
A                                       OVERLAY                        
A                                       SFLDSP                         
A                                       SFLINZ                         
A N01                                   SFLEND                         
A                                       SFLSIZ(2)                      
A                                       SFLPAG(1)                      
A            D#SPQ                      SFLPGMQ                        
</pre>
<p>The code in the program is like this:</p>
<pre>
 * ------------------------------------------------------------------------             
 * Message handling data structures                                                     
 * ------------------------------------------------------------------------             
                                                                                        
D p_MsgRtnCode    S              7                                         Return code  
D p_MsgPgmName    S             10                                         Program name 
D p_MsgDest       S              5                                         Destination  
D p_MsgFile       S             10                                         Message file 
D p_MsgKey        S              4                                         Message key  
D p_MsgType       S              7                                         Message type 
                                                                                        
D p_MsgID         DS             7                                         Message ID   
D  MsgType                1      3                                          Message type
                                                                                        
D p_MsgDta        DS           512                                         Message data 

.......

D D#SPQ           S             10                                         Message Queue name

......

(main screen loop - basically, the message subfile is written before the EXFMT) :

C                   ExSr      SetLegend                                      Cmd.Key legend
C                   Write     D@FOOT                                         Footer        
C                   Write     D@MSGCTL                                       Messages      
C  N14              Write     D@NDT1                                         No Subfile    
C                   Exfmt     D@SF1C                                         Detail screen 

......

(when checking function keys after EXFMT) :

C                   If        Fkey &lt;&gt; fnRollUp                             If not Roll Up  
C                   ExSr      ClearMessage                                   Clear messages
C                   EndIf                                                                  

.......

(Send message and clear message queue subroutines - call your own message sender) :

C     SendMessage   BegSr                                                                  
                                                                                           
 * ========================================================================                
 * Send message to program message queue                                                   
 * ------------------------------------------------------------------------                
                                                                                           
C                   If        MsgType = 'ERR'                              If error message
C                   Eval      *In40   = *On                                  Set error flag
C                   EndIf                                                                  
                                                                                           
C                   Call      'TICSNMG'                                    &lt;Send message&gt;  
C                   Parm      *Blank        p_MsgRtnCode                   B:Return code   
C                   Parm      D#SPQ         p_MsgPgmName                   I:Program name  
C                   Parm      '*SAME'       p_MsgDest                      I:Destination   
C                   Parm                    p_MsgID                        I:Message ID    
C                   Parm      'TTSMSGS'     p_MsgFile                      I:Message file  
C                   Parm      *Blank        p_MsgKey                       I:Message key   
C                   Parm                    p_MsgDta                       I:Message data  
C                   Parm      '*INFO'       p_MsgType                      I:Message type
                                                                                         
C                   Clear                   p_MsgID                        Message ID    
C                   Clear                   p_MsgDta                       Message data  
                                                                                         
 * ------------------------------------------------------------------------              
 *                                                                                       
 * ========================================================================              
                                                                                         
C                   EndSr                                                                
                                                                                         
C     ClearMessage  BegSr                                                                
                                                                                         
 * ========================================================================              
 * Clear program message queue                                                           
 * ------------------------------------------------------------------------              
                                                                                         
C                   Call      'TICSNMG'                                    &lt;Send message&gt;
C                   Parm      *Blank        p_MsgRtnCode                   B:Return code 
C                   Parm      D#SPQ         p_MsgPgmName                   I:Program name
C                   Parm      '*SAME'       p_MsgDest                      I:Destination 
C                   Parm      '*CLEAR'      p_MsgID                        I:Message ID  
C                   Parm                    p_MsgFile                      I:Message file
C                   Parm                    p_MsgKey                       I:Message key 
C                   Parm                    p_MsgDta                       I:Message data
C                   Parm                    p_MsgType                      I:Message type
                                                                                         
C                   Clear                   p_MsgID                        ¦ Clear the   
C                   Clear                   p_MsgDta                       ¦ parameters  
C                   MoveA     *Off          *In(40)                        Reset errors  
                                                                                         
 * ------------------------------------------------------------------------              
 *                                                                                       
 * ========================================================================              
                                                                                         
C                   EndSr                                                                
</pre>
<p>This is just picked out of one program from many, all of which use the same standard code (yes, probably should be /COPY&#8217;d or proceduralised&#8230;.)</p>
<p>Sloopy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ghender</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/non-subfile-field-not-changing-when-doing-an-exfmt/#comment-74326</link>
		<dc:creator>ghender</dc:creator>
		<pubDate>Fri, 26 Feb 2010 13:57:33 +0000</pubDate>
		<guid isPermaLink="false">#comment-74326</guid>
		<description><![CDATA[Thanks a lot! I have been programming for years and I never knew that. I put in another exfmt before I turned on the indicator and the new description appeared. Of course this means that the user will have to press ENTER an additional time. Is there another way to get around this?]]></description>
		<content:encoded><![CDATA[<p>Thanks a lot! I have been programming for years and I never knew that. I put in another exfmt before I turned on the indicator and the new description appeared. Of course this means that the user will have to press ENTER an additional time. Is there another way to get around this?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 3/10 queries in 0.032 seconds using memcached
Object Caching 337/343 objects using memcached

Served from: itknowledgeexchange.techtarget.com @ 2013-05-21 13:43:06 -->