|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Есть отчет формата А4 но заполненный на половину. Нужно получить вторую копию на этом же листе. Делаю это через функцию RowsCopy. Пример кода: Код: sql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
Как сместить второй скопированный отчет относительно конца первого. Нужно увеличить расстояние между этими "отчетами". Изменение параметра detail отчета не подходит, так как он тоже копируется и выносит копию на второй лист. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 19:59 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Valeri395, 1. Можно тупо прописать Y для всех объектов в зависимости от номера строки. 2. Можно сделать новое DW. В него добавить 2 Nesteda: один пустой, второй - наш DataObject. Играться с видимостью пустого. Нижний Nested с данными будет прыгать вверх-вниз сам. 3. Можно в скрипте (или в дизайнере) добавить поле, пройтись по всем объектам и дописать Y= Y+число из этого поля. В первой строке там будет 0, во второй - кол-во пикселей сдвига. 4. Да как угодно! Любой другой способ! Для этого нет никакой надобности приводить кусок кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 12:21 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Riska, Я не профи в РВ и поэтому задал здесь этот вопрос. Отчет сам по себе сложный. В зависимости от состояния документа, который надо печатать, печатается или одна или две копии. Так же может печаться в бланк или на чистый лист. Из за этого не подходит пример с Nested. Так же не подходит тупое копирование всех строк в отчете. dw_report - это полученная строка отчета. После копирования создается вторая строка. Как обратиться к свойству отчета? Код: sql 1.
И как работать отдельно с первой и второй строкой? Свойство dw_report: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 22:16 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
K какому свойству обратиться? Если к detail, то так: Код: sql 1.
И как работать отдельно с первой и второй строкой? Если сложно сделать это из скрипта, то можно в Expression каждого объекта (в Y) прописать такое: Код: sql 1.
P.S. на всякий случай: Expression - см. картинку ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 10:53 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Не забыть еще поставить галочку в Autosize Height для Detail ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 10:57 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Riska, Спасибо за наводку с позицией объекта по Y. Но это то же не подходит. Во первых в отчете более 500 объектов. Объекты все мелкие. Самое главное, что в этом случае позиция по Y будет в абсолютных цифрах. А надо в относительных: надо считать размер текущего Y у объекта и прибавить величину смещения(она для всех объектах отчета одинакова относительно своего положения). Это нужно для подстройки печати отчета в бланк ( у типографии может "гулять" напечатанный бланк от нового заказа). Как перебрать все объекты отчета и заменить во второй строке свойство по Y в скрипте? Или есть возможность в Expression программно получить значение текущего объекта Y. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 12:49 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Valeri395, Как перебрать все объекты отчета Код: sql 1.
Парсить по Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:15 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Просто сделайте для печати как вам советовали 2 Nested report и копируйте туда данные Если один из них будет пустой, то и виден он не будет Можете программно сделать destroy Это гораздо проще ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 11:19 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
На отчете еще есть кнопки, которые задают что печатать. От кнопки зависит печатаются отчет с копией или нет. Еще nest отчет нельзя редактировать в программе ( у пользователей есть простейший редактор отчетов). Там то же надо мудрить. Теоретически можно пойти по такому алгоритму: создать копию строки 2 через RowsCopy. Обратиться к созданной строке по номеру (2). Удалить данные из этой строки. Записать туда прямоугольник определенного размера. Создать копию 3 из строки 1. Размерами прямоугольника можно двигать копию на листе. На сколько я понял при RowsCopy копируется только Detal отчета с height. Практически не знаю как обращаться к строке по номеру и как с ней работать. Прошу не особо ругаться, если написал чушь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 14:18 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Чушь конечно Пусть отредактируют все что нужно, а потом вложенным отчетам передать все что есть в этом перед печатью Ну то есть присвоить тот же dataobject и скопировать строки или попробвать через blob - GetFullState/SetFullState а вы что-то страшное пишите, чуть ли не создание с нуля)) Допускаю что так можно, но просто почитайте про вложенные отчеты хотя бы тут на форуме ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 16:01 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
spas2001, Nested не подходит. В нем перестают отрабатывать "расширенные" функции такая как скрыть перед печатью. Работает так: при нажатии кнопки принтер на экран выводится превью отчета. Он показывается полностью. При повторном нажатии на печать появляется окно выбора принтера и скрывается не печатный текст. А можно ограничить отчет только одной страницей, что не "влезает" обрезать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 22:25 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Профи на форуме не остались или они проходят мимо. Ну решаем сами. Решение очень простое: используем метод Код: sql 1.
Сделан специально для DW у которых более одной строки. Ну а реализация очень простая: в программе уже был механизм модификации отчета с помощью команд из ini файла в ini файле прописывает Код: sql 1. 2.
В скрипте тривиально: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Если кому то интересно можно подробнее. Но идея понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 10:35 |
|
Программное копирование отчета
|
|||
---|---|---|---|
#18+
Теоретически можно пойти по такому алгоритму: создать копию строки 2 через RowsCopy. Обратиться к созданной строке по номеру (2). Удалить данные из этой строки. Записать туда прямоугольник определенного размера. Создать копию 3 из строки 1. Размерами прямоугольника можно двигать копию на листе. Практически это не пройдет. Данные во второй строке удалятся, а размеры Detail остануться. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 17:29 |
|
|
start [/forum/topic.php?fid=15&msg=39792633&tid=1335070]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 245ms |
total: | 431ms |
0 / 0 |