2012-02-26 3 views
0

Я пытаюсь создать сводную таблицу с динамическими перекрестными вкладками и столбцами с небольшой удачей. Мне нужно, чтобы он функционировал именно так, с динамическими перекрестными вкладками сверху и динамическими столбцами слева.Динамические кросс-вкладки из выпадающего списка

1 http://img689.imageshack.us/img689/1812/crosstabs.jpg

Я также нужно только выбранные столбцы и поперечные выступы, которые будут отображаться. Например, если выбрана только одна колонка и одна поперечная вкладка, они должны быть единственными, которые отображаются. Я попробовал sql pivot и сетку, но я не могу заставить ее правильно форматировать две категории столбцов, уложенные сверху. Я также пробовал хрустальные отчеты, но нельзя скрывать перекрестные закладки, когда они не выбраны. Я попробовал контроль над сообщением Telerik, но не могу получить перекрестные вкладки для динамического создания с выпадающим списком. Я ищу любые советы о том, как подойти к этому. Кроме того, если кто-то создал что-то подобное или имеет представление, как, пожалуйста, поделитесь. Спасибо заранее.

ответ

0

Я никогда не пользовался Telerik, поэтому следующий совет относится только к Crystal.

Вы можете скрыть Таблицы сопряженности условно в кристалле, по меньшей мере, двумя различными способами:

  1. Через диалог Format (не эксперт Cross-Tab) - щелкните правой кнопкой мыши на CrossTab, выберите Формат кросс- Вкладка ... из меню нажмите кнопку x-2 рядом с надписью «Подавить» на вкладке «Общие» диалогового окна «Редактор формата» и введите соответствующую формулу (что-то вроде {?crosstab1s1}="n/a").
  2. Поместив кросс-таблицу в свой собственный подраздел и сделав подсектор условно подавленным - щелкните правой кнопкой мыши серое поле слева от области макета отчета на вкладке «Дизайн конструктора отчетов» в соответствующем подразделе, выберите Эксперт раздела ... из меню нажмите кнопку x-2 рядом с надписью «Подавить» («Нет сверления») на вкладке «Общие» диалогового окна «Эксперт раздела» и введите соответствующую формулу.

Я предлагаю использовать последний из этих двух подходов - подавление самой кросс-таблицы по-прежнему будет оставлять пробел, где он должен отображаться.

Вы также можете поместить кросс-таблицы в свой собственный отчет и подавить те условно - однако это вводит дополнительный уровень сложности, который на данный момент не представляется необходимым.

Несколько других комментариев:

  • параметры кристалла гораздо менее гибким, чем то, что может быть достигнуто в ASP, поэтому, если возможно сделать все выбор параметров в ASP и передать параметры в Crystal.
  • Обработка Crystal с нулями несколько неудобна, поэтому передайте определенное значение, указывающее, что кросс-таблица не требуется, вместо того, чтобы полагаться на оценку параметра как null.
  • Параметры вашей кросс-таблицы в настоящее время расположены как кросс-план 1 и кросс-план 2, каждый с или в разделах 1, 2 и 3. Неясно, означает ли это, что в целом должно быть до шести кросс-таблиц или всего два:
    • Если первое, то неясно, как указывать группировку строк, группировку столбцов и суммированные поля.
    • Если последнее, то я предлагаю переименовать разделы 1, 2 и 3 в виде группировки строк, группировки столбцов и суммированного поля (поскольку я предполагаю, что это то, что они должны представлять).
  • В настоящее время у вас есть Show Show Total Show и Show Percentages - они применимы к кросс-таблице. Эти параметры могут быть указаны в Crystal, но не условно в дизайнере отчетов.
    • Если вы имеете возможность получить доступ к API Crystal, это должно быть возможно, чтобы эти параметры были запрограммированы во время выполнения.
    • В противном случае единственным вариантом, если вы хотите включить оба параметра для каждой кросс-таблицы, было бы добавить четыре версии каждой кросс-таблицы в отчет, каждый из которых был бы условно подавлен в зависимости от того, какие параметры выбраны. (Я бы не рекомендовал этот подход, если у вас нет альтернативы.)
  • Кристалл не может обрабатывать динамические структуры данных (т. Е. Структура данных должна быть известна при разработке отчета), поэтому я предлагаю создать результат установить в процедуре SQL хранятся на основе параметров, заданных со структурой что-то вроде:

Dataset structure

crosstab1Row 
crosstab1Column 
crosstab1SumValue 
crosstab2Row 
crosstab2Column 
crosstab2SumValue 
reportColumn1 
reportColumn2 
reportColumn3 
reportColumn4 
reportColumn5 
+0

Спасибо за ваш ответ, я собираюсь попробовать это, когда я вернусь домой сегодня вечером. – user973671

+0

Что вы подразумеваете, поставив кросс-таблицу в свой собственный подраздел и сделав подсектор условно подавленным. В соответствии с подразделом, вы имеете в виду как заголовок отчета b? Спасибо – user973671

+0

@ user973671: Да, точно - поэтому, если вы собираетесь поставить кросс-таблицу в нижний колонтитул отчета, разделите раздел нижнего колонтитула отчета на два раздела и поместите кросс-таблицу в одну из этих разделов самостоятельно. –