powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формирование отчета для MS Exel (2003) с использованием XML (1)
1 сообщений из 1, страница 1 из 1
Формирование отчета для MS Exel (2003) с использованием XML (1)
    #35704891
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.
#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
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формирование отчета для MS Exel (2003) с использованием XML (1)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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