определить номер записи
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
-> Программирование в БЭСТ-4

#1: определить номер записи Author: ЗмеяLocation: Подколодная PostPosted: 02 Jul 2007 14:55
    —
Подскажите, пожалуйста, не получается определить номер записи в базе, а потом к ней вернуться:
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-го, чтобы получилась книга продаж. Когда создается новая запись, естественно, указатель встает на нее, вот я и хотела запомнить номер, потом перейти на него.

#2:  Author: itmanLocation: Ильин Е.Ю. PostPosted: 02 Jul 2007 14:59
    —
replace смещает указатель на eof(), если я не ошибаюсь.
Хотя здесь одиночные замены, может просто оператор := использовать?


Last edited by itman on 02 Jul 2007 15:05; edited 1 time in total

#3:  Author: ЗмеяLocation: Подколодная PostPosted: 02 Jul 2007 15:05
    —
не replace смещает на конец, а append blank.
Мне бы подсказал кто как правильно определить номер записи

#4:  Author: itmanLocation: Ильин Е.Ю. PostPosted: 02 Jul 2007 15:06
    —
а если сначала определить номер записи, а потом поменять значени

#5:  Author: ЗмеяLocation: Подколодная PostPosted: 02 Jul 2007 15:09
    —
ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку

#6:  Author: Титов АлександрLocation: Титов Александр Александрович PostPosted: 02 Jul 2007 15:13
    —
Змея wrote:
ну хорошо, пусть так, но этот оператор nom:=_main->recno() не работает, выдает ошибку

_main->(recno())

#7:  Author: ЗмеяLocation: Подколодная PostPosted: 02 Jul 2007 15:17
    —
Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход на эту запись _main->(go nom)

#8:  Author: Титов АлександрLocation: Титов Александр Александрович PostPosted: 02 Jul 2007 15:19
    —
Змея wrote:
Спасибо, Александр Александрович! Как всегда из-за невнимательности.
теперь не работает переход _main->(go nom)

_main->(dbgoto(nom))

#9:  Author: ЗмеяLocation: Подколодная PostPosted: 02 Jul 2007 15:26
    —
Спасибо, всё получилось!
Это потому, что я не писала на клиппере никогда, всё на фокпро, поэтому не знаю синтаксиса.
Ещё один вопрос: я использую поле user_code файла проводок в качестве метки, это ни на что не влияет?
И вообще можно ли так грубо вмешиваться и менять базы?

Только что заметила, что копируются удаленные записи тоже.
Нет ли аналога команды фокпро set delete on? (не брать в расчет удаленные запи

#10:  Author: nordkLocation: Горбунов Константин PostPosted: 02 Jul 2007 20:46
    —
перед копированием установите индекс а он отсекает удаленные либо проверяйте тогда на удаление, конечно Вы можете поменять и SET()

#11:  Author: nordkLocation: Горбунов Константин PostPosted: 02 Jul 2007 20:53
    —
Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%.

#12:  Author: ЗмеяLocation: Подколодная PostPosted: 03 Jul 2007 09:37
    —
а как правильно написать set delete on?
пыталась писать прямо так, так она никакие записи не берет вообщ

#13:  Author: itmanLocation: Ильин Е.Ю. PostPosted: 03 Jul 2007 10:38
    —
set deleted on

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

еще есть функция DELETED(), к-ая определяет, отмечена ли текущая запись для удаления.

#14:  Author: ЗмеяLocation: Подколодная PostPosted: 10 Jul 2007 17:13
    —
nordk wrote:
Насчет User_code.
Поле заполняется при включенной авторизации и туда пишется
код оператора который это делал.
То что Вы делаете , а именно использовать поля делать можно,
если отчетливо понимаете где они применяются и какие могут
быть последствия.
Данное поле я бы наверно не рискнул трогать.
А вообще задействовать поля - это еще не грубо
видели бы Вы что нам иногда с базами в своих решениях приходится вытворять. И пользуются же люди. Бывает, конечно, проблемы
создаются.
На самом деле можно метки ставить скажем в конец наименования проводки, добавить свое поле в таблицу и его заполнять - это
поддерживается разработчиком. Делать свои таблицы рядом.
А в существующие поля писать когда знаете и уверены на 100%.


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

#15:  Author: nordkLocation: Горбунов Константин PostPosted: 10 Jul 2007 18:47
    —
Мне бы базку Вашу глянуть с проводками...
МОжете еще кстати попробовать сделать импорт этих
проводок через стандартный механизм импорта и сравнить поля.



-> Программирование в БЭСТ-4


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group