Конкретный столбец в окне данных недоступен для редактирования

Net 12.5 и создание небольшой программы ввода данных. Окно данных состоит из 1 раскрывающегося окна данных, а остальные 4 столбца настроены на редактирование.

проблема в том, что выпадающее окно данных недоступно для редактирования. я установил для редактирования переопределения значение true и установил datawindow.readonly='No'/dw_1.object.datawindow.@readonly=false.

но все остальное терпит неудачу. я все еще не могу редактировать содержимое моего окна данных.

Примечание

когда кнопка «Добавить» была нажата, окно данных установит свои столбцы «только для чтения» = «ложь».

пожалуйста помоги

люблю много


person user3089162    schedule 31.07.2014    source источник
comment
Вы проверили свойства protect и taborder для этого столбца?   -  person Seki    schedule 31.07.2014
comment
защита была сделана, когда была нажата кнопка добавления. я написал это так dw_prod.Modify(pt_pname.Protect='1~tIf(IsRowNew(),0,1)') и порядок табуляции этого столбца равен 10   -  person user3089162    schedule 04.08.2014


Ответы (7)


Пожалуйста, проверьте "Порядок вкладок" для этого столбца.

person Jahir    schedule 31.07.2014

  1. Проверьте порядок табуляции каждого столбца в вашем объекте окна данных (тот, который содержит все столбцы), если он равен нулю, он не сможет получить фокус.
  2. Вы указали раскрывающееся окно данных для столбца, к которому применен стиль редактирования dddw? Также вы установили значение данных и отображаемое значение? Это окно данных, которое не требует аргументов поиска? Если для этого требуется получить аргументы, вам нужно добавить код для получения данных dddw вручную.
  3. Вы можете бросить список вниз? Вы установили флажок Всегда показывать стрелку на нем? Просто любопытно, если вы это сделаете, вы можете тогда бросить список? Вам не нужно проверять Разрешить редактирование, если вы не хотите, чтобы пользователь изменил значения в списке или выполнял поиск в нем (дополнительно)
  4. Вы сделали settransobject для управления окном данных, вы вообще видите данные? Если это совершенно новые данные, вы сделали InsertRow?
  5. Настроен ли ваш объект окна данных на «разрешить обновления» в разделе «Строки... Свойства обновления»...
  6. У вашей таблицы есть первичный ключ?
  7. Проверяется ли AutoRetrieve в вашем объекте окна данных для этого столбца?

Это всего лишь несколько вещей, которые, как я думаю, могут вызвать проблемы, но я очень не понимаю, что происходит.

Больше информации было бы полезно...

Это утверждение не имеет никакого смысла, пожалуйста, уточните/перепишите его, если вам нужна помощь.

я установил для редактирования переопределения значение true и установил datawindow.readonly='No'/dw_1.object.datawindow.@readonly=false.

person Rich Bianco    schedule 17.09.2014

isRowNew() не работает нормально. Я провел некоторый тест, и я не могу заставить его работать, после того, как я погуглил, я вижу, что у других такая же проблема с 2004 года, и всем наплевать. Может быть теперь, когда SAP купит этот продукт, они исправят его, или нет.

Единственное решение, которое я нашел, это использование Isnull(). Вы должны предположить, что когда вы добавляете строку, ее значения равны нулю, а старые строки имеют значения (используя pk ok, но используя другие, они могут быть нулевыми), поэтому вы должны защитить те, которые не являются нулевыми.

Это не идеальное решение, но единственное, которое работает.

person user3629385    schedule 24.03.2015

На вкладке «Редактировать» свойств DDDW установите флажок «Разрешить редактирование». Переопределить редактирование используется, когда столбец настроен на запрос критериев.

person Hugh Brackett    schedule 04.08.2014
comment
сделал и это. я так расстроен, что это заставило меня переделать все. это баг или что? - person user3089162; 05.08.2014

В графе заходим в свойства защиты и вводим:

If(isrownew(), 1, 0)

Вот и все.

person Masa sih    schedule 22.04.2015

Вам необходимо проверить следующее:

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)

пожалуйста, прокомментируйте свой статус.

person M Danish    schedule 24.04.2019

IsRowNew() не имеет проблем в PB-12.5

Либо вы меняете статус строки в своем скрипте, либо где-то перезаписываете свое выражение в своем скрипте. Ваше выражение столбца верно

dw_prod.Modify("pt_pname.Protect='1~tIf(IsRowNew(),0,1)'")
person Shoki    schedule 09.05.2019