|
|
|
Supreme 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
С уважением,
|
|
|
|
|
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="в аренде" />
|
|
|
|