powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Dynamically Grid DW to Form DW. What is a sexual difference?
25 сообщений из 30, страница 1 из 2
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538335
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаем с PowerBuilder 10.5.2 Build 7564

Меняю динамически свойство Processing в DataWindow object с 1 на 0 .
Т.е. перевожу Grid DW в Form DW . Двигаю столбцы, статик тексты. Смотрю привью:
Код: plaintext
DataWindow.Print.Preview='Yes'
- ляпота, все как дохтур прописал. Тупо пускаю на печать:
Код: plaintext
dw_report.Print()
Все изменения игнорируются, на печать идет DW , которое было в Grid .
После печати, на экране нет никаких изменений. Это все наблюдается на тестовом, абсолютно
пустом окне, в DW контрол тоже кода никакого нет. Если же руками в Edit Source поменять
тип с Grid DW на Form DW и запустить тестовое окно, то все работает, как надо.
Понятно, что согласно Help -у свойство Processing не должно меняться динамически.
Но меня приперло - НАДО.

А зачем? (с) Филипп

Борюсь с печатью широких отчетов. Если отчет сделан на Form DW , то все нормально,
ибо есть функционал, который расставляет данные, как нужно для печати.

Grid DW печатался напрямую без нашего функционала, т.к. на экране виден идеальный
отчет всегда, спасибо PB. Так вот, на широких отчетах стала сильно проявляться ситуация,
когда при печати на принтер идет разбиение столбцов на границах страниц. Такое впечатление,
что границы страницы в PB не совпадают с границами реальной бумаги, причем очень
сильно. Иногда, разбивка отчета на границе страниц приходится, чуть ли не на середину реальной
страницы. Вот и хочу перевести Grid DW в Form DW , подвигать столбцы, выровнять
все и пустить на печать. А тут такая засада.

Как динамически измененный Grid DW заставить работать, словно это Form DW ?
Поменять все Grid DW отчеты на Form DW прямо в Edit Source - не прокатит.

P.S.: Вчера работу работал 15 часов, сегодня столько же буду. Может, где-то туплю?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538814
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не менять динамически а пересоздавать заново динамически измененное (в смысле сурса) ДВ?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538829
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urvasА если не менять динамически а пересоздавать заново динамически измененное (в смысле сурса) ДВ?
Только нужно разобраться с retrieval arguments если таковые используются - иначе пропадут они.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538836
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А куда они пропадут, если в сурсе они уже есть?
По шагам, думаю, может выглядеть примерно так:
1.Меняем тип ДВ
2.Сохраняем сурс в переменную
3.Грохаем ДВ
4.Пересоздаём ДВ из нового сурса

Ещё бы не забыть сохранить исходный сурс ДВ на предмет восстановления.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538844
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urvasА куда они пропадут, если в сурсе они уже есть?
По шагам, думаю, может выглядеть примерно так:
1.Меняем тип ДВ
2.Сохраняем сурс в переменную
3.Грохаем ДВ
4.Пересоздаём ДВ из нового сурса

Ещё бы не забыть сохранить исходный сурс ДВ на предмет восстановления.
И что? Перед печатью заново вызывать Retrieve(...)?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538861
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
>>И что? Перед печатью заново вызывать Retrieve(...)?
а shareData() нельзя?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538912
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+/->>И что? Перед печатью заново вызывать Retrieve(...)?
а shareData() нельзя?
Е:сли посмотреть историю изменений в моей библиотеке экспорта в HTML то там есть такая строчка:
Код: plaintext
1.
C При экспорте DataStore теперь используется ShareData() вместо RowsCopy(),
  но от проблемы с Retireval Arguments это все равно не избавило.
Если честно, уже не помню что за проблемы (может с конкретным build'ом???), но вот было.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538923
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДВ можно и не грохать, а, например, скрывать. А вновь созданое шарить с ним и печатать.
Просто весь смысл моего предложения - в создании ещё одного ДВ с "правильным" типом и его дальнейшей печатью.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35538972
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urvasДВ можно и не грохать, а, например, скрывать. А вновь созданое шарить с ним и печатать.
Просто весь смысл моего предложения - в создании ещё одного ДВ с "правильным" типом и его дальнейшей печатью.
А смысл моего предложения что нужно разбираться с retrieval arguments т.к. с ними насколько я помню будут проблемы и если шарить.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539262
urvas - не прокатит. Я уже думал над этим. У меня там данные сосуться через GetFullState ,
т.к. перед печатью DW еще может и меняться хитрожопым образом. Помнишь, что некоторые
значения, получаемые в рантайме с помощью Describe , возвращаются такими, какими
они были в паинтере.

Может еще чего-то есть а? До работы/Интернета доберусь только в среду. Хотелось бы
прочитать какие-нибудь советы.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539442
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черный Дикарь urvas - не прокатит. Я уже думал над этим. У меня там данные сосуться через GetFullState ,
т.к. перед печатью DW еще может и меняться хитрожопым образом. Помнишь, что некоторые
значения, получаемые в рантайме с помощью Describe , возвращаются такими, какими
они были в паинтере.
Может еще чего-то есть а? До работы/Интернета доберусь только в среду. Хотелось бы
прочитать какие-нибудь советы.
Ну так а что мешает после всех манипуляций получить синтаксис как
Код: plaintext
Describe("DataWindow.Syntax")
подменить processing и уже создать с новым типом?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539458
To Локшин Марк
Я как раз об этом и говорил. На память не вспомню (она мне вечно с кем-то изменяет), но кажись,
засада может быть с бандем, у которого стоит аутосаяз свойство. Ну и разное шаманство с
передвижением обьектов или их созданием динамически. Думается мне, что DataWindow.Syntax
возвратит, то что было в паинтере, до всех изменений. Хотя не проверял, но мое чувство мне
подсказывает, что надо давить на ночальников, чтобы переделать гриды на форм. Хотя ХЗ, как они
будут работать после этого...
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539492
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же, использование GetFullState и SetFullState позволяют мне не париться
над сортировкой, фильтрацией, данными и т.д. Любое пересоздание DW ведет к тому,
что нужно руками (скриптом) все воссоздавать в этом новом динамически сгенеренном DW ,
плюс данные запихать надо будет.
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539507
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черный ДикарьДумается мне, что DataWindow.Syntax
возвратит, то что было в паинтере, до всех изменений.
Неее, это Вам неправильно думается. Вот насчет глюков каких - это может быть (но сам не сталкивался), но это уже в Sybase
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539559
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркНеее, это Вам неправильно думается.
А Autosize у Detail band не свалиться? В DW натыканы функции, которые получают
размер банда и передвигают другие объекты, в соответствии с данным размером. Я точно помню,
что при попытки определить с помощью Describe размерчик такого детайла, получаешь
первоначальное значение, установленное в Painter. Что будет в динамически сгенеренном DW? Не
уверен, что ничего не собьется. Ну и плюсь куча траблов с фильтрами, сортировками. По-моему,
достаточно геморройное решение...
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35539617
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, фактически у нас уже была реализация, когда в Print Preview окно передавалась ссылка
на первоначальное DW. В Print Preview окне с помощью ShareData получали данные и
отображалось, фактически, новое DW для просмотра. Пришлось отказаться от такой
конструкции в пользу GetFullState и SetFullState , сразу снялись все проблемы по полному
воссозданию первоначального DW в окне Print Preview
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35540510
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ты в собственном коде запутался со своим GetFullState/SetFullState...
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35544140
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппЭто ты в собственном коде запутался со своим GetFullState/SetFullState...
А по подробнее можно?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35545255
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black Savage ФилиппЭто ты в собственном коде запутался со своим GetFullState/SetFullState...
А по подробнее можно?
Можно. Раскрой глаза и ПОСМОТРИ на свой код :-)
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35545283
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Филипп
Слышь, юморист, а как ты будешь, используя DataWindow.Syntax и ShareData запихивать
данные во вновь созданное DW без того, чтобы не делать ретрив вновь?

Решение, должно работать не только для грида, но и для других типов DW. В противном
случае, мне придется поддерживать две ветки кода. А там и так понаворочано столько,
что половину можно было бы выкинуть...
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35545290
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь выше шла об Crosstab DataWindow object
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35545314
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black Savage ФилиппЭто ты в собственном коде запутался со своим GetFullState/SetFullState...
А по подробнее можно?
в какой момент ты делаешь SetFullState?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35545873
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ЗоринАндрей
Спасибо, Андрей, теперь я понял, на что намекал Филипп .

To Филипп
Это вовсе не то, о чем ты подумал.

To All
Приложил тестовый проект. Если есть у кого-нибудь время/желание, посмотрите на него.
Добавьте какой-нибудь свой Grid DataWindow object со многими столбцами. Дополнительно,
придется настроить коннект к базе + Construction event для dw_report . В open event
окна есть код:
Код: plaintext
1.
2.
3.
4.
ll_x1 = Long(dw_report.Describe("letchgdate.X"))
ll_x2 = Long(dw_report.Describe("letchgdate_t.X"))

ls_error = dw_report.Modify("letchgdate.X=" + String(ll_x1 -  200 ))
ls_error = dw_report.Modify("letchgdate_t.X=" + String(ll_x2 -  200 ))

Поставьте здесь какой-нибудь столбец (etchgdate) и его заголовок (letchgdate_t). Так вот,
как я писал выше, при печати, допустим в PDF, у меня смещение объектов etchgdate и
letchgdate_t пропадает и DW возвращается в первоначальное состояние.

Что это? Баг PowerBuilder 10.5.2 Build 7564 или ошибка ДНК?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35547010
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни, ну гляньте пример то мой. Я тут не могу другой билд поставить (политика безопасности
такая), а посему нужна чья-то помощь. Ну, где там трабл то: в PowerBuilder или в моей ДНК?
...
Рейтинг: 0 / 0
Dynamically Grid DW to Form DW. What is a sexual difference?
    #35547399
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black SavageПарни, ну гляньте пример то мой. Я тут не могу другой билд поставить (политика безопасности
такая), а посему нужна чья-то помощь. Ну, где там трабл то: в PowerBuilder или в моей ДНК?

после вызова dw.Print(...) слетает координата X у DW в котором сделан Modify и которое изначально создавалось как Grid.
размер шрифта например не слетает.

на DW которое создавалось как FreeForm изначально - ничего не слетает.
на копии грида с исправленным через Edit Source Processing=0 - ничего не слетает.

делаем выводы.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Dynamically Grid DW to Form DW. What is a sexual difference?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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