Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CrossTab DataWindow & dynamically created fields / 6 сообщений из 6, страница 1 из 1
07.02.2008, 16:10
    #35117432
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab DataWindow & dynamically created fields
Имеем 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
07.02.2008, 16:16
    #35117451
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab DataWindow & dynamically created fields
Кстати, если колонтитул сделать в дизайн тайме, а потом динамически грохнуть,
то приложение не валится...
...
Рейтинг: 0 / 0
07.02.2008, 16:32
    #35117523
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab DataWindow & dynamically created fields
Может, этот тип датавинды для начала в статик моду перевести?
...
Рейтинг: 0 / 0
07.02.2008, 16:35
    #35117543
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab DataWindow & dynamically created fields
Ноги могут расти отсюда

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


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


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