Конечно, интересно разобраться до конца с этим SHOW.DETAIL, но находятся и другие варианты решения. Например, можно попробовать переложить на X++ следующие команды VBA:
Код:
'Скрыть детали (нажатие на "минусик")
Application.CommandBars("PivotTable").Controls( 5 ).Execute
'Отобразить детали (нажатие на "плюсик")
Application.CommandBars("PivotTable").Controls( 6 ).Execute
Можно еще попробовать воплотить в X++ такую универсальную процедуру на VBA:
Код:
Sub RunExcelMenu(ByVal menuID As Long)
'в Аксапте все переменные будут типа COM
Dim cmdBars As CommandBars
Dim newCmdBar As CommandBar
Dim ctrls As CommandBarControls
Dim newCtrl As CommandBarControl
Set cmdBars = Application.CommandBars
Set newCmdBar = cmdBars.Add
Set ctrls = newCmdBar.Controls
Set newCtrl = ctrls.Add(1, menuID)
newCtrl.Execute
newCmdBar.Delete
End Sub
'Скрыть детали (нажатие на "минусик")
RunExcelMenu( 464 )
'Отобразить детали (нажатие на "плюсик")
RunExcelMenu( 462 )
А коды команд меню Excel можно узнать, например, в окне отладки:
Код:
? Application.CommandBars("PivotTable").Controls( 5 ).Id
464
? Application.CommandBars("PivotTable").Controls( 6 ).Id
462
Подпрограмма RunExcelMenu - адаптированная для последующего перевода на X++ версия подпрограммы RunMenu, заимствованная со стр. 418 из книги:
Excel 2003 и VBA. Справочник программиста