Проверенные приемы IBM Cognos: Динамическая сортировка отчетов типа List в IBM Cognos 8 Report Studio

Вид документа: советы или приемы; Продукт(ы): IBM Cognos 8 BI; Предметная область: отчетность

В статье описан способ динамической сортировки столбцов отчета типа List с использованием пользовательских компонентов инструментария IBM Cognos 8 Report Studio.

Франсуа де Гуир, разработчик программного обеспечения, IBM

Франсуа де Гуир (François DeGuire) является участником команды по интеграции продуктов IBM Cognos, работающей в лаборатории IBM в Оттаве, Канада. Он участвовал в проектах по разработке и внедрению системных инструментов и приложений на предприятиях заказчиков. В свободное время Франсуа любит смотреть хоккейные матчи



27.05.2011

Введение

Цель

В этой статье описан способ динамической сортировки столбцов отчета типа List с использованием пользовательских компонентов инструментария IBM Cognos 8 Report Studio.

Применимость

Метод, описываемый в этом документе, был проверен с использованием следующей программной конфигурации.

  • IBM Cognos 8.4.102-18-0 с пакетом Go Sales (query), поставляемого вместе с примерами.

Все шаги, описанные в статье, применимы для сортировки лишь отдельного списка в отчете IBM Cognos 8 Report Studio. Тип итогового документа: HTML; региональная настройка среды выполнения: English.

Недокументированные и неподдерживаемые возможности

Метод, описываемый в этом документе, использует недокументированные и неподдерживаемые возможности IBM Cognos 8. С учетом этих условий нет никаких гарантий того, что в будущих версиях этот функционал не изменится или вовсе не будет исключен из состава продукта.


Динамическая сортировка отчета типа List

Обновление файлов инструментария

Прежде чем запустить IBM Cognos 8 Report Studio, необходимо обновить несколько установочных файлов IBM Cognos 8, заменив их файлами из раздела Загрузка. Эти файлы содержат новые компоненты инструментария, добавляющие функции сортировки. Новые вспомогательные инструменты могут быть вынесены в рабочую область приложения и позволяют быстро добавлять к отчетам все требуемые компоненты, избавляя от необходимости делать это вручную.

  1. Найдите папку <установочная_директория>/webcontent/pat/res, где <установочная_директория> – это корневая директория, в которую вы установили IBM Cognos 8.
  2. Создайте резервные копии следующих файлов.
    • reportstudio_en.xml
    • Toolbox.xml
    • ToolboxControls.xml
  3. Замените вышеперечисленные файлы (не их копии) файлами с теми же именами, содержащимися в приложении к этой статье (раздел Загрузка).

Динамическая сортировка отчета типа List

В этом примере рассматривается создание нового отчета на основе данных из примера GO Sales (query). Если у вас есть готовый отчет, вы можете применить сортировку к нему, перейдя сразу к шагу 3.

  1. Откройте новый экземпляр Report Studio и, получив приглашение, создайте новый отчет типа List (список).
  2. Перетащите элементы данных, которые должны отображаться в вашем списке, в список объектов, который уже находится в рабочей области. В нашем примере целиком использовался объект запроса Sales (query)\Retailer.
    Рисунок 1. Cognos 8 Report Studio: объект запроса Retailer, добавленный в отчет List Report
    Рисунок 1. Cognos 8 Report Studio: объект запроса Retailer, добавленный в отчет List Report
  3. Далее необходимо добавить к каждому столбцу правила сортировки. Для этого сначала нужно разблокировать объекты страницы. Чтобы сделать это, перейдите в меню Structure и щелкните на элементе меню Lock Page Objects, сняв с него галочку (либо щелкните на значке замка в панели инструментов – значок примет вид разомкнутого замка).
    Рисунок 2. Снятие галочки Lock Page Objects в меню Structure
    Рисунок 2. Снятие галочки Lock Page Objects в меню Structure
  4. После разблокировки объектов страницы перейдите в левую панель и щелкните на вкладке окна инструментов.
  5. Переместитесь в самый низ панели Insertable Objects и найдите объекты Column Sorting Function и Sortable Column Title, изображенные ниже.
    Рисунок 3. Окно инструментов IBM Cognos 8 Report Studio с новыми пользовательскими элементами Column Sorting Function и Sortable Column Title.
    Рисунок 3. Окно инструментов IBM Cognos 8 Report Studio с новыми пользовательскими элементами Column Sorting Function и Sortable Column Title.
  6. Перетащите объект "Sortable Column Title" в ячейку с названием столбца, для которого вы хотите включить функции сортировки. В рабочей области вы должны увидеть следующее.
    Рисунок 4. Столбец списка с исходным (отмечено цифрой 2) и новым (отмечено цифрой 1) именами
    Рисунок 4. Столбец списка с исходным (отмечено цифрой 2) и новым (отмечено цифрой 1) именами
  7. Измените текст так, чтобы он содержал заголовок требуемого столбца, заменив исходное содержимое ячейки. После этого вы должны увидеть следующее.
    Рисунок 5. Столбец списка с новым именем
    Рисунок 5. Столбец списка с новым именем
  8. Повторите шаги 5–7 для каждого столбца, для которого необходимо включить возможность сортировки.
  9. Теперь необходимо снова заблокировать объекты страницы. Для этого перейдите в меню Structure и установите галочку напротив пункта Lock Page Objects (либо щелкните на значке замка в панели инструментов – значок примет вид закрытого замка).
  10. Чтобы новые заголовки столбцов правильно отображались в отчете, необходимо задать ряд переменных визуализации. Для этого наведите курсор мыши на вкладку Condition Explorer (эта вкладка содержит одноименный значок и расположена между панелью Insertable Objects и рабочей областью), и когда она развернется, щелкните на папке Variables.
    Рабочая область примет следующий вид.
    Рисунок 6. IBM Cognos 8 Report Studio: Conditional Explorer View
    Рисунок 6. IBM Cognos 8 Report Studio: Conditional Explorer View
  11. Перетащите из левой панели Insertable Objects три переменных “Column Sort” (“Column Sort – Sorting Controls Rendering”, “Column Sort – Sorting Column Rendering” и “Column Sort – PDF Image Rendering”).
  12. Вернитесь в рабочую область, наведя курсор мыши на вкладку Page Explorer (она находится там же, где и вкладка Condition Explorer), и когда она развернется, щелкните на странице, содержащей ваш список. В нашем примере эта страница называется Page1.
  13. Далее необходимо добавить столбцы сортировки. Если вы еще не заблокировали объекты страницы, сделайте это (см. шаг 9). Ниже будут рассмотрены два варианта – вы можете выбрать любой из них.

    Вариант 1. Один возрастающий и один убывающий столбец.
    Возможно, этот вариант является самым простым и эффективным, однако в зависимости от типа используемой базы данных он может работать непредсказуемо. В этом случае создаются два столбца: один столбец для сортировки по возрастанию, а другой – для сортировки по убыванию.
    1. Перейдите в левую панель и щелкните на вкладке окна инструментов.
    2. На панели Insertable Objects найдите объект “Query Calculation”. Перетащите его в конец вашего списка (убедитесь, что он будет расположен поверх списка, а не после него)
    3. Откроется диалоговое окно Create Calculation.
    4. В этом диалоговом окне введите описательное имя, например “Order By ASC” (сортировка по возрастанию), и нажмите OK. Откроется диалоговое окно Data Item Expression.
      Рисунок 7. IBM Cognos 8 Report Studio: редактор Data Item Expression
      Рисунок 7. IBM Cognos 8 Report Studio: редактор Data Item Expression
    5. Здесь нужно определить, какой столбец будет использоваться для сортировки.
    6. В диалоговом окне Data Item Expression щелкните на вкладке функций. Поле Available Components будет обновлено. Щелкните на папке “Constructs” и перетащите элемент “if then else” в поле Expression Definition.
    7. В поле Expression Definition замените текст <condition> на следующий:
      ?OrderBy? = '1'
    8. Щелкните на вкладке элементов данных. Перетащите элемент, соответствующий первому столбцу, на место первого выражения <expression> в поле Expression Definition (необходимо будет вручную удалить текст <expression>).
      Рисунок 8. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression
      Рисунок 8. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression
      Обратите внимание на то, что если вы используете источник данных OLAP, и в окне Available Components присутствуют многоуровневые элементы, вы не сможете использовать их в выражении. В этом случае необходимо перейти на вкладку источников и выбрать элемент данных, который вы хотите использовать для сортировки этих отдельных столбцов.
    9. Замените оставшиеся фрагменты <expression> на null или на любое другое постоянное значение (например, 'ASC'). Выражение должно выглядеть следующим образом.
      	IF ( ?OrderBy? = '1' ) THEN
      	    ( [Retailer type code] )
      	ELSE
      	    ( null )

      Это по существу означает, что если значением параметра “OrderBy” является “1”, столбец сортировки будет содержать данные первого столбца – “Retailer type code”. В противном случае он будет содержать пустые или null-значения.
      Обратите внимание на то, что если вы используете источники данных OLAP, вы не сможете использовать выражение null в операторе else, и вам придется использовать какое-либо постоянное значение.
    10. Чтобы применить сортировку ко всем столбцам, необходимо добавить их в выражение if-then-else. Вы можете сделать это так, как было показано в предыдущих шагах, либо ввести необходимый текст вручную. В итоге ваше выражение должно выглядеть следующим образом.
      	IF (?OrderBy? = '1') THEN
      	    ([Retailer type code])
      	ELSE IF (?OrderBy? = '2') THEN
      	    ([Retailer type])
      	ELSE IF (?OrderBy? = '3') THEN
      	    ([Retailer code])
      	ELSE IF (?OrderBy? = '4') THEN
      	    ([Retailer name])
      	ELSE IF (?OrderBy? = '5') THEN
      	    ([Retailer name (multiscript)])
      	ELSE IF (?OrderBy? = '6') THEN
      	    ([Retailer start date])
      	ELSE (null)
    11. Проверьте ваше выражение с помощью кнопки Validate Expression в правом верхнем углу диалогового окна (если вы получите приглашение на ввод параметра “OrderBy”, введите 0 и нажмите OK).
      Если вы получили сообщение “No errors”, нажмите OK.
      Возможны ситуации, при которых вы можете получить следующее сообщение.
      	QE-DEF-0459 CCLException
      	QE-DEF-0478 Invalid coercion from 'value' to 'string'
      		 for '<data item>' in 	'<expression>'
      Рисунок 9. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression c сообщением об ошибке преобразования данных в процессе верификации
      Рисунок 9. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression c сообщением об ошибке преобразования данных в процессе верификации
      Если вы получили такое сообщение, попробуйте изменить порядок условий в выражении, группируя элементы с одинаковыми типами данных (числовые значения, строки, даты и т. д.). Например, если в предыдущем выражении расположить элементы целочисленных данных (“Retailer type code” и “Retailer code”) друг за другом, сообщения об ошибке не возникнет.
      Рисунок 10. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression c перегруппированными условиями
      Рисунок 10. IBM Cognos 8 Report Studio: диалоговое окно Data Item Expression c перегруппированными условиями
      Заметьте, как были переставлены местами условия (?OrderBy? = ‘2’) и (?OrderBy? = ‘3’). Если это не решает проблему, возможно, вам придется использовать второй вариант сортировки.
    12. После устранения всех ошибок нажмите OK для закрытия диалогового окна. Вы заметите, что в список был добавлен новый столбец.
    13. Выберите либо заголовок, либо содержимое этого нового столбца
    14. В панели инструментов Report Studio щелкните на значке сортировки и выберите из выпадающего меню пункт Sort Ascending.
    15. Обратите внимание на то, что в столбце появился значок, показывающий, что данные этого столбца будут отсортированы по возрастанию.
    16. Повторите шаги 1–15 варианта 1 для столбца сортировки по убыванию с учетом следующих отличий.
      • Назовите столбец другим именем (например, “Order By DESC”)
      • Измените значения условий в поле Expression Definition на отрицательные, например:
        		IF (?OrderBy? = '-1') THEN
        		    ([Retailer type code])
        		ELSE IF (?OrderBy? = '-3') THEN
        		    ([Retailer code])
        		ELSE IF (?OrderBy? = '-2') THEN
        		    ([Retailer type])
        		ELSE IF (?OrderBy? = '-4') THEN
        		    ([Retailer name])
        		ELSE IF (?OrderBy? = '-5') THEN
        		    ([Retailer name (multiscript)])
        		ELSE IF (?OrderBy? = '-6') THEN
        		    ([Retailer start date])
        		ELSE (null)

        Вы можете скопировать условие из столбца ASC, а затем просто изменить положительные значения на отрицательные.
      • В меню сортировки выберите пункт Sort Descending.
    17. Сейчас в конце вашего списка должны содержаться два новых столбца.
      Рисунок 11. Список IBM Cognos 8 Report Studio с двумя новыми вычисляемыми формулами в виде столбцов
      Рисунок 11. Список IBM Cognos 8 Report Studio с двумя новыми вычисляемыми формулами в виде столбцов
    Вариант 2. Один возрастающий и один убывающий столбец для каждого типа данных
    Второй метод требует немного больше усилий и может оказаться не таким прямолинейным, зато более безопасным в использовании. В этом случае создаются по два столбца для каждого типа данных, содержащихся в запросе: один столбец для сортировки по возрастанию, а другой – для сортировки по убыванию.
    1. Поскольку основная идея не зависит от выбора варианта сортировки, выполните шаги 1–15 варианта 1 для создания столбца сортировки по возрастанию для одного из типов данных, содержащихся в вашем списке, с учетом следующих отличий.
      • Задайте для столбца описательное имя. Для столбца сортировки целочисленного типа по возрастанию будет удобно использовать имя наподобие “Order By Int ASC”.
      • Измените выражение так, чтобы оно содержало лишь элементы одного типа. Например, для целочисленного типа выражение должно выглядеть следующим образом.
        		IF (?OrderBy? = '1') THEN
        		    ([Retailer type code])
        		ELSE IF (?OrderBy? = '3') THEN
        		    ([Retailer code])
        		ELSE (null)

        Заметьте, что в этом выражении отсутствуют элементы с другими типами данных.
    2. После создания столбца сортировки по возрастанию для определенного типа данных создайте для этого же типа столбец сортировки по убыванию (в соответствии с шагом 16 варианта 1).
    3. Повторите шаги 1–2 варианта 2 для всех типов данных вашего списка. В нашем примере нам потребуется добавить еще 6 столбцов сортировки.
      Order By Int ASC
      Тип данных: Integer
      Направление: по возрастанию
      Выражение:
      IF (?OrderBy? = '1') THEN
          ([Retailer type code])
      ELSE IF (?OrderBy? = '3') THEN
          ([Retailer code])
      ELSE (null)
      Order By Int DESC
      Тип данных: Integer
      Направление: по убыванию
      Выражение:
      IF (?OrderBy? = '-1') THEN
          ([Retailer type code])
      ELSE IF (?OrderBy? = '-3') THEN
          ([Retailer code])
      ELSE (null)
      Order By Varchar ASC
      Тип данных: Varchar/String
      Направление: по возрастанию
      Выражение:
      IF (?OrderBy? = '2') THEN
          ([Retailer type])
      ELSE IF (?OrderBy? = '4') THEN
          ([Retailer name])
      ELSE IF (?OrderBy? = '5') THEN
          ([Retailer name (multiscript)])
      ELSE (null)
      Order By Varchar DESC
      Тип данных: Varchar/String
      Направление: по убыванию
      Выражение:
      IF (?OrderBy? = '-2') THEN
       ([Retailer type])
      ELSE IF (?OrderBy? = '-4') THEN
          ([Retailer name])
      ELSE IF (?OrderBy? = '-5') THEN
          ([Retailer name (multiscript)])
      ELSE (null)
      Order By Date ASC
      Тип данных: Date
      Направление: по возрастанию
      Выражение:
      IF (?OrderBy? = '6') THEN
          ([Retailer start date])
      ELSE (null)
      Order By Date DESC
      Тип данных: Date
      Направление: по убыванию
      Выражение:
      IF (?OrderBy? = '-6') THEN
          ([Retailer start date])
      ELSE (null)
  14. Независимо от выбранного варианта сортировки нужно скрыть столбцы сортировки. Выберите один из них.
  15. В области заголовка левой части панели Properties щелкните на значке "родителей".
  16. Выберите в контекстном меню объект List Column.
  17. В разделе Conditional панели Properties дважды щелкните на Render Variable.
  18. В выпадающем списке Variable выберите “Sorting Columns Rendering” и нажмите OK.
  19. Повторите шаги 15–19 для всех остальных столбцов сортировки.
  20. Наконец, осталось добавить последний штрих – логику, позволяющую выполнять сортировку списка на лету. Перейдите в левую панель и щелкните на вкладке окна инструментов.
  21. Переместитесь в самый низ панели Insertable Objects. Вы должны увидеть элементы Column Sorting Function и Sortable Column Title.
  22. Перетащите объект "Column Sorting Function" в ваш список. В рабочей области вы должны увидеть следующее.
    Рисунок 12. Объект списка с отсортированными столбцами и дополнительным HTML-элементом, расположенным над списком
    Рисунок 12. Объект списка с отсортированными столбцами и дополнительным HTML-элементом, расположенным над списком
  23. Для того чтобы можно было использовать функции сортировки, отчет необходимо сохранить. Сохраните отчет.
  24. Вернитесь в портал Cognos Connection (не закрывая Report Studio) и перейдите к отчету.
  25. В столбце Actions выберите значок Set properties.
  26. На расположенной справа вкладке General окна Set properties щелкните на ссылке View the search path, ID and URL. Откроется новое диалоговое окно.
  27. Скопируйте в буфер обмена весь текст, который вы видите в окне Default action URL.
  28. Вернитесь в Report Studio и дважды щелкните на текстовом элементе “Copy the Default action URL for the report here. Only the Default action URL should exist between these two HTML items”. Откроется диалоговое окно Text.
  29. Замените существующую строку на содержимое буфера обмена и нажмите OK, чтобы закрыть диалоговое окно Text. Ваш отчет должен выглядеть следующим образом.
    Рисунок 13. Отчет List Report в IBM Cognos 8 Report Studio с сортировкой и вычисляемым запросом в виде последних двух столбцов списка
    Рисунок 13. Отчет List Report в IBM Cognos 8 Report Studio с сортировкой и вычисляемым запросом в виде последних двух столбцов списка
    Убедитесь, что URL-адресом не является “localhost”, поскольку в этом случае у других пользователей могут возникнуть проблемы при сортировке данных.
    Также помните, что если вы переименуете отчет или переместите его в другое место, необходимо будет обновить содержащийся в нем URL-адрес.
  30. Обратите внимание на два HTML-элемента, которые расположены после URL-адреса действия по умолчанию. Если при сортировке списка вы хотите передать в отчет какие-либо существующие параметры или сообщения пользователям, необходимо определить эти элементы следующим образом.
    1. На панели Insertable Objects (вкладка окна инструментов) найдите объект Layout Calculation и перетащите его, расположив между двух вышеупомянутых HTML-элементов. Откроется диалоговое окно Report Expression.
    2. Для каждого параметра, который вы хотите передать, наберите (или вставьте при помощи панели Available Components) следующий текст.
      	ParamName('<parameter name>')+ '=' + ParamValue('<parameter name>')

      Повторите шаги 1–2 для каждого дополнительного параметра, который вы хотите передать в отчет. Разделяйте параметры знаком '&', как показано ниже.
      	ParamName('<parameter name1>')+ '=' + ParamValue('<parameter name1>')
      	+ '&' +
      	ParamName('<parameter name2>')+ '=' + ParamValue('<parameter name2>')

      Заметьте, что здесь не нужно использовать параметр OrderBy.
    3. В конечном итоге ваше выражение должно выглядеть в соответствии с рисунком 14. Кроме того, между двумя HTML-элементами должен появиться объект Layout Calculation (это также показано на рисунке 14).
      Рисунок 14. Спецификация параметров столбца сортировки в IBM Cognos 8 Report Studio. Красным цветом отмечено местоположение объекта Layout Calculation.
      Рисунок 14. Спецификация параметров столбца сортировки в IBM Cognos 8 Report Studio. Красным цветом отмечено местоположение объекта Layout Calculation.
      После этого данные значения будут добавлены к URL-адресу функцией сортировки JavaScript.
      Важно. Для того чтобы обработка значений параметров при помощи JavaScript работала в большинстве случаев, было сделано несколько допущений.
      • Значения параметров разделяются запятыми. Это необходимо для обработки параметров множественного выбора, значения которых представлены в виде “значение1, значение2, значение3”. Это означает, что одиночное значение параметра, содержащее запятую, будет воспринято как два значения, разделенных запятой.
      • Значения параметров, начинающихся с “Between”, означают диапазон значений. Это необходимо для обработки таких параметров, как диапазоны дат. Это означает, что единичное значение параметра, начинающееся с “Between”, будет обрабатываться как диапазон значений.
      Если к данным, получаемым с помощью какого-либо отчета, нельзя применить эти допущения, может потребоваться их дополнительная обработка в JavaScript, которую должен реализовать автор отчета (с помощью HTML-объектов, расположенных перед URL-адресом действия по умолчанию).
    Если вам не нужно передавать никакие параметры в отчет, пропустите этот шаг.
  31. Сохраните отчет.

Использование функций динамической сортировки

В этом разделе я кратко расскажу, как работают функции сортировки, помещенные в отчет.

  1. Запустите отчет в виде HTML из IBM Cognos Connection или из IBM Cognos 8 Report Studio.
  2. Вы должны увидеть приглашение на ввод значения для параметра “OrderBy”. Введите 0 и нажмите OK.
    Заметьте, что на странице свойств отчета вы можете задать для этого параметра значение по умолчанию, а также указать Cognos Viewer не выдавать запросы на ввод этого значения.
  3. Содержимое вашего отчета должно выглядеть следующим образом (на рисунке 15 показана только первая страница отчета).
    Рисунок 15. IBM Cognos 8 Report Viewer: результирующий отчет в HTML-формате
    Рисунок 15. IBM Cognos 8 Report Viewer: результирующий отчет в HTML-формате
    Обратите внимание на то, что два столбца сортировки не отображаются.
  4. Наведите курсор мыши на заголовок любого столбца, и вы увидите появившиеся значки сортировки.
  5. Щелкните на текущем значке сортировки. После выполнения запроса отчет будет отсортирован по выбранному столбцу в порядке возрастания (показана только первая страница отчета).
    Рисунок 16. IBM Cognos 8 Report Viewer: результирующий отчет в HTML-формате со значком сортировки, отображаемым в выбранном столбце
    Рисунок 16. IBM Cognos 8 Report Viewer: результирующий отчет в HTML-формате со значком сортировки, отображаемым в выбранном столбце
    Значок примет вид, соответствующий сортировке по возрастанию, указывая направление сортировки.
  6. Щелкните на текущем значке сортировки. После выполнения запроса отчет будет отсортирован по выбранному столбцу в порядке убывания.
    Значок примет вид, соответствующий сортировке по убыванию, указывая направление сортировки.
  7. Щелкните на текущем значке сортировки. После выполнения запроса отчет не будет отсортирован по выбранному столбцу.
    Значок сортировки исчезнет, указывая на то, что сортировка не выполняется.

Загрузка

ОписаниеИмяРазмер
Статья и приложение в zip-архиве Dynamic_Sorting_of_a_List_Report.zip729 КБ

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=661210
ArticleTitle=Проверенные приемы IBM Cognos: Динамическая сортировка отчетов типа List в IBM Cognos 8 Report Studio
publish-date=05272011