powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL Нумерация колонок
8 сообщений из 8, страница 1 из 1
XSL Нумерация колонок
    #37697195
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только начинаю разбираться с xsl, поэтому сильно не пинайте :)

как сделать, чтобы в строке пройтись по циклу ? необходима просто нумерация колонок.
делаю

Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsl:for-each select="здесь как-то написать чтобы цикл до определенного значения(например 30)">
   <Row ss:Index="3">
   <Cell ss:Index="1" ss:StyleID="style1">
	<Data ss:Type="String"><xsl:value-of select="position()"/></Data>
   </Cell>
   </Row>
</xsl:for-each>
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37701838
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K790,

В xsl нет итератора. В обычной жизни он не нужен. Когда совсем приспичивает, делают через рекурсию.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<xsl:template name="iter">
   <xsl:param name="start" select="1" />
   <xsl:param name="finish" select="5" />

   <xsl:if test="$start &amp;lt; $finish">
      <xsl:call-template name="iter">
         <xsl:with-param name="start" select="$start+1" />
         <xsl:with-param name="finish" select="$finish" />
      </xsl:call-template>
   </xsl:if>
</xsl:template>
<xsl:template match="/">
   <xsl:call-template name="iter">
      <xsl:with-param name="finish" select="30" />
   </xsl:call-template>
</xsl:template>
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37702425
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan,

спасибо за ответ! теперь ясно, что нужно организовывать отдельный шаблон с логикой и потом его вызывать.
только не совсем пойму куда его вставлять :(
пытаюсь

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
<xsl:template name="iter">
   <xsl:param name="start" select="1" />
   <xsl:param name="finish" select="5" />

   <xsl:if test="$start &amp;lt; $finish">
      <xsl:call-template name="iter">
         <xsl:with-param name="start" select="$start+1" />
         <xsl:with-param name="finish" select="$finish" />
      </xsl:call-template>
   </xsl:if>
</xsl:template>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook ...


но уже здесь валится и не открывает :(
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37702550
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K790только не совсем пойму куда его вставлять :(
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    ..................
    <xsl:call-template name="iter">
        ..................
    </xsl:call-template>
    ..................
  </xsl:template>

  <xsl:template name="iter">
    ..................
  </xsl:template>
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37702681
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,
наверно у меня руки не оттуда растут, но не хочет он этот шаблон есть :(

вот привожу рабочий


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <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>A</Author>
        <LastAuthor>A</LastAuthor>
        <Created>2012-03-13T00:00:00Z</Created>
        <Version>1.0</Version>
      </DocumentProperties>
      <Styles>
        <Style ss:ID="s1">
          <Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
          <Borders>
            <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
          </Borders>
          <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"/>
        </Style>
      </Styles>
      <Worksheet ss:Name="Тест">
        <Table x:FullColumns="1" x:FullRows="1">
          <Column ss:AutoFitWidth="0" ss:Width="20"/>
          <Column ss:AutoFitWidth="0" ss:Width="35"/>
          <Column ss:AutoFitWidth="0" ss:Width="40"/>
          <Row ss:Index="1" ss:Height="22">
            <Cell ss:Index="1" ss:StyleID="s1">
              <Data ss:Type="String">Тест отчет</Data>
            </Cell>
          </Row>
          <Row ss:Index="2">
            <Cell ss:Index="1" ss:StyleID="s1">
              <Data ss:Type="String">№ п/п</Data>
            </Cell>
            <Cell ss:StyleID="s1">
              <Data ss:Type="String">Номер тест</Data>
            </Cell>
            <Cell ss:StyleID="s1">
              <Data ss:Type="String">Описание тест</Data>
            </Cell>
          </Row>
        </Table>
        <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
          <PageSetup>
            <Layout x:Orientation="Landscape" x:CenterHorizontal="0" x:CenterVertical="0"/>
            <Header x:Margin="0.51181102362204722"/>
            <Footer x:Margin="0.51181102362204722"/>
            <PageMargins x:Bottom="0.6" x:Left="0.6" x:Right="0.6" x:Top="0.6"/>
          </PageSetup>
          <NoSummaryRowsBelowDetail/>
          <NoSummaryColumnsRightDetail/>
          <DisplayPageBreak>True</DisplayPageBreak>
          <FitToPage>False</FitToPage>
          <Print>
            <ValidPrinterInfo/>
            <PaperSizeIndex>12</PaperSizeIndex>
            <Scale>85</Scale>
            <HorizontalResolution>600</HorizontalResolution>
            <VerticalResolution>600</VerticalResolution>
          </Print>
          <Selected/>
          <Panes>
            <Pane>
              <Number>3</Number>
              <RangeSelection/>
            </Pane>
          </Panes>
          <ProtectObjects>False</ProtectObjects>
          <ProtectScenarios>False</ProtectScenarios>
        </WorksheetOptions>
      </Worksheet>
    </Workbook>
  </xsl:template>
</xsl:stylesheet>



как только добавляю хотя бы этот шаблон, даже без его последующего использования, все валится :(



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <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>A</Author>
        <LastAuthor>A</LastAuthor>
        <Created>2012-03-13T00:00:00Z</Created>
        <Version>1.0</Version>
      </DocumentProperties>
      <Styles>
        <Style ss:ID="s1">
          <Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
          <Borders>
            <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
            <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
          </Borders>
          <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"/>
        </Style>
      </Styles>
      <Worksheet ss:Name="Тест">
        <Table x:FullColumns="1" x:FullRows="1">
          <Column ss:AutoFitWidth="0" ss:Width="20"/>
          <Column ss:AutoFitWidth="0" ss:Width="35"/>
          <Column ss:AutoFitWidth="0" ss:Width="40"/>
          <Row ss:Index="1" ss:Height="22">
            <Cell ss:Index="1" ss:StyleID="s1">
              <Data ss:Type="String">Тест отчет</Data>
            </Cell>
          </Row>
          <Row ss:Index="2">
            <Cell ss:Index="1" ss:StyleID="s1">
              <Data ss:Type="String">№ п/п</Data>
            </Cell>
            <Cell ss:StyleID="s1">
              <Data ss:Type="String">Номер тест</Data>
            </Cell>
            <Cell ss:StyleID="s1">
              <Data ss:Type="String">Описание тест</Data>
            </Cell>
          </Row>
        </Table>
        <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
          <PageSetup>
            <Layout x:Orientation="Landscape" x:CenterHorizontal="0" x:CenterVertical="0"/>
            <Header x:Margin="0.51181102362204722"/>
            <Footer x:Margin="0.51181102362204722"/>
            <PageMargins x:Bottom="0.6" x:Left="0.6" x:Right="0.6" x:Top="0.6"/>
          </PageSetup>
          <NoSummaryRowsBelowDetail/>
          <NoSummaryColumnsRightDetail/>
          <DisplayPageBreak>True</DisplayPageBreak>
          <FitToPage>False</FitToPage>
          <Print>
            <ValidPrinterInfo/>
            <PaperSizeIndex>12</PaperSizeIndex>
            <Scale>85</Scale>
            <HorizontalResolution>600</HorizontalResolution>
            <VerticalResolution>600</VerticalResolution>
          </Print>
          <Selected/>
          <Panes>
            <Pane>
              <Number>3</Number>
              <RangeSelection/>
            </Pane>
          </Panes>
          <ProtectObjects>False</ProtectObjects>
          <ProtectScenarios>False</ProtectScenarios>
        </WorksheetOptions>
      </Worksheet>
    </Workbook>
  </xsl:template>
  <xsl:template name="iter">
    <xsl:param name="start" select="1"/>
    <xsl:param name="finish" select="5"/>
    <xsl:if test="$start &amp;lt; $finish">
      <xsl:call-template name="iter">
        <xsl:with-param name="start" select="$start+1"/>
        <xsl:with-param name="finish" select="$finish"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37702829
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K790все валится :(Падает монитор и клавиатура? Или, может, есть какое-то сообщение об ошибке?
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37703070
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

нет, монитор и клавиатура пока на месте :)

выходной файл xls не открывается в самой книге в том виде который я задаю. ошибок при этом нет, а выдает "Указанный источник XML не ссылается на схему. Excel создаст схему на основе данных, полученных из этого источника XML. ОК. Справка". И открывает набор моих данных.
...
Рейтинг: 0 / 0
XSL Нумерация колонок
    #37704874
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K790,

xml покажите, который нумеровать хотите, может мы более простой способ придумаем.

Все валится - это как машина зимой не заводится. 100500 причин почему... начиная от спецсимволов при копировании, и заканчивая какой-нибудь ошибкой трансформера.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSL Нумерация колонок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]