Та же функция в разных окнах в Powerbuilder - PullRequest
1 голос
/ 03 июня 2009

У меня есть два окна, скажем, 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. Может ли кто-нибудь помочь мне в этом как можно скорее.

1 Ответ

4 голосов
/ 03 июня 2009

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

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

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

Вещи, которые вы можете исключить:

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