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

ClearBuffer

Добавлено: 18 июн 2009, 16:47
Larisa
Здраствуйте! Подскажите пожалуйста
есть код
.begin
if v2.getfirst oborot = tsok
v2._loop oborot
{
ClearBuffer(#tab26);
tab26.sumob: = v2.oborot.sumob,
tab26.ckau: = v2.spkau.nrec,
tab26.datob: = v2.oborot.datob;
tab26.scheto: = v2.oborot.scheto;
tab26.subossch: = v2.oborot.subossch;
tab26.schetk := v2.oborot.schetk;
tab26.subschk: = v2.oborot.subschk;
tab26.sodpr: = v2.oborot.sodpr;
tab26.kau3 = v2.oborot.kauks[1];
if v2.getfirst hozoper = tsok
tab26.dop = v2.hozoper.code;
insert current tab26;
}
end.
При компиляции ругается "нет такой функции поля или метода ClearBuffer(#tab26);" в частности на #tab26.
Не пойму в чем дело.
Подскажите пожалуйста.

Добавлено: 18 июн 2009, 16:59
evchic
нету таблы tab26 во view

Добавлено: 18 июн 2009, 17:17
edward_K
угу - не ленитесь во from прописывать.

Добавлено: 18 июн 2009, 17:24
Larisa
У меня есть вьюшка v2
.Create View v2 //
as select //
oborot.scheto,
oborot.subossch,
oborot.schetk,
oborot.subschk,
oborot.datob,
oborot.sumob,
oborot.kauks[1],
oborot.sodpr,
hozoper.code,
spkau.nrec
from oborot, spkau
where
((
oborot.chozoper==hozoper.nrec
and oborot.kauos[1]/==spkau.nrec))
and substr(oborot.sodpr,1,2)='ИП' // ИП
and oborot.datob>=dfor1
and (oborot.scheto='820Н' OR oborot.scheto='823Н' OR oborot.scheto='825Н' OR oborot.scheto='826Н')
and (spkau.cnode=281474976713775 or spkau.cnode=281474976713781 or spkau.cnode=281474976713784 or spkau.cnode=281474976713787 or spkau.nrec=281474976716179)
;
Затем данные из v2 я хочу поместить во временную таблицу tab26
преждевременно очистив буфер clearbuffer(#tab26)
.begin
if v2.getfirst oborot = tsok
v2._loop oborot
{
ClearBuffer(#tab26);
потом его заполняю буфер
tab26.sumob: = v2.oborot.sumob,
tab26.ckau: = v2.spkau.nrec,
tab26.datob: = v2.oborot.datob;
tab26.scheto: = v2.oborot.scheto;
tab26.subossch: = v2.oborot.subossch;
tab26.schetk := v2.oborot.schetk;
tab26.subschk: = v2.oborot.subschk;
tab26.sodpr: = v2.oborot.sodpr;
tab26.kau3 = v2.oborot.kauks[1];
if v2.getfirst hozoper = tsok
tab26.dop = v2.hozoper.code;
insert current tab26;
}
end.
затем его надо записать в таблицу tab26
insert current tab26;

Добавлено: 18 июн 2009, 17:27
Ged
дык а всетаки что мешает прописать таблицу во From?

Код: Выделить всё

from oborot, spkau, tab26
where
Ну и что, что она не подцепленна, _loop то ее не затрагивает.

Добавлено: 18 июн 2009, 17:33
Larisa
Я не беру данные в v2 из tab26. наоборот из v2 я записываю данные в tab26.
Непонимаю зачем прописывать тогда from oborot, spkau, tab26

Добавлено: 18 июн 2009, 17:37
Larisa
я прописала from oborot, spkau, tab26,
все равно при компиляции выдается ошибка "нет такой функции поля или метода ClearBuffer(#tab26)"

Добавлено: 18 июн 2009, 17:46
evchic
а tab26 где создается?

Добавлено: 18 июн 2009, 17:49
Larisa
в таблице table.vip

table struct tab26
( ckau: comp,
sumob: double,
datob: date,
scheto:string,
subossch:string,
schetk:string,
subschk:string,
sodpr:string,
sodprr:string,
da: date,
kau3: comp,
kauks4: comp,
kauos4: comp,
dop: string
) with index (i02=da);

Добавлено: 18 июн 2009, 18:32
evchic
я так понимаю что .Create View v2 это присоединенка
а tab26 создается в какомто vip... поэтому ее и не видно...
вынисите table struct tab26 в *.prj файл

Добавлено: 18 июн 2009, 18:32
Ged
Вообщето #tab26 прокатывает только в интерфейсах. И то это не правильно..
Надо писать
ClearBuffer(tn<TableName>)
ClearBuffer(tnTab26)

Тем более что у вас форма

Добавлено: 19 июн 2009, 11:36
Larisa
Написала ClearBuffer(tnTab26)
таже самая ошибка "нет такой функции поля или метода ClearBuffer(tnTab26)"

Добавлено: 19 июн 2009, 11:40
Ged
а компилите чем?

Добавлено: 19 июн 2009, 11:57
Larisa
Строчным компилятором vip.exe

Добавлено: 19 июн 2009, 11:59
Ged
MyProject.prj?

#include table.vip
#make "myform.frm"

Вообще хотелось бы полный набор файлов посмотреть