Текущее время: Вс, июн 29 2025, 05:02

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Выгрузка в excel-совместимый XML
СообщениеДобавлено: Вт, ноя 08 2005, 18:50 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Опыт работы с xml с пятницы, сейчас научился выгружать данные из абапа в xml и теперь стоит задача чтобы это можно было смотреть и редактировать в экселе.
Данные - прайслист, те. древовидная структура, которая очень хорошо ложится на xml.

Основные идеи:
1) выгружать в самом простом и удобном для парсинга формате и потом xslt'шкой переводить в екселовский xml.
2) сразу генерить excel'овском формате.
3) написать schema для офиса чтобы он понимал мой формат и правильно выводил. Вариант более теоретичиский - поскольку инфы ноль. на следующей неделе msdn подкинут, может там что есть.

Больше всего нравится первый вариант.

Кто делал - делитесь идеями наработками, подводными камнями ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 08 2005, 18:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
В xml не особо силен, sorry, но если у вас >=4.7, то там в SAP'е есть XSLT и специальный оператор CALL TRANSFORMATION в абапе.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 09:22 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
есть, только ещё базис нужен от 6.40. на 6.20 много дампов

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 11:08 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
C xlt проблем нет, всё работает и уже давно используется для выгрузки таблиц в xml.
Хотелось бы услышать мнение людей пробовавших делать excel совместимые xml'ки и с какие подводными камнями они столкнулись.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 13:03 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
а какая система, базис?
а xml->itab пробовали делать?, просто грозит скоро

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 15:07 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Цитата:
а какая система, базис?

4.7 200
Цитата:
а xml->itab пробовали делать?

что имеется в виду? Метод класса или еще что-то?

С технической стороны с выгрузкой проблем нету! xml документ формируется нормально и основная проблема сделать его excel совместимым.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 15:43 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Boger написал(а):
основная проблема сделать его excel совместимым.

Что означает, чтобы данный XML имел структуру, которая описана в официальном документе от Microsoft Office 2003: XML Reference Schemas
По крайней мере я пользовался этим документом и меня все устроило.
Удачи!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 16:11 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Спасибо за ссылку! А как делал? сразу выгрузка в экселовском формате или через промежуточный с xlt?
PS посмотрел - очень полезная вещь.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 09 2005, 17:18 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
Boger написал(а):

что имеется в виду? Метод класса или еще что-то?

нет из xml во внутреннюю таблицу

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 10 2005, 10:41 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, окт 18 2004, 12:27
Сообщения: 93
Boger написал(а):
Спасибо за ссылку! А как делал? сразу выгрузка в экселовском формате или через промежуточный с xlt?
PS посмотрел - очень полезная вещь.


Лучше через XSLT, так как можно будет отделить шаблон и, при необходимости, корректировать его. Если генерировать сразу же родной ExcelML - монструозный ABAP-код получится :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 23 2005, 13:43 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Мимо шел и подумал может пригодиться :)
https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/2666

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 24 2005, 11:43 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Выгрузка уже наполовину работает и надо только довести до ума, а на это времени сейчас нету ... как доделаю - выложу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 01 2005, 12:42 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Вчера наконец-то удалось выделить время и довести выгрузку до ума ;)
Выгружается древовидный прайс-лист, пока что только сами данные без описания используемых типов и метаданных (дата выгрузки, автор и тп). Описание переменных думаю брать из филд каталога.
Code:
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category name="NORMAL">
  <node name="ADOBE SYSTEMS" level="1">
   <node name="Not defined" level="2">
    <node name="BOX" level="3">
     <node name="InfraStruXure Type A" level="4"/>
    </node>
   </node>
   <node name="Активное сетевое оборудование" level="2">
    <node name="Call Centre" level="3">
     <node name="IP Телефония" level="4"/>
     <data>
      <line>
       <MATNR>000000000000000701</MATNR>
       <MATERIAL_TEXT> Тестовый материал 701</MATERIAL_TEXT>
       <MFRPN>12345</MFRPN>
       <CHARG/>
       <MTART>ZHAW</MTART>
       <MATKL>0270</MATKL>
       <SOBKZ/>
       <KZKFG/>
       <STOCKRF>25</STOCKRF>
       <STOCKRF_FREE>20</STOCKRF_FREE>
       <TRANSIT>10</TRANSIT>
       <TRANSIT_FREE>10</TRANSIT_FREE>
       <STOCKRM>5</STOCKRM>
       <STOCKRM_FREE>0</STOCKRM_FREE>
       <ORDERED>20</ORDERED>
       <ORDERED_FREE>20</ORDERED_FREE>
       <MEINS>ST</MEINS>
       <QUANTITY>0</QUANTITY>
       <MEINH/>
       <COL1>0.0</COL1>
       <COL2>0.0</COL2>
       <COL3>0.0</COL3>
       <MOD_PRICE>0.0</MOD_PRICE>
       <DISCOUNT>0.0</DISCOUNT>
       <SUMM>0.0</SUMM>
       <KONWA/>
       <HAS_SCALE/>
       <ZCOMMENT/>
      </line>
     </data>
    </node>
   </node>
  </node>
  <node name="ALCATEL" level="1">
   <node name="Активное сетевое оборудование" level="2">
    <node name="AMD" level="3">
     <node name="Network Surge Protection" level="4"/>
    </node>
   </node>
  </node>
  <node name="AMP NETCONNECT" level="1">
   <node name="Ноутбуки" level="2">
    <node name="BOX" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="IBM" level="1">
   <node name="Ноутбуки" level="2">
    <node name="AMD" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
    <node name="Intel" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="SIEMENS COMMUNICATIONS" level="1">
   <node name="Телефония" level="2">
    <node name="Телефонные станции" level="3">
     <node name="Модули для телефонных станций" level="4"/>
    </node>
   </node>
  </node>
</category>
<category name="BRAK">
  <node name="ADOBE SYSTEMS" level="1">
   <node name="Not defined" level="2">
    <node name="BOX" level="3">
     <node name="InfraStruXure Type A" level="4"/>
    </node>
   </node>
   <node name="Активное сетевое оборудование" level="2">
    <node name="Call Centre" level="3">
     <node name="IP Телефония" level="4"/>
    </node>
   </node>
  </node>
  <node name="ALCATEL" level="1">
   <node name="Активное сетевое оборудование" level="2">
    <node name="AMD" level="3">
     <node name="Network Surge Protection" level="4"/>
    </node>
   </node>
  </node>
  <node name="AMP NETCONNECT" level="1">
   <node name="Ноутбуки" level="2">
    <node name="BOX" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="IBM" level="1">
   <node name="Ноутбуки" level="2">
    <node name="AMD" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
    <node name="Intel" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="SIEMENS COMMUNICATIONS" level="1">
   <node name="Телефония" level="2">
    <node name="Телефонные станции" level="3">
     <node name="Модули для телефонных станций" level="4"/>
    </node>
   </node>
  </node>
</category>
<category name="UNDEF">
  <node name="ADOBE SYSTEMS" level="1">
   <node name="Not defined" level="2">
    <node name="BOX" level="3">
     <node name="InfraStruXure Type A" level="4"/>
    </node>
   </node>
   <node name="Активное сетевое оборудование" level="2">
    <node name="Call Centre" level="3">
     <node name="IP Телефония" level="4"/>
    </node>
   </node>
  </node>
  <node name="ALCATEL" level="1">
   <node name="Активное сетевое оборудование" level="2">
    <node name="AMD" level="3">
     <node name="Network Surge Protection" level="4"/>
    </node>
   </node>
  </node>
  <node name="AMP NETCONNECT" level="1">
   <node name="Ноутбуки" level="2">
    <node name="BOX" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="IBM" level="1">
   <node name="Ноутбуки" level="2">
    <node name="AMD" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
    <node name="Intel" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="SIEMENS COMMUNICATIONS" level="1">
   <node name="Телефония" level="2">
    <node name="Телефонные станции" level="3">
     <node name="Модули для телефонных станций" level="4"/>
    </node>
   </node>
  </node>
</category>
<category name="ALL">
  <node name="ADOBE SYSTEMS" level="1">
   <node name="Not defined" level="2">
    <node name="BOX" level="3">
     <node name="InfraStruXure Type A" level="4"/>
    </node>
   </node>
   <node name="Активное сетевое оборудование" level="2">
    <node name="Call Centre" level="3">
     <node name="IP Телефония" level="4"/>
     <data>
      <line>
       <MATNR>000000000000000701</MATNR>
       <MATERIAL_TEXT> Тестовый материал 701</MATERIAL_TEXT>
       <MFRPN>12345</MFRPN>
       <CHARG/>
       <MTART>ZHAW</MTART>
       <MATKL>0270</MATKL>
       <SOBKZ/>
       <KZKFG/>
       <STOCKRF>45</STOCKRF>
       <STOCKRF_FREE>30</STOCKRF_FREE>
       <TRANSIT>10</TRANSIT>
       <TRANSIT_FREE>10</TRANSIT_FREE>
       <STOCKRM>5</STOCKRM>
       <STOCKRM_FREE>0</STOCKRM_FREE>
       <ORDERED>20</ORDERED>
       <ORDERED_FREE>20</ORDERED_FREE>
       <MEINS>ST</MEINS>
       <QUANTITY>0</QUANTITY>
       <MEINH/>
       <COL1>0.0</COL1>
       <COL2>0.0</COL2>
       <COL3>0.0</COL3>
       <MOD_PRICE>0.0</MOD_PRICE>
       <DISCOUNT>0.0</DISCOUNT>
       <SUMM>0.0</SUMM>
       <KONWA/>
       <HAS_SCALE/>
       <ZCOMMENT/>
      </line>
     </data>
    </node>
   </node>
  </node>
  <node name="ALCATEL" level="1">
   <node name="Активное сетевое оборудование" level="2">
    <node name="AMD" level="3">
     <node name="Network Surge Protection" level="4"/>
    </node>
   </node>
  </node>
  <node name="AMP NETCONNECT" level="1">
   <node name="Ноутбуки" level="2">
    <node name="BOX" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="IBM" level="1">
   <node name="Ноутбуки" level="2">
    <node name="AMD" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
    <node name="Intel" level="3">
     <node name="Тонкие и легкие" level="4"/>
    </node>
   </node>
  </node>
  <node name="SIEMENS COMMUNICATIONS" level="1">
   <node name="Телефония" level="2">
    <node name="Телефонные станции" level="3">
     <node name="Модули для телефонных станций" level="4"/>
    </node>
   </node>
  </node>
</category>
</categories>



xslt преобразование в экселовсский формат.
Code:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sapxsl="http://www.sap.com/sapxsl" version="1.0">

  <xsl:strip-space elements="*"/>
  <xsl:output indent="yes"/>

  <xsl:template match="/">
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html=
"http://www.w3.org/TR/REC-html40">
      <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
        <Author>boger</Author>
        <LastAuthor>Boger</LastAuthor>
        <Created>2005-09-16T09:38:52Z</Created>
        <LastSaved>2005-11-29T15:03:40Z</LastSaved>
        <Company>Home</Company>
        <Version>11.6360</Version>
      </DocumentProperties>
      <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
        <Colors>
          <Color>
            <Index>39</Index>
            <RGB>#E3E3E3</RGB>
          </Color>
        </Colors>
      </OfficeDocumentSettings>
      <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
        <WindowHeight>6840</WindowHeight>
        <WindowWidth>13170</WindowWidth>
        <WindowTopX>0</WindowTopX>
        <WindowTopY>0</WindowTopY>
        <TabRatio>601</TabRatio>
        <ProtectStructure>False</ProtectStructure>
        <ProtectWindows>False</ProtectWindows>
      </ExcelWorkbook>
      <Styles>
        <Style ss:ID="Default" ss:Name="Normal">
          <Alignment ss:Vertical="Bottom"/>
          <Borders/>
          <Font x:CharSet="204"/>
          <Interior/>
          <NumberFormat/>
          <Protection/>
        </Style>
        <Style ss:ID="s23">
          <Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1"/>
          <Font ss:Bold="1" x:CharSet="204" x:Family="Swiss"/>
        </Style>
      </Styles>
      <xsl:apply-templates select="categories"/>
    </Workbook>
  </xsl:template>
  <xsl:template match="categories">
    <xsl:apply-templates select="category"/>
  </xsl:template>

  <xsl:template match="category">
    <Worksheet xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" ss:Name="{@name}">

      <Table ss:ExpandedColumnCount="22" ss:ExpandedRowCount="380" x:FullColumns="1" x:FullRows="1">
        <Column ss:AutoFitWidth="0" ss:Width="51"/>
        <Column ss:AutoFitWidth="0" ss:Width="41.25"/>
        <Column ss:AutoFitWidth="0" ss:Width="55.5"/>
        <Column ss:AutoFitWidth="0" ss:Index="5" ss:Width="62.25"/>
        <Column ss:AutoFitWidth="0" ss:Width="191.25"/>
        <Column ss:AutoFitWidth="0" ss:Width="130.5"/>
        <Column ss:AutoFitWidth="0" ss:Width="56.25"/>
        <Column ss:AutoFitWidth="0" ss:Width="40.5"/>
        <Column ss:AutoFitWidth="0" ss:Width="51.75"/>
        <Column ss:AutoFitWidth="0" ss:Width="66.75"/>
        <Column ss:AutoFitWidth="0" ss:Index="13" ss:Width="65.25"/>
        <Column ss:AutoFitWidth="0" ss:Span="1" ss:Width="59.25"/>
        <Column ss:AutoFitWidth="0" ss:Index="16" ss:Width="47.25"/>
        <Column ss:AutoFitWidth="0" ss:Width="52.5"/>
        <Column ss:AutoFitWidth="0" ss:Width="36"/>
        <Column ss:AutoFitWidth="0" ss:Index="22" ss:Width="197.25"/>
        <Row>
          <Cell>
            <Data ss:Type="String">Дата выгрузки: 29.11.2005 17:07:55</Data>
          </Cell>
        </Row>
        <Row ss:Height="38.25" ss:StyleID="s23">
          <Cell ss:Index="5">
            <Data ss:Type="String">Код материала</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Описание</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">P/N</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Партия</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Склад</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Свободно на складе</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Ближний транзит</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Свободно в ближнем транзите</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Дальний транзит</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Свободно в дальнем транзите</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Заказ</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Свободно в заказе</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">I</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">II</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">III</Data>
          </Cell>
          <Cell>
            <Data ss:Type="String">Комментарий</Data>
          </Cell>
        </Row>
        <xsl:apply-templates select="node"/>
      </Table>
      <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
        <Selected/>
        <ProtectObjects>False</ProtectObjects>
        <ProtectScenarios>False</ProtectScenarios>
      </WorksheetOptions>
    </Worksheet>
  </xsl:template>
  <xsl:template match="node">
    <Row xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
      <Cell ss:Index="{@level}">
        <Data ss:Type="String">
          <xsl:value-of select="@name"/>
        </Data>
      </Cell>
    </Row>
    <xsl:apply-templates select="node"/>
    <xsl:apply-templates select="data"/>

  </xsl:template>

  <xsl:template match="data">
    <xsl:for-each select="*">
      <Row xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
        <Cell ss:Index="5">
          <Data ss:Type="String">
            <xsl:value-of select="MATNR"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="MATERIAL_TEXT"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="MFRPN"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="CHARG"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="STOCKRF"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="STOCKRF_FREE"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="TRANSIT"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="TRANSIT_FREE"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="STOCKRM"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="STOCKRM_FREE"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="ORDERED"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="ORDERED_FREE"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="COL1"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="COL2"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="COL3"/>
          </Data>
        </Cell>
        <Cell>
          <Data ss:Type="String">
            <xsl:value-of select="ZCOMMENT"/>
          </Data>
        </Cell>
      </Row>
    </xsl:for-each>
  </xsl:template>
</xsl:transform>

Пока заголовок экселовского файла никак не меняется, потом будут проставлятся реальные даты и имена.
Проблема с <Table ss:ExpandedColumnCount="22" ss:ExpandedRowCount="380" x:FullColumns="1" x:FullRows="1">
Нужно проставить количество использованных строк в _экселевской_ таблице. Заранее это число не известно и нужно сделать это из самой xslt'шки. Самый простой вариант посчитать кол-во элемента <row>, но это можно сделать только после формирования элемента <table>. кто-нибудь знает как это можно решить?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 01 2005, 13:06 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Boger написал(а):
Самый простой вариант посчитать кол-во элемента <row>, но это можно сделать только после формирования элемента <table>. кто-нибудь знает как это можно решить?

А может не считать <ROW>, а посчитать например <MATNR> или <LINE>?
К стати абалденный визуальный редактор XSLT с классной функцией маппинга Stylus Studio - рекомендую :)

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 01 2005, 17:12 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Проблема в том, что каждый узел (node) может занимать строку
Code:
ALCATEL         
   Активное сетевое оборудование      
      AMD   

а может и не занимать
Code:
ALCATEL:Активное сетевое оборудование:AMD:Network Surge Protection

И это полностью определяется xslt'шкой.
Хотяяяя пока писал - понял что это решение моей проблемы:
В первом примере считать сумму lines и всех нодов, а во втором сумму всех lines + нодов верхнего уровня.
Спасибо за идею ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB