Никто не сталкивался с такой проблемой, как чтение последней записи таблицы?
Кстати вопрос для всех! Разве Routine нарушает диапазон видимости?
Я взял и перенес кусок кода из вызывающей программы в Routine. Правда в вызывающей программе использовались неявные переменные. Так этот кусок работать отказался. Хотя первое неявное объявление сделано в вызывающей программе.
Вот отрывок текста программы, обложенный выводом на экран. То, что сдвигается, я не виноват. (Заодно может кто-нибудь подскажет, как вставлять отформатированный текст).
Код: Выделить всё
do OpenTLV ! Открытие файла типа Create
do OpenTLI
recNo#=0
n_35#=0
n_110#=0
n_220#=0
n_330#=0
n_500#=0
set(TLV:TLVRegkey)
next(TLView)
curReg"=TLV:region ! Текущий район
LOOP UNTIL EOF(TLView) !Loop through TLView
MESSAGE('Номер коридора = ' & TLV:numcor)
MESSAGE('Номер ВЛ = ' & TLV:numTL)
MESSAGE('Район = ' & TLV:region)
MESSAGE('Напряжение = ' & TLV:napr)
MESSAGE('Длина ВЛ = ' & TLV:lenCor)
IF TLV:region <> curReg" THEN
recNo#=recNo#+1
TLI:recno=recNo#
TLI:region=curReg"
TLI:n_35=n_35#
TLI:n_110=n_110#
TLI:n_220=n_220#
TLI:n_330=n_330#
TLI:n_500=n_500#
ADD(TLItog1)
curReg"=TLV:region
n_35#=0
n_110#=0
n_220#=0
n_330#=0
n_500#=0
CYCLE
END
CASE TLV:napr
OF 35
n_35#=n_35#+TLV:lenCor
OF 110
n_110#=n_110#+TLV:lenCor
OF 220
MESSAGE('Длина ВЛ = ' & TLV:lenCor)
n_220#=n_220#+TLV:lenCor
MESSAGE('Суммарная длина ВЛ = ' & n_220#)
OF 330
n_330#=n_330#+TLV:lenCor
OF 500
n_500#=n_500#+TLV:lenCor
END
next(TLView)
END
! Дозапись последней записи
recNo#=recNo#+1
TLI:recno=recNo#
TLI:region=curReg"
TLI:n_35=n_35#
TLI:n_110=n_110#
TLI:n_220=n_220#
TLI:n_330=n_330#
TLI:n_500=n_500#
ADD(TLItog1)
! Закрытие файлов
CLOSE(TLView)
Close(TLItog1)