Страница 1 из 1

Отчет - Аналитика реализации товаров Управление сбытом

Добавлено: 01 дек 2009, 13:30
Гапоненко
Доброго времени суток.
Подскажите, пожалуйста, столкнулся с такой проблемой…
Описание проблемы:
Управление сбытом – отчеты – Аналитика реализации товаров – по настраиваемым разрезам.

МЦ надо выбрать больше 9000
Контрагенты все.
Нажимаем сформировать.
Выдает….

"Microsoft visual basic"
Run_time error '1004'
Нельзя установить свойство orientation класса Pivotfield
End debug Help

Если нажать на END. Открывается отчет, но данных никаких нет.


При нажатии debug открывается форма..
____________________________________________________________
Sub GetGroup()
'построение сводной таблицы

Dim a1 As Long, a2 As Long

Worksheets("Gal_VarSheet").Activate
a1 = CLng(Range("GalDBVar_GrDat").Value)
a2 = CLng(Range("GalDBVar_GrDatDn").Value)


Worksheets("Отчет").Activate


On Error Resume Next
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Gal_TblSheet!GalDBTbl_DBData").CreatePivotTable TableDestination:=Range("B12"), _
TableName:="SvodTable1"

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"Gal_TblSheet!GalDBTbl_DBData", TableDestination:=Range("B12"), TableName:= _
"SvodTable1"
On Error GoTo 0


With Worksheets("Отчет").PivotTables("SvodTable1")

On Error Resume Next
.SmallGrid = False
.RowGrand = False
On Error GoTo 0

'--страницы
With .PivotFields("Организация")
.Orientation = xlPageField
.Position = 1
End With
With .PivotFields("Группа_МЦ")
.Orientation = xlPageField
.Position = 2
End With


'--записи
With .PivotFields("МЦ")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Остаток")
.Orientation = xlRowField
.Position = 2
.Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With .PivotFields("Дата")
.Orientation = xlRowField
.Position = 3
.ShowAllItems = True
End With


'--данные
With .PivotFields("КолВо_")
.Orientation = xlDataField!!!!(выделенно желтым)!!!!!
.Position = 1
End With
With .PivotFields("Сумма_")
.Orientation = xlDataField
.Position = 2
End With
With .PivotFields("СуммаV")
.Orientation = xlDataField
.Position = 3
End With

'определяем язык офиса
'0 - English
'1033 - Russian
'If Application.LanguageSettings.LanguageID(msoLanguageIDUI) = 0 Then
' .CalculatedFields.Add "Цена_", "= IF('КолВо_'=0;0;'Сумма_'/'КолВо_')"
' .CalculatedFields.Add "ЦенаV", "= IF('КолВо_'=0;0;'СуммаV'/'КолВо_')"
'Else
' .CalculatedFields.Add "Цена_", "= ЕСЛИ('КолВо_'=0;0;'Сумма_'/'КолВо_')"
' .CalculatedFields.Add "ЦенаV", "= ЕСЛИ('КолВо_'=0;0;'СуммаV'/'КолВо_')"
'End If
On Error Resume Next
.CalculatedFields.Add "Цена_", "= IF('КолВо_'=0;0;'Сумма_'/'КолВо_')"
.CalculatedFields.Add "Цена_", "= ЕСЛИ('КолВо_'=0;0;'Сумма_'/'КолВо_')"
.CalculatedFields.Add "ЦенаV", "= IF('КолВо_'=0;0;'СуммаV'/'КолВо_')"
.CalculatedFields.Add "ЦенаV", "= ЕСЛИ('КолВо_'=0;0;'СуммаV'/'КолВо_')"
On Error GoTo 0


.PivotFields("Цена_").Orientation = xlDataField
.PivotFields("ЦенаV").Orientation = xlDataField



'--переносим в данные в шапку
With .PivotFields(11)
.Orientation = xlColumnField
.Position = 1
End With
'--переименовываем шапку
.DataFields(1).Name = "Кол-во"
.DataFields(2).Name = "Сумма"
.DataFields(3).Name = "Сумма, $"
.DataFields(4).Name = "Цена"
.DataFields(5).Name = "Цена, $"

'группировки по датам
Range("D13").Select
Select Case a1
Case 0
Selection.Group Start:=True, End:=True, By:=a2, Periods:=Array(False, False, False, True, False, False, False)
Case 1
Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, False, True, False, False)
Case 2
Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, False, False, True, False)
End Select

.RefreshTable

End With


Application.CommandBars("PivotTable").Visible = True


'--Рисуем диаграмму
Charts.Add
ActiveChart.SetSourceData Source:=Sheets("Отчет").Range("B13")
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.ChartType = xlColumnClustered
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False


Sheets("Отчет").Select
Range("A1").Select


End Sub
_______________________________________________________

Вопрос.

Что делать? И как исправить?

Заранее благодарен

Добавлено: 01 дек 2009, 14:26
edward_K
в большинсте случаев виноват galrepbuilder.xlt
при том обычно он кидается в documents and seting ( скрытую папку)
и сам потом не обновляется.
попробуйте на малои числе записей, другие xlt отчеты. При нажатии на debug обычно ставиться на строчку вызвашую ошибку - на какую?, а уж при run точно покажет.

Добавлено: 01 дек 2009, 14:52
Гапоненко
Да он ругается вот на это
'--данные
With .PivotFields("КолВо_")
.Orientation = xlDataField!!!!(выделенно желтым)!!!!!

И при малом количестве все выводит нормально.
Но мне надо большое количество (нач. этого не объяснишь что нужно по чуть-чуть)

Подскажите как исправить?

Добавлено: 01 дек 2009, 15:40
edward_K
ну пароль galrepbuilder - снимите его с шаблона и смотрите дальше.
я бы еще поискал galrepbuilder.xlt где нибудь 2007, начало 2008 года.
в любом разе пишите в ТП подробно - эта не такая большая проблема, если есть товарищ мало мальски знакомый с VB за часик нароет причину.