powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CrossTab DataWindow & dynamically created fields
6 сообщений из 6, страница 1 из 1
CrossTab DataWindow & dynamically created fields
    #35117432
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем PowerBuilder 10.5.2 Build 7564 . Есть некое подобие Print Preview окна.
В него передаются DataWindows (отчеты для печати). Так вот, программа генерит
некий нижний колонтитул, в котором прописана всякая лабуда: кто, когда, сколько страниц.
Его генерация делается динамически, ну типа (кусок кода):

Код: 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.
28.
if lb_change_processing then
	// The Text will be below the footer
	lc_fieldy = il_footer_height +  4 
	
	// The beginning of modification string
	ls_begin_modify = "create compute(band=footer"
else
	// The Text will be in the end of page
	lc_fieldy = lc_printareaheight -  108 
	
	// The beginning of modification string
	ls_begin_modify = "create compute(band=foreground"
end if

// create footer field
for li_pageitem =  1  to li_pagecountaccross
	// create datetime field 
	ls_modstring = ls_begin_modify + ' alignment="0" expression=~"~'' + is_footername +&
					'~'~" border="0" color="33554432" x="'+ string(lc_printareawidth * (li_pageitem -  1 ) +  50 ) + '" y="' + string(lc_fieldy) + '" height="104" width="2290" format="[GENERAL]" html.valueishtml="0"  name=userdate_' + &
					+ string(li_pageitem) + ' visible="1"  font.face="Tahoma" font.height="-8" font.weight="400"  font.family="2" font.pitch="2" font.charset="204" background.mode="1" background.color="1073741824" )'
	// create page number field
	ls_modstring = ls_modstring + " " + &
					ls_begin_modify + ' alignment="1" expression="~'Page ~' + string( pageCountAcross() * (page() -1) + pageAcross()  ) + ~' of ~' + string(pageCountAcross() * pageCount() )"' +&
					' border="0" color="33554432" x="'+ string( lc_printareawidth * li_pageitem  -  650  ) + '" y="' + string(lc_fieldy) + '" height="52" width="600" format="[GENERAL]" html.valueishtml="0"  name=pagefrompages_' + &
					 + string(li_pageitem) + ' visible="1"  font.face="Tahoma" font.height="-8" font.weight="400"  font.family="2" font.pitch="2" font.charset="204" background.mode="1" background.color="1073741824" )'
	ls_error = dw_preview.Modify(ls_modstring)
next

ii_pagecountaccross = li_pagecountaccross

Это все работает хорошо для разных типов DataWindow . На определенном этапе, нужно
разрушить этот колонтитул. Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
integer	li_pageitem
string		ls_modstring
string		ls_error

// destroy footer fields
for li_pageitem =  1  to ii_pagecountaccross
	// Datetime field
	ls_modstring = ""
	ls_modstring = ls_modstring + " " + "destroy userdate_" + String(li_pageitem) 

	// Page number field
	ls_modstring = ls_modstring + " " + "destroy  pagefrompages_" + String(li_pageitem)
	ls_error = dw_preview.Modify(ls_modstring)
next
Так вот, разрушение колонтитула проходит замечательно для всех типов DW , за
исключением CrossTab DataWindow . При попытке выполнить первый же:
Код: plaintext
ls_error = dw_preview.Modify(ls_modstring)
Программа валится, с сообщением об ошибке:

Sybase PowerBuilder 10.5 - обнаружена ошибка. Приложение
будет закрыто. Приносим свои извинения за неудобства.


ну и в нутри хрень:

Подпись ошибки:
AppName: pb105.exe AppVer: 10.5.0.4523 ModName: pbshr105.dll
ModVer: 10.5.2.7564 Offset: 000de28a


Вообщем, приложение крешится окончательно и бесповоротно. Это все сделал, на пустом окне
и с минимум функционала, т.е. влияние наследования/другого кода исключено.

Что делать, как дальше то жить?
Разрушение колонтитула обойти не удасца. Ситуация хреновая, проект сдавать надо, а тут ТАКОЕ
лезет. Говорят, клиент может нас на бабки нагнуть за это. Про себя я ужО совсем молчу...
...
Рейтинг: 0 / 0
CrossTab DataWindow & dynamically created fields
    #35117451
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если колонтитул сделать в дизайн тайме, а потом динамически грохнуть,
то приложение не валится...
...
Рейтинг: 0 / 0
CrossTab DataWindow & dynamically created fields
    #35117523
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, этот тип датавинды для начала в статик моду перевести?
...
Рейтинг: 0 / 0
CrossTab DataWindow & dynamically created fields
    #35117543
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ноги могут расти отсюда

http://www.sql.ru/forum/actualthread.aspx?tid=54775
...
Рейтинг: 0 / 0
CrossTab DataWindow & dynamically created fields
    #35117550
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮРА, ты гений!
Млин, совсем запарился, идиЁт.
Даже, поговорить тута не скем, вот и результат хреновый...


СПАСИБО, Юрий Васильевич
...
Рейтинг: 0 / 0
CrossTab DataWindow & dynamically created fields
    #35117555
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то!!! :-))))))))))))))))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CrossTab DataWindow & dynamically created fields
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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