powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / dwc.RowCount()=0
7 сообщений из 7, страница 1 из 1
dwc.RowCount()=0
    #32517189
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется вполне примитивный код, проверка количества строк в члене композитного DW:

DataWindowChild dwc
dw.GetChild('dw_aaa', dwc)
if dwc.RowCount()=0 then
....
end if

Если dw_aaa содержит обычное DW типа tabular, то все работатает замечательно. Но если tabular DW содержит дочерние DW (тоже tabular типа). То dwc.RowCount() всегда возвращает ноль.

И как эту заразу победить?

Проверял на PB8.0.1(8001) и на PB9.0(5507)
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32517214
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никак. У тебя на самом деле GetChild не срабатывает (как собственно и документировано) как только ты используешь больше чем один уровень вложенности...
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32518813
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему это вдруг не срабатывает?
Если считать что композитное dw это первый уровень, то я всегда беру DW второго уровня. dwc.RowCount() возвращает всегда ноль ЕСЛИ СУЩЕСТВУЕТ третий уровень. Никто к этому третьему уровню не обращается. Мне нужно количество строк в DW второго уровня!
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32518885
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты возьми и напиши вот так:

Код: plaintext
1.
2.
3.
4.
DataWindowChild dwc
long ll_rows
IF dw.GetChild('dw_aaa', dwc) =  1  THEN
   ll_rows = dwc.RowCount()
END IF
Поставь breakpoint на ll_rows = dwc.RowCount(), и посмотри остановишься ты там, если твой report object под названием 'dw_aaa' (находящийся внутри твоего композитного DW) содержит дочерние DW ...
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32518893
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из хелпа по GetChild method (DataWindows) :

You can't use GetChild to get a reference to a report in a composite DataWindow when the report itself is a composite or nested DataWindow.
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32519010
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот если бы данная строка в хелпе звучала так:
You can't use GetChild to get a reference to a report in a composite DataWindow when the report itself is a composite or has nested DataWindow.
Я бы еще согласился с утверждением что это документированное поведение.
А вообще я много-много раз уже говорил недоделаная система этот ПоверьБилдер :(
К черту, переписал нафиг весь скрипт. Теперь он у меня сначала запрашивает у базы сколько теоретически может быть строк в отчете, потом делает уже сам отчет :) Чуть медленнее и сложнее в поддержке, зато работает.
...
Рейтинг: 0 / 0
dwc.RowCount()=0
    #32519015
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данная строка в хелпе звучала бы так, если бы хелп писали иностранцы с претензией на знание ангилийского языка :-)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / dwc.RowCount()=0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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