View previous topic :: View next topic |
Author |
Message |
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 02 Jul 2007 14:55 Post subject: определить номер записи |
|
|
Подскажите, пожалуйста, не получается определить номер записи в базе, а потом к ней вернуться: Code: | function mymain()
dbpush()
netuse("_main",loadpath()+'main.dbf')
dbgotop()
do while _main->(!EOF())
if left(_main->kT_SCHET,2)=="62".and.left(_main->user_code,1)#'1'
_main->(reclock())
replace _main->user_code with '1'
nom:=_main->recno() /////здесь пытаюсь запомнить номер записи - выдает ошибку
s:=_main->summa
d:=_main->dataoper
n:=_main->nndoc
nam:=_main->nameoper
append blank
replace _main->nameoper with nam
replace _main->dt_schet with "“„Ќ01-01"
replace _main->task with "00"
replace _main->dataoper with d
replace _main->summa with s
replace _main->vsumma with s
replace _main->nndoc with n
replace _main->n_status with '1'
_main->(go nom)
endif
_main->(DBSKIP())
enddo
_main->(f_dbunlock())
_main->(dbclosearea())
dbpop()
return |
Наверно какая-то элементарная ошибка, не знаю формат.
Это я пытаюсь скопировать все проводки с кредитом 62-го, чтобы получилась книга продаж. Когда создается новая запись, естественно, указатель встает на нее, вот я и хотела запомнить номер, потом перейти на него. |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 02 Jul 2007 14:59 Post subject: |
|
|
replace смещает указатель на eof(), если я не ошибаюсь.
Хотя здесь одиночные замены, может просто оператор := использовать?
Last edited by itman on 02 Jul 2007 15:05; edited 1 time in total |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 02 Jul 2007 15:05 Post subject: |
|
|
не replace смещает на конец, а append blank.
Мне бы подсказал кто как правильно определить номер записи |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 02 Jul 2007 15:06 Post subject: |
|
|
а если сначала определить номер записи, а потом поменять значени |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 02 Jul 2007 15:09 Post subject: |
|
|
ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 02 Jul 2007 15:13 Post subject: |
|
|
Змея wrote: | ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку |
_main->(recno()) _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 02 Jul 2007 15:17 Post subject: |
|
|
Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход на эту запись _main->(go nom) |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 02 Jul 2007 15:19 Post subject: |
|
|
Змея wrote: | Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход _main->(go nom) |
_main->(dbgoto(nom)) _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 02 Jul 2007 15:26 Post subject: |
|
|
Спасибо, всё получилось!
Это потому, что я не писала на клиппере никогда, всё на фокпро, поэтому не знаю синтаксиса.
Ещё один вопрос: я использую поле user_code файла проводок в качестве метки, это ни на что не влияет?
И вообще можно ли так грубо вмешиваться и менять базы?
Только что заметила, что копируются удаленные записи тоже.
Нет ли аналога команды фокпро set delete on? (не брать в расчет удаленные запи |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 02 Jul 2007 20:46 Post subject: |
|
|
перед копированием установите индекс а он отсекает удаленные либо проверяйте тогда на удаление, конечно Вы можете поменять и SET() |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 02 Jul 2007 20:53 Post subject: |
|
|
Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%. |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 03 Jul 2007 09:37 Post subject: |
|
|
а как правильно написать set delete on?
пыталась писать прямо так, так она никакие записи не берет вообщ |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 03 Jul 2007 10:38 Post subject: |
|
|
set deleted on
Может помочь набор исходников, который идет в составе инструментария разработчика БЭСТ-4+. на www.spb4plus.ru
еще есть функция DELETED(), к-ая определяет, отмечена ли текущая запись для удаления. |
|
Back to top |
|
|
Змея
Joined: 22 Mar 2007 Posts: 72 Location: Подколодная Occupation: программист Interests: Казань
|
Posted: 10 Jul 2007 17:13 Post subject: |
|
|
nordk wrote: | Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%. |
КАК ВСЕГДА СРОЧНО НУЖНО!
Всё хорошо получалось, создавались проводки с помощью этого плагина.
Прозошло следующее - все эти проводки стали отмеченными для удаления. Перед этим была индексация, она успешно завершилась, проводки были на месте. Ручками врядли кто-то мог - т.к. проводок было более 1000 и в 19 разных предприятиях.
Видимо какое-то поле нужно обязательно заполнять.
Не подскажете, в чём тут могло быть дело? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 10 Jul 2007 18:47 Post subject: |
|
|
Мне бы базку Вашу глянуть с проводками...
МОжете еще кстати попробовать сделать импорт этих
проводок через стандартный механизм импорта и сравнить поля. |
|
Back to top |
|
|
|