datawindow中的特定列不可编辑

问题描述 投票:3回答:7

Net 12.5并创建一个小型数据输入程序。数据窗口由1个下拉数据窗口组成,其余4个列设置为编辑

这里的问题是,下拉数据窗口是不可编辑的。我已将override edit设置为true并设置datawindow.readonly ='No'/ dw_1.object.datawindow。@ readonly = false。

但其他一切都失败了。我仍然无法编辑我的数据窗口的内容。

注意

当按下添加按钮时,datawindow将设置其readonly = false数据窗口列,如果其newrow()可编辑的列是下拉数据窗口,则会保护它们

请帮忙

爱很多

powerbuilder datawindow powerbuilder.net
7个回答
2
投票

请检查该列的“Tab Order”。


1
投票
  1. 检查datawindow对象(包含所有列的对象)中每列的Tab键顺序,如果为零,则无法获得焦点。
  2. 您是否为已应用dddw编辑样式的列指定了下拉数据窗口?你也设置了数据值,并显示值?它是一个不需要检索参数的数据窗口吗?如果需要检索args,则需要添加代码以手动检索dddw数据。
  3. 你能把列表放下吗?你检查了它上面的Always show arrow复选框吗?如果你这么做好奇,那么你可以删除列表吗?您不需要选中允许编辑,除非您希望用户更改列表中的值或进行搜索(高级)
  4. 你在datawindow控件上做过settransobject,你看到了数据吗?如果是全新的数据你做了InsertRow吗?
  5. 您的数据窗口对象是否设置为“允许更新”行...更新属性...
  6. 你的桌子有主键吗?
  7. AutoRetrieve是否在您的datawindow对象中检查了该列?

这些只是我想到的一些可能出现问题但我不清楚发生了什么的事情。

更多信息会有所帮助......

这句话毫无意义,如果你需要帮助,请澄清/重写。

我已将override edit设置为true并设置datawindow.readonly ='No'/ dw_1.object.datawindow。@ readonly = false。


1
投票

isRowNew()似乎不能正常工作。我做了一些测试,我无法使它工作,谷歌这之后,我可以看到其他人有自2004年以来的相同问题,没有人关心。也许现在SAP购买此产品,他们会纠正或不纠正。

我找到的唯一解决方案是使用Isnull()。您假设,当您添加一行时,其值为null,旧行具有值(使用pk ok,但使用其他值,它们可以为null),因此您必须保护那些不为null的值

这不是一个完美的解决方案,但是唯一有效的解决方案。


0
投票

在DDDW属性的“编辑”选项卡上,选中“允许编辑”复选框。当列设置为提示条件时,将使用“覆盖编辑”。


0
投票

在列中转到保护属性并输入:

If(isrownew(), 1, 0)

而已。


0
投票

您需要检查以下内容:

1. Open dddw object and set tab order.
2. set tab order of that column where dddw set.
3. Set protect = 0 of that column in both objects.(datawindow & dddw object)

请评论你的状态。


0
投票

IsRowNew()在PB-12.5中没有问题

您要么更改脚本中行的状态,要么在某个地方覆盖脚本中的表达式。您的列表达式是正确的

dw_prod.Modify("pt_pname.Protect='1~tIf(IsRowNew(),0,1)'")
© www.soinside.com 2019 - 2024. All rights reserved.