powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Растягивание таблицы в XSL
34 сообщений из 34, показаны все 2 страниц
Растягивание таблицы в XSL
    #37243471
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в следующем. Есть XSL-файл, который на выходе выдает в формате PDF таблицу. Задача в том, чтобы таблица всегда растягивалась по всей длине страницы, т.е. чтобы при малом количестве столбцов они растягивались, и наоборот, при большем-сужались, но чтобы таблица всегда заполняла всю страницу по горизонтали.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243556
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

Не задавай ширину, хотя бы у одного столбца. Если не получится, показывай тестовый пример...
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243609
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот XSL-файл. Когда убираю ширину, то таблица растягивается за пределы страницы.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243655
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

Еще бы XML тогда уж. Или, лучше, XSL-FO...
Навскидку, здесь цикл нужен? У тя динамическое кол-во столбцов?
Код: plaintext
1.
2.
3.
4.
5.
6.
<xsl:for-each select="Grade">
  <fo:table-column column-number="1" column-width="2.5cm"/>
  <fo:table-column column-width="0.45cm"/>
  <fo:table-column column-width="0.45cm"/>
  <fo:table-column column-width="0.45cm"/>
  <fo:table-column column-width="0.45cm"/>
</xsl:for-each>
column-width здесь убирал?
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243678
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, количество столбцов меняется от раза к разу. Как раз если там убрать column-width, то таблица начинает уходить за страницу.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243747
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

Убери column-number="1" , цикл делает несколько колонок с этим номером, и возможно в этом проблема.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243792
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если убрать, то растягивается, но каждая пятая колонка большой получается. Хотелось бы все таки чтобы они были одинаковой ширины
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243829
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

Зачем здесь группировка? А в столбцах группировки нет...
Код: plaintext
<xsl:for-each-group select="Grade" group-by="fio">
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243870
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregSteven333,

Зачем здесь группировка? А в столбцах группировки нет...
Код: plaintext
<xsl:for-each-group select="Grade" group-by="fio">
Добавлю, for-each-group появилась во XSL 2.0 - у тя XSL продекларирован 1.0
И, еще тупо посчитай в получаемом XSL-FO сколько колонок продекларировано, сколько получилось в хедере, и сколько в каждой строке боди. Желательно, что бы было все равно...
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37243925
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, спасибо. Сейчас попробую.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244060
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) На счет количества колонок, там везде по 6.
2) На счет for-each-group. Я попробовал убрать, но без этого не фурычит.
3) Не могу понять одного. Когда я убираю column-width у первого, то он совершенно произвольно увеличивает некоторые колонки. И кстати если вообще убрать декларацию колонок то он их расширяет и при этом все равно остается этот странный феномен с шириной некоторых колонок.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244157
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333Да, количество столбцов меняется от раза к разу. Как раз если там убрать column-width, то таблица начинает уходить за страницу.Steven3331) На счет количества колонок, там везде по 6.Вот как увязать? Разбирайся, мне скучно... стало...

PS. Вообще-то 5 колонок
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244184
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прописано по 6 в декларации, хедере и боди. Может не втом варианте, который я скидывал, но по сути так должно быть, т.к. 5 из них постоянны, а одна как раз таки и меняет количество с количеством предметов. Естессно буду разбираться.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244193
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

ладно, а про динамичность столбов что напишешь?

Кидай тогда XSL-FO, который по-твоему правильный - а выходит неправильно. Локализовывать проблему надо... И плясать от тестовых примеров...
И, да! Если кинешь XSL-FO - сформулируй, заново, что в нем не так...
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244232
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит что тут. Все выходит ровненько. Со столбцами следующая ситуация: в декларации идет 2 столбца, в хедере 6, в боди-7, т.к. иначе под пустым столбцом в хедере не выводится пустая ячейка в боди(почему так, не знаю). Проблема та же, растянуть на всю страницу. Я пробовал эксперементировать с декларацией, и как раз получал разные знчения ширины колонок.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244236
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Динамичность состояит в следующем: сейчас имеется определенное количество столбцов. Но если в xml выведется больше предметов, т.е. больше столбцов, то следовательно эфект с заполнением всей страницы должен остаться. Т.е. изначально нельзя предугадать сколько их там будет.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244275
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333в декларации идет 2 столбца, в хедере 6, в боди-7 Ну, это уже не смешно...
Steven333Я пробовал эксперементировать с декларацией, и как раз получал разные знчения ширины колонок.Это уже ближе, убери декларацию ширины у резиновой колонки(у резиновых колонок), у остальных оставь.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244283
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

И вообще, почему добавляются колонки, а не строки? Какой-то странный отчетик будет...
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244341
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да там и строки добавляются, но со строками как раз ничего сложного. А вот со столбцами уже тяжелей. Если я у одного столбца убираю декларацию, то он совершенно непонятным образом растягивает, т.е. какие-то столбцы пропускает, а какие-то растягивает слишком, причем просто растягивает, а не заполняет страницу. Поэтому никак не могу уловить ту стратегию, по которой так происходит
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244355
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333Да там и строки добавляются, но со строками как раз ничего сложного. А вот со столбцами уже тяжелей. Если я у одного столбца убираю декларацию, то он совершенно непонятным образом растягивает, т.е. какие-то столбцы пропускает, а какие-то растягивает слишком, причем просто растягивает, а не заполняет страницу. Поэтому никак не могу уловить ту стратегию, по которой так происходитНу ты же никак не можешь этого показать!!! Я же тя просил покажи нормальный XSL-FO , еще раз XSL-FO , не XSL , не XML , а XSL-FO , в котором количество объявленных столбцов равно количеству столбцов в заголовке, и равно количеству столбцов в строках. Так, что бы там не были продекларированы нумерации столбцов, или продекларированы по порядку, без повторов, и что бы хотя бы у одного столбца не была задана ширина... И если у такого XSL-FO не будет таблица растянута на всю ширину, с удовольствием гляну...
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244879
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1-ый файл PDF: table-header: 6 столбцов, table-body: 7 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column/>
</xsl:for-each>



2-ой файл PDF: table-header: 6 столбцов, table-body: 7 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column column-width="0.45cm"/>
</xsl:for-each>



3-ий файл PDF: table-header: 6 столбцов, table-body: 7 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
</xsl:for-each>



4-ый файл PDF: table-header: 6 столбцов, table-body: 6 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
</xsl:for-each>



5-ый файл PDF: table-header: 6 столбцов, table-body: 6 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column/>
</xsl:for-each>



6-ой файл PDF: table-header: 6 столбцов, table-body: 6 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-width="2.5cm" />
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column column-width="0.45cm"/>
<fo:table-column/>
</xsl:for-each>



7-ой файл PDF: table-header: 6 столбцов, table-body: 6 столбцов
<xsl:for-each select="Grade">
<fo:table-column column-number="1" column-width="2.5cm" />
<fo:table-column column-number="2" column-width="0.45cm"/>
<fo:table-column column-number="3" column-width="0.45cm"/>
<fo:table-column column-number="4" column-width="0.45cm"/>
<fo:table-column column-number="5" column-width="0.45cm"/>
<fo:table-column column-number="6"/>
</xsl:for-each>
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244880
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37244995
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven3336-ой файл PDF: table-header: 6 столбцов, table-body: 6 столбцовА я в 6-м pdf досчитал до 20-го столбца, дальше надоело...
Опять же это выдержки из xsl, а не xsl-fo...

Поясню, если до сих пор неясно:
1. Есть данные в xml (никакого отношения к pdf)
2. Есть шаблон для преобразования xsl (никакого отношения к pdf)
3. Есть FO-процессор, который выдает PDF (или что-то другое наглядное) - этот процессор понимает определенный формат XSL-FO - и только его. По счастливой случайности, этот формат является XML. Хотя на самом деле он вполне мог быть бинарным, текстовым, или еще каким-нить.
4. С помощью XSL, данные из XML преобразуется в XSL-FO.
5. XSL-FO поступает на вход FO-процессора, получаем PDF.

В связи с этим, разработка должна идти от обратного:
1. Анализируем, что должно быть в PDF
2. Моделируем XSL-FO, так что из него получается требуемый PDF.
3. Разрабатываем XSL, который из данных XML сделает требуемый XSL-FO.

У тя проблема на 2-м шаге - ты его успешно пропустил, и поэтому не можешь ответить даже на такой простой вопрос, как "Сколько у тя столбцов". Считать столбцы нужно в XSL-FO!!!
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245035
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, каким образом мне этот самый xsl-fo посмотреть? через что и как?
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245049
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Steven333,

Приехали, а мы тут о высоких материях...
Программа для применения xslt к xml
Ну, и google...
PS. Уверен на 99%, что такое преобразование умеет то, чем ты пользуешься для написания XSL
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245072
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, проблема оказалось в другом-в незнании. Спасибо за направление мысли. Буду изучать.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245087
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245092
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это я уже понял. Еще раз спасибо.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245237
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вопросец. Не могу понять, как работать с этим msxsl. Есть у меня xsl и xml. Что нужно делать пошагово?
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245271
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, разобрался.
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245373
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на что в моем случае можно заменить это самое for-each-group, чтобы для группы тегов выбиралось одно значение?
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245387
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245394
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое
...
Рейтинг: 0 / 0
Растягивание таблицы в XSL
    #37245692
Steven333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже боле менее получается разобраться. Единственное не знаю, каким образом переписать вот этот кусок, чтобы оценки высвечивались:

<xsl:for-each select="current-group()">
<fo:table-cell border="0.2pt solid black" text-align="center" display-align="center" padding-bottom="0.1cm" padding-left="0cm" padding-right="0cm" padding-top="0.1cm">
<fo:block font-size="10pt" text-align="center" margin-right="0cm" margin="0.01cm">
<xsl:value-of select="rating"/>
</fo:block>
</fo:table-cell>
</xsl:for-each>

А так результаты пока такие: Тут файл 333.xml как раз то что получается после преобразования

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


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