Одна и та же функция в разных окнах Powerbuilder

У меня есть два окна, скажем, w_base1 и w_base2. Теперь в w_base1 у меня написано ниже заявление, которое работает нормально.

ls_Value = This.GetItemString(ll_CurrRow, "af_value")

Теперь тот же оператор выше, который я хочу использовать в w_base2, но он дает следующую ошибку:

Ошибка выполнения приложения Powerbuilder (R0002) Приложение прекращено. Ошибка: пустая ссылка на объект в строке 230 в событии abcd объекта w_base2.

Когда он завершает приложение, он переходит непосредственно к приведенному выше заявлению, т.е.

ls_Value = This.GetItemString(ll_CurrRow, "af_value")

Я считаю, что проблема связана с af_value, который я не могу увидеть, что на самом деле он извлекает, но, согласно приведенной выше ошибке, он обращается к Null. Может ли кто-нибудь помочь мне в этом как можно скорее.


person Community    schedule 03.06.2009    source источник
comment
Несколько вопросов: Какая у вас версия PB? Где оператор, вызванный в окне? В пользовательской функции? В оконном событии? Проверяете ли вы действительный объект окна данных перед вызовом GetItemString?   -  person Vincent Buck    schedule 03.06.2009


Ответы (1)


Ваша ошибка говорит line 230 in abcd event of object w_base2, это звучит как окно, но ваш код говорит This.GetItemString(). GetItemString — это метод DataWindow, который нельзя использовать в окне. Убедитесь, что ваш код действительно работает с элементом управления DataWindow.

Если тип af_value не является строкой, то вы получите ошибку выполнения (хотя я думаю, что это должна быть другая ошибка?)

В основном эта ошибка означает, что вы ссылаетесь на объект, который не существует или находится вне области видимости. Проверьте, есть ли у вас объект DataWindow, назначенный элементу управления DataWindow.

Что можно исключить:

  1. Если содержимое af_value равно нулю, то вы получите нулевое значение в ls_Value, но не получите этой ошибки.
  2. Если строка или столбец не существуют, вы получите сообщение «Недопустимая строка/столбец».
person Colin Pickard    schedule 03.06.2009