При таком написании интерфейса:
interface leave_1 'NameOfInterface';
 table struct lnach(clsch: comp, vidopl: longint, summa: double);
 create view as select lnach.*, klvidopl.* from klvidopl, lnach
    where ((lnach.vidopl == klvidopl.vidopl))
;//     and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
 var
  curm: word;
  cury: integer;
 screen rlscr;
  buttons
   cmIClose;
 <<
         <.Закрыть.>
 >>
 end;
 handleevent
  cmInit:{
   if(getfirst xarpred = tsOk){
    curm := month(xarpred.datotch);
    cury := year(xarpred.datotch);
   } else {
    message('Can''t determine date of account');
    closeinterface(cmCancel);
   }
  }
  cmIClose:{
   closeInterface(cmDefault);
  }
 end;
end.
результат работы такой, который и ожидался, но стоит только снять комметарии с дополнительного условия в описании логической таблицы, попытка найти первую запись таблицы xarpred терпит крах...  ???
			
			
									
						
										
						Может быть, кто-нибудь расскажет, почему?
Модераторы: m0p3e, edward_K, Модераторы
Re: Может быть, кто-нибудь расскажет, почему?
Сказать почему не скажу, но когда писал несколько условий в WHERE такая же неприятность была, ни в какую не хочет три условия обработать. Пришлось две таблица вытаскивать, и из них уже по частям все собирать.
			
			
									
						
										
						- 
				sss61
 - Новичок
 - Сообщения: 21
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Амурская область, г.Благовещенск Центральные электросети
 
Re: Может быть, кто-нибудь расскажет, почему?
Попробуй написать это
условие:
and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
по другому
and (klvidopl.vhvo[15] = '+' or
klvidopl.vhvo[16] = '+');
			
			
									
						
										
						условие:
and ('+' = klvidopl.vhvo[15] or '+' = klvidopl.vhvo[16]);
по другому
and (klvidopl.vhvo[15] = '+' or
klvidopl.vhvo[16] = '+');
Не помогло :-(
???