Oracle10g Oracle Forms 10g LOV不会第二次出现

Oracle10g Oracle Forms 10g LOV不会第二次出现,oracle10g,oracleforms,Oracle10g,Oracleforms,我已经创建了Oracle Forms 10g form,希望通过按下按钮来显示LOV。按下按钮时打开触发器我有: go_item('MyBlock.Item1'); do_key('LIST_VALUES'); LOV有6列,其中2列绑定到2个项:MyBlock.Item1和MyBlock.Item2。当我按下按钮时,LOV出现,我可以做出选择。LOV将数据插入MyBlock.Item1和MyBlock.Item2,一切正常。 但是,如果我想做另一个选择,再次按下按钮,LOV不会出现。我不知道

我已经创建了Oracle Forms 10g form,希望通过按下按钮来显示LOV。按下按钮时打开触发器我有:

go_item('MyBlock.Item1');
do_key('LIST_VALUES');
LOV有6列,其中2列绑定到2个项:MyBlock.Item1和MyBlock.Item2。当我按下按钮时,LOV出现,我可以做出选择。LOV将数据插入MyBlock.Item1和MyBlock.Item2,一切正常。 但是,如果我想做另一个选择,再次按下按钮,LOV不会出现。我不知道是什么问题


按钮,两个项目都在同一个数据块中,我将这两个项目的“允许更新”和“需要更新”设置为“否”,并将鼠标导航到“否”按钮(我在一些论坛上看到过这一点)。

尝试将“同步”命令放在这两行之间:

go_item('MyBlock.Item1');
Synchronize;
do_key('LIST_VALUES');

尝试将同步命令放在这两行之间:

go_item('MyBlock.Item1');
Synchronize;
do_key('LIST_VALUES');
我最终找到了解决方案(使用oracle的OTN讨论)。 问题是我在第一次弹出LOV后调用的存储过程。第一次,在我选择了一个值之后,我使用存储过程删除了另一个块的记录。在该过程中,我设置了连接MyBlock.Item1和MyBlock.Item2列的值。但在形式上,旧值仍保留在项目上。我在过程中删除了更新这两列,现在可以使用了。但我需要这两个字段自动更新为null

解决方案是,我首先更改表单上这些项的值,然后调用存储过程。现在可以了。

我终于找到了解决方案(使用oracle的OTN讨论)。 问题是我在第一次弹出LOV后调用的存储过程。第一次,在我选择了一个值之后,我使用存储过程删除了另一个块的记录。在该过程中,我设置了连接MyBlock.Item1和MyBlock.Item2列的值。但在形式上,旧值仍保留在项目上。我在过程中删除了更新这两列,现在可以使用了。但我需要这两个字段自动更新为null



解决方案是,我首先更改表单上这些项的值,然后调用存储过程。现在可以用了。

谢谢,我试过了,但没用。同样的事情。好吧,它不显示lov,但光标在那里吗?或者光标位于另一个项目上。光标位于另一个数据块和项目上,因为代码会在另一个数据块上插入新记录。这可能会造成问题?另一个数据块不是问题所在,但光标应该位于为其调用列表_值的项目上,如果光标不在该项目上,则它将不会显示lov。行go_项目(“MyBlock.Item1”)不是吗;为了这个目的?然而,我在删除详细记录后放了这一行,当我第二次尝试弹出LOV时,它是蓝色的,它是一样的。谢谢,我试过了,但没有成功。同样的事情。好吧,它不显示lov,但光标在那里吗?或者光标位于另一个项目上。光标位于另一个数据块和项目上,因为代码会在另一个数据块上插入新记录。这可能会造成问题?另一个数据块不是问题所在,但光标应该位于为其调用列表_值的项目上,如果光标不在该项目上,则它将不会显示lov。行go_项目(“MyBlock.Item1”)不是吗;为了这个目的?然而,我在删除详细记录后放了这一行,当我第二次尝试弹出LOV时,它是蓝色的,也是一样的。你试过show_LOV吗?@pablomatico谢谢。是的,我试过使用
选择的值:=Show_Lov('MY_Lov');如果选择了某个值,则…
但第二次选择的值既不是真的,也不是假的,它是空的。在调用show_lov时,您确定当前项是myblock.item1吗?是的,因为我添加了
消息('SYSTEM.CURSOR_item='|:SYSTEM.CURSOR_item=')就在
a_值_选择之前:=Show_Lov('MY_Lov')并得到它是MyBlock.Item1。第二次尝试显示lov时有什么不同吗?查询中涉及的数据是否已更改?如果您在show_lov之后添加了一条消息,它是否显示?您是否尝试过show_lov?@pablomatico谢谢。是的,我试过使用
选择的值:=Show_Lov('MY_Lov');如果选择了某个值,则…
但第二次选择的值既不是真的,也不是假的,它是空的。在调用show_lov时,您确定当前项是myblock.item1吗?是的,因为我添加了
消息('SYSTEM.CURSOR_item='|:SYSTEM.CURSOR_item=')就在
a_值_选择之前:=Show_Lov('MY_Lov')并得到它是MyBlock.Item1。第二次尝试显示lov时有什么不同吗?查询中涉及的数据是否已更改?如果您在show_lov之后添加了一条消息,是否显示了该消息?