powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Composite визуальных DataWindow
16 сообщений из 16, страница 1 из 1
Composite визуальных DataWindow
    #32862741
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Вопрос появился такой:

Есть три DataWindow. Причем одно из них рисуется динамически, тоесть пользователь сам добавляет некоторые текстовые поля. Как можно это визуальное DataWindow скомпоновать с двумя другими визуальными DataWindow, чтобы все данные печатались по порядку как в одном отчете?
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32864035
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск рулит:

Филипп
Делается это так:

1) В нормальном скомпиллированном PBD должен иметься dataobject-болванка, с какой нибудь одной колонкой, external, неважно...

Преположим нужно сделать композит с N report objects, у которых dataobjectы не существуют в пибблах...

2) Берём готовое (или через dw_1.Create(ls_syntax)) создаем datawindow, затем в нём опять же с помощью Create создаем N report objects (именуя их уникально), причём dataobjectами им всем назначаем наш "dataobject-болванка".

3) В цикле делаем GetChild на все уникально именованные N report objects и с помошью datawindowchild.Create(syntax) засандаливаем в них синтакс, сидящий в памяти (или в .srd файлах)
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32864606
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 7 Билдере почему то нет метода Create у DataWindowChild.
Через Modify не получается создать синтаксис. Может неправильно что-то делаю?
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32865677
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oops

Филипп
Делается это так:

... и с помошью datawindowchild. Modify (Create...syntax) засандаливаем в них синтакс, сидящий в памяти (или в .srd файлах)
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32867505
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не трудно напиши поподробнее.
Пробовал так:
dw.Modify("DataWindow.Syntax='" + ls_syntax + "'" )
и так
dw.Modify("DataWindow.Syntax=" + ls_syntax )

В обоих случаях ошибка.
Как в точности нужно писать create syntax ?

Спасибо.
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32867516
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
dw.Modify("DataWindow.Syntax='" + ls_syntax + "'" )

точно так ?
Код: plaintext
dw.Modify("DataWindow.Syntax=' " + ls_syntax + " ' " )
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32867528
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТОка если это Child.

datawindowchild ldw

dw.getchild('dw_1', ldw)// , dw_1 - имя вложенного dw, может dw_2 , как у тебя наз-ся

ldw.Modify("DataWindow.Syntax=' " + ls_syntax + " ' " )
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32868786
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
Делается это так:

... и с помошью datawindowchild. Modify (Create...syntax) засандаливаем в них синтакс, сидящий в памяти (или в .srd файлах)
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32868999
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andry_KЕсли не трудно напиши поподробнее.
Пробовал так:
dw.Modify("DataWindow.Syntax='" + ls_syntax + "'" )
и так
dw.Modify("DataWindow.Syntax=" + ls_syntax )

В обоих случаях ошибка.
Как в точности нужно писать create syntax ?

Спасибо.
Упрощенно так (здесь не учитывается, что порядок и кол-во секций в синтаксисе может меняться и что ключевые слова могут встречаться в строковых литералах):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ls_syntax = Mid(ls_syntax, Pos(ls_syntax, "table(")) 
ls_syntax = Left(ls_syntax, Pos(ls_syntax, "htmltable(") -  1 )
ls_syntax = s.of_GlobalReplace(ls_syntax, "text(", "create text(")
ls_syntax = s.of_GlobalReplace(ls_syntax, "column(", "create column(")
ls_syntax = s.of_GlobalReplace(ls_syntax, "compute(", "create compute(")
// ... и т.д. со всеми типами объектов
// ну и добавить преобразование атрибутов DW из вида detail(height= 92 ) 
// в вид ataWindow.detail.height= 92 

// создаем (кстати если в шаблоне были какие-то визуальные объекты, 
// они останутся :-) 
ls_errors = ldwc_1.Modify(ls_syntax)
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32925988
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет вссем, не подскажете что я неправельно делаю:
Сделал composite ДВ, в нем поставил 2 репорта d_dummy.
c наименованием соответственно dw_head, dw_body.
после чего в онлине пробую сделать следующее:
тяну с БД полный синтах ДВ для dw_head, dw_body : s_head и s_body
и делаю следующие шаги:

dw_composite.GetChild("dw_head",ldwc_head)
ldwc_head.Modify(s_head)
dw_composite.GetChild("dw_head",ldwc_body)
ldwc_head.Modify(s_body)

но почемуто не проходит, пробовал и так:
ldwc_head.Modify("DataWindow.Syntax=" + s_body" ' ")
но тоже не проходит
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32926269
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zuzuПривет вссем, не подскажете что я неправельно делаю:

Перед modify исходник dw надо обработать. Как - написано в моем предыдущем письме.
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32927178
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky zuzuПривет вссем, не подскажете что я неправельно делаю:

Перед modify исходник dw надо обработать. Как - написано в моем предыдущем письме.
а height для child-ов надо всегда ручками править ?
а то поставил вродебы height.autosize=yes но это не помогает почемуто.

и еще вопрос по этому поводу, что должно содержать dataobject для репорта, а то GetChild не работает если такового ДВ нет, я перед тем как записать этот синтаксис в БД правлю их значение на d_dummy, но может есть другой способ обойти ?
PB8, Build9704
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32927396
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нету. Написано ведь всё уже по пунктам, что непонятно?
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32928084
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
ну и добавить преобразование атрибутов DW из вида detail(height=92)
в вид DataWindow.detail.height=92

у DataWindowChild нет такого свойства,
вот кусок моего кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
if adw_dw.of_GetDWObjects(adw_dw.TYPE_REPORT, ls_reports[]) <=  0  then 
	return - 1 
end if
for li_index =  1  to upperbound(ls_reports[])

	 if adw_dw.GetChild(ls_reports[li_index], ldwc) <>  1  then
		 return - 1 
	 end if
	 ll_id_source = long( mid( ls_reports[li_index],  4 ) )
	 if ufa_get_syntax_from_DB(ll_id_source, ls_syntax)< 0  then 
	    return - 1 
	 end if
	 if ufa_parse_syntax(ls_syntax) <  0  then
		 return - 1 
	 end if
	 if "" <> ldwc.Modify(ls_syntax) then
		 return - 1 
	 end if

// тут какбы еще нужно поменять свойство Height
// ldwc.Modify('datawindow.detail.height="600"')
// ldwc.Modify('detail.height="600"')
// ldwc.Modify('height="600"')
// adw_dw.Modify(ls_reports[li_index] + '.height="600"')
// но ни одно не помогает

next
подскажите пожалуста как правельно поменять это значение, или хотябы линк на доку где могу прочесть об этом
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32928394
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
height childa меняется так:

dw.GetChild('dw_2',ldwc)
ldwc.Modify('datawindow.detail.height=600')

но как поменять height composita и соответственно репорта из этого composita ?
...
Рейтинг: 0 / 0
Composite визуальных DataWindow
    #32928469
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем,
свойство height нужно править после того как загрузил данные.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Composite визуальных DataWindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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