Вьюха сложная, с подцепками. 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.
			
			
									
						
							Чего-то в брауз попадает только одна строка
Модераторы: m0p3e, edward_K, Модераторы
- 
				Johny
 - Местный житель
 - Сообщения: 291
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: С-Петербург
 - Контактная информация:
 
Чего-то в брауз попадает только одна строка
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
			
						- 
				ecasoft
 - Местный житель
 - Сообщения: 645
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
 
Re: Чего-то в брауз попадает только одна строка
....
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 т.е. будет одна строка.
			
			
									
						
							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: Чего-то в брауз попадает только одна строка
Да..эта штука бдет работать, если нет услуг. Если встетятся услуги, то покажет в имени пустую строку - услуги хранятсяв таблице KatUsl. Надо использовать в подцепке SpStep.prMc для анализа услуга/МЦ
			
			
									
						
							Некоммерческое общение в форуме
			
						- 
				Johny
 - Местный житель
 - Сообщения: 291
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: С-Петербург
 - Контактная информация:
 
Re: Чего-то в брауз попадает только одна строка
Аааа, я дурной. Ведь верно, что table указывать надо. Но я вместо BASEDOC менял на KATMC почему-то а не SPSTEP.
Спасибо.
А теперь по поводу /==
Вот цитата из ХЭЛПа по SQL:
"Условие “==” соответствует мягкой подцепке, условие “/==« — жесткой подцепке.
Реляционные связи могут быть двух типов - жесткие и мягкие. При мягкой под-цепке отсутствующие в подчиненной таблице записи заполняются значениями по умолчанию. При жесткой подцепке записи родительской таблицы, для кото-рых не были найдены записи в таблицах-потомках, в выборку не попадают."
Код я вылложил не весь а только кусок подцепок. Если нужен пример использование и того и другого, то допишу.
			
			
									
						
							Спасибо.
А теперь по поводу /==
Вот цитата из ХЭЛПа по SQL:
"Условие “==” соответствует мягкой подцепке, условие “/==« — жесткой подцепке.
Реляционные связи могут быть двух типов - жесткие и мягкие. При мягкой под-цепке отсутствующие в подчиненной таблице записи заполняются значениями по умолчанию. При жесткой подцепке записи родительской таблицы, для кото-рых не были найдены записи в таблицах-потомках, в выборку не попадают."
Код я вылложил не весь а только кусок подцепок. Если нужен пример использование и того и другого, то допишу.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE