Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / HELP!!! Вложенные таблицы xsl / 15 сообщений из 15, страница 1 из 1
16.06.2006, 16:37
    #33796296
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Всем привет!
Проблема в следующем. есть xsl, вот кусок из него

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 <fo:table-row height="4mm">
................

<fo:table-cell text-align="center" border-style="solid">
- <fo:block font-size="8pt">
  <xsl:value-of select="owner" /> 
  </fo:block>
  </fo:table-cell>

- <fo:table-cell number-columns-spanned="2">
- <fo:block>
- <fo:table>
- <fo:table-body>
- <xsl:for-each select="prow">
- <xsl:call-template name="police"/>
  </xsl:for-each>
  </fo:table-body>
  </fo:table>
  </fo:block>
  </fo:table-cell>
...............


он генерит таблицу вида (см. файл). Короче проблема в том что вложенная таблица (333,444) не растягивается по высоте на размер колонки. Можно это как нить сделать?
Да... специфика задачи такая что нужны именно вложенные таблицы
number-rows-spanned использовать неполучится
...
Рейтинг: 0 / 0
16.06.2006, 16:49
    #33796346
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
во вложенных таблицах надо указать правильные атрибуты:
Код: plaintext
<table ... width="100%" height="100%">
...
Рейтинг: 0 / 0
16.06.2006, 16:52
    #33796361
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Да вроде не совсем чайник :)) В первую очередь так попробовал, не помогает
...
Рейтинг: 0 / 0
16.06.2006, 17:18
    #33796463
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
а можете свой html выложить, который у вас получается после преобразования
...
Рейтинг: 0 / 0
19.06.2006, 09:22
    #33798676
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
У меня на выходе PDF генерится, а не HTML
...
Рейтинг: 0 / 0
19.06.2006, 11:09
    #33799020
M0us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Скорее всего Вам нужно что-то типа:
Код: plaintext
<xsl:attribute name="align"><xsl:value-of select="ЗНАЧЕНИЕ"></xsl:attribute>

но, сначала определитесь с тем, как будет форматироваться документ, а потом уже к шаблону переходите.
...
Рейтинг: 0 / 0
20.06.2006, 10:43
    #33801782
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
А при чем здесь align? Мне же нужно не расположение таблицы поменять, а растянуть ее на всю колонку (вроде как смасштабировать на 100% содержащей ее колонки)
...
Рейтинг: 0 / 0
20.06.2006, 15:28
    #33802997
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
еще раз повторюсь!

Код: plaintext
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.
<table align=center border= 1 >
<tr>
<td> 111 </td><td> 111 </td><td> 111 </td><td> 111 </td>
</tr>
<tr>
<td> 222 </td><td>
<pre> 222 
 2222  
 2222  
 2222  
 22222 </pre>
</td>
<!-- look here -->
<td colspan= 2  valign=top align=left HEIGHT= 100 %>

<table width= 100 % HEIGHT= 100 % border= 1 >
<tr>
<td> 333 </td><td> 333 </td>
</tr>
<tr>
<td> 444 </td><td> 444 </td>
</tr>
</table>

</td>

</tr>
</table>
...
Рейтинг: 0 / 0
21.06.2006, 11:50
    #33804865
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
А теперь я еще раз повторюсь! На выходе получается PDF, никакого HTML. Обработчику на вход подается XSL + XML (xml генерится из оракла), а он уже генерит PDF.

внешний вид примерно след. (см. рисунок)

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

Еще раз (для особо упорных :) ), мне не надо CSS + HTML мне нужно форматирование применительно к XSL (column-width, height, line-height и т.п.).
...
Рейтинг: 0 / 0
22.06.2006, 19:32
    #33809941
beard-electronic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
А если table-row сделать height (пропертя такая точно есть) 100% (ну или 100/количество_строк %)
...
Рейтинг: 0 / 0
23.06.2006, 11:52
    #33810930
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Пробовал уже, все равно не помогает... :(
Там вот в чем дело собственно, если см. на рисунок, то в 3 колонке (в той же строке где и влож. таблица) очень длинный текст, он не помещается целиком в колонке и расползается на 2 строчки (это если например задать ширину колонки 100px, а в нее положить что нить длиной 255 символов). Соответственно вся строка основной таблицы увеличивается по высоте, а вложенная таблица нет...
...
Рейтинг: 0 / 0
23.06.2006, 15:40
    #33811787
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Вообщем что-то с растягиванием таблички засада получается, может можно задачку как-то по другому решить... есть такой XML:

Код: plaintext
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.
<root>
- <pl>
  <op> 111 </op> 
  <owner>ааа</owner> 
  <cret> 1 </cret> 
 - <prow>
    <nr>a1</nr> 
    <sum> 1 , 49 </sum> 
    <cdat> 12 . 04 . 2006 </cdat> 
   </prow>
 - <prow>
    <nr>a2</nr> 
    <sum> 1 , 26 </sum> 
    <cdat> 01 . 01 . 2006 </cdat> 
   </prow>
  </pl>
- <pl>
  <op> 222 </op> 
  <owner>bbb</owner> 
  <cret> 1 </cret> 
 - <prow>
    <nr>b1</nr> 
    <sum> 1 , 00 </sum> 
    <cdat> 01 . 06 . 2005 </cdat> 
   </prow>
 - <prow>
    <nr>b2</nr> 
    <sum> 4 , 00 </sum> 
    <cdat> 01 . 06 . 2005 </cdat> 
   </prow>
  </pl>
- <pl>
  <op> 333 </op> 
  <owner>ccc</owner> 
  <cret> 2 </cret> 
 - <prow>
    <nr>c1</nr> 
    <sum> 2 , 40 </sum> 
    <cdat> 06 . 05 . 2006 </cdat> 
   </prow>
  </pl>

надо из этого поиметь такую табличку
...
Рейтинг: 0 / 0
23.06.2006, 15:42
    #33811795
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Забыл добавить, что HTML использовать нельзя так как на выходе будет PDF
...
Рейтинг: 0 / 0
23.06.2006, 17:25
    #33812207
beard-electronic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
Как-то так:
Код: plaintext
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.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
<?xml version="1.0"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">


	<xsl:template name="printTableHeadCell">
		<xsl:param name="text"/>
	    <fo:table-cell padding-top="3mm" padding-bottom="3mm" padding-right="1mm" padding-left="1mm" border-color="rgb(255,251,213)" border-bottom-width="0pt" border-top-width="0pt" border-left-width="0px" border-style="solid" display-align="center">
	        <fo:inline color="rgb(255,255,255)">
	            <fo:block text-align="center" font-weight="bold">
	            	<xsl:value-of select="$text" />
	            </fo:block>
	        </fo:inline>
	    </fo:table-cell>
	</xsl:template>
   <xsl:template match="/root">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set background-color="grey">
                <fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="1.5cm" margin-bottom="1.5cm" margin-left="1cm" margin-right="1cm" background-color="grey">
                    <fo:region-body margin-top="0mm" margin-bottom="15mm" margin-left="0mm" margin-right="0mm"/>
                    <fo:region-after extent="10mm"/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="simpleA4" background-color="grey">
                <fo:flow flow-name="xsl-region-body">
                    <fo:block font-size="7pt">


                        <fo:table table-layout="fixed">

                             <fo:table-column column-width="3cm"/>
                             <fo:table-column column-width="3cm"/>
                             <fo:table-column column-width="3cm"/>
                             <fo:table-column column-width="3cm"/>
                             <fo:table-column column-width="3cm"/>
                             <fo:table-column column-width="3cm"/>

                            <fo:table-header background-color="rgb(51,102,153)">

                                <fo:table-row>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">op</xsl:with-param>
                                	</xsl:call-template>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">owner</xsl:with-param>
                                	</xsl:call-template>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">nr</xsl:with-param>
                                	</xsl:call-template>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">sum</xsl:with-param>
                                	</xsl:call-template>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">cdat</xsl:with-param>
                                	</xsl:call-template>
                                	<xsl:call-template name = "printTableHeadCell" >
                                		<xsl:with-param name="text">cret</xsl:with-param>
                                	</xsl:call-template>
                                </fo:table-row>

                            </fo:table-header>

                            <fo:table-body>
                                 <xsl:apply-templates select="pl" />
                            </fo:table-body>

                        </fo:table>

                    </fo:block>

                    <fo:block id="last-page"/>

                </fo:flow>
            </fo:page-sequence>

        </fo:root>

   </xsl:template>

   <xsl:template match="pl">
      <xsl:variable name="prowCount" select="count(prow)" />

      <fo:table-row>
         <fo:table-cell border-width="1px" border-style="solid" number-rows-spanned="{$prowCount}" display-align="center">
            <fo:block text-align="center"><xsl:value-of select="op" /></fo:block>
         </fo:table-cell>

         <fo:table-cell border-width="1px" border-style="solid" number-rows-spanned="{$prowCount}" display-align="center">
            <fo:block text-align="center"><xsl:value-of select="owner" /></fo:block>
         </fo:table-cell>

         <xsl:apply-templates select="prow[1]" mode="cols" />
         <fo:table-cell border-width="1px" border-style="solid" number-rows-spanned="{$prowCount}" display-align="center">
            <fo:block text-align="center"><xsl:value-of select="cret" /></fo:block>
         </fo:table-cell>
      </fo:table-row>

      <xsl:apply-templates select="prow[position()>1]" mode="row" />
   </xsl:template>

   <xsl:template match="prow" mode="cols">
      <fo:table-cell border-width="1px" border-style="solid">
         <fo:block text-align="center"><xsl:value-of select="nr" /></fo:block>
      </fo:table-cell>

      <fo:table-cell border-width="1px" border-style="solid">
         <fo:block text-align="center"><xsl:value-of select="sum" /></fo:block>
      </fo:table-cell>

      <fo:table-cell border-width="1px" border-style="solid">
         <fo:block text-align="center"><xsl:value-of select="cdat" /></fo:block>
      </fo:table-cell>
   </xsl:template>

   <xsl:template match="prow" mode="row">
      <fo:table-row>
         <xsl:apply-templates select="self::node()" mode="cols" />
      </fo:table-row>
   </xsl:template>
</xsl:stylesheet>

...
Рейтинг: 0 / 0
26.06.2006, 09:31
    #33813738
Alex Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!!! Вложенные таблицы xsl
То что доктор прописал! :) Спасибо beard-electronic . Я собственно изначально собирался rows-spanned использовать просто не знал как его правильно применить, я в XSL-е недавно :)
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / HELP!!! Вложенные таблицы xsl / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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