Я работаю над устаревшим приложением PowerBuilder, мы обновили до PowerBuilder 12, но продолжаем использовать «классическую» IDE.
У меня есть сетка DataWindow, совместно использующая данные DataWindow произвольной формы, оба наследуют предкикоторые гарантируют, что при изменении текущей строки в сетке произвольная форма прокручивается до той же строки.
Я начал использовать выражения в свойствах Protect и Background.Color элементов управления столбца в свободной форме для имитации включения / отключения, в качестве альтернативы использованию DataWindow.Modify для rowfocuslined.
Пока что мне понравился этот подход, он выглядит намного чище, и нет очевидного снижения производительности, так как я не обращаюсь к базе данных ни в одном из моих выражений.
Проблема заключается в том, что по причинам, из-за которых мне сложно определить, эти выражения иногда приводят к сбою вышеупомянутой функциональности синхронизации строк.
В моем тестовом сценарии есть двастроки в сетке.Выбор строки 2 не заставляет произвольную форму прокручиваться до строки 2, несмотря на то, что отладка показывает, что ScrollToRow действительно вызывается нормально.Затем я снова выбираю строку 1, не могу быть уверен, работает ли это или нет, поскольку произвольная форма никогда не покидала строку 1 для начала.Затем я выбираю строку 2 второй раз, и произвольная форма прокручивается до строки 2 должным образом, и впредь все становится просто замечательно.
Я однажды исправил эту проблему в другом окне, перемещая код внутри одного конкретного выражения, нетПонять, почему это сработало, изменения не повлияли на результат выражения.К сожалению, мне не так легко исправить это в моем текущем окне.До сих пор я мог решить эту проблему с потерей функциональности, удалив выражение Protect из одного конкретного столбца EditTask DateTime или установив положительное значение TabOrder предыдущего столбца EditTask DateTime.Первый столбец нуждается в выражении Protect, а второй столбец должен быть недоступным для редактирования.Я попытался дать второй столбец положительный TabOrder при установке его выражения Protect в 1, но это не сработало.
Я рву волосы и ненавижу PowerBuilder что-то жестокое!Я был бы признателен, если бы кто-нибудь имел представление о том, в чем заключается проблема и как я могу продолжать использовать преимущества выражений столбцов, избегая их.Я не хочу возвращаться к манипулированию этим материалом с помощью Modify from rowfocuschanged.