Сделала ARD-отчет, все формируется и считается, но постоянно выдается ошибка "Запись не найдена. Код ошибки 4".
По-видимому в каком-то потоке нет записей. Как это отследить и поправить? ???
Ошибка: "Запись не найдена. Код ошибки 4"
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 278
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Ошибка: "Запись не найдена. Код ошибки 4"
Сделать можно по-разному. Вот один из самых простых способов
.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
.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"
А в ard-отчете есть команды getfirst?
-
- Местный житель
- Сообщения: 278
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: B ARD-отчетах
есть комнада GETFIRST. А также и команды
GETNEXT, GETPREV, GETLAST
GETNEXT, GETPREV, GETLAST
Re: B ARD-отчетах
да не.... сорри, это было 2 hope про сабж
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Ошибка: "Запись не найдена. Код ошибки 4"
Чтобы в будущем так не лажонуться)))
На запись типа If GetFirst Table=tsOk в указанном АРДотчете компилер ругнется )))
Ну не поддерживает ФКОМ константы tsOk )))
Надо писать If GetFirst Table = 0 (нуль т.е.)
Сорри за поучения, но перед тем как свои исходники выкладывать, нужно хотя бы их скомпилить, если нет времени проверить работает ли он ввобще..
Вот... злой я сегодня.
На запись типа If GetFirst Table=tsOk в указанном АРДотчете компилер ругнется )))
Ну не поддерживает ФКОМ константы tsOk )))
Надо писать If GetFirst Table = 0 (нуль т.е.)
Сорри за поучения, но перед тем как свои исходники выкладывать, нужно хотя бы их скомпилить, если нет времени проверить работает ли он ввобще..
Вот... злой я сегодня.
-
- Местный житель
- Сообщения: 278
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: ????
С таким уважамым на форуме человеком сложно спорить, конечно, но я все же на твоем месте (по данному вопросу) высказался бы более осторожно. Например, сказал бы так - у меня (тебя) 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
Аналогично и зарплатные патчи.
Удачи!
Просто советую в 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
Аналогично и зарплатные патчи.
Удачи!