Добрый день !
Подскажите, плиз, как исправить ошибку, которая возникает, когда скопирована номенклатура из одной базы в другие, а именно при выходе из номен/справочника. Файл nomenkl.prg, который запускаю по Ctrl+F5 из номенклатурного справочника Бэст-4 12.01 хозрасч SP 40.Простая програмка по копированию номенклатуры в заданные БД.Есть файл txt, в нем указываю кол-во дочерних,код родителького пред-я, коды дочерних пр-й(до 10), и ******
3
000044
000052
000045
000046
******
Путь к другим базам ищется программно.
Программа работает по этим условиям ! т.е. копирует данную номен-ру в 000052,000045,000046. Проблема возникает, когда я хочу зайти в родителький ном/справочник. Выдается ошибка: "Нет файла memdat.dbf","Таблица не открыта или заблокирована","Нет файла mdoc.dbf".Мои ы: как исправить эти ошибки и правильно ли обратываю строчку 4(как опуститься на уровень ниже)???? Прилагаю код
Function main()
altd()
file1 = LoadPath()
file1 = file1 + "..\pro\plugins\extensns\sclad\nomenkl.txt"
set path to file1
file2 = 'Nomenkl.txt'
file = (FOPEN(file1))
child := FREADSTR(file,81)
kol = (substr(child,1,1)) // кол-во
rod = (substr(child,4,6)) //код родительского предпр
//
LabelPro := LoadPath() + "..\pro\Label.pro"
netuse("labelpro", LabelPro,,.F.)
dbpush("labelPro","labelPro->LBL_Code == rod","labelPro->LBL_Code == rod")
if rod != labelPro->LBL_Code
alert("Код родительского прдр-я в файле не совпадает с кодом в картотеке пред-й")
endif
dbpop()
dbase := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
dbaseFO = (FOPEN(dbase))
//
pl = 4
for i=0 to kol
pl := pl + 8
if substr(child,pl,6) != '******' //просто конец строки
ch = (substr(child,pl,6))
//*********************************************************************
dbpush("labelPro","labelPro->LBL_Code == ch","labelPro->LBL_Code == ch")
if ch != labelPro->LBL_Code
alert("Код дочернего прдр-я в файле не совпадает с кодом в картотеке пред-й"")
endif
//*********************************************************************
mlabel->(ordsetfocus('MLABEL'))
dbase1 := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
netuse("mlabel1", dbase1,, .f.)
set order to 1
aa := Upper(mlabel->(Grup+Nnum)) // set order to 1
if (!dbseek(aa))
netuse("mlabel1", dbase1)
a = mlabel->(recno())
Append From (dbaseFO) Record a Fields Grup,Nnum,Name,ED,Date,Norma,ODate ;
,CodeVal,Nacen,Marka,Sort,Profil,Razmer,Koef,Ed1,Ed2,Ed3,Algo1,Algo2,Algo3 ;
,Status,Ins,Stat,Koef1,Sclads,Cod_OKDP,DateN,Ord_Policy,Ord_Syst ;
,Vendor,Lot_Min,Lot_Max,ORD_Day1,Ord_Point,Ord_QTY,ORD_Max,QTY_SFT,User_Code
else
alert("Данная номенклатура уже есть в ном/справочнике предприятия " + ch)
UnLock All
endif
else
alert("Процесс копирования закончен")
exit
UnLock All
endif
//dbpop()
mlabel1->(dbCloseArea())
Next kol
dbpop()
LabelPro->(dbCloseArea())
//mlabel->(DbUnLock()))
UnLock All
FClose(file)
FClose(file1)
FClose(file2)
return 0
Подскажите, плиз, как исправить ошибку, которая возникает, когда скопирована номенклатура из одной базы в другие, а именно при выходе из номен/справочника. Файл nomenkl.prg, который запускаю по Ctrl+F5 из номенклатурного справочника Бэст-4 12.01 хозрасч SP 40.Простая програмка по копированию номенклатуры в заданные БД.Есть файл txt, в нем указываю кол-во дочерних,код родителького пред-я, коды дочерних пр-й(до 10), и ******
3
000044
000052
000045
000046
******
Путь к другим базам ищется программно.
Программа работает по этим условиям ! т.е. копирует данную номен-ру в 000052,000045,000046. Проблема возникает, когда я хочу зайти в родителький ном/справочник. Выдается ошибка: "Нет файла memdat.dbf","Таблица не открыта или заблокирована","Нет файла mdoc.dbf".Мои ы: как исправить эти ошибки и правильно ли обратываю строчку 4(как опуститься на уровень ниже)???? Прилагаю код
Function main()
altd()
file1 = LoadPath()
file1 = file1 + "..\pro\plugins\extensns\sclad\nomenkl.txt"
set path to file1
file2 = 'Nomenkl.txt'
file = (FOPEN(file1))
child := FREADSTR(file,81)
kol = (substr(child,1,1)) // кол-во
rod = (substr(child,4,6)) //код родительского предпр
//
LabelPro := LoadPath() + "..\pro\Label.pro"
netuse("labelpro", LabelPro,,.F.)
dbpush("labelPro","labelPro->LBL_Code == rod","labelPro->LBL_Code == rod")
if rod != labelPro->LBL_Code
alert("Код родительского прдр-я в файле не совпадает с кодом в картотеке пред-й")
endif
dbpop()
dbase := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
dbaseFO = (FOPEN(dbase))
//
pl = 4
for i=0 to kol
pl := pl + 8
if substr(child,pl,6) != '******' //просто конец строки
ch = (substr(child,pl,6))
//*********************************************************************
dbpush("labelPro","labelPro->LBL_Code == ch","labelPro->LBL_Code == ch")
if ch != labelPro->LBL_Code
alert("Код дочернего прдр-я в файле не совпадает с кодом в картотеке пред-й"")
endif
//*********************************************************************
mlabel->(ordsetfocus('MLABEL'))
dbase1 := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
netuse("mlabel1", dbase1,, .f.)
set order to 1
aa := Upper(mlabel->(Grup+Nnum)) // set order to 1
if (!dbseek(aa))
netuse("mlabel1", dbase1)
a = mlabel->(recno())
Append From (dbaseFO) Record a Fields Grup,Nnum,Name,ED,Date,Norma,ODate ;
,CodeVal,Nacen,Marka,Sort,Profil,Razmer,Koef,Ed1,Ed2,Ed3,Algo1,Algo2,Algo3 ;
,Status,Ins,Stat,Koef1,Sclads,Cod_OKDP,DateN,Ord_Policy,Ord_Syst ;
,Vendor,Lot_Min,Lot_Max,ORD_Day1,Ord_Point,Ord_QTY,ORD_Max,QTY_SFT,User_Code
else
alert("Данная номенклатура уже есть в ном/справочнике предприятия " + ch)
UnLock All
endif
else
alert("Процесс копирования закончен")
exit
UnLock All
endif
//dbpop()
mlabel1->(dbCloseArea())
Next kol
dbpop()
LabelPro->(dbCloseArea())
//mlabel->(DbUnLock()))
UnLock All
FClose(file)
FClose(file1)
FClose(file2)
return 0