Не отображается брауз

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

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

Ответить
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Не отображается брауз

Сообщение BlazeBio »

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

window wetalon;
Show At (,,93,25);;
panel petalon
 show at (,,,8);
 screen setalon (,,Sci1478EscIns)
  fields
  	ppkatstan.name:noprotect;
  	k1.name:protect,pickbutton;
	groupmc.name:protect,pickbutton;
  buttons
	cmRealMC;
<<
    МЦ          .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Эталон МЦ   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Группа МЦ   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 			<.~в~ыбор МЦ.>


>>
end;
	handleevent
		cmCheckField:
		{
			 case CurField of
				 #ppkatstan.name:
				 {
					 update current ppkatstan;
					 rescanpanel(#ppkatstan);
				 }
			 end;


		}
	end;
end;
panel petalon2
    show at (1,1,93,25)
  browse (,,Sci1478EscIns)
  table k2,cartesian;
  fields
		k2.name:,protect;
  end;
end;
	handleevent
		cmPick:
		{
				  UpdateTable();
 				  case CurField of
					#k1.name:
					{
						res:=  RunInterface(PickKatMC,ketalon);
			  			ppkatstan.cmc:=ketalon;
			  			update current ppkatstan;
								if getfirst k1 where((ppkatstan.cmc==k1.nrec))=tsOk
								{
								}
						rescanpanel(#ppkatstan);
						rescanpanel(#k1);
	     			}
					#groupmc.name:
					{
						res:=  RunInterface(PickGroupMC,kgroup);
						ppkatstan.cgroupmc:=kgroup;
						update current ppkatstan;
						if getfirst groupmc where((ppkatstan.cgroupmc==groupmc.nrec))=tsOk
						{
						        rescanpanel(#ppkatstan);
								rescanpanel(#groupmc);
						}

					}
					end;

		}
		cmRealMC:
		{
			RunWindow(wmc);
		}
	end;
end;
Причём окно не реагирует на изменение show at - не меняется размер окна. Я изменил размер панели брауза, вроде бы как она должна перекрывать скрин первой панели, но не выводится никакой ошибки, что брауз или скрин перекрыты.
Что может быть не так?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не отображается брауз

Сообщение edward_K »

setformat в cmInit окна вам поможет.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

У окна нулевая реакция на setformat. Всё тот же скрин без брауза.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не отображается брауз

Сообщение edward_K »

а зачем вам скрин? Зачем 2 панели? в приципе можно и без них обойтись. В setformat нужно наверное указаывать имя панели, но никто не делает так.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

Раньше получалось делать брауз и скрин в разных панелях, поэтому и сейчас тоже сделал. Мне в принпципе без разницы, главное, чтобы всё работало.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

Загнал всё в одну панель и заработало! 8)
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

Только теперь при перемещении по браузу автоматически идёт перемещение по другому. А этого не должно быть. Нужно чтобы при выборе редактирования строки в браузе открывался скрин, в котором отображались данные по этой строке, а снизу брауз, в котором отображены позиции привязанные к эталону, но при попытке перемещения по браузу (второму) идёт перемещение и по скрину.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не отображается брауз

Сообщение edward_K »

а зачем вам cartesian в броусе?
Вообще обычно скриин тогда открывают в другом окне, иногда переключают формат по SetFormat
И к тому же в screen нужно тоже таблу указать. Вы пробуйте на простых примерах и приведите весь фейс.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

Вот весь фейс

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

//#commands start at 7700
#include galnet.ccm;
#include galnet.csc;
end;
const
	cmMC=7701;
	cmStatus=7702;
	cmFormat=7703;
	cmLine=7704;
	cmRealMC=7705;
    cmPickRealMC=7706;
	//Sci1478EscIns =6994;
end;
interface iServePlan'Заполнение производственных планов';
Show At (,,93,25);
function MyTable_Add(add_n: comp): boolean;forward;
var  SomeWindowNumber:longint ;
	 SomeWindowNumber2:longint ;
	 SomeWindowNumber3:longint ;
	 SomeWindowNumber4:longint ;
	 SomeWindowNumber5:longint ;
	 SomeWindowNumber6:longint ;
	 SomeWindowNumber7:longint ;
	 SomeWindowNumber8:longint ;
	 SomeWindowNumber9:longint ;
	 SomeWindowNumber10:longint ;
	 SomeWindowNumber11:longint ;
	 SomeWindowNumber20:longint;
	 SomeWindowNumber21:longint;
	 kpodr,kformat,kgroup,ketalon,kstan:comp;
	 	 kpodr2,kformat2,kgroupmc2,ketalon2,kstan2:comp;
	 res:word;
table struct marktable
			 (
				nRec : comp,
			    cmcnrec: comp
			 )
			 with index
			 (
				 mark01 = nRec(Unique,Surrogate),
			     mark02 = cmcnrec
			 );
	 //function etalon(wwnrec : comp) : string; forward;
create view
//(standard)
as select /*etalon(ppkatstan.atl_nrec),*,*/k1.name,ppkatstan.name,k2.name//,groupmc.name,*
from katmc k1(katmc02),PPKATSTANMC,PPKATSTAN(PPKATSTAN02),katmc k2,groupmc(GROUPMC03),ppstatus,ppgrformat,ppline,katmc k3(katmc02),katmc k4(katmc02),katpodr
where ((ppkatstan.cmc==k1.nrec
and (7=k1.isarch)
//and	ppkatstan.atl_nrec==ppkatstanmc.cppkatstan
//and ppkatstanmc.cmc==k2.nrec
and ppkatstan.cgroupmc==groupmc.nrec
and 7==k3.isarch and 0==k4.isarch and ppline.cpodr==katpodr.nrec));

create view realmc as select
ppkatstan.name,k2.name from ppkatstan,ppkatstanmc,katmc k2(katmc02)
where((kstan2==ppkatstan.atl_nrec
and ppkatstan.atl_nrec==ppkatstanmc.cppkatstan
and ppkatstanmc.cmc==k2.nrec));
/*create view v2
var w_nrec:comp
as select *
  from katmc,ppkatstan
	where ((w_nrec==ppkatstan.atl_nrec
and	  katmc.nrec==ppkatstan.cmc));*/

/*	function etalon( wwnrec : comp ) : string;
	   {
		   var etal:string[100];
		   //funcSUM:=0;
		 { v2.w_nrec:= wwnrec
			 if v2.getfirst ppkatstan=0
			 {  	//logstrtofile ('summak.txt', 'нашли накладную '+v2.katsopr.nsopr);

						 //funcSUM:=funcSUM+v2.sporder.kol*v2.sporder.rsrprice;
					etal:=katmc.name;
						 LogStrToFile('logos.txt','cумма '+SUM);

			 }
		 }
		 etalon:=etal;;
	   }*/
//panel pServe;
//show at(,,93,25);

//end;
window wppline;
	panel pppline;
	screen sppline
	    fields
    		  ppline.name:noprotect;
			  katpodr.name:pickbutton;
<<
    Наименование линии   .@@@@@@@@@@@@@@@@@@@@@@@@@@
    Подразделение        .@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
	    end;
		handleevent
		  cmCheckField:
		  {
			case curfield of
			  #ppline.name:
			  {
				update current ppline;
				rescanpanel(#ppline);
			  }
			  #katpodr.name:
			  {
				res:=  RunInterface(PickPodr,kpodr);
				ppline.cpodr:=kpodr;
				update current ppline;
				if getfirst katpodr where((ppline.cpodr==katpodr.nrec))=tsOk
				{
						rescanpanel(#ppline);
						rescanpanel(#katpodr);
				}
			  }
			  end;
		  }
		end;
	end;
end;
window wppgrformat 'Форматы'
	panel pppgrformat
		screen sppgrformat
		    fields
    		  ppgrformat.name:noprotect;
			  ppgrformat.kod:noprotect ;
<<
    Наименование формата .@@@@@@@@@@@@@@@@@@@@@@@@@@
    Код формата(1-размер).@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
	    end;
		handleevent
		  cmCheckField:
		  {
			case curfield of
			  #ppgrformat.name:
			  {
				update current ppgrformat;
				rescanpanel(#ppgrformat);
			  }
			  #ppgrformat.kod:
			  {
				update current ppgrformat;
				rescanpanel(#ppgrformat);
			  }
			  end;
		  }
		end;
	end;
end;
window wppstatus 'Статусы'
	panel pppstatus
	    screen sppstatus
		    fields
        	   ppstatus.name:noprotect;
<<
Наименование статуса     .@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
	   end;
	   handleevent
		 cmCheckField:
		 {
		   case curfield of
			 #ppstatus.name:
			 {
			   update current ppstatus;
			   rescanpanel(#ppstatus);
			 }
			 end;
		 }
	   end;
	end;
end;
window wgroup 'Группа МЦ'
show at (,,14,);
		  panel pgroup
		   browse bgroup
		   	table groupmc,cartesian;
			   fields
		   			groupmc.name 'Наименование группы':[12];
		   end;
		  end;
end;
window wmc 'Выбор реальных МЦ';
function MyTable_Add(add_n: comp): boolean;
  {
	  //clearbuffer(#mytable);
	  if (getFirst marktable where ((add_n == marktable.cmcNrec)) = tsOk)
	  {
	  delete current marktable;
	  }
	  else
	  {

		  marktable.cmcNrec := add_n;
		  if insert current marktable <> tsOk
		  {
			message(''#3'Ошибка добавления записи в таблицу MyTable');
			MyTable_Add := false;
		  }
		  else
		  {
			MyTable_Add := true;
			//message(add_n+' '+add_name);
		  }
	  }
   }
 panel pwMC
  browse bwMC (,,Sci1478EscIns)
  table k4,cartesian;
 fields
 	k4.name 'Реальные МЦ';
end;
end
handleEvent
		cmMarkRec :
		{
//			i:=0;


			MyTable_Add(k4.nrec);
			RescanPanel(#k4); // обновить панель

			//else if (recMarker.count>5)
/*			if( getfirst marktable = tsOk )
						{
								do
								{
								i:=i+1;

								} while ( getnext marktable = tsOk );
						}*/
						//message ('i= '+i);

		}
end;
end;
window wrmc 'Список реальных МЦ'
 panel prMC
  browse brMC
  table k3,cartesian;
 fields
 	k3.name 'Выбранные МЦ';
end;
end
end;

window wetalon;
Show At (,,93,25);;
panel petalon
 screen setalon (,,Sci1478EscIns)
    show at (,,,8);
 table ppkatstan;
  fields
  	ppkatstan.name:noprotect;
  	k1.name:protect,pickbutton;
	groupmc.name:protect,pickbutton;
  buttons
	cmRealMC;
<<
    МЦ          .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Эталон МЦ   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Группа МЦ   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 			<.~в~ыбор МЦ.>


>>
end;
  browse  betalon2 (,,Sci1478EscIns);
      show at (,9,,);
	fields
		realmc.k2.name:protect;
  end;
	handleevent
		cmCheckField:
		{
			 case CurField of
				 #ppkatstan.name:
				 {
					 update current ppkatstan;
					 rescanpanel(#ppkatstan);
				 }
			 end;
		}
	end;
end;
	handleevent
	  	cmInit:
	  		{
			  ketalon2:=k1.nrec;
			  kgroupmc2:=groupmc.nrec;
			  kstan2:=ppkatstan.atl_nrec;
			  rescanpanel(#realmc.k2);
//			  setformat(betalon2);
			}
		cmPick:
		{
				  UpdateTable();
 				  case CurField of
					#k1.name:
					{
						res:=  RunInterface(PickKatMC,ketalon);
			  			ppkatstan.cmc:=ketalon;
			  			update current ppkatstan;
								if getfirst k1 where((ppkatstan.cmc==k1.nrec))=tsOk
								{
								}
						rescanpanel(#ppkatstan);
						rescanpanel(#k1);
	     			}
					#groupmc.name:
					{
						res:=  RunInterface(PickGroupMC,kgroup);
						ppkatstan.cgroupmc:=kgroup;
						update current ppkatstan;
						if getfirst groupmc where((ppkatstan.cgroupmc==groupmc.nrec))=tsOk
						{
						        rescanpanel(#ppkatstan);
								rescanpanel(#groupmc);
						}

					}
					end;

		}
		cmRealMC:
		{
			RunWindow(wmc);
		}
				cmClose:
				{
						  //clearbuffer(sCorPPlan);
						  //update current pptitle;

				}
	end;
end;


window mc
 show at (,,93,25);
 panel pMc
 show at (,,,);
 browse bMc(,,Sci1478EscIns)
	table ppkatstan;
	recMarker {k2.nrec};
	 fields
	 		ppkatstan.name 'МЦ(Э,Л)':[10],protect;
	 		k1.name 'Эталон':[10],protect;
//			k2.name 'МЦ обычная':[20],protect;
	 		groupmc.name'Группа Мц':[15],protect;

 end;

 end;
 handleEvent
			cmEdit:
				{
				   RunWindowModal(wetalon);
				}
 end;
 end;

window status
	  show at (,,93,25);
	  panel pstatus
	  show at (,,,);
	  browse bstatus(,,Sci1478EscIns)
		 table ppstatus,cartesian;
		 recMarker {ppstatus.atl_nrec};
		  fields
		  	ppstatus.name 'Статус документа':[10],protect;
	  end;
	  end;
	handleevent
			cmEdit:
			{
			   RunWindowModal(wppstatus);
			}
		end;

end;
window format
show at (,,7,);
 panel pformat
  browse bformat (,,Sci1478EscIns)
   table ppgrformat, cartesian
   fields
   	ppgrformat.name 'Формат':[5],protect;
   end;
end;
	handleevent
			cmEdit:
			{
			   RunWindowModal(wppgrformat);
			}
		end;
end;
window line
show at(,,7,);
 panel pline
  browse bline (,,Sci1478EscIns);
   		table ppline, cartesian
   		fields
              ppline.name 'Линия':[5],protect;
  end;
end;
	handleevent
			cmEdit:
			{
			   RunWindowModal(wppline);
			}
		end;
end;


	screen sServe
		  show at(,,,);
		buttons
			cmMC;
			cmStatus;
			cmFormat;
			cmLine;
<<
	     <.МЦ.>

	   <.Статусы.>

	   <.Форматы.>

	    <.Линии.>
>>
	end;

	handleevent
	 	cmInit:
	 		{
				SomeWindowNumber:=mc;
				SomeWindowNumber2:=status;
				SomeWindowNumber3:=format;
				SomeWindowNumber4:=line;
				SomeWindowNumber5:=wetalon;
				SomeWindowNumber6:=wmc;
				SomeWindowNumber7:=wrmc;
				SomeWindowNumber8:=wgroup;
				SomeWindowNumber9:=wppstatus;
				SomeWindowNumber10:=wppgrformat;
				SomeWindowNumber11:=wppline;
//				SomeWindowNumber20:=PickKatMC;
//				SomeWindowNumber21:=PickGroupMC;
			}
		cmMC:
			{
			 	RunWindowModal(mc);
				//RunAnyView('window mc',false);
			}
		cmStatus:
			{
			 	RunWindowModal(status);
				//RunAnyView('window status',false);
			}
		cmFormat:
			{
			 	RunWindowModal(format);
				//RunAnyView('interface iServePlan::format',false);
			}
		cmLine:
			{
			 	RunWindowModal(line);
				//RunAnyView('interface iServePlan::line',false);
			}
	end;
end.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не отображается брауз

Сообщение edward_K »

из того что увидел K2 у вас не главная табла. объясните нафига вам в броузе cartesian?
сделайте пример строк на 100. отлате механизм, потом уже напихивайте навороты. Искать глюки в полном варианте ни у кого нет времени.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Не отображается брауз

Сообщение BlazeBio »

Предполагалось, что изначально будеут выводится все строки, в которых каждому эталону МЦ (k1) будет соответвовать все реальные МЦ ссылающиеся через таблиц ppkastanmc и ppkatstan(реальная МЦ и эталон находятся в одной таблице и отличаются по isarch=7(эталон) ), а без cartesian выводилась только одна строка вместо множества связанных. Но сейчас я убрал поле k2.name в browse bMc, так как посчитал ненужным. Пытался вставлять k2.name в browse betalon2, но при перемещении по списку перемещалься курсор и в browse bMc, при чём просто перемещался независимо от связи с k2. Поэтому создал ещё дополнительное view realmc для того, чтобы отобразить все МЦ связанные с ppkatstan (здесь подгруппы эталона МЦ). Но оказалось, что отображаются пустые строки. Вот и думаю в чём тут косяк.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не отображается брауз

Сообщение edward_K »

vip не очень рассчитан на показ элементов по другим логическим таблицам(уж в table точно нельзя писать). Разбирайтесь c вашей главной вьюхой и уберите атрибут для k2. Пытайтесь писать проще и все будет нормально. В конце концов есть встраиваемый фейсы.
Ответить