2012-10-25 140 views
0

我正在显示一堆东西的显示字段(显然,他们总是这样做)。最近我遇到了一个非常奇怪的场景。我在一种记录格式中增加了一个字符输出字段,但是当记录格式写入屏幕时,不知何故该字段不能显示。我在调试模式下检查过。该值已被分配给EXFMT语句之前的字段,但它永远不会显示。我已经将它移动到记录格式的其他地方,问题依然存在。我也尝试将它移动到另一个显示在同一屏幕上的记录格式,并且这次它可以工作。出现这种情况会出现什么问题?为什么输出字段不显示在显示文件上?

 R XT99901    SFLCTL(XT99902) 
           SFLSIZ(0011) 
           SFLPAG(0005) 
           SFLDSP 
           SFLDSPCTL 
02        SFLCLR 
03        SFLEND 
           BLINK 
           LOCK 
           PUTOVR 
           OVERLAY 
           CA05 
    . 
    . 
    . 
          4 2'Status'  
     S1STUS  15A O 4 14COLOR(RED) 

字段S1STUS是有问题的那个。

+0

检查DDS编译器列表中的错误消息。具体而言,指示重叠字段的消息如果这没有帮助,请发布足够的DDS,以便有人可以编译DDS并重新创建问题。 –

+0

没有重叠字段,但有一条消息CPD8111表示记录可能无法显示。这是什么意思? –

+0

如果您有LOCK但不是FRCDTA的记录,并且您创建文件DFRWRT(* YES)(很少见),则由于延迟写入,该记录可能不会显示。 –

回答

0

当您使用PUTOVR时,您需要在每个要更改的输出字段上指定OVRDTA。添加OVRDTA关键字到S1STUS,看看是否有帮助。

+0

实际上,我在其他输出字段中使用了没有OVRDTA关键字的相同记录格式,并且它们工作正常。我曾尝试在S1STUS中添加一个,但它没有帮助。事实上,我曾经将这个领域改为输入/输出。该值仍然没有显示,但如果我在该字段中输入内容并按回车键,该值将保持在那里。奇怪。 –

+0

您需要阅读PUTOVR的手册。其他关键字执行隐式OVRDTA。为了帮助调试,请删除PUTOVR和所有OVRDTA关键字,看看是否有帮助。如果没有,请发布所有DDS,以便我们可以尝试重新创建它。 –

+0

不知怎的,OVRDTA最终解决了这个问题,尽管它之前并不奏效......但是没关系,它现在可以工作。谢谢。 –