Перезагрузка данных из разных каталогов
Димон (impekt@sci.smolensk.ru)
Если Вам приходится часто перегружать в программе данные из разных каталогов
и Вы еще не решили как это сделать то данный код для Вас. Для работы необходимо
вставить код, в DataEnvironment.BeforeOpenTable и перед этим создать
глобальную переменную "Рабочий_каталог", со слешем на конце в которой
прописать путь к данным, например:
C:\MyProga\Data\1999\
После этого при открытии таблиц в DataEnvironment данные будут браться
из указанного выше каталога. Для перезагрузки данных не надо закрывать форму.
Достаточно сделать следующие действия.
ThisForm.DataEnvironment.CloseTables
Рабочий_Каталог= 'C:\MyProga\Data\2000\'
ThisForm.DataEnvironment.OpenTables
**** Код процедуры перезагрузки
AMEMBERS(la_Cursors,ThisForm.DataEnvironment,2)
WITH ThisForm.DataEnvironment
FOR ln_Cot=1 TO ALEN(la_Cursors,1)
lc_Cursor=la_Cursors(ln_Cot)
IF .&lc_Cursor..BaseClass = 'Cursor'
IF NOT '\' $ .&lc_Cursor..CursorSource lc_Table=SUBSTR(.&lc_Cursor..DataBase,RAT('\',.&lc_Cursor..DataBase)+1,;
LEN(.&lc_Cursor..DataBase)-RAT('\',.&lc_Cursor..DataBase)) .&lc_Cursor..DataBase=РАБОЧИЙ_КАТАЛОГ+lc_Table
ELSE
lc_Table=SUBSTR(.&lc_Cursor..CursorSource,RAT('\',.&lc_Cursor..CursorSource)+1,;
LEN(.&lc_Cursor..CursorSource)-RAT('\',.&lc_Cursor..CursorSource)) .&lc_Cursor..CursorSource=РАБОЧИЙ_КАТАЛОГ+lc_Table
ENDIF
ENDIF
ENDFOR
ENDWITH