TextVisual: IVZTextVisual;
Свойство TextVisual определяет визуализатор текста.
Для выполнения примера предполагается наличие в репозитории экспресс-отчёта с идентификатором EXP. Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.
Далее будем первую букву входящих строк изменять на заглавную:
// Определим собственный преобразователь
Class MyAdapter: object, IVZDataAdapter
// Будем первую букву всех строк делать заглавной
Function GetData(Value: Variant): Variant;
Var
str: String;
chr: Char;
Begin
str := Value As String;
// Получим первый символ строки
chr := str.Chars(0);
// Сделаем данный символ заглавным
chr := Char.ToUpper(chr);
// Получим строку с большой буквой
str := chr + str.SubString(1, str.Length -1);
Return str;
End Function GetData;
End Class MyAdapter;
Sub UserProc;
Var
Metabase: IMetabase;
EaxAnalyzer: IEaxAnalyzer;
TreeMap: IVZTreeMap;
TextVisual: IVZTextVisual;
DataSourceMapping: IVZDataSourceMapping;
DataTransformer: IVZDataAdapter;
Begin
// Получим текущий репозиторий
Metabase := MetabaseClass.Active;
// Получим экспресс-отчёт
EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
// Получим плоское дерево
TreeMap := EaxAnalyzer.TreeMap.TreeMap;
// Создадим новый экземпляр визуализатора текста
TextVisual := New VZTextVisual.Create;
// Получим настройки сопоставления данных
DataSourceMapping := TextVisual.TextMapping;
// Установим тип сопоставления «Преобразователь данных»
DataSourceMapping.MappingType := VisualizatorDataMappingType.DataMappingTransformer;
// Создадим и установим собственный преобразователь данных
DataTransformer := New MyAdapter.Create;
DataSourceMapping.DataTransformer := DataTransformer As IVZDataAdapter;
Debug.WriteLine("Преобразование строк:");
Debug.IndentLevel := 1;
Debug.WriteLine("Вход: ""анализ данных"", выход: " +
(DataTransformer.GetData("прогноз") As String ));
Debug.WriteLine("Вход: ""плоское дерево"", выход: " +
(DataTransformer.GetData("плоское дерево") As String ));
// Установим визуализатор для определения размеров элемента дерева
TreeMap.TextVisual := TextVisual;
End Sub UserProc;
В результате выполнения примера был создан собственный преобразователь, изменяющий первую букву входящих строк на заглавную:
Преобразование строк:
Вход: "анализ данных", выход: Анализ данных
Вход: "плоское дерево", выход: Плоское дерево
См. также: