Пример исходного списка:
Короче говоря, опять пришел к выводу, что без хирургического вмешательства, ну никак. Закатал рукава и начал писать свою веб-часть (WebPart). Принцип работы веб-части простой: обратиться к списку указанного сайта, взять из него данные с помощью представления, обработать посредством XSLT и вывести результат в окно браузера.
Исходными данными для веб-части являются:
- сайт
- список
- вид
- имя поля, значения которого будут первой колонкой (fixed column)
- имя поля, значения которого будут в шапке таблицы (header)
- путь к XSL файлу
- путь к CSS файлу
- отображать нулевые значения (да/нет)
- отображать абсолютные значения (да/нет)
- отображать значения в % (да/нет)
Сайт - это сайт Sharepoint'а на котором следует искать список, например, http://server/oit.
Список - это имя списка на соответствующем сайте Sharepoint'а, например, Задачи.
Вид - это имя вида списка, чтобы можно было фильтровать и сортировать данные списка перед формированием сводной таблицы, например, Завершенные.
Имя поля для первой колонки - это имя поля списка, значения которого проецируются в первую колонку, например, Состояние.
Имя поля для первого ряда - это имя поля списка, значения которого проецируются в первый ряд, например, Кому назначено.
Путь к XSL файлу - это путь к файлу data.xsl, который находится в архиве.
Путь к CSS файлу - это путь к файлу data.css, который находится в архиве.
Файлы data.xsl и data.css должны быть размещены на сервере IIS в папке, к которой можно обратиться по URL, например, мне было удобно разместить по адресам:
http://server/_layouts/1049/styles/AlxdPivoteOne/data.xsl
http://server/_layouts/1049/styles/AlxdPivoteOne/data.css
Указанные выше адреса соответствуют путям:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\1049\STYLES\AlxdPivoteOne\data.xsl
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\1049\STYLES\AlxdPivoteOne\data.css
Отображать нулевые значения - это флаг отвечающий за отображение нулевых значений в сводной таблице, если он не установлен, то ноль не отображается.
Отображать абсолютные значения - это флаг отвечающий за отображение количественных значений по каждой колонке или ряду.
Отображать значения в % - это флаг отвечающий за отображение относительных значений по каждой колонке или ряду.
Если установлены флаги для отображения абсолютных и относительных значений, то значения отображаются в виде 10[12%].
Пример полученной сводной таблицы:
Преимущества веб-части:
1. Формирование сводной опирается на XSLT преобразование описанное в XSL файле, а следовательно любой администратор или программист средней руки может его дописать или поправить.
2. Работает с полями в которых разрешены множественные значения, т.е. если в поле хранятся несколько значений, то веб-часть раскладывает их на отдельные записи и обрабатывают каждую в отдельности. Например, если задача назначена двум сотрудникам, то при обработке она будет восприниматься как две задачи - одна на каждого.
3. Поддержка Lookup полей и отображение ссылок на значения Lookup полей.
Недостатки веб-части:
1. Отсутствует разбивка на листы.
2. Отсутствует группировка по значениям.
Установка веб-части AlxdPivotOne осуществляется с помощью bat'ника setup.bat с ключом -i. Удаление - ключ -u.
P.S. Подменил файл с веб-частью, т.к. забыл в него вложить data.css и data.xsl.
P.S. Подменил файл с веб-частью, т.к. исправил ошибку при работе с большими списками, в частности, если представление списка возвращало ограниченное количество записей (обычно 100), то сводная таблица использовала тоже только 100 записей, а остальные отбрасывала. Теперь при формировании сводной таблицы используются все записи не зависимо от того, сколько их возвращает представление (спасибо Void за найденную ошибку).
Что в итоговой таблице - Datasheet?
ОтветитьУдалитьВыложите пожалуйста исходники!
ОтветитьУдалитьИх бы найти...
ОтветитьУдалить