Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Отключить SubTotal через Delphi 7

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Rass



Зарегистрирован: 06.12.2011
Сообщения: 2

СообщениеДобавлено: Вт Дек 06 2011 08:39    Заголовок сообщения: Отключить SubTotal через Delphi 7 Ответить с цитатой

Доброго времени суток, форумчане!

Помогите мне в таком деле: Через Delphi 7 генерирую сводную таблицу (pivot table) все делается замечательно, все как нужно разместил, НО никак не могу отключить у поля находящегося в столбце SubTotal, меня устраивает общий итог, но не устраивает после каждой колонки, помогите пожалуйста, очень срочное дело Sad


Вот кусок кода:

Код:

                XLS.Connect;//соединились с Excel
                 XLS.Interactive[LCID]:=False;
                 XLS.Visible[LCID]:=True;//сделали его видимым
                 WB:=XLS.Workbooks.Add(emptyparam,LCID);//добавили книгу и возвратили ссылку на интерфейс
                 WS:=(XLS.ActiveSheet as _WorkSheet);//получили ссылку на интерфейс активной страницы
                 XLS.EnableEvents:=False;//запретили реагировать на события

                 WS.Name := g_Route;

                 //небольшое форматирование заголовка
                 WS.Range['A1',emptyparam].Value2:=g_Route;
                 WS.Range['A1',emptyparam].Font.Size:=12;
                 WS.Range['A1',emptyparam].Font.Bold:=True;
                 WS.Range['A1',emptyparam].Font.Italic:=True;
                 WS.Range['A1',emptyparam].Font.Underline:=xlUnderlineStyleSingle;

                 //создадим кэш для хранения данных и укажем тип данных - внешний
                 PC:=WB.PivotCaches.Add(xlExternal,emptyparam);
                 //строка подключения
                PC.Connection:=('OLEDB;Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=***;Initial Catalog=REPORTS;Data Source=***;');

                //укажем, что тип получения данных - SQL-запрос
                PC.CommandType:=xlCmdSQL;
                //собственно сам запрос
                PC.CommandText:='Select *, (NAME_USER  COLLATE Cyrillic_General_CI_AS + '' '' + FolioUID) AS TT From Reports..AgentSale';

                //создадим PivotTable в ячейке 'A2' и получим ссылку на ее интерфейс
                PT:=PC.CreatePivotTable(WS.Range['A2',emptyparam],'PivotTable1',emptyparam,xlPivotTableVersionCurrent);

                if PT.Version=xlPivotTableVersion10 then WB.ShowPivotTableFieldList:=False;
                //запретим прорисовывать данные колонок и столбцов пока не определны поля данных
                PT.DisplayImmediateItems:=False;
                //запретили пересчитывать отчет без надобности
                PT.ManualUpdate:=True;
                XLS.EnableEvents:=True;
                PT.ManualUpdate:=True;

//-------------------------
                //создаем данные колонок
                with (PT.PivotFields('NAME_ARTIC') as PivotField) do
                  begin
                    Caption := 'Наименование товара';
                    Orientation := xlColumnField;
                  end;

                with (PT.PivotFields('EDIN_IZMER') as PivotField) do
                  begin
                    Caption:='Единица измерения';
                    Orientation:=xlColumnField;
                   
                  end;

//-------------------------
            //начинаем заполнять колонки
           //т.к. ограничение по кол-ву строк =65535 то детализацию можно и не сворачивать
                with (PT.PivotFields('TT') as PivotField) do
                  begin
                     Caption:='Название торговой точки';
                     Orientation:=xlRowField;

                  end;

//-------------------------
          //ну и заполним поле данных
              with  PT.AddDataField(PT.PivotFields('PACKAGES'),'Кол-во уп.',xlSum) do
                begin

                  if not XLS.UseSystemSeparators then
               //если мы используем разделители Excel
               //то формат такой
                    NumberFormat:='#'+XLS.ThousandsSeparator+'##0'+XLS.DecimalSeparator+'0'
               else
               //если разделители установленные в системе
               //то вот так
                    NumberFormat:='#'+ThousandSeparator+'##0'+DecimalSeparator+'0';
                end;


                  XLS.EnableEvents:=True;
                  PT.ManualUpdate:=True;

                  XLS.Interactive[LCID]:=True;
                  XLS.Disconnect;

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Rass



Зарегистрирован: 06.12.2011
Сообщения: 2

СообщениеДобавлено: Вт Дек 06 2011 08:57    Заголовок сообщения: Ответить с цитатой

Все! Сам разобрался, формат оказывается выглядит таким образом :

Код:
SubTotals [1] := False;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...