Конкретный столбец в окне данных не редактируется
Net 12,5 и создание небольшой программы ввода данных. Окно данных состоит из 1 раскрывающегося окна данных, а остальные 4 столбца настроены на редактирование.
проблема здесь в том, что выпадающее окно данных недоступно для редактирования. я установил для параметра override edit значение true и установил datawindow.readonly='No'/dw_1.object.datawindow.@readonly=false.
но все остальное терпит неудачу. я все еще не могу редактировать содержимое моего окна данных.
нота
при нажатии кнопки "Добавить" datawindow установит свои readonly = false столбцы datawindow защищают, если его newrow() столбец, который можно редактировать, является раскрывающимся окном данных
пожалуйста помоги
люблю много
5 ответов
- Проверьте порядок табуляции каждого столбца в вашем объекте datawindow (тот, который содержит все столбцы), если он равен нулю, он не сможет получить фокус.
- Вы указали раскрывающееся окно данных для вашего столбца, к которому применен стиль редактирования dddw? Также вы установили значение данных и отображаемое значение? Это окно данных, которое не требует аргументов поиска? Если это требует получения аргументов, вам нужно добавить код для извлечения данных DDW вручную.
- Вы можете бросить список вниз? Вы установили на нем флажок Всегда показывать стрелку? Просто любопытно, если вы это сделаете, вы можете бросить список тогда? Вам не нужно ставить флажок "Разрешить редактирование", если вы не хотите, чтобы пользователь изменял значения в списке или выполнял поиск в нем (расширенный)
- Вы делали переопределение объекта управления окном данных, вы видите данные вообще? Если это совершенно новые данные, вы делали InsertRow?
- Установлен ли в вашем объекте datawindow "разрешить обновления" в строке "Свойства обновления"...
- Есть ли у вашей таблицы первичный ключ?
- AutoRetrieve проверяется в вашем объекте datawindow для этого столбца?
Это всего лишь несколько вещей, которые, я думаю, могут привести к проблемам, но я не очень понимаю, что происходит.
Было бы полезно больше информации...
Это утверждение не имеет никакого смысла, пожалуйста, уточните / перепишите его, если вам нужна помощь.
я установил для параметра override edit значение true и установил datawindow.readonly='No'/dw_1.object.datawindow.@readonly=false.
isRowNew(), кажется, не работает нормально. Я сделал какой-то тест, и я не могу заставить его работать, после Google это, я вижу, что у других есть та же самая проблема с 2004, и никого не волнует. Может быть, теперь, когда SAP купит этот продукт, они исправят его или нет.
Единственное решение, которое я нашел, - это использование Isnull(). Вы предполагаете, что при добавлении строки ее значения равны нулю, а старые строки имеют значения (при использовании pk ok, но при использовании других они могут быть нулевыми), поэтому вы должны защитить те, которые не равны нулю
Это не идеальное решение, но единственное, которое работает.
На вкладке "Редактирование" свойств DDDW установите флажок "Разрешить редактирование". Override Edit используется, когда столбец настроен на запрос критериев.
В столбце перейдите для защиты свойств и введите:
If(isrownew(), 1, 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)
пожалуйста, прокомментируйте свой статус.
IsRowNew() не имеет проблем в PB-12.5
Либо вы меняете статус строки в вашем скрипте, либо вы где-то переписываете свое выражение в вашем скрипте. Ваше выражение столбца правильное
dw_prod.Modify("pt_pname.Protect='1~tIf(IsRowNew(),0,1)'")