Страница 1 из 1

Ошибка: "Запись не найдена. Код ошибки 4"

Добавлено: 07 фев 2002, 08:55
hope
Сделала ARD-отчет, все формируется и считается, но постоянно выдается ошибка "Запись не найдена. Код ошибки 4".
По-видимому в каком-то потоке нет записей. Как это отследить и поправить? ???

Re: Ошибка: "Запись не найдена. Код ошибки 4"

Добавлено: 07 фев 2002, 11:17
ALEKS123
Сделать можно по-разному. Вот один из самых простых способов
.FORM
.ARD
.var
- - - - - - - -
.endvar
- - - - - - - -

.create view MM
as select * from
soprhoz,oborot where
((
MN_RE /== soprhoz.csoprdoc (noindex) and
soprhoz.nrec /== oborot.csoprhoz
));
- - - - - - - -
IF MM.GETFIRST = tsOK do
{
- - - - -
- - - - - -
- - - - - -
} WHILE MM.GETNEXT = tsOK;


Этот же кусок но немного по другому

.Var
PRZ : word;
.endvar
.create view MM
as select * from
soprhoz,oborot where
((
MN_RE /== soprhoz.csoprdoc (noindex) and
soprhoz.nrec /== oborot.csoprhoz
));
- - - - -

PRZ := MM.GETFIRST;
.{WHILE PRZ = 0;
- - - -
- - -
- - - -
- - - -
PRZ := MM.GETNEXT;
.}
- - - -
- - - -


Вот еще пример, как проверить наличие запичей в таблице
.Form 'My'
.F 'My.out'
.ARD
.var
GrNoE:boolean
.endvar
.Create view LogTab
As Select *
from
GroupMC, KatMC, KatEd
where
((GroupMC.NRec == KatMC.cGroupMC and
KatMC.cED == KatEd.NRec
))
;
+------------------------------------------------------------------------------------+
| Наименование | Бар-код | Масса |
+------------------------------------------------------------------------------------+
.{table 'LogTab.GroupMC';
.begin
GrNoE:=IsValidAll(tnKatMC);
end.
.{ ?Internal;(GrNoE)
.FIELDS
GroupMC.KOD
GroupMC.Name
.ENDFIELDS

Группа @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
---------------------------------------------------------------
.{table 'LogTab.KatMC';
.FIELDS
KatMC.Name
KatMC.BarKod : 'P:R'
KatMC.Massa : 'B'
.ENDFIELDS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ &#&&&&&&&
.} //KatMC
.FIELDS
// Выводится не поле, а его макс. значение
KatMC.Massa : 'MAX'
// выводится мин. значение поля
KatMC.Massa : 'MIN'
// выводится сумма значений поля
KatMC.Massa : 'SUM'
// выводится среднее значение поля
KatMC.Massa : 'AVG'

.ENDFIELDS
-----------------------------
Максимальная масса: &&&&&&&&&
Минимальная масса: &&&&&&&&&
Сумма масс : &&&&&&&&&
Ср%E

Re: Ошибка: "Запись не найдена. Код ошибки 4"

Добавлено: 08 фев 2002, 16:02
GalaxyFoe
А в ard-отчете есть команды getfirst?

Re: B ARD-отчетах

Добавлено: 08 фев 2002, 16:15
ALEKS123
есть комнада GETFIRST. А также и команды
GETNEXT, GETPREV, GETLAST

Re: B ARD-отчетах

Добавлено: 08 фев 2002, 16:32
GalaxyFoe
да не.... сорри, это было 2 hope про сабж :)

Re: Ошибка: "Запись не найдена. Код ошибки 4"

Добавлено: 08 фев 2002, 16:59
Maverick
Чтобы в будущем так не лажонуться)))

На запись типа If GetFirst Table=tsOk в указанном АРДотчете компилер ругнется )))
Ну не поддерживает ФКОМ константы tsOk )))
Надо писать If GetFirst Table = 0 (нуль т.е.)

Сорри за поучения, но перед тем как свои исходники выкладывать, нужно хотя бы их скомпилить, если нет времени проверить работает ли он ввобще..
Вот... злой я сегодня.

Re: ????

Добавлено: 08 фев 2002, 19:59
ALEKS123
С таким уважамым на форуме человеком сложно спорить, конечно, но я все же на твоем месте (по данному вопросу) высказался бы более осторожно. Например, сказал бы так - у меня (тебя) ARD не воспринимает константы типа tsOK. А у меня вспринимает за милую душу.
Просто советую в SUPPORT.CFG вставить несколько строк
OpenResources=f:\gal\EXE\extfun.res
OpenResources=f:\gal\exe\g_adm.res
OpenResources=f:\gal\exe\g_asup.res
OpenResources=f:\gal\exe\g_main.res
OpenResources=f:\gal\exe\g_fin.res
OpenResources=f:\gal\exe\g_oper.res
OpenResources=f:\gal\exe\g_menu.res
OpenResources=f:\gal\EXE\g_vip.res

Может быть и с избытком, зато работать будет всегда.
А чтобы не компилять прототипы, если изменяешь какую-нибудь формочку, то советую добавить еще и следующие
OpenResources=f:\gal\EXE\fix1.res
OpenResources=f:\gal\EXE\oper.res
OpenResources=f:\galEXE\oper03fix01.res
OpenResources=f:\gal\EXE\oper03fix02.res
OpenResources=f:\gal\EXE\oper03fix03.res

Аналогично и зарплатные патчи.

Удачи!