powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / подключение ДВ
14 сообщений из 39, страница 2 из 2
подключение ДВ
    #32824398
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Anatoly MoskovskyВложенные DW могут быть не только в композитных DW. Вот там вот и нельзя получить для них DataWindowChild - фича которую обещают разрулить в PB11 (если у меня не срабатывает ложная память:)
Ну на мой взгляд, это не фича, а полноценный баг. И его давно пора чинить...
Но, вообще-то, существует трюк позволяющий обойти эту проблему :)

Хороший баг.
Так какого же из N (равному dwmain.RowCount()) children по-вашему рецепту "исправленный" GetChild вызов будет возвращать?
...
Рейтинг: 0 / 0
подключение ДВ
    #32824566
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Anatoly MoskovskyКонтрольный вопрос:
Допустим, что dwchild получен. Сколько в нем будет записей?
А кто ж его знает?! :)


Вот именно поэтому разработчики PB специально отключили работу GetChild в таких nested DW (а не по ошибке) - из-за неопределенности, что должна возвращать такая ф-я: вроде бы у всех nested метаинформация одна и та же, но наборы данных разные. И непонятно при dwc.Modify() должно ли изменение отражаться на все экземпляры или только на конкретный.

Так что это - 100% не баг.
...
Рейтинг: 0 / 0
подключение ДВ
    #32825732
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВот именно поэтому разработчики PB специально отключили работу GetChild в таких nested DW (а не по ошибке) - из-за неопределенности, что должна возвращать такая ф-я:
Глупости говорить изволите. nested dw по логике ничем не отличаются от группировки. Если делаешь dw с группировкой, сколько строк в группе? А? Нет, ты не спрашивай меня в какой именно группе, ты мне скажи сколько строк в группе? Точно так же и с nested dw!

Лично мне несколько раз надо было получать nested dw и вытягивать из них описания объектов. С данной задачей указаный мной трюк справляется на ура. Почему для этого пришлось трюкачить я не понимаю и считаю это в лучшем случае багом.

Anatoly Moskovskyвроде бы у всех nested метаинформация одна и та же, но наборы данных разные. И непонятно при dwc.Modify() должно ли изменение отражаться на все экземпляры или только на конкретный.
Конечно на все. Разве могут быть сомнения? Еще раз повторяю - nested dw это другой способ группировки данных. Расширить колонку - должно действовать на все экземпляры вложенных dw, добавить строку - на тот который у нас сейчас в работе. Просто как дважды-два!

Anatoly MoskovskyТак что это - 100% не баг.
Ага, только на 99.(9)% :)
...
Рейтинг: 0 / 0
подключение ДВ
    #32825750
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Anatoly MoskovskyВот именно поэтому разработчики PB специально отключили работу GetChild в таких nested DW (а не по ошибке) - из-за неопределенности, что должна возвращать такая ф-я:
Глупости говорить изволите. nested dw по логике ничем не отличаются от группировки. Если делаешь dw с группировкой, сколько строк в группе? А? Нет, ты не спрашивай меня в какой именно группе, ты мне скажи сколько строк в группе? Точно так же и с nested dw!

Лично мне несколько раз надо было получать nested dw и вытягивать из них описания объектов. С данной задачей указаный мной трюк справляется на ура. Почему для этого пришлось трюкачить я не понимаю и считаю это в лучшем случае багом.

Anatoly Moskovskyвроде бы у всех nested метаинформация одна и та же, но наборы данных разные. И непонятно при dwc.Modify() должно ли изменение отражаться на все экземпляры или только на конкретный.
Конечно на все. Разве могут быть сомнения? Еще раз повторяю - nested dw это другой способ группировки данных. Расширить колонку - должно действовать на все экземпляры вложенных dw, добавить строку - на тот который у нас сейчас в работе. Просто как дважды-два!

Anatoly MoskovskyТак что это - 100% не баг.
Ага, только на 99.(9)% :)

Повторю ещё раз:
Так какого же из N (равному dwmain.RowCount() ) children по-вашему рецепту "исправленный" GetChild вызов будет возвращать?

Разница между обычным datawindow с dddw колонкой или там composite с report objectом и НАСТОЯЩИМ nested datawindow в том, что у composite на один report object один datawindowchild, у обычного datawindow с dddw колонкой на одну dddw колонку один datawindowchild (вне зависимости от количества рядов), а вот у НАСТОЯЩЕГО nested datawindow сколько рядов , столько и instances nested datawindows (children)

Утверждение, что nested dw это другой способ группировки данных верно с точки зрения конечного результата (чаще ввего для тех кто ленится правильный SQL написать :-), но не с точки зрения имплементации datawindow engina...
...
Рейтинг: 0 / 0
подключение ДВ
    #32825766
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
Повторю ещё раз:
Так какого же из N (равному dwmain.RowCount() ) children по-вашему рецепту "исправленный" GetChild вызов будет возвращать?
До вызова dwmain.Retrieve() оно должно вернуть (и возвращает) абстрактное описание вложенного dw.
В обработчике события dwmain.RetriveRow оно должно возвращать вложенное dw соответсвующее обрабатываемой строке из dwmain
По окончании dwmain.Retrieve() оно должно возвращать вложенное dw соответствуещее последней строке dwmain.

Так же вполне нормальным был-бы вариант добавить в GetChild еще один опциональный параметр - номер строки в dwmain. Тогда может получится что при пропуске этого параметра, после окончания dwmain.Retrieve(). Мы можем получить dw для первой строки или ошибку "строка с номером ноль" или что-то подобное. Это тоже будет приемлимым вариантом.

Сейчас, при использовании трюка с выставлением Processing=5, может быть все что угодно. Трюк он трюк и есть. Но получить абстрактное описание вложенного dw все же можно, это у меня работает.

ФилиппУтверждение, что nested dw это другой способ группировки данных верно с точки зрения конечного результата (чаще ввего для тех кто ленится правильный SQL написать :-), но не с точки зрения имплементации datawindow engina...
Согласен. Но прошу сделать следующий шаг и понять что принцип и имплементация это все же разные вещи. Принцип один, имплементаций - множество.
...
Рейтинг: 0 / 0
подключение ДВ
    #32825776
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТак же вполне нормальным был-бы вариант добавить в GetChild еще один опциональный параметр - номер строки в dwmain. Тогда может получится что при пропуске этого параметра, после окончания dwmain.Retrieve(). Мы можем получить dw для первой строки или ошибку "строка с номером ноль" или что-то подобное.
Из всей вами написанной повести только это и имеет смысл.
Идите на ISUG и заказывайте enhancement - может для PB11 ещё не поздно...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
подключение ДВ
    #33669297
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня вопрос появился. Кто видел DataWindowChild.Create(...) ? :)
...
Рейтинг: 0 / 0
подключение ДВ
    #33669795
18-я весна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дежавю какое-то :)

Уже ж вроде определились, что для DWC надо использовать Modify, а не Create.
Динамическая загрузка Nested reports
...
Рейтинг: 0 / 0
подключение ДВ
    #33670264
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18-я весна Дежавю какое-то :)
Упс... забыл совсем :) Стал скачивать и на диске у себя этот dwparser.zip обнаружил :)
Не, ну и после этого мне будут говорить, что PB - это круто. :)
Придется все же их в библиотеки загружать... но по всей видимости не на лету, а заранее, типа в монопольном режиме.
...
Рейтинг: 0 / 0
подключение ДВ
    #33670401
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк 18-я весна Дежавю какое-то :)
Упс... забыл совсем :) Стал скачивать и на диске у себя этот dwparser.zip обнаружил :)
Не, ну и после этого мне будут говорить, что PB - это круто. :)
Придется все же их в библиотеки загружать... но по всей видимости не на лету, а заранее, типа в монопольном режиме.

Не, можно по другому:
При старте приложение
- генерирует уникальную строку
- создает пустую PBD со сгенерированным именем
- подключает PBD в список библиотек

Если этот временный файл распологать локально, то в качестве уникальной строки можно использовать ID или порядковый номер запущенного экземпляра программы.

Для запуска из IDE (где не поддерживается смена списка библиотек) надо предусмотреть отдельную библиотеку в списке.
...
Рейтинг: 0 / 0
подключение ДВ
    #33670511
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНе, можно по другому:
А зачем?
А по поводу локального уникального имени файла есть
Код: plaintext
Function Long GetTempFileName  (string lpPathName, string lpPrefixString, long uUnique, ref string lpTempFileName ) Library "kernel32" Alias For "GetTempFileNameA"
А еще можно и GUID'ом обойтись :)
...
Рейтинг: 0 / 0
подключение ДВ
    #33670659
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М-да вопрос конечно интересный
Только вот автору не совсем понятный наверное
Все гуру форума собрались обсудить
...
Рейтинг: 0 / 0
подключение ДВ
    #33670691
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001М-да вопрос конечно интересный
Только вот автору не совсем понятный наверное
А автор уже как бы не причем. Ему я думаю уже не надо, все-таки больше года прошло :)
...
Рейтинг: 0 / 0
подключение ДВ
    #33670837
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / подключение ДВ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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