Представление сложной шапки таблицы в виде XML
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Представление сложной шапки таблицы в виде... Expand / Collapse
Автор
Сообщение
31.01.2007 19:44
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
В моем приложении требуется сформировать сложную шапку таблицы.
Что то типа:

----------------------------------------------------------------
|предприятия|грузовые склады |
| |--------------------------------------------------
| |всего |в том числе |
| | |в аренде|в запасе|
| |---------------------------------------------------
| |число единиц|длина|площадь|число единиц|длина|площадь| итд
----------------------------------------------------------------

Нижняя строка (в зависимости от типа тех средства), строка названий тех средств и их количества, переменные. Таблица должна, как вытягиваться в длину (по всем типам тс), так и выводиться постранично. Я предположил, что структуру нужно хранить в xml файле.

<?xml version="1.0" encoding="windows-1251" ?>
<header>
<!-- Варианты шапки -->
<elem_types>
<elems>
<total value="Всего">
<elem>число единиц</elem>
<elem>длина, м.</elem>
<elem>площадь тыс. кв. м.</elem>
</total>
<incl value="в том числе находится">
<rent value="в аренде">
<elem>число единиц</elem>
<elem>длина, м.</elem>
<elem>площадь тыс. кв. м.</elem>
</rent>
<reserve value="в запасе">
<elem>полезная длина, м.</elem>
<elem>площадь тыс. кв. м.</elem>
</reserve>
</incl>
</elems>
<elems>
<total value="Всего">
<elem>число единиц</elem>
<elem>площадь тыс. кв. м.</elem>
</total>
<incl value="в том числе находится">
<rent value="в аренде">
<elem>число единиц</elem>
<elem>площадь тыс. кв. м.</elem>
</rent>
<reserve value="в запасе">
<elem>полезная длина, м.</elem>
<elem>площадь тыс. кв. м.</elem>
</reserve>
</incl>
</elems>
<elems>
<total value="Всего"></total>
<incl value="в том числе находится">
<rent value="в аренде"></rent>
<reserve value="в запасе"></reserve>
</incl>
</elems>
<elems>
<total value="Всего"></total>
<incl value="в том числе находится">
<rent value="в аренде"></rent>
<reserve value="в запасе"></reserve>
</incl>
<incl value="в том числе">
<allocation value="легкового, грузового (специализированного)">
<total value="Всего"></total>
<incl value="в том числе находится">
<rent value="в аренде"></rent>
<reserve value="в запасе"></reserve>
</incl>
</allocation>
<allocation value="грузового, занятого на завозе-вывозе грузов">
<total value="Всего"></total>
<incl value="в том числе находится">
<rent value="в аренде"></rent>
<reserve value="в запасе"></reserve>
</incl>
</allocation>
</incl>
</elems>
</elem_types>
<!-- Листы отчета -->
<str_num value="1">
<hardware elem_id="1">Грузовые склады</hardware>
<hardware elem_id="1">В том числе аграрного типа</hardware>
</str_num>
<str_num value="2">
<hardware elem_id="1">Грузосортировочные склады</hardware>
<hardware elem_id="1">Платформы крытые</hardware>
</str_num>
<str_num value="3">
<hardware elem_id="1">Платформы открытые</hardware>
<hardware elem_id="1">Контейнерные площадки</hardware>
</str_num>
<str_num value="4">
<hardware elem_id="1">в том числе по переработке крупнотоннажных контейнеров</hardware>
<hardware elem_id="1">из них по переработке 40-футовых контейнеров</hardware>
</str_num>
<str_num value="5">
<hardware elem_id="1">Погрузочно-выгрузочные площадки, всего</hardware>
<hardware elem_id="1">в том числе для тяжеловесных грузов</hardware>
</str_num>
<str_num value="6">
<hardware elem_id="1">Повышенные пути и эстакады</hardware>
<hardware elem_id="2">Санитарно-бытовые помещения</hardware>
</str_num>
<str_num value="7">
<hardware elem_id="2">Гаражи для погрузочно-разгрузочных машин и грузового автотранспорта</hardware>
<hardware elem_id="2">Ремонтно-механические мастерские стационарные</hardware>
</str_num>
<str_num value="8">
<hardware elem_id="2">Товарные конторы</hardware>
<hardware elem_id="3">Вагоны весопроверочные</hardware>
<hardware elem_id="3">Вагоны-весовые мастерские передвижные</hardware>
<hardware elem_id="3">Дезопромывочные станции</hardware>
</str_num>
<str_num value="9">
<hardware elem_id="3">Дезопромывочные пункты</hardware>
<hardware elem_id="3">Промывочные пункты</hardware>
<hardware elem_id="3">Скотопогрузочные платформы стационарные</hardware>
<hardware elem_id="3">Водопойные пункты</hardware>
</str_num>
<str_num value="10">
<hardware elem_id="3">Водопойные колонки</hardware>
<hardware elem_id="3">Краны козловые - всего</hardware>
<hardware elem_id="3">в том числе, для переработки контейнеров</hardware>
<hardware elem_id="3">из них для переработки крупнотоннажных контейнеров</hardware>
<hardware elem_id="3">из них для переработки 40-футовых контейнеров</hardware>
</str_num>
<str_num value="11">
<hardware elem_id="4">Автотранспорт</hardware>
<hardware elem_id="3">Дистанции погрузочно-разгрузочных работ</hardware>
</str_num>
</header>

Как видно из кода, структура файла логически разбита на 2 части: Тэг <elem_types> содержит варианты шапки встречающиеся в отчете. Тэг
<str_num> является представлением страницы, где атрибут value="2" это номер страницы, а вложенные <hardware>, где атрибут elem_id="1" это порядковый номер тэга <elems>, содержат имена тех средств. Зачем такое разбиение? Потому, что многие варианты шапки часто бывают одинаковы, и мне думается что дублировать их в каждом hardware излишне.

Вопросы.
1. Насколько грамотно составлена структура файла? При попытке просмотреть файл как данные View data среда ругается на тэг elem: ".....elem cannot be child table in nested relations". Что неправильно?
2. Насколько оправдано использование XML?
3. Можно ли использовать тэги без пары если они пустые? например:
</rent value="в аренде"> Валидатор при проверке возвращает:
D:\ago-6k\header.xml(45): The 'rent' start tag on line '44' does not match the end tag of 'rent'. Line 45, position 7.

использую:
ОС: win xp
среда: vs.net 2003 fcl 1.1
БД: DB2 v8.1.3.132

С уважением,
Сообщ. #910270
01.02.2007 10:34
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
babken76 (31.01.2007)
1. Насколько грамотно составлена структура файла?

Мне кажется что для строк отчета лучше создать свой тег-контейнер, например, <rows>. То есть все теги <str_num> должны внутри него находиться. Тогда отпадет необходимость в атрибуте value с номером строки т.к. номер элемента можно будет получать средствами XSL или XML парсера.

babken76 (31.01.2007)
При попытке просмотреть файл как данные View data среда ругается на тэг elem: ".....elem cannot be child table in nested relations". Что неправильно?

По моему это ограничение VS2003. С самим XML все нормально.

babken76 (31.01.2007)
2. Насколько оправдано использование XML?

Это тебе виднее :). Хотя для представления иерархических данных XML хорошо подходит.

babken76 (31.01.2007)
3. Можно ли использовать тэги без пары если они пустые? например:
</rent value="в аренде"> Валидатор при проверке возвращает:
D:\ago-6k\header.xml(45): The 'rent' start tag on line '44' does not match the end tag of 'rent'. Line 45, position 7.

Надо писать, <rent value="в аренде" />

Сообщ. #910276
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 1 (1 гость, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 9:14