![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сводная таблица, замена колонки Общий итог на Отклонение [D7, XP]
Анна © (2008-09-23 12:06:00)Как сделать, чтобы в сводной таблице вместо суммы в колонке "Общий итог" автоматически формировалась разность?
Например такая сводная табл.
otchet
DD prihod rashod Общий итог
01.01.2008 0.344 0.155 0.499
02.02.2008 0.223 0.023 0.246
03.03.2008 0.323 0.323 0.646
04.04.2008 0.350 0.456 0.806
Общий итог 1.240 0.957 2.197
В параметрах поля "Общий итог" выбираю дополнительные вычисления "Отличие" получается макрос:
Range("D5:D8").Select
With ActiveSheet.PivotTables("СводнаяТаблица4").PivotFields( _
"Сумма по полю data")
.Calculation = xlDifferenceFrom
.BaseItem = "(далее)"
End With
End Sub
Но в зависимости от "назад" или "далее" разность появляется в колонке prihod или rashod (с противоположным знаками), остальные колонки становятся пустыми.
Как сделать так, чтобы сохранить первоначальный вид сводной таблицы и отклонение помещать в колонку Общий итог?
Анна (2008-09-23 15:53:00) [1]Вопрос снимаю. Поняла, что заменить колонку Общий итог на "Отклонение" не удастся. Сводная таблица делает отклонение, но значения помещает или в столбик расход или в столбик приход ( в зависимости что из чего вычитается...), скрывая все остальные данные...
Правильный$Вася (2008-09-23 15:49:00) [2]ясно, спасибо
это только для ole-объектов, я их не пользую почти
а то уж я перепугался, думал, сишный синтаксис уже в паскаль запхали
Palladin (2008-09-23 15:45:00) [3]означает, что параметры TableDestination, TableName у вызываемого метода CreatePivotTable будут равны тому-то и тому-то, значения остальных параметры будут назначены по-умолчанию
Palladin (2008-09-23 15:43:00) [4]
> Правильный$Вася (23.09.08 15:38) [23]
Object Pascal Language Guide:Object interfaces:Automation objects:Accessing Automation objects (Windows only)
Правильный$Вася (2008-09-23 15:38:00) [5]
> Palladin © (23.09.08 13:45) [21]
и что он означает?
где в справке почитать?
Анна (2008-09-23 13:47:00) [6]
> Vlad Oshin © (23.09.08 13:43) [19]
Какая ошибка? Я может сделала ошибку в коде, когда русские буквы из дельфи помещала в ответ, и заменяла эти кракозябры.
Palladin (2008-09-23 13:45:00) [7]
> Правильный$Вася (23.09.08 13:42) [18]
это нормальный синтаксис
Анна (2008-09-23 13:44:00) [8]
> Правильный$Вася (23.09.08 13:42) [18]
Да, в Дельфи 7.
Vlad Oshin (2008-09-23 13:43:00) [9]
> Анна (23.09.08 13:36) [16]
ваш пример из
> Анна (23.09.08 12:53) [12]
у меня не компилится. Вряд ли еще у кого из присутствующих также.
Совет прост, переписать запрос. Запрос в ехсед выбрасывается элементарно. Чем мучится с vb из delphi ...
Правильный$Вася (2008-09-23 13:42:00) [10]
> Здесь можно и так написать
в дельфи 7 ?
Анна (2008-09-23 13:41:00) [11]
> > CreatePivotTable(TableDestination:='', TableName:= 'Колич');
Здесь можно и так написать :
CreatePivotTable(TableDestination:='', TableName:= 'СводнаяТаблица1');
Значения не имеет.
Анна (2008-09-23 13:36:00) [12]
> Vlad Oshin © (23.09.08 13:28) [14]
Запрос довольно простой, построен специально для сводной табл., чтобы использовать ее возможности по ее визуализации. Я специально использую сводную табл, чтобы не писать запросы с full join-ом и не высчитывать в Excel -е ячейки, столбцы, заголовки, подзаголовки и т.д.
ПРавильный$Вася (2008-09-23 13:35:00) [13]
> CreatePivotTable(TableDestination :='', TableName := 'Колич');
интересный синтаксис
Vlad Oshin (2008-09-23 13:28:00) [14]
> Query1.RecordCount
значит, вы получаете что то по запросу? Текст запроса каков? Может просто запрос поменять?
Анна (2008-09-23 13:21:00) [15]
> Virgo_Style © (23.09.08 12:51) [11]
> речь, я так понимаю, об Excel... Что мешает вставлять формулу
> в ячейки нужного столбца?
Нельзя вставить в эту часть сводной таблицы формулу. Excel не позволяет изменять. Можно только через дополнительные вычисления, я написала об этом в [0] . Но тогда меняется внешний вид сводной таблицы. и я не знаю, как указать, чтобы отклонения помещались в колонку Общий итог. Собственно в этом и заключается мой вопрос.
Анна (2008-09-23 12:53:00) [16]MSExcel.ActiveWorkBook.PivotCaches.Add(SourceType:=1, SourceData:= 'Лист1!R1C1:R'+IntToStr(Query1.RecordCount+1)+'C3').CreatePivotTable(TableDestination:='', TableName:= 'Колич');
MSExcel.ActiveSheet.PivotTableWizard(TableDestination:=MSExcel.ActiveSheet.Cells [2,1]);
MSExcel.ActiveSheet.Name:='Колич';
MSExcel.ActiveSheet.PivotTables('Колич').PivotFields('otchet').Orientation :=2;
MSExcel.ActiveSheet.PivotTables('Колич').PivotFields('otchet').Position:= 1;
MSExcel.ActiveSheet.PivotTables('Колич').PivotFields('DD').Orientation := 1;
MSExcel.ActiveSheet.PivotTables('Колич').PivotFields('DD').Position := 1;
MSExcel.ActiveSheet.PivotTables('Колич').PivotFields('data').Orientation:=4;
MSExcel.Range['A:E'].Select;
MSExcel.Selection.Columns.AutoFit;
MSExcel.Selection.Rows.AutoFit;
//âñòàâêà ãðàôèêà
MSExcel.ActiveSheet.Shapes.AddChart.Select;
Virgo_Style (2008-09-23 12:51:00) [17]речь, я так понимаю, об Excel... Что мешает вставлять формулу в ячейки нужного столбца?
Такое чувство, что что-то простое делается через не то.
ANB (2008-09-23 12:50:00) [18]
> Вы прямо как следователь! Не противоречие, т.к. нужно заменить
> только колонку Общий итог, а у меня не получается, вот и
> сделала макрос, чтобы его перевести потом на Дельфи. Всю
> сводную таблицу на Дельфи писала таким способом.
Зачем писать на делфи и ВБ, если для получения всех нужных извращений есть SQL ?
Правильный$Вася (2008-09-23 12:45:00) [19]
> прямо как следователь!
с партизанами нельзя по-другому
в конце концов, тебе нужна помощь или мне?
Vlad Oshin (2008-09-23 12:41:00) [20]
> давай код на дельфи