Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

определить номер записи
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 02 Jul 2007 14:55    Post subject: определить номер записи Reply with quote

Подскажите, пожалуйста, не получается определить номер записи в базе, а потом к ней вернуться:
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
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 02 Jul 2007 14:59    Post subject: Reply with quote

replace смещает указатель на eof(), если я не ошибаюсь.
Хотя здесь одиночные замены, может просто оператор := использовать?


Last edited by itman on 02 Jul 2007 15:05; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 02 Jul 2007 15:05    Post subject: Reply with quote

не replace смещает на конец, а append blank.
Мне бы подсказал кто как правильно определить номер записи
Back to top
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 02 Jul 2007 15:06    Post subject: Reply with quote

а если сначала определить номер записи, а потом поменять значени
Back to top
View user's profile Send private message Send e-mail
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 02 Jul 2007 15:09    Post subject: Reply with quote

ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 02 Jul 2007 15:13    Post subject: Reply with quote

Змея wrote:
ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку

_main->(recno())
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 02 Jul 2007 15:17    Post subject: Reply with quote

Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход на эту запись _main->(go nom)
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 02 Jul 2007 15:19    Post subject: Reply with quote

Змея wrote:
Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход _main->(go nom)

_main->(dbgoto(nom))
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 02 Jul 2007 15:26    Post subject: Reply with quote

Спасибо, всё получилось!
Это потому, что я не писала на клиппере никогда, всё на фокпро, поэтому не знаю синтаксиса.
Ещё один вопрос: я использую поле user_code файла проводок в качестве метки, это ни на что не влияет?
И вообще можно ли так грубо вмешиваться и менять базы?

Только что заметила, что копируются удаленные записи тоже.
Нет ли аналога команды фокпро set delete on? (не брать в расчет удаленные запи
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 02 Jul 2007 20:46    Post subject: Reply with quote

перед копированием установите индекс а он отсекает удаленные либо проверяйте тогда на удаление, конечно Вы можете поменять и SET()
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 02 Jul 2007 20:53    Post subject: Reply with quote

Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%.
Back to top
View user's profile Send private message Send e-mail
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 03 Jul 2007 09:37    Post subject: Reply with quote

а как правильно написать set delete on?
пыталась писать прямо так, так она никакие записи не берет вообщ
Back to top
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 03 Jul 2007 10:38    Post subject: Reply with quote

set deleted on

Может помочь набор исходников, который идет в составе инструментария разработчика БЭСТ-4+. на www.spb4plus.ru

еще есть функция DELETED(), к-ая определяет, отмечена ли текущая запись для удаления.
Back to top
View user's profile Send private message Send e-mail
Змея



Joined: 22 Mar 2007
Posts: 72
Location: Подколодная
Occupation: программист
Interests: Казань

PostPosted: 10 Jul 2007 17:13    Post subject: Reply with quote

nordk wrote:
Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%.


КАК ВСЕГДА СРОЧНО НУЖНО!
Всё хорошо получалось, создавались проводки с помощью этого плагина.
Прозошло следующее - все эти проводки стали отмеченными для удаления. Перед этим была индексация, она успешно завершилась, проводки были на месте. Ручками врядли кто-то мог - т.к. проводок было более 1000 и в 19 разных предприятиях.
Видимо какое-то поле нужно обязательно заполнять.
Не подскажете, в чём тут могло быть дело?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 10 Jul 2007 18:47    Post subject: Reply with quote

Мне бы базку Вашу глянуть с проводками...
МОжете еще кстати попробовать сделать импорт этих
проводок через стандартный механизм импорта и сравнить поля.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru