powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вывод данных отсортированных в определенном порядке. SQL или Fastreport
5 сообщений из 5, страница 1 из 1
Вывод данных отсортированных в определенном порядке. SQL или Fastreport
    #40089038
zzz123zzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Фастрепорт формируются счета отсортированные по номеру, сортировка происходит в запросе SQL (order by billNum). Счет имеет одинаковую высоту и на листе А4 их помещается по 3 штуки.
При печати 12 счетов они выводятся последовательно на 4 листах в порядке их нумерации вот так:

Лист1 | Лист2 | Лист3 | Лист4
-------------------------------------------
Счет1 | Счет4 | Счет7 | Счет10
Счет2 | Счет5 | Счет8 | Счет11
Счет3 | Счет6 | Счет9 | Счет12


Требуется вывод счетов в в такой последовательности:

Лист1 | Лист2 | Лист3 | Лист4
-------------------------------------------
Счет1 | Счет2 | Счет3 | Счет4
Счет5 | Счет6 | Счет7 | Счет8
Счет9 |Счет10|Счет11| Счет12

чтобы сложив распечатанные листы в одну пачку и отрезав резаком стопку получить последовательно идущие счета.

Можно ли это решить средствами SQL или Fastreport и как?
...
Рейтинг: 0 / 0
Вывод данных отсортированных в определенном порядке. SQL или Fastreport
    #40089045
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
Вывод данных отсортированных в определенном порядке. SQL или Fastreport
    #40089046
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы создал временную таблицу с двумя полями billNum и print_order, Добавил бы в нее все отчеты, подлежащие печати, а поле print_order заполнил бы такой процедурой
Код: 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.
SELECT
  COUNT(*) % 3
FROM
  tmp_table
INTO
  :var_sheets;

:var_idx = 1;
FOR
  SELECT
    billNum
  FROM
    tmpTable
  ORDER BY
    billNum
  INTO
    :var_bill_num
DO BEGIN
  UPDATE tmp_table SET
    print_order = :var_idx % :var_sheets
  WHERE
    billNum = :var_bill_num;
  :var_idx = :var_idx + 1;
END


И потом в запросе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
   doc.*
FROM
  tmp_table tmp
  JOIN documents doc ON (
    tmp.billNum = doc.billNum
  )
ORDER BY
  tmp.print_order,
  tmp.billNum
...
Рейтинг: 0 / 0
Вывод данных отсортированных в определенном порядке. SQL или Fastreport
    #40089101
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вывод данных отсортированных в определенном порядке. SQL или Fastreport
    #40089106
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вывод данных отсортированных в определенном порядке. SQL или Fastreport
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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