BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Работа с таблицами в dos-кодировке из плагина БЭСТ-5

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Работа с таблицами в dos-кодировке из плагина БЭСТ-5
 
Требуется выполнить ряд операций с таблицами БЭСТ-4+ из плагина в БЭСТ-5.
Помню как-то уже обсуждался Вопрос о смене кодовой страницы по умолчанию для операций с таблицами.
Напомните, пожалуйста.
С уважением,
Ильин Евгений
 
Цитата
itman пишет:
Помню как-то уже обсуждался Вопрос о смене кодовой страницы по умолчанию для операций с таблицами. Напомните, пожалуйста.


БЭСТ-5. Хочу создать dbf не в формате FoxPro 7.0 или еще было обсуждение этой темы?
 
Ок, спасибо )
С уважением,
Ильин Евгений
 
Не сработал setsix()
Требуется добавить записи через append from из таблицы в ДОС кодировке.
С уважением,
Ильин Евгений
 
У меня работает при создании базы.
Код
      aRDD:=SetSix()
      DBCreate('c:\sberbank\SbBank.dbf',A1, ,.T.,'SbBank')
      SetSix(aRDD)


Как Вы открываете базу?
Может netuse автоматически переопределяет rdd и имеет смысл попробовать системную dbusearea()
С уважением, Новиков Алексей.
 
Нет.
мне надо не создавать
а импортировать записи из дос-таблицы
т.е.
встали в область таблицы в Б5
затем применяем append from.
пока обхожусь обработкой данных на стадии формирования таблиц, т.е. формирую в вин-формате.
Но интересна сама возможность переключения вин-дос.
Почему встает Вопрос? Потому что тяжело сразу перенестись из БЭСТ-4+ в БЭСТ-5.
Часть утилит написана в инструментарии.
С уважением,
Ильин Евгений
 
Евгений а можно поинтересоваться а какую задачу по переходу Вы пытаетесь решить таким образом ?
 
Кость, да не секрет.
Ежедневный Учет выполненной работы по сдельным нарядам с формированием табличных документов в зарплате.
Чем огород держать удобнее конечно из 5-ки все делать, чем и займусь после закрытия месяца.
С уважением,
Ильин Евгений
 
Тоже с такой ситуацией разбираюсь - не получается связать внешний файл с DOS-кодировкой с таблицей БЭСТ 5 версии 3.4 - ошибку выдает - на открытие файла - пробовал несколько вариантов - не получается
ниже привожу "текущий" вариант плагина:
Цитата
Local cFilepricep
Local cPath:="c:\"
Local cMask:="*.dbf"
Local aFileFilter:={{"Базы данных","*.dbf"}}
Local cFilename:="pricep.dbf"
Local cMess:="Выбор файла pricep.dbf"
cFilepricep:=PopFile(,cPath,cMask,cMess,aFileFilter) //ищем где находится файл
If Empty(cFilepricep)
SayAndWait("Не выбран файл")
Else
SayAndWait(cFilepricep)
EndIf
Use (Loadpath()+"SPR_PART.dbf") Index('SPR_PART.cdx') New Alias SPR_PART shared//открываем справочник банков БЭСТа
SPR_PART->(ordSetFocus('TAG_NUM')) // выбираем сортировку по GRUP+NNUM+CODE
Go top
aRDD:=SetSix()
DbUseArea(.T.,,(cFilepricep),"pricep",.t.,.F.,) //открываем pricep.dbf
Index On "GRUP+NNUM+CODE" tag TAG_NUM To "pricep.cdx" //делаем индекс для поиска

//PRIVATE A1
//IF NNUMBER=1

//Local aBases := { {"V_SPR_PART", m->B6_DBF_PATH+"SPR_PART"} }
//Local cAlias := ALIAS()
//Local cOSPRPath := "C:\TEMP\pricep.dbf"
// Local cOSPRIDX
//cOSPRIDX := LEFT(cOSPRPath,LEN(cOSPRPath)-3)+"IDX"
//NetUse("pricep", cOSPRPath)
//pricep->(CreateFilter(".T.","pricep","UPPER(GRUP+NNUM+CODE)","KEY1",@cOSPRIDX))
//pricep->(OrdSetFocus("KEY1"))

//DBPUSH("SPR_PART","TAG_NUM","",{})

//УСТАНАВЛИВАЕМ СВЯЗЬ СТРОК MDOCM СО СПРАВОЧНИКОМ ПАРТИЙ
//SPR_PART->(ORDSETFOCUS("TAG_NUM"))
//F_SETRELATION("SPR_PART","UPPER(GRUP+NNUM+CODE)")


DBGOTOP()
//ПЕРЕБИРАЕМ ВСЕ КАРТОЧКИ ПАРТИЙ
DO WHILE !EOF()

SPR_PART->OCENA1 := pricep->C1
SPR_PART->OCENA2 := pricep->C2
SPR_PART->OCENA3 := pricep->C3
SPR_PART->OCENA4 := pricep->C4
SPR_PART->VCENA1 := pricep->V1
SPR_PART->VCENA2 := pricep->V2
SPR_PART->VCENA3 := pricep->V3
SPR_PART->VCENA4 := pricep->V4

ENDDO
//ВОССТАНАВЛИВАЕМ ИСХОДНОЕ СОСТОЯНИЕ ДО ВЫЗОВА РЕЖИМА
DBPOP()
SetSix(aRDD)
//ENDIF
//A1:=1


основная цель этого - нужно цены затащить из внешнего файла в Б5 3.4, причем GRUP+NNUM+CODE этого файла - соответствуют SPR_PART.
Может есть ещё какой вариант решения этой проблемы.

P.S. Как жаль, что до сих пор нет в БЭСТ 5 в.3.4 универсального режима экспорта-импорта, который есть в БЭСТ 4+ и в БЭСТ 5 в.3.3.
Текущий вариант у клиента решался в БЭСТ 4+ через Режимы пользователя в Модуле обмена данными.
 
Цитата
Роман Монахов пишет:
GRUP+NNUM+CODE этого файла - соответствуют SPR_PART.
Может есть ещё какой вариант решения этой проблемы.


На всякий случай обращаю Внимание, что SPR_PART в БЭСТ-5 изменился.
Там теперь еще поле MDIM - если хотите индексы SPR_PART использовать
Что касается открытия - попробуйте NETUSE()

Код
DbUseArea(.T.,,(cFilepricep),"pricep",.t.,.F.,)

Здесь в самом конце лишняя запятая.
И посмотрите в отладчике на значение cFilepricep, а также
есть ли файл строго по этому пути.
Скобки лишние для обрамления переменной, но это не влияет
И после открытия не оазыбвайте возвращать состояние SETSIX()
У Вас в коде я этого не нашел
 
Спасибо за быстрый ответ.
Плагин я всё же написал - работает. :lol:
Цитата

Local cFilepricep
Local cPath:="C:\TEMP\"
Local cMask:="*.dbf"
Local aFileFilter:={{"Базы данных","*.dbf"}}
Local cFilename:="pricep.dbf"
Local cMess:="Выбор файла pricep.dbf"
cFilepricep:=PopFile(,cPath,cMask,cMess,aFileFilter) //ищем где находится файл
If Empty(cFilepricep)
SayAndWait("Не выбран файл")
Else
SayAndWait(cFilepricep)
EndIf

aSet:=SaveSet()

aRDD:=SetSix()
NETUSE("pricep",cPath+cFilename,,.T.) //открываем pricep.dbf
ORDCREATE(LEFT(cPath+cFilename,LEN(cPath+cFilename)-3)+"CDX",,"UPPER(GRUP+NNUM+CODE)",{||UPPER(GRUP+NNUM+CODE)},) //делаем индекс для поиска
SetSix(aRDD)

DBPUSH("SPR_PART","TAG_NUM","")
NETUSE("SPR_PART",'SCLAD\SPR_PART.DBF',,.T.) //открываем справочник партий БЭСТа
SPR_PART->(ordSetFocus('TAG_NUM')) // выбираем сортировку по GRUP+NNUM+CODE
//Go top

PRIVATE A1,nProcess
F_SETRELATION("pricep","UPPER(GRUP+NNUM+CODE)")


DBGOTOP()

A1:=1

//ПЕРЕБИРАЕМ ВСЕ КАРТОЧКИ ПАРТИЙ
nProcess:=Proces_Ini(LASTREC(),,,"Заполнение новых цен по карточкам партий")
DO WHILE !EOF()
SPR_PART->(RECLOCK())

SPR_PART->OCENA1 := pricep->C1
SPR_PART->OCENA2 := pricep->C2
SPR_PART->OCENA3 := pricep->C3
SPR_PART->OCENA4 := pricep->C4
SPR_PART->VCENA1 := pricep->V1
SPR_PART->VCENA2 := pricep->V2
SPR_PART->VCENA3 := pricep->V3
SPR_PART->VCENA4 := pricep->V4
SPR_PART->ATTRIB1 := pricep->A1
SPR_PART->ATTRIB2 := pricep->A2
SPR_PART->GTD := pricep->GTD
SPR_PART->SERTIFICAT := pricep->SERTN

SPR_PART->(F_DBUNLOCK())
DBSKIP()

A1:=A1+1
ENDDO
Proces_End(nProcess)
//ВОССТАНАВЛИВАЕМ ИСХОДНОЕ СОСТОЯНИЕ ДО ВЫЗОВА РЕЖИМА
DBPOP()

RestSet(aSet)
Страницы: 1
Читают тему (гостей: 1)