BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Кросс-таб
 
В Б4+ в отчете использую кросс-таб.
Можно ли как-то вывести в поле итога (см. рисунок) какие-то свои данные? (или можно в поле вместо "SMOUT")
В поле где "Общий итог" получается свое напечатать, а в соседнее никак.
Может кто-нибудь что посоветует?
 
Добрый день!
Я так понимаю, что поле SMOUT - поле для формирования строки в CrossTabe. Объектный CrossTab собрать итоги по такому полю не позволяет. Можно вывести этот итог после таблицы, можно перевести отчет на секционный Cross-tab.
 
Добрый день.
Я новичок. Пользуюсь SQL-запросами в дизайнере отчётов. И у меня никак не получается корректно воспользоваться именно секционным CROSS-TABом (объектный меня не устраивает): либо грузится "бесконечная туча" страниц, либо вовсе виснет, либо лист пустой... И ни разу у меня не получилось увидеть именно переменное количество столбцов зависимых от таблицы. Пробовал из одного запроса (возможно ли это?), пробовал из двух запросов. Пробовал их упрощать/урезать/связывать поля.. В общем перепробовал всё логичное и нелогичное.

Поковырялся в приложенных инструкциях, но там, к сожалению, более менее подробно описано только для запросов fox pro (насколько я понял). Пробовал проводить некую аналогию...

Можете предоставить некий минимальный требуемый алгоритм, что бы нащупать верный путь?

Использую SCLAD/MDOCM. Необходимо выводить колонки соответствующие каждой дате (3-31 день) соответственно каждому значению поля gryzplat (заполнение - значения поля kol).

**************
Разобрался, но у меня почему-то вся табуляция схлопывается влево. Т.е. если у меня одна из дат отсутствует, перечисляются оставшиеся, как-будто они идут под ряд (и остаётся место в конце). Это я наивен или что-то не учёл?
Изменено: Дмитрий Берилло - 23.09.2011 12:19:02
 
в дополнение к моему косноязычию:
 
Добрый день!
Прошу уточнить - Вы сами сделали источник данных или нет?
Ошибка в том, что в источнике для колонок CROSS-Tab должно быть строк ровно "число строк в таблице* на число колонок"
не должно быть повторов информации и пропусков. Судя по рисунку отчета - были пропуски информации.
 
Получается, кросс-таб через объект умеет привязываться к собственной шапке, а секционный нет..? - Жаль...
Результата можно добиться, только каждый раз "затачивая" в запросе таблицу?
 
Добрый день!
Цитата
Дмитрий Берилло пишет:
Получается, кросс-таб через объект умеет привязываться к собственной шапке, а секционный нет..?
Объектный Cross-Tab не накладывает условия на источник, но возможности программирования - минимальные. Секционный Cross-Tab позволяет разрабатывать любые отчеты, но жесткие требования к источникам.

Цитата
Дмитрий Берилло пишет:
Результата можно добиться, только каждый раз "затачивая" в запросе таблицу?
Решить этот Вопрос можно через массивы, т.е. создать массив со значениями табличной части и заполнить его по всем правилам проходя в цикле по источнику. Разработка такого отчета сложная, но возможна.
 
Я выравнял таблицу (в недостающие строки сделал kol=0) - первое изображение
поля: code, date, kol
Затем сделал секционный кросс-таб, вновь та же ситуация. - второе изображение
строки: code (см. 10 и 13), шапка: date, заполнение: kol

Что можно ещё придумать? :)
Изменено: Дмитрий Берилло - 28.09.2011 08:13:56
 
Добрый день!
Цитата
Дмитрий Берилло пишет:
Что можно ещё придумать? :)
Прошу выложить отчет или прислать его на почту dshlykov@bestnet.ru.
Судя по картинке запрос сформирован правильно, но в таблице эти данные не выводятся.
Думаю, что дело в тексте запроса.
 
отправил сегодня
 
Добрый день!
Получил и дал ответ. Изменил в отчете фильтрацию по полю GRYZPLAT.
Доработанный отчет Вам выслал ответным письмом.
С уважением, Дмитрий Шлыков
 
Честно говоря, не очень понял, как "маневр" с полем GRYZPLAT, решает проблему.
Тем не менее, конечно же, попробовал запустить - 1000 страниц отчёта заполненного нулями. Вынес поле из "left join on" отдельно в "where" (заменил "and" на "where") - пришел обратно к своей проблеме, описанной ранее (на скриншотах).



SEL ECT gryzplat, date, sum(kol) as kol
FR OM sclad_mdocm
WH ERE sclad=:sclad and
vid='2' and type='1' and
date>=:DATEBEGIN and
date<=:DATEEND
GROUP BY GRYZPLAT, DATE
INTO CURSOR GLAV;

sel ect DISTINCT date from GLAV
into cursor DD;

sel ect DISTINCT gryzplat fr om GLAV
into cursor GG;

select * fr om GG, DD
order by gryzplat, date
into cursor GD;

SELECT GD.*, GLAV.KOL FR OM GD LEFT JOIN GLAV
ON ((GLAV.date=GD.date)
and (GLAV.gryzplat=GD.gryzplat))
where GLAV.GRYZPLAT=:gryzplat
 
Добрый день!
Цитата
Дмитрий Берилло пишет:
Честно говоря, не очень понял, как "маневр" с полем GRYZPLAT, решает проблему.
При формировании данных для строки Cross-Tab необходимы данные по всем партнерам, которые будут в таблице. А фильтр в первом запросе устанавливал для каждой строки таблицы - фильтр только из имеющихся записей, т.е. дальнейшая обработка данных шла только для записей этой строки.
Цитата
Дмитрий Берилло пишет:
Тем не менее, конечно же, попробовал запустить - 1000 страниц отчёта заполненного нулями. Вынес поле из "left join on" отдельно в "where" (заменил "and" на "where") - пришел обратно к своей проблеме, описанной ранее (на скриншотах).
При больших отчетах, лучше использовать технологию FileEval - будет быстрее. Прошу выслать доработанный отчет на почту.
 
Добрый день. Нет никакого доработанного отчёта, вместо 7 страниц вываливается более 1000 - и так не должно быть.Пока что самый лучший вариант тот, что я описывал ранее (и уже высылал вам на почту): мне проблема видится в том, что я неверно связываю между собой таблицы, неверно указываю источник данных для бэндов. А т.к. я уже перепробовал множество вариантов, хочется узнать примерный алгоритм - вдруг я допустил ошибку в самом начале.
Может стоит абстрагироваться?
У меня есть таблица (одна!), в которой мне важны следующие атрибуты: клиент, количество, дата. Требуется получить что-то вроде сводной таблицы как в MS Excel: строками сделать клиентов (т.к. их много), столбцами сделать даты (интервал задаёт пользователь, не более 30), а заполнение этой таблицы - суммы количеств соответствующих клиенту и дате. Как это можно реализовать?
 
Добрый день!
Цитата
Дмитрий Берилло пишет:
У меня есть таблица (одна!), в которой мне важны следующие атрибуты: клиент, количество, дата. Требуется получить что-то вроде сводной таблицы как в MS Excel: строками сделать клиентов (т.к. их много), столбцами сделать даты (интервал задаёт пользователь, не более 30), а заполнение этой таблицы - суммы количеств соответствующих клиенту и дате. Как это можно реализовать?
При больших отчетах, лучше использовать технологию FileEval - будет быстрее. Вы работали с этой технологией в БЭСТ-4+? Работа с базами данных может быть только на минимальном уровне.
 
С этой технологией не знаком. С БЕСТ-4 не работал. Можете указать на какие-нибудь темы/материалы?
 
Тему перенес в раздел по программированию в БЭСТ-4+
 
Тоже используем FileEval, не особо довольны, может есть что удобней и проще
Страницы: 1
Читают тему (гостей: 1)