Страница 1 из 1

Массив в поле ввода интерфейса.

Добавлено: 30 окт 2007, 16:09
s2176
Добрый день!
Пишу интерфейс. В нем должны быть 12 полей ввода, которые очень хочется запихать в массив из 12 же элементов, чтобы работать с ними в цикле. Можно ли так сделать?

Спасибо.

Добавлено: 31 окт 2007, 06:23
san
сделать временную таблицу с массивом полей, типа
table struct mymt
(
farray[12] : string
);
screen scr1
fields
mymt.farray[1] : noprotect;
mymt.farray[2] : noprotect;
и т.д.
<<
.@@@@@
.@@@@@
и т.д.

Добавлено: 31 окт 2007, 08:30
s2176
Т.е., без таблицы никак? Обычные массивы здесь точно не работают?

Добавлено: 31 окт 2007, 09:53
s2176
Криво все получается.... Если использовать таблицу, то мне надо, чтобы в одном экране сначала были обычные поля (не из таблицы), потом в серединке таблица, (причем поля должны быть не в обычном табличном виде а по 2 друг под дугом), а потом внизу еще кнопка. Как это все оформить? Компилятор ругается. В доке не могу найти аналогичный пример((

Экран должен выглядеть примерно так:
<<

Дата:.@@@@@@@@@ Коэффициент:.@@@@@

Подразделения .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Должности .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

месяц коэф-т
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@ вот это и хочется
.@@@@@@@@@@@@ .@@@@@ загнать в 2 массива
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@

<. Выполнить .>

>>

Добавлено: 31 окт 2007, 11:51
san
table struct mt
(
str : array[1..12] of string,
num : array[1..12] of double
);
create view
var bdate : date;
koef : double;
podr ,
dol : string;
from mt;

screen scr1;
table mt;
fields
bdate : noprotect;
koef : noprotect;
podr : noprotect;
dol : noprotect;
mt.str[1] : noprotect;
mt.num[1] : noprotect;
mt.str[2] : noprotect;
mt.num[2] : noprotect;
mt.str[3] : noprotect;
mt.num[3] : noprotect;
mt.str[4] : noprotect;
mt.num[4] : noprotect;
mt.str[5] : noprotect;
mt.num[5] : noprotect;
mt.str[6] : noprotect;
mt.num[6] : noprotect;
mt.str[7] : noprotect;
mt.num[7] : noprotect;
mt.str[8] : noprotect;
mt.num[8] : noprotect;
mt.str[9] : noprotect;
mt.num[9] : noprotect;
mt.str[10] : noprotect;
mt.num[10] : noprotect;
mt.str[11] : noprotect;
mt.num[11] : noprotect;
mt.str[12] : noprotect;
mt.num[12] : noprotect;
buttons cmOK;
<<

Дата:.@@@@@@@@@ Коэффициент:.@@@@@

Подразделения .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Должности .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

месяц коэф-т
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@ вот это и хочется
.@@@@@@@@@@@@ .@@@@@ загнать в 2 массива
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@
.@@@@@@@@@@@@ .@@@@@

<. Выполнить .>

>>
end;

Добавлено: 31 окт 2007, 14:28
s2176
Спасибо, san, все откомпилировалось!

Добавлено: 31 окт 2007, 15:09
s2176
Может, еще подскажете.
Как отловить события входа и выхода из поля?

Добавлено: 31 окт 2007, 15:17
edward_K
выхода то - cmcheckField. Curfield вернет вам текущее, а Target - то поле, куда вы собираетесь убежать. В этом собитии еще можно использовать OldFieldValue - вернет старое значение поля. еще посмотрите в доке cmSetCurField.

Добавлено: 31 окт 2007, 15:57
s2176
Спасибо! То, что надо! мне и нужно проверить, изменилось поле или нет))