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

Массив

Добавлено: 26 июн 2013, 17:57
Espada
Здравствуйте. Необходимо в массив закинуть данные из таблицы, задать условие на проверку повторений, и вывести сообщение о повторяющихся элементах.
Забрасываю таблицу в массив

Код: Выделить всё

 ...
.{table 'cv_price2'
.begin
var
  ID		:longInt
  sPrices	:array[1..1000] of string
  lPrices	:array[1..1000] of longInt 
with index { byID = ID (AutoInc, Unique)
}
var mprices : record as table prices;
mprices.lPrices[1001] :=4;
idx :=1002;
mPrices.lPrices[idx]  :=idx;
.} ...
однако весь код между .{table 'cv_price2' и .} он воспринимает просто как текст.
попробовал добавить begin end

Код: Выделить всё

.{table 'cv_price2'
.begin
var
  ID		:longInt
  sPrices	:array[1..1000] of string
  lPrices	:array[1..1000] of longInt 
with index { byID = ID (AutoInc, Unique)
}
var mprices : record as table prices;
mprices.lPrices[1001] :=4;
idx :=1002;
mPrices.lPrices[idx]  :=idx;
end.
.}

начинает ругаться :
Ошибка: Ожидалась константа, поле, функция, "IF" или "CASE" (стр.170, поз.11 в
D:\GAL810_VIP\FORMS_MAV_2013_01\FORMS\11_ПРАЙС_ТОЛЬКО ПРОГНОЗ_ARD_С_ПРОТОКОЛОМ.F
RM)
sPrices :array[1..1000] of string
^ [ Enter-продолжить ] :

подскажите плиз как правильно написать???

Re: Массив

Добавлено: 26 июн 2013, 19:17
edward_K
Если вы пытаетесь в программном блоке объявить переменные то var пишется перед каждым объявлением.
В форме вы можете объявить в секции
.var
.endvar
в фейсе аналогично var(endvar не нужен, концом объявления будет начало следующей секции), секция может быть в нескольких местах(перед логической таблицей, в ней) , но в теле функции условия использования аналогичные - перед каждой переменой. Время жизни var в программном блоке вроде как ограничено от момента объявления до конца блока.

Re: Массив

Добавлено: 26 июн 2013, 19:27
edward_K
да. А with index относится к объявлению таблицы - в форме объявить их нельзя - только в проекте(лучше инклюдом - таблицы объявленные на уровне проекта должны быть во всех ваших ресурсах одинаковые) перед включением формы в проект.

Код: Выделить всё

table struct tmp_podrier "Сохранить иерархию"
(
  crec : comp ,
  dmpodrnm:array[1..10] of string[200] ,
  dmpodr_c :array[1..10] of comp ,
  t_podrlev:word
)
with index
( tmp_podrier01 = crec 

) ;