Чего-то в брауз попадает только одна строка

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Чего-то в брауз попадает только одна строка

Сообщение 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.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Чего-то в брауз попадает только одна строка

Сообщение 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 т.е. будет одна строка.
Некоммерческое общение в форуме
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Чего-то в брауз попадает только одна строка

Сообщение ecasoft »

Да..эта штука бдет работать, если нет услуг. Если встетятся услуги, то покажет в имени пустую строку - услуги хранятсяв таблице KatUsl. Надо использовать в подцепке SpStep.prMc для анализа услуга/МЦ
Некоммерческое общение в форуме
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Re: Чего-то в брауз попадает только одна строка

Сообщение Johny »

Аааа, я дурной. Ведь верно, что table указывать надо. Но я вместо BASEDOC менял на KATMC почему-то а не SPSTEP.
Спасибо.

А теперь по поводу /==
Вот цитата из ХЭЛПа по SQL:
"Условие “==” соответствует мягкой подцепке, условие “/==« — жесткой подцепке.
Реляционные связи могут быть двух типов - жесткие и мягкие. При мягкой под-цепке отсутствующие в подчиненной таблице записи заполняются значениями по умолчанию. При жесткой подцепке записи родительской таблицы, для кото-рых не были найдены записи в таблицах-потомках, в выборку не попадают."

Код я вылложил не весь а только кусок подцепок. Если нужен пример использование и того и другого, то допишу.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Ответить