Имеется таблица CLA2_TABLE1 (clarion 2.1 (*.dat))
И база состоящая из 3 таблиц (clarion 6(*.tps))
CLA6_TABLE1 CLA6_TABLE2 CLA6_TABLE3
CLA2_TABLE1 - префикс M00
__________
|Gos_num |
|MODEL |
|NUMDVIG |
|NUMVIN |
|... |
|VLADEL |
|GOD_R |
|ADRES |
CLA6_TABLE1 (ОСНОВНАЯ) AMTS.TPS префикс AMT
___________
|Kodamts | CLA6_TABLE2 (СПРАВОЧНИК ПО МАРКАМ) MOD
|Gos_num | _________
|KOD_MOD |--->|KODMOD |
|CVET | |NAMEMOD |
|NUMDVIG | ----------
|NUMVIN | CLA6_TABLE3 (СПРАВОЧНИК ПО ЛЮДЯМ)
|NUMVIN | _________
|KOD_VLAD |--->|KODVLAD |
|CVET | |NAMEVLAD|
|... | |GOD_R |
|ADRES |
Стоит задача конвертнуть из CLA2_TABLE1 в 3 таблицы
В Main открыл процедуру Beginning of procedure, After Opening Files и там написал для запуска в дальнейшем из шедуллера
! Смотрим параметры командной строки
if Command('/GO') ! Будем конвертить старую базу
convertAMT
Return
end
Далее создал процедуру convertAMT (Process)
Выбрал GetNextRecord ROUNTINE, Next succeds
! пытаемся конвертнуть M00 в AMTC и
! ставим условие районы
IF M00:RAION = 40 or M00:RAION = 41 or M00:RAION = 42 or M00:RAION = 43 or M00:RAION = 44 THEN
! смотрим есть ли в базе
AMT:GOSZNAK = M00:GOS_NUM
SET(AMTC,AMT:GOSZNAK)
IF (ERROR()) THEN
SET(AMTC,AMT:BYKODAMTC)
GET(AMTC,AMT:BYKODAMTC)
PREVIOUS(AMTC) ! встаем на послед запись
! . ! чтобы получить новый код
MYMAXIMUM = AMT:KODAMTC + 1 (автомат доб код)
AMT:KODAMTC = MYMAXIMUM
!AMT:KODAMTC
! AMT:KODAMTC = MAXIMUM(AMT:BYKODAMTC)+1
! вставляем в справочник модель
MOD:NAMEMODEL = M00:MARKA
! GET(MODEL,MOD:NAMEMODEL)
SET(MODEL,MOD:NAMEMODEL)
IF ERROR() THEN
! тут тоже надо как то увеличить код модели
MOD:NAMEMODEL = M00:MARKA
append(MODEL)
AMT:KODMOD = MOD:KODMOD
ELSE AMT:KODMOD = MOD:KODMOD .
! ВСЕ ВСТАВИЛИ ИЛИ НАШЛИ МОДЕЛЬ В СПРАВОЧНИКЕ
AMT:GOSZNAK = M00:GOS_NUM
AMT:KOD_VIN = M00:VIN
AMT:GODVIPUSKA = M00:GOD_V
AMT:NUMBERMOTORA = M00:NUM_DVIG
AMT:NUMBERSHASSI = M00:NUM_CH
AMT:NUMBERKUZOVA = M00:NUM_KUZ
! ПОЛУЧАЕМ ЦВЕТ
CVE:KOD = M00:KOD_CVT
GET(CVET_P,CVE:KLKOD)
IF ERROR() THEN AMT:COLOR = '' ELSE AMT:COLOR = CVE:STR .
!AMT:SVIDETELSTVO ! GROUP
AMT:KODREGIONA = '43'
AMT:SERNO = M00:SER_SV
AMT:NUMBER = M00:NUM_SV
!AMT:PTS ! GROUP
AMT:PTSSERNO = clip(M00:REG_TP)&SUB(M00:NUM_TP,1,2)
AMT:PTSNUMBER = SUB(M00:NUM_TP,3,6)
!??? Здесь как тотакже надо добавить владельца
AMT:KODGAI = M00:RAION
!append(AMTC)
add(AMTC)
.
.
Эта конструкция не пашет
