Страница 1 из 1
Чего-то в брауз попадает только одна строка
Добавлено: 19 апр 2005, 12:25
Johny
Вьюха сложная, с подцепками. Select работает на отлично. По селекту должно быть 14 позиций из этого документа. Но в браузе отражается только одна строка - первая из счета. Как остальные высветить?
interface BasedocFace 'Выбор позиций счета';
create view TTT as
select BASEDOC.DDOC, BASEDOC.NOdoc,basedoc.name,katmc.name
from basedoc,katmc
where
((
basedoc.nrec/==stepdoc.cbasedoc(noindex) and
stepdoc.nrec/==spstep.cstepdoc(noindex) and
spstep.CMCUSL/==katmc.nrec
)) and
basedoc.viddoc='201' and
basedoc.ddoc>=date(01,02,2005) and
basedoc.ddoc<=date(28,02,2005) and
basedoc.nodoc='00059П';
browse SelectMain;
fields
TTT.DDOC 'Дата' : [9],protect;
TTT.NOdoc 'Номер' : [10],protect;
TTT.basedoc_name 'Счет' : [40],protect;
TTT.katmc_name 'Номенклатура' : [60],protect;
end;
end.
Re: Чего-то в брауз попадает только одна строка
Добавлено: 19 апр 2005, 13:10
ecasoft
....
where
((
word(201) == basedoc.viddoc and
'00059П' == basedoc.nodoc and
(
basedoc.ddoc>=date(01,02,2005) and
basedoc.ddoc<=date(28,02,2005)
) and
basedoc.nrec == stepdoc.cbasedoc and
stepdoc.nrec == spstep.cstepdoc and
spstep.CMCUSL == katmc.nrec
));
panel pan1 table spstep;
Browse br1
basedoc.DDOC 'Дата' : [9],protect;
basedoc.NOdoc 'Номер' : [10],protect;
basedoc.name 'Счет' : [40],protect;
katmc_name 'Номенклатура' : [60],protect;
end // Browse
end // panel pan1
Извините, хотел узнать, откуда вообще такая информация, что надо использовать \== ?
и желание использовать везде noindex когда по всем этим полям есть индексы?
Если не трудно , то не могли бы Вы ответить почему Вы начали использовать такие операторы и параметры? Я на форуме постоянно встречаю такой стиль программирования, хотя наверное во всем коде Галактики такого не найти. Этому где-то учат что-ли? Буду очень признателен, если ответите.
P S
'201' - это строка, а vidsopr - это word.
в табличном редакторе надо указать по какой таблице Вы хотите список (table SpStep). Если не указали, то видимо по Basedoc т.е. будет одна строка.
Re: Чего-то в брауз попадает только одна строка
Добавлено: 19 апр 2005, 13:14
ecasoft
Да..эта штука бдет работать, если нет услуг. Если встетятся услуги, то покажет в имени пустую строку - услуги хранятсяв таблице KatUsl. Надо использовать в подцепке SpStep.prMc для анализа услуга/МЦ
Re: Чего-то в брауз попадает только одна строка
Добавлено: 19 апр 2005, 13:19
Johny
Аааа, я дурной. Ведь верно, что table указывать надо. Но я вместо BASEDOC менял на KATMC почему-то а не SPSTEP.
Спасибо.
А теперь по поводу /==
Вот цитата из ХЭЛПа по SQL:
"Условие “==” соответствует мягкой подцепке, условие “/==« — жесткой подцепке.
Реляционные связи могут быть двух типов - жесткие и мягкие. При мягкой под-цепке отсутствующие в подчиненной таблице записи заполняются значениями по умолчанию. При жесткой подцепке записи родительской таблицы, для кото-рых не были найдены записи в таблицах-потомках, в выборку не попадают."
Код я вылложил не весь а только кусок подцепок. Если нужен пример использование и того и другого, то допишу.