Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как построить такую таблицу? 
:(
    Опции темы
Demokratizator
Дата 24.10.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 25.7.2006

Репутация: нет
Всего: нет



Добрый день.

Нужно построить такую таблицу с помошью xslt.

№ п/п   |    Наименование           |    Сумма   |    Проценты   |   Сумма2     |
                  Группировка 1
   1             Наименование 1.1           1.0             10%                 1*10/100
   2             Наименование 1.2           2.0             11%                 2*11/100
   3             Наименование 1.3           3.0             12%                 3*12/100
   4             Наименование 1.4           4.0             13%                 4*13/100
ИТОГО по Признак1                           10                                         1.2

   5             Наименование 2.1           1.0             10%                 1*10/100
   6             Наименование 2.2           2.0             11%                 2*11/100
   7             Наименование 2.3           3.0             12%                 3*12/100
   8             Наименование 2.4           4.0             13%                 4*13/100
ИТОГО по Признак2                           10                                         1.2
ИТОГО по Группировка 1                  20                                          2.4

xml такой:
Код

<DataSet1>
<Table1>
<Наименование> Наименование 1.1 <Наименование/> 
<Сумма> 1.0 <Сумма/> 
<Проценты> 10 <Проценты/> 
<Группа>  Группировка 1 <Группа/> 
<Признак>  Признак 1 <Признак/> 
<Table1/>
<DataSet/>


Как проставлять № п/п  и как рассчитать Сумму2 в ИТОГО по Группировка 1 ?

Группы делал так:
Код

<xsl:key name="key1" match="Table1" use="Группа" />
<xsl:key name="key2" match="Table1" use="concat(Группа, '|', Признак)" />
<xsl:key name="key3" match="Table1" use="concat(Группа, '|', Признак, '|', Наименование)" />

<xsl:for-each select="//Table1[generate-id()=generate-id(key('key1', Группа))]/Группа">
     <xsl:variable name="key11" select="."></xsl:variable>
     <xsl:for-each select="//Table1[generate-id()=generate-id(key('key2', concat($key11, '|', Признак))]/Признак">
     <xsl:variable name="key22" select="."></xsl:variable>
            <xsl:for-each select="//Table1[generate-id()=generate-id(key('key3', concat($key11, '|', $key22, '|', Наименование))]">
            </xsl:for-each>
      </xsl:for-each>
</xsl:for-each>

PM MAIL   Вверх
batigoal
Дата 24.10.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Нумерацию можно попробовать организовать с помощью
Код

<xsl:number count="/DataSet/Table/Наименование" level="multiple" />


(сам не пробовал, нашел в доке)


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.