powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Формирование отчета для MS Exel (2003) с использованием XML
3 сообщений из 3, страница 1 из 1
Формирование отчета для MS Exel (2003) с использованием XML
    #35704736
rte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
В XML не шибко спец, поэтому прошу не пинать.
Проблема следующая. Необходимо придумать удобный способ форматирования отчета для MS Excel. Отчет получается на базе SQL-кода. Имеется генератор отчетов, способный формировать текстовый файл нужной структры. Технология используется такая. Изготавливается макет отчета в MS EXCEL, сохраняется в формате XML. Далее отдельные элементы этого кода копируются в конструктор отчетов, где в нужные места втыкаются переменные, посчитанные в SQL. Проблема в том, что с кодом, содержащимся в отчетнике, работать неудобно: это и не чистый XML - его нельзя проверить, и не какой-то стандартный язык. После каждого изменения приходится заново генерировать результирующий XML и проверять его, запуская Excel-ем. Это неудобно. Плюс к этому достаточно сложно, не зная досконально спецификацию данной версии XML, вносить изменения в макет. Для примера увеличить "формат" отображения с 2-х символов до 4-х - не такая уж тривиальная задача, поскольку Excel при этой операции вначале меняет "таблицу" описания стилей в "верхней" части кода, а уже потом "применяет" конкретный стиль к нужной "ячейке". Поэтому для выполнения такой операции приходится полностью переделывать отчет.
Хотелось бы, чтобы как-то отдельно хранилась структура "таблицы" - последовательность ячеек и начитка данных под них, а отдельно стили, чтобы можно было проще менять "внешний вид" отчета.
Прошу прощения за сумбурное изложение.
Вопрос крайне актуальный, но удобное средство под эти задачи пока не известно :-(

Ссылки на описания стандарта Excel-ного 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
#ENDIF   
$T                                // Группа повтора кроме прямого
#IF "@InstrumentGroupName.......................................@" <> '_Прямое РЕПО' 
   <Row ss:AutoFitHeight="0">                                                      // Данные таблицы   1 
    <Cell ss:StyleID="s155"/>
    <Cell ss:StyleID="s155"/>
    <Cell ss:StyleID="s85"><Data ss:Type="String">@SecNamet@</Data><NamedCell // Бумага
      ss:Name="Print_Area"/></Cell>
    <Cell ss:StyleID="s86"><Data ss:Type="Number">@Nominalt@</Data><NamedCell // Номинал
      ss:Name="Print_Area"/></Cell>
    <Cell ss:StyleID="s129"><Data ss:Type="Number">@OpenPt@</Data><NamedCell  // Входяшее колиечство
      ss:Name="Print_Area"/></Cell>
    <Cell ss:StyleID="s129">                                                  //Куплено  
      <Data ss:Type="Number">@Buyt@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>         
    <Cell ss:StyleID="s129">
      <Data ss:Type="Number">@Sellt@</Data>                                 // Продано
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s304">
      <Data ss:Type="Number">@ClosePost@</Data>                            //Исход. остаток
      <NamedCell ss:Name="Print_Area"/>                                    // Рыночная цена
    </Cell>
      <Cell ss:StyleID="s133">
      <Data ss:Type="Number">@Pricet@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s305">
      <Data ss:Type="Number">@SummaRURt@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s133">                                              // НКД в рублях   
      <Data ss:Type="Number">@NKDRURt@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:MergeAcross="3" ss:StyleID="m18384548">                     // НКД всего
      <Data ss:Type="Number">@NKDSumRURt@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s305">
      <Data ss:Type="Number">@RealCostt@</Data>                         // Справедливая 
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s249">
      <Data ss:Type="String">@DateEnd.@</Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s250">
      <Data ss:Type="String">@DateNKD.@ </Data>
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s181"><NamedCell ss:Name="Print_Area"/></Cell>
    <Cell ss:StyleID="s205"><NamedCell ss:Name="Print_Area"/></Cell>
    <Cell ss:StyleID="s205"><NamedCell ss:Name="Print_Area"/></Cell>
   </Row> 
#ELSE //Прямое репо
   <Row ss:AutoFitHeight="0">                           // Строка  1  прямое репо
    <Cell ss:Index="3" ss:StyleID="s85">
      <Data ss:Type="String">@SecNamet@</Data>         // Бумага
      <NamedCell ss:Name="Print_Area"/>
    </Cell>
    <Cell ss:StyleID="s86">                    
...
Рейтинг: 0 / 0
Формирование отчета для MS Exel (2003) с использованием XML
    #35704993
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде ёксель может импортировать данные из чистого хмля, а стили можно выставлять либо скриптом либо хслт-преобразованием.
...
Рейтинг: 0 / 0
Формирование отчета для MS Exel (2003) с использованием XML
    #35705817
rte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoвроде ёксель может импортировать данные из чистого хмля, а стили можно выставлять либо скриптом либо хслт-преобразованием.
Это мысль. Со стандартным XML-ем проще дело иметь.
Сгенерить чем-нибудь стандартный XML, поднять Exel и импортуть в него XML...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Формирование отчета для MS Exel (2003) с использованием XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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