powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Значение ячейки в Grid
25 сообщений из 25, страница 1 из 1
Значение ячейки в Grid
    #36028965
Qwed86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется datawindow типа Grid, чтоб узнать значение конкретной ячейки нужно сделать что-то типа этого
dw_1.object.kolonka[stroka]
Но если значение не зафиксировано, т.е. ввели значение в ячейку, перешли на следующую, предыдущая естественно зафиксировалась и сохранилась, в эту ввели значение и оставили курсор на ней, т.е. она не зафиксировалась. Теперь если делать выборку из этого grid'a то со второй ячейки будет взято старое значение, а не то которое там показывается в данный момент. Как получить при выборке значение этой ячейки на которой стоит курсор, т.е. сам отображающийся текст этой ячейки.
Объяснил как мог, возможно такое? А то я туплю сижу.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36028973
dw_1.AcceptText()
dw_1.object.kolonka[stroka]

AcceptText() в событии LoseFocus() датавинды очень не плох
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36028975
Qwed86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точно, всё работает. А я не думал в том направлении чтоб зафиксировать все изменения перед выборкой).
Спасибо.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36028979
Фотография Raven A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строго IMHO
> AcceptText() в событии LoseFocus() датавинды очень не плох
Очень плох, поскольку если есть проверка на ошибку, которая приведет к выдачи окна сообщения, которое приведет к потере фокуса, что приведет к ...
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36031741
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимииирdw_1.AcceptText()
dw_1.object.kolonka[stroka]

AcceptText() в событии LoseFocus() датавинды очень не плох
Точно - ТОТ Владимир :-))) Stack Fault обеспечен
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36036963
Qwed86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТочно - ТОТ Владимир :-))) Stack Fault обеспечен

Не обеспечен.
Ну а ваше мнение по этому воросу.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36037332
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwed86авторТочно - ТОТ Владимир :-))) Stack Fault обеспечен
Не обеспечен.
До первого "Item 'xxxxx' does not pass validation test"
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038242
Qwed86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему есть привычка обсуждать некачественные решения и ничего не предлагать?
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038301
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwed86,

Потому что AcceptText() в событии LoseFocus() датавинды делать просто НЕЛЬЗЯ и ВСЁ !!!
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038479
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwed86Почему есть привычка обсуждать некачественные решения и ничего не предлагать?
Создайте событие ue_apply() которое вызывайте из кнопки сохранения (или что там нужно делать после ввода).
В этом событии вызовите ф-ю of_validate() которая выполнит dw.AcceptText() (а в будущем и остальные проверки введенных данных) и вернет false (-1) если проверка не пройдена либо вернет true (1) если проверка пройдена успешно.
Далее ue_apply() в случае успеха выполняет действия над введенными данными, например dw.update()

Если действие должно происходить сразу при вводе данных в определенные поля, а не при нажатии на кнопку, то событие ue_apply() вызывайте из dw.event itemchanged() через модификатор POST
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038512
Qwed86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky
Вот спасибо, всё по полочкам.
Филипп
Ну это было понятно из твоего первого поста. Очень позновательные ответы.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038581
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вопрос азбучный, и объявляются "помошники" с ЗАВЕДОМО неверными ответами, то мне лень тратить время на большее, чем пресекание...
А в остальном, каков вопрос - таков ответ.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36038798
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Qwed86
А еще есть такой метод GetText ( ) ...
Думаю, стоит попробовать ...
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36039091
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJB 2 Qwed86
А еще есть такой метод GetText ( ) ...
Думаю, стоит попробовать ...
Да-да, SetRow(), SetColumn(), GetText(), распарсить строку в значение...
Это все равно что писать на ассемблере, когда есть С++.

Давайте обойдемся без вредных советов (их тут есть кому давать).
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36039224
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyДа-да, SetRow(), SetColumn(), GetText(), распарсить строку в значение...
Это все равно что писать на ассемблере, когда есть С++.

Давайте обойдемся без вредных советов (их тут есть кому давать).
Конечно, метод не для слабонервных ... :), но (если я правильно понял первоначальный вопрос) - человеку надо прочитать "не зафиксированное" значение, т.е. до вызова метода AcceptText().
А это, на сколько я знаю можно сделать в событиях itemchanged, itemerror или из другого места программы с помощью GetText().
Я не знаю профессионального уровня человека задавшего вопрос и поэтому советую то, что сам делал и те методы, которыми пользовался и пользуюсь.
Сам я всегда стараюсь читать и анализировать такие значения только в событиях itemchanged, itemerror, но иногда, редко приходилось прибегать к услугам GetText().
И еще ... : На сколько я знаю, параметр data событий itemchanged и itemerror тоже строковый и от преобразования, парсинга и т.д. при анализе никуда не денешься ...
Поправьте меня если я не прав ...
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36039265
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJBчеловеку надо прочитать "не зафиксированное" значение, т.е. до вызова метода AcceptText().
Нет, введенное значение уже планируется использовать. А это уже другая история - считывание значения должно быть унифицированным для всех полей и DW предоставляет этот интерфейс (и даже не один).

А GetText() надо использовать во время ввода (валидация и прочий сервис).
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36040967
Владимииир
AcceptText() в событии LoseFocus() датавинды очень не плох

Если в поле датывинды введено значение, то AcceptText() прежде чем выполниться вызывает ItemChanged

А в ItemChanged можно включить:

// изменение значений некоторых полей, в зависимости от введённого значения
Post wf_dwChange(GetColumnName(), Row)

// сохранение в базе данных нового значения (dw.Update()), что позволяет не заботится о сохранении его при нажатии, например, на крестик
Post wf_dwUpdate(This)

Проверку на ошибки, которая приведет к вызову окна сообщения, конечно, делать не надо.
Чтобы не вводились ошибочные данные надо использовать маску ввода.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36041154
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимииир ... то AcceptText() прежде чем выполниться вызывает ItemChanged ....
Владимииир, вообще-то здесь "за базар" отвечают.
Наверное, в первую очередь, гуру поэтому на Вас так и сердиты.
Вы не правы - сама команда AcceptText() НЕ ВЫЗЫВАЕТ ItemChanged.
Убедитесь сами :
- Измените значение поля в DW.
- Укажите команду AcceptText().
- Проверьте - было - ли вызвано событие ItemChanged.
Только, чтобы не путать, - выводите в лог "каждый шаг ".

Ну и, кроме того, если посмотреть в Help AcceptText method (DataWindows) :
"... Calling AcceptText in the ItemChanged event has no effect."

Good Luck !
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36041227
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так. Хм... Наверное последние две строки можно убрать. Понедельник - да и дел по горло.

Good Luck !
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36041409
ChV
- Измените значение поля в DW.
- Укажите команду AcceptText().


Не понял.
Где указать AcceptText()?
Он имеется в событии LoseFocus.
Дискуссия - о хорошести AcceptText() в LoseFocus.

Прежде, чем написать прошёлся в отладчике и у меня получилось то, что написал.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36041660
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимииир...Дискуссия - о хорошести AcceptText() в LoseFocus...
Я в дискуссию не хочу влезать, т.к. об этом ранее уже очень не плохо уже высказались.
Я обратил Ваше внимание только на фразу,
Владимииир...AcceptText() .... вызывает ItemChanged..."
И еще ...
Владимииир...Прежде, чем написать прошёлся в отладчике и у меня получилось то, что написал.
Вообще-то отладчик вещь хорошая, но только не там, где надо разобраться - как какие и в какой последовательности одни события вызывают другие.
Тем более, если идет речь о LoseFocus.

Good Luck !
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36041990
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChVВы не правы - сама команда AcceptText() НЕ ВЫЗЫВАЕТ ItemChanged.
Убедитесь сами :
- Измените значение поля в DW.
- Укажите команду AcceptText().
- Проверьте - было - ли вызвано событие ItemChanged.

Это не так.
Если есть поле с незафиксированным текстом, то вызов AcceptText() приведет к вызову события ItemChanged как заключительного этапа валидации (при условии конечно, что предыдущие проверки пройдены - маска, правила). И только после этого AcceptText() вернет 1/-1 в зависимости от того, что вернуло событие ItemChanged.
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36042031
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЕсли есть поле с незафиксированным текстом, то вызов AcceptText() приведет к вызову события ItemChanged...
Отлично ! Век живи - век учись.
Хотелось бы убедиться. Только никак не соображу "поле с незафиксированным текстом" - о чем идёт речь ?

Good Luck !
М. ЖванецкийНепонятно, секс - это что-то новое или мы им уже давно занимаемся ?
Или это когда днем ночуют ?
...
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36042224
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChVТолько никак не соображу "поле с незафиксированным текстом" - о чем идёт речь ?
Текст, введенный в поле, но еще не синхронизированный с буфером DW.
(Это то, о чем вся эта тема)
...
Рейтинг: 0 / 0
Значение ячейки в Grid
    #36042794
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwed86
... dw_1.object.kolonka[stroka]
Но если значение не зафиксировано, т.е. ввели значение в ...
Да, ... " был не прав, вспылил ".
Действительно, в этом случае AcceptText() приведет к вызову события ItemChanged.
Anatoly Moskovsky - спасибо ! На этот нюанс раньше внимание не обращал.

Good Luck !
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Значение ячейки в Grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]