Описание табличного редактора Назад В начало Вперед

Под табличным редактором понимается набор колонок таблицы с заголовками для каждой колонки.

<таблица> = browse <имя> [<текст-для-лепестка-вкладки>]
  [ <заголовок> ] [ <контексты> ];
  [ <координаты> ] [ <атрибуты> ] [ <лист> ]
  [ <инструментальная-панель> ] [ <маркер> ]
  fields { <колонка-табличного-редактора> }
  end;

<имя> - идентификатор области ввода (данный идентификатор может передаваться в функцию SetFormat как параметр).

<текст-для-лепестка-вкладки> - строка для формирования надписи на лепестках закладок в панели с вкладками (см. "Панель с вкладками. ").

<заголовок> - строка, являющаяся заголовком табличного редактора. Используется в закладках.

<контексты> - контексты справочника, линии статуса и строка подсказки. Синтаксическая конструкция служит для связывания с интерфейсом отдельных тем файла подсказки, статус-строки и строки подсказки. См. "Контексты. ".

<координаты> - координаты данной области ввода относительно окна, в котором она находится. Координаты двух областей ввода могут либо совпадать, либо не пересекаться. Если координаты нескольких областей ввода совпадают, то такие области называются переключаемыми форматами. Переключаемые форматы могут иметь разные корневые таблицы. С помощью специальной функции можно менять активный формат из программы. См. "Координаты. ".

<атрибуты> - атрибуты табличного редактора через запятую.

<атрибуты> = { nomove | noresize | noresort | excelColumns
  | alwaysShowhScroll | manualHScroll }

nomove - запрещает перетаскивание мышкой колонок таблицы.

noresize - запрещает изменение ширины колонок.

noresort - запрет на изменение порядка сортировки.

excelColumns - отключает автоматическое растягивание колонок по всей ширине таблицы.

alwaysShowhScroll - всегда отображает горизонтальную полосу прокрутки.

manualHScroll - обработка скроллинга в прикладной программе. После использования атрибута ManualHScroll у браузера становится доступна панель навигации с шестью кнопками. Соответственно в прикладном коде становятся доступны шесть команд: cmManualHScrollNext, cmManualHScrollPrev, cmManualHScrollPageNext, cmManualHScrollPagePrev, cmManualHScrollLast, cmManualHScrollFirst.

<лист> - идентификатор корневой таблицы для данной области ввода. Лист это имя физической таблицы, которая является корневой для данного видимого элемента. См. "Лист. ".

<инструментальная-панель> - название инструментальной панели, видимой при попадании фокуса на табличнный редактор (см. "Инструментальные панели. ").

<маркер> - автоматизированная пометка записей (см. "Пометка записей. ").

fields - начало секции с описанием колонок табличного редактора.

<колонка-табличного-редактора> - описание колонки табличного редактора.

Колонка табличного редактора служит для просмотра значений одного из полей таблицы в нескольких последовательных записях.

Начиная с Атлантис 5.3.10 колонка табличного редактора может содержать иконку. Для этого полю надо назначить атрибут image. Все остальные атрибуты для поля устанавливаются автоматически.

Поле с иконкой должно возвращать значение типа string - имя иконки в ресурсе. Иконка должна быть 16 Х 16. Если значение пробел или несуществующая иконка, то ничего не рисуется (закрашвается фоном).

Т.к. полю с иконкой автоматически присваивается атрибут skip, указывать контексты нет смысла. Колонка имеет фиксированную ширину в одно знакоместо, поэтому указывать в заголовоке более 1 символа также не имеет смысла.

См. также пример "Табличный редактор с иконкой" в конце раздела.

Записи могут быть отсортированы по значению колонки. Сортировка возможна только по одной колонке для всего броузера, многокритериальность не допускается. При попытке выставить сортировку колонке при наличии уже сортированной колонки у того же броузера, сортировка у старой колонки пропадает.

Порядок сортировки под Windows отображается стрелочкой вверх или вниз в правом верхнем углу заголовка колонки. Порядок сортировки имеет смысл менять по приходу события cmColumnClicked.

<колонка-табличного-редактора> = <поле>
  [<заголовок-поля>] [<контексты>] [: <атрибуты-поля>];

<поле> - любое выражение над полями таблиц, переменными и константами.

<заголовок-поля> - заголовок соответствующей колонки таблицы. Заголовок колонки табличного редактора может состоять из нескольких строк, которые указываются через запятую.

<заголовок-поля> = { <строка> [, <строка>] }

<контексты> - см. "Контексты. ".

<атрибуты-поля> - см. "Атрибуты поля. " или image для поля-иконки..

Примеры

Пример 1.

browse
fields
  name 'Имя', 'сотрудника'
	('Имя', hcEmployeeName, scEmployeeName): protect, skip, [12];
  code 'Код';
end;

Пример 2.

Рис. 12 Табличный редактор из примера 2.

interface BrwAttrTest 'Атрибуты' escClose, cyan;
  show at (0,0,79,25);

//------------------------------------------------------------

create view

as select
  x$files.xf$name, x$indexes.xi$name

from
  x$files, x$indexes

where
((
  x$indexes.xi$filecode == x$files.xf$code
))
;

//------------------------------------------------------------

browse brw1;
  show at (1,1,78,7);
  noMove, excelColumns
  table x$indexes;

fields
  x$indexes.xi$name 'Индекс' : [15], protect;
  x$files.xf$name   'Файл'   : [15], protect;
end;

end.

Пример 3.

browse BrNavigator 'Браузер с навигацией';
  manualHScroll
  table ATable;
fields
  ........
end;

//------------------------------------------------------------

handleEvent

cmManualHScrollNext:
{
  // Действия по переходу на следующюю колонку
}

cmManualHScrollPrev:
{
  // Действия по переходу на предыдущюю колонку
}

cmManualHScrollPageNext:
{
  // Действия по переходу на страницу вперед
}

cmManualHScrollPagePrev:
{
  // Действия по переходу на страницу назад
}

cmManualHScrollLast:
{
  // Действия по переходу на последнюю колонку
}

cmManualHScrollFirst:
{
  // Действия по переходу на первую колонку
}
end;

Пример 4. Табличный редактор с иконкой

userBmp  bitMap "user.bmp
groupBmp bitMap "group_2.bmp
...................

//---------------------------------------------
function Img: string;
{
  if ((x$files.xf$code mod 2 ) = 0)
	Img := 'userBmp'
  else
	Img := 'groupBmp';
}

//---------------------------------------------
browse brw1 'Browse Test';
table x$Files;
fields
  x$files.xf$name 'Name' : [10], protect, right, {font = {bold = true }};
  Img 'И' : image;
  x$files.xf$code 'x$files.xf$code' : [6], protect, skip;
end;  // browse

Версия

Возможность вставить иконку в табличный редактор доступна начиная с Атлантис 5.3.10.