Обойти необходимость поиска данных столбца для вычисляемого столбца (SharePoint 2010)

В SharePoint 2010:

У меня есть основной список, который извлекает несколько столбцов из двух разных списков на основе уникального идентификатора. Получаемая информация похожа, но вводится двумя разными людьми для двух разных клиентов и должна быть в отдельных списках. Предположим, что аналогичные столбцы, используемые в основном списке, представляют собой Номер предложения, Цена, Дата предложения и Клиент, и эта информация в Основном списке поступает из Списка А и Списка Б.

В этом основном списке я хотел бы видеть все позиции и только соответствующие столбцы поиска, в которых есть информация. Например, если позиция 0025 имеет номер цитаты, цену, дату цитаты и информацию о клиенте из списка A, я не хочу 4 пустых столбца, куда будет отправляться информация из списка B, и наоборот. Я просто хочу один столбец для цитаты №, который содержит информацию, независимо от того, откуда она взялась.

Моя первоначальная мысль заключалась в том, чтобы скрыть столбцы поиска и создать вычисляемый столбец, в котором можно было бы выполнить поиск и посмотреть, "если столбец цитирования № поиска из списка А пуст, ничего не показывать. Если столбец цитирования № поиска из списка А имеет значение, отображает это значение "и так далее.

Но так как вы не можете выполнять вычисления для столбца поиска, я не знаю, как правильно это отобразить. Из этих списков извлекается около 10 столбцов и более 35 столбцов.

Есть идеи? Я рад выслать скриншоты или объяснить ситуацию более подробно.

2 ответа

Вы можете взять списки и сделать их во внешних типах контента в виде таблиц на сервере SQL. Тогда вы можете делать расчеты, которые вам нравятся. Затем отобразите все таблицы как внешние типы контента. Типы контента Extenal выглядят как списки, а также имеют формы редактирования и т. Д.

Это можно сделать с помощью веб-части представления данных, а затем изменив XSLT с помощью SharePoint Designer.

Просто создайте веб-часть представления данных, импортировав все 8 одинаковых столбцов, а затем преобразуйте ее в представление XSLT.

Затем, помимо остальных 35 столбцов, у вас будет четыре раздела кода, аналогичных этому:

<td>
    <xsl:value-of select="@QuoteNoA" />
</td>
<td>
    <xsl:value-of select="@QuoteNoB" />
</td>

Изменение этого на что-то вроде следующего должно помочь:

<td>
    <xsl:choose>
        <xsl:when test="@QuoteNoA != ''">
            <xsl:value-of select="@QuoteNoA" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="@QuoteNoB" />
       </xsl:otherwise>
    </xsl:choose>
</td>

Не забудьте изменить заголовки столбцов и удалить четыре лишних столбца, которые вам больше не нужны (все сделано с помощью XSLT)

Другие вопросы по тегам