Как отличить группу и подгруппу в ИС

#
Как отличить группу и подгруппу в ИС
Здравствуйте! Заранее надеюсь на помощь!

Версия: "халява". Шаблон: "корпорация".

Есть ИС "Архив файлов".  В ней есть группы, а в ней - подгруппы.

Вопрос: можно ли как-нибудь реализоваться разный вывод групп и подгрупп в ИС? В общем, можно ли как-то в XSL различить, где идет вывод групп (т.е. группы в "корне" ИС и подгрупп (т.е. группы, созданные внутри "корневых" групп).
Модератор
#
Re: Как отличить группу и подгруппу в ИС
Maxim1441,
Вам иначе нужно выводить только корневые группы?
#
Re: Как отличить группу и подгруппу в ИС
Да, для корневых групп -  свой вывод. Для вложенных групп - другой вывод. Как бы их различить.
#
Re: Как отличить группу и подгруппу в ИС
Сейчас в XSL "Список элементов" у  меня  вот такой код за вывод групп отвечает:


<xsl:template match="/informationsystem">
...
  <xsl:if test="count(tag) = 0 and count(.//informationsystem_group[parent_id=$group]) &gt; 0">
    <!-- Вывод групп -->
    <xsl:apply-templates select=".//informationsystem_group[parent_id=$group][position() mod $n = 1]" mode="groups"/>
  </xsl:if>
...
</xsl:template>



<xsl:template match="informationsystem_group" mode="groups">
  <xsl:for-each select=". | following-sibling::informationsystem_group[position() &lt; $n]">
   <!-- Тут код вывода группы -->
  </xsl:for-each>
</xsl:template>


А мне бы как-то сделать, чтобы в XLS отдельно прописать вывод корневых групп, а отдельно - вывод подгрупп этих корневых групп. Простите, если как-то не очень наглядно объясняю
Модератор
#
Re: Как отличить группу и подгруппу в ИС
<xsl:apply-templates оборачиваете в условие и сморите, текущая группа 0 или нет. Если 0, то вызываете шаблон с mode="groups_root", иначе с текущим mode="groups"

затем описываете groups_root
<xsl:template match="informationsystem_group" mode="groups_root">
  <xsl:for-each select=". | following-sibling::informationsystem_group[position() &lt; $n]">
   <!-- Тут код вывода группы -->
  </xsl:for-each>
</xsl:template>
#
Re: Как отличить группу и подгруппу в ИС
Большое спасибо! Вроде все работает.

Я так сделал:

<xsl:template match="/informationsystem">

  <xsl:if test="group = 0">
    <xsl:apply-templates select=".//informationsystem_group[parent_id=$group][position() mod $n = 1]" mode="groups"/>
  </xsl:if>

  <xsl:if test="group != 0">
    <xsl:apply-templates select=".//informationsystem_group[parent_id=$group][position() mod $n = 1]" mode="groups_second"/>
  </xsl:if>

</xsl:template>

Модератор
#
Re: Как отличить группу и подгруппу в ИС
Maxim1441,
верно, вместо двух if можно было использовать xsl:choose
#
Re: Как отличить группу и подгруппу в ИС
Понял. Еще раз большое спасибо за помощь! Вопрос можно считать решенным.
Авторизация