Текущее время: Ср, июл 02 2025, 09:09

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


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

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