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
'Столбец "Valid Percent" может быть скрыт через скрипт, как это показано в решении
'10000634 (см. файл http://www.spsstools.ru/Scripts/PivotTables/HideAColumnInPivotTable.txt - примеч. перев.).
'Нужно просто вызвать процедуру HideColumn  с параметром "Valid Percent" вместо "Frequencies".

'Задача скрытия столбца "Valid" - иная по своей сути, т.к. это, фактически, не столбец, а метка группы строк,
'так что её нельзя скрыть, не скрыв все строки в группе, что, разумеется, неправильно.
'Я добавил процедуру Ungroup, которая удаляет эту метку. Заметьте - именно удаляет, а не просто скрывает.

'Т.е., например, куда-то в файл автоскрипта вы можете включить следующие инструкции:
'        HideColumn objPivot, "Valid Percent"
'        Ungroup objPivot, "Valid"

'Автор: John Bauer, Ph.D.
'Техническая поддержка для разработчиков приложений на платформе SPSS


'Размещено: http://www.spsstools.ru/Scripts/PivotTables/HideValidAndValidPcInFrequencyTable.txt (.sbs).
'Перевод: А. Балабанов, 31.12.2008.
'Проверено: SPSS 15.0.0.

'---------------------------------------------------------------
' Добавка к скрипту http://www.spsstools.ru/Scripts/PivotTables/HideAColumnInPivotTable.txt
'---------------------------------------------------------------
Sub Ungroup(objPivot As PivotTable, strGroupLabel As String)
        Dim objRowLabels As ISpssLabels
        Dim i As Long, j As Long
        Dim Found As Boolean

        Set objRowLabels = objPivot.RowLabelArray
        With objRowLabels
                For j = 0 To .NumColumns - 1
                        For i = 0 To .NumRows - 1
                                If Not IsNull(.ValueAt(i, j)) Then
                                        If .ValueAt(i, j) = strGroupLabel Then
                                                .SelectLabelAt(i, j)
                                                Found = True
                                                Exit For
                                        End If
                                End If
                                If Found Then Exit For
                        Next
                Next
        End With
        objPivot.Ungroup
End Sub