powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вывод шапки в конце страницы XLS
15 сообщений из 15, страница 1 из 1
Вывод шапки в конце страницы XLS
    #35295853
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Я использую связку ASP.NET + ADO.NET + C#.NET + XML,XSL - для выгрузки отчета в Excel из приложения ASP.
Для этого я произвожу коннект к БД и выгрузку 3 datasets в XLS через XML и XSLT.
Пример отчета таков:
-----------------------------
Первый датасет (шапки Согласовано, Утверждено, Название документа и прочее)
-----------------------------
Второй датасет (вывод собственно строк документа)
-----------------------------
Третий датасет (вывод шапок кто расписывается)
-----------------------------

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

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

Были сделаны попытки вставки <xsl:if/> выражения, однако я не знаю как правильно обработать данную ситуацию.

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

Помогите пожалуйста разрешить возникшую ситуацию...
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35297271
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я не очень понял проблему. Обычно делается так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<xsl:templates match="/">
  <xsl:apply-templates select="1 датасет"/>
  <xsl:apply-templates select="2 датасет"/>
  <xsl:apply-templates select="3 датасет"/>
</xsl:templates>

<xsl:templates match="1 датасет">
  ..............................
</xsl:templates>

<xsl:templates match="2 датасет">
  ..............................
</xsl:templates>

<xsl:templates match="3 датасет">
  ..............................
</xsl:templates>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35298427
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте попробую разъяснить..
Все датасеты заполняются по порядку.
Например первый доходит до 8 строки, второй идет на следующей, т.е. девятой строке - всегда.
Второй датасет может содержать несколько строк - от 1 до нескольких десятков. Соответственно 3 датасет я могу начать только после окончания 2-го, а это значит - что он может начаться и посередине первой страницы (если 2 датасет содержит пару строк) и в вначале второй странице (если порядка 30 строк), и т.д.

А мне необходимо, чтобы 3 датасет прописывался строго внизу страницы если допустим количество строк второго датасета было меньше 30, или в конце следующей страницы - если количество строк больше 30 (у меня происходит перенос шапки и продолжение строк)

Если я просто указываю, что у меня 3 датасет будет начинаться с 30 строки - то как мне обработать, чтобы он не писался на первой странице, если количество строк второго датасета больше 30?
Я так понимаю, что нужно прописать вывод 3 датасета на 30 строке, если количество строк 2 датасета < 30 и вывод 3 датасета на 30*(кол-во строк 2 датасета/30 + 1) строке при другом варианте...

А как правильно это прописать? И возможно ли такое средствами XSL?
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35299647
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте Вы лучше выложите пример XML и того, что вы хотите получить

P.S. Я вообще не понимаю, что такое номер мтроки в XML

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35301242
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прилагаю пример
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35301247
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скриншоты:
1) Если у меня одна страница
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35301248
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если допустим из двух и более страницы - то так
- на первой странице
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35301255
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А на второй странице:
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35309568
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача в чём? Распределить строки по страницам?
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35313324
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача - выводить третий датасет в конце страницы, если количество строк меньше или равно 30 и выводить в конце последней страницы, где количество страниц кратно 30
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35314656
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну. Сначала распределяй строки по страницам, потом уже их выводи.
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35319615
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mas_abd Задача - выводить третий датасет в конце страницы, если количество строк меньше или равно 30 и выводить в конце последней страницы, где количество страниц кратно 30
ну а функция count() для чего?
Считайте разницу, добавляйте пустые <Row/> и выводите fouter.
Можно с нижним колонтитулом поэкспериментировать, если такойвариант подходит.
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35319797
mas_abd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну. Сначала распределяй строки по страницам, потом уже их выводи.
Я и не знаю как это делать, поэтому и прошу подсказки и помощи

ну а функция count() для чего?
Считайте разницу, добавляйте пустые <Row/> и выводите fouter.
Можно с нижним колонтитулом поэкспериментировать, если такойвариант подходит.
Можно пример функции count()?
Нижний колонтитул пробовал, да вот только не знаю как запретить вывод на первой странице нижнего колонтитула если у меня количество строк больше 30..
Иначе ерунда получается (мне не нужно повторение шапки на каждой странице)
Возможно ли программное отключение нижнего колонтитула на странице?
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35319892
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<xsl:variable name="c"><xsl:value-of select="count(//NewDataSet/Table1)" /></xsl:variable>
<xsl:if test="$c>30">
...
</xsl:if>
...
Рейтинг: 0 / 0
Вывод шапки в конце страницы XLS
    #35320030
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mas_abd Ну. Сначала распределяй строки по страницам, потом уже их выводи.
Я и не знаю как это делать, поэтому и прошу подсказки и помощину ты же имеешь представление о том, что ты хочешь сделать, это просто нужно выразить средствами хслт. Вот например, обрабатываем каждый 30й элемент:
Код: plaintext
<xsl:apply-templates select="Row[position() % 30 =1]"/>
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вывод шапки в конце страницы XLS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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