Справочное руководство по TDMS 7.0 API
ListBeforeShow Событие
Смотри также  Пример  Отправить замечание
pSheet
Таблица, содержащая объекты состава, которая будет выведена на Панели состава.
TDMSApplication Объект : ListBeforeShow Событие

Glossary Item Box

Описание

Генерируется перед перерисовкой Панели состава (даже если объект/выборка/классификатор состава не имеют).

Опеделение

Visual Basic
Public Event ListBeforeShow( _
   ByVal pSheet As TDMSSheet _
)

Параметры

pSheet
Таблица, содержащая объекты состава, которая будет выведена на Панели состава.

Заметки

1. Обработчик удобно использовать для форматирования таблицы объектов (передаваемой в аргументе pSheet), которая будет затем показана на Панели состава.

2. Событие нельзя отменить.

3. Вызвать генерацию этого события программным способом с гарантией нельзя.

4.Событие генерируется при установке фокуса на следующие элементы Дерева объектов (т.е. перед отображением состава на Панели состава):

  • узлы "Рабочий стол" и "Объекты" (даже если состав пустой);
  • любой пользовательский объект или выборку (даже если состав пустой);
  • любой дочерний узел раздела "Классификаторы" (на корневом узле "Классификаторы" сообщение не генерируется). 

5. Обработчик может быть размещен в скриптах объектов, профиля и/или общесистемном. Если обработчики определены на всех уровнях, то последовательность их вызова такова:

  • скрипт объекта;
  • скрипт профиля пользователя;
  • общесистемный скрипт.

Пример

VB Script (Visual Basic)Скопировать код
'======================================================================
'Текст обработчика может быть размещен в скрипте профиля или
'общесистемном скрипте.

'Отсортировать таблицу, которая должна быть показана на экране
Sub List_BeforeShow(Sheet)
        'Если таблица пустая, ничего не делать
        Rows = Sheet.RowsCount-1 'индексация начинается с 0
        If Rows = -1 Then Exit Sub
        
        'Если в таблице есть столбец с форматом данных Date, то
        'отсортировать по нему и передвинуть его в начало таблицы.
        'На этом дальнейшую обработку прервать
        Cols = Sheet.ColumnsCount-1
        For i = 0 To Rows 
                For j=0 To Cols  
                        value = Sheet.CellValue(i,j)
                        If IsEmpty(value) Then  
                        'Если ячейка пустая, перейти на след. строку
                                i = i + 1
                                Exit For
                        ElseIf IsDate(value) Then
                                Sheet.Sort j, TRUE 'сортировать по убыванию
                                Sheet.MoveColumn j, 0
                                Exit Sub
                        End If
                Next
        Next
        
        'Иначе - отсортировать таблицу по нулевому столбцу 
        Sheet.Sort 0, False
End Sub
'======================================================================

Смотри также

© 2023 CSoft Development. Все права защищены.