Страница 4 из 6

Re: Параметры интерфейса

Добавлено: 18 июл 2014, 16:52
Руслан
Переделал view, вторая запись одинаковая не создается, но если в другом документе выбирать МЦ, то в первом МЦ пропадает...

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

!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
 show   at   (,,92,25);
	const
	  cmPrintDoc = 3440;
	end;
 var
 	nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
	pptitlenrec,unitm:comp;
	wkl,grant_s, check_del, checkspecif,check_screen:boolean;
 	 res,check_i : word;
	 nmc:string;
	 pdate, pbdate, pedate : date;
	 statusnnrec:comp;
	 UnMea,plancopy:string;
	 somewindow:longint;
	 n:longint;
	 begindate,enddate:date;
	 sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
	 sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
	 sum_vstavka,vstavka1,vstavka2,vstavka3:double;
	 maxi,maxs:word;
	 butpick:longInt;
	 nomer_plana,formatname:string;
	 linia_name,podrasd,titlenpp:string;
	 status_plana,old_status,old_linia :comp;

create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
	x:integer;
	fldselect:longint;
	linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
 as select katpodr.name,normzapas.npp, *
from normzapas, katpodr,katmc, x$users, katpodr katpodr_2//, katmc katmc_2
where((	normzapas.cpodrazd==katpodr.nrec
   		and normzapas.cmc==katmc.nrec
	    and normzapas.atl_owner==x$users.atl_nrec
	    and katpodrnrec == katpodr_2.nrec
	    and pmc == katmc.nrec
		))
		order by normzapas.npp;

window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
handleevent
    cmPrintDoc:
												{
												   UpdateTable();
												   res:=RunInterface('ireport',titlenrec);
												}
end;
			screen sCornormzapas(,,sci1EnEsc); //SciAqaSwitchItemName
			show at (,,,10);
			table katpodr;
			bevel be1 {1,0,110,10,bsRaised, bsFrame};
				fields
					normzapas.pdate :noprotect;
					normzapas.pbdate:noprotect;
					normzapas.pedate:noprotect;
					normzapas.npp:noprotect,noPickButton; //:noprotect; //(,,sciAQACancel1)
					katpodr.name :pickButton, protect;
					status  : [ list 'item 1', 'item 2', 'item 3' ];

<<

                     Дата         Начало действия         Конец действия
                    .@@@@@@@@@      .@@@@@@@@@            .@@@@@@@@@
                    Номер            Структурное подразделение
		            .@@@@@@@@@@@@   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Статус  .@@@@@@@@@@@@@@@@@@@@@
>>
			end;
!			browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
				browse bCornormzapas(,,sci1478EnEscTreeI )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
						show at (,11,,22)
							  table katmc;
			 fields
					katmc.name 'Наименование МЦ' : [20], pickButton;
					normzapas.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
			end;
!         tableevent table normzapas
!											cminsertrecord:
!											{
!											insert current normzapas;
!											UpDatePanels();
!											}
!											cmDeleteRecord :
!											 {
!											Delete Current normzapas;
!											 }
!		 end;
end;

						  browse bnormzapas(,,Sci178EnEsc)
							  table normzapas;
							  fields
								  normzapas.pdate   'Дата' : [15] , protect, noAutoSize;
 								  normzapas.npp   'Номер' : [25], protect, noAutoSize;
								  katpodr.name   'Подразделение' : [25] , protect, noAutoSize;
							      x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
						  end;
						   //end;
						  tableevent table normzapas

							 cmSetDefault: {
														normzapas.pdate:=Cur_Date();
														normzapas.cpodrazd:=0;
														normzapas.npp := 1;
														SetModified(true);
														UpDateTableWithInserted
														 PutCommand(cmDefault);
											}
							cmUpdateRecord :{ //if grant_s=false
							  					//{
												  	update current normzapas;
												//}
										 	}
							cmInsertRecord :{
							   					insert current normzapas;
												UpDatePanels();
											}
							cmDeleteRecord :
							{
							  if Message('Удалить нормы?', yesButton + noButton) = cmYes
								{
								    Delete Current normzapas;
								}

							}
							cmCheckRecord:
 							{
									MakeValid(#normzapas);
									if isvalid(#normzapas)
											{
									update current normzapas;
											}
									if isnew
											{
									Putcommand(cmInsertRecord);
											}

							}
							cmCheckField:
							  {
									updatetable;
									SetModified(true);
									  case CurField of
										#normzapas.pbdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pedate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.npp:
										{
									  	  update current normzapas;
										  RescanPanel(#normzapas);
										}
										end;
							  }
							end;

							handleEvent
										cmInit:
										{
										 RescanPanel(Scornormzapas);
										   Rescanpanel(#normzapas);
										}
									cmPick:
									{
											  Updatetable();
											  case CurField of
												#katpodr.name:
												{
												  katpodrnrec:=normzapas.cpodrazd;
												  res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
												  normzapas.cpodrazd:=katpodrnrec
												  update current normzapas;
												if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
												  {
												  }
												  RescanPanel(#normzapas);
												}
												#katmc.name:
												{
												pmc := normzapas.cmc;
												res := runinterface('L_MCU::GetSomeMC_KatMC', pmc, false, -12345);//вызов интерфейса выбора МЦ без ввода количества
!												res := runinterface('L_MCU::GetSomeMC', pmc);
!												res := runinterface('iGetKau.GetCodeKau', pmc);
												normzapas.cmc := pmc;
												update current normzapas;
												if getfirst katmc where((normzapas.cmc==katmc.nrec))=tsOk
												  {
												  }
												RescanPanel(#normzapas);
												}
											  end;
										}
										cmCheckField : update current normzapas;
									cmCancel:
									{
									}
									cmPrintDoc:
											{
											   UpdateTable();
											   res:=RunInterface('ireport',titlenrec);
											}
									cmClose:
									{
									   CloseWindow(cmDefault);
									}
									cmDefault:
									{
										   PutCommand(cmCheckField);
										   runwindowmodal(NormCorrect);
									  Rescanpanel(#normzapas);
									}
									cmInsert:
									{
!			   message('cminsert1');
!			titlenrec:=normzapas.atl_nrec;
!			maxs:=normzapas.npp;
!			specnrec:=normzapas.npp;
!!			_loop normzapas where ((titlenrec==normzapas.atl_nrec))
!!			{
!			   if (maxs<normzapas.npp) or (maxs=normzapas.npp)
!			   {
!			   message('cminsert2');
!			   normzapas.npp:=normzapas.npp+1;
!				  	update current normzapas;
!			   }
!//			   maxs:=maxs+1;
!!			}
!			maxs:=maxs+1;
									}
									cmDelete:
									{

									}
									cmDone:
									{
										  rescanpanel(#normzapas);
									}
							end;
end.


Re: Параметры интерфейса

Добавлено: 20 июл 2014, 13:34
edward_K
1. Выведите normzapas.cmc
2. Уберите get fist katmc - это лишнее обычно
3. Интересно чего вы хотели добиться с броусом по katmc? Очень редко главной таблицей элемента объявляют справочник и то когда это просто параметры чего либо. Если это спецификация то должна быть вторая таблица - это азы построения нормальной базы. Если нет то зачем он вообще нужен?

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 12:12
Руслан
Создал таблицу со спецификацией normzapasspec. Только не пишет в эту таблицу ничего. Как связать эти таблы?

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

!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
 show   at   (,,92,25);
	const
	  cmPrintDoc = 3440;
	end;
 var
 	nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
	pptitlenrec,unitm:comp;
	wkl,grant_s, check_del, checkspecif,check_screen:boolean;
 	 res,check_i : word;
	 nmc:string;
	 pdate, pbdate, pedate : date;
	 statusnnrec:comp;
	 UnMea,plancopy:string;
	 somewindow:longint;
	 n:longint;
	 begindate,enddate:date;
	 sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
	 sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
	 sum_vstavka,vstavka1,vstavka2,vstavka3:double;
	 maxi,maxs:word;
	 butpick:longInt;
	 nomer_plana,formatname:string;
	 linia_name,podrasd,titlenpp:string;
	 status_plana,old_status,old_linia :comp;

create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
	x:integer;
	fldselect:longint;
	linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
 as select katpodr.name,normzapas.npp, *
from normzapas, normzapasspec, katpodr, katmc, x$users, katpodr katpodr_2//, katmc katmc_2
where((	normzapas.cpodrazd==katpodr.nrec
        and normzapasspec.cnorm == normzapas.atl_nrec								
   		and normzapasspec.cmc==katmc.nrec
	    and normzapas.atl_owner==x$users.atl_nrec
	    and katpodrnrec == katpodr_2.nrec
!	    and katmc.nrec == katmc_2.nrec
		and pmc == katmc.nrec
		))
		order by normzapas.npp;

window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
handleevent
    cmPrintDoc:
												{
												   UpdateTable();
												   res:=RunInterface('ireport',titlenrec);
												}
end;
			screen sCornormzapas(,,sci1EnEsc); //SciAqaSwitchItemName
			show at (,,,10);
			table katpodr;
			bevel be1 {1,0,110,10,bsRaised, bsFrame};
				fields
					normzapas.pdate :protect;
					normzapas.pbdate:noprotect;
					normzapas.pedate:noprotect;
					normzapas.npp:protect,noPickButton; //:noprotect; //(,,sciAQACancel1)
					katpodr.name :pickButton, protect;
					status  : [ list 'item 1', 'item 2', 'item 3' ];

<<

                     Дата         Начало действия         Конец действия
                    .@@@@@@@@@      .@@@@@@@@@            .@@@@@@@@@
                    Номер            Структурное подразделение
		            .@@@@@@@@@@@@   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Статус  .@@@@@@@@@@@@@@@@@@@@@
>>
			end;
!			browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
				browse bCornormzapas(,,sci1478EnEscTreeI )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
						show at (,11,,22)
							  table katmc;
			 fields
					katmc.name 'Наименование МЦ' : [20], pickButton;
					normzapasspec.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
			end;
!         tableevent table normzapas
!											cminsertrecord:
!											{
!											insert current normzapas;
!											UpDatePanels();
!											}
!											cmDeleteRecord :
!											 {
!											Delete Current normzapas;
!											 }
!		 end;
end;

						  browse bnormzapas(,,Sci178EnEsc)
							  table normzapas;
							  fields
								  normzapas.pdate   'Дата' : [15] , protect, noAutoSize;
 								  normzapas.npp   'Номер' : [25], protect, noAutoSize;
								  katpodr.name   'Подразделение' : [25] , protect, noAutoSize;
							      x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
						  end;
						   //end;
						  tableevent table normzapas

							 cmSetDefault: {
														normzapas.pdate:=Cur_Date();
														normzapas.cpodrazd:=0;
														normzapas.npp := 1;
														SetModified(true);
														UpDateTableWithInserted
														 PutCommand(cmDefault);
											}
							cmUpdateRecord :{ //if grant_s=false
							  					//{
												  	update current normzapas;
												//}
										 	}
							cmInsertRecord :{
							   					insert current normzapas;
												UpDatePanels();
											}
							cmDeleteRecord :
							{
							  if Message('Удалить нормы?', yesButton + noButton) = cmYes
								{
								    Delete Current normzapas;
								}

							}
							cmCheckRecord:
 							{
									MakeValid(#normzapas);
									if isvalid(#normzapas)
											{
									update current normzapas;
											}
									if isnew
											{
									Putcommand(cmInsertRecord);
											}

							}
							cmCheckField:
							  {
									updatetable;
									SetModified(true);
									  case CurField of
										#normzapas.pbdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pedate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.npp:
										{
									  	  update current normzapas;
										  RescanPanel(#normzapas);
										}
										end;
							  }
							end;

							handleEvent
										cmInit:
										{
										 RescanPanel(Scornormzapas);
										   Rescanpanel(#normzapas);
										}
									cmPick:
									{
											  Updatetable();
											  case CurField of
												#katpodr.name:
												{
												  katpodrnrec:=normzapas.cpodrazd;
												  res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
												  normzapas.cpodrazd:=katpodrnrec
												  update current normzapas;
												if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
												  {
												  }
												  RescanPanel(#normzapas);
												}
												#katmc.name:
												{
												pmc := normzapasspec.cmc;
												res := runinterface('L_MCU::GetSomeMC_KatMC', pmc, false, -12345);//вызов интерфейса выбора МЦ без ввода количества
!												res := runinterface('L_MCU::GetSomeMC', pmc);
!												res := runinterface('iGetKau.GetCodeKau', pmc);
												normzapasspec.cmc := pmc;
												update current normzapasspec;
												if getfirst katmc where((normzapasspec.cmc==katmc.nrec))=tsOk
												  {
												  }
												RescanPanel(#normzapasspec);
												}
											  end;
										}
										cmCheckField : update current normzapas;
									cmCancel:
									{
									}
									cmPrintDoc:
											{
											   UpdateTable();
											   res:=RunInterface('ireport',titlenrec);
											}
									cmClose:
									{
									   CloseWindow(cmDefault);
									}
									cmDefault:
									{
										   PutCommand(cmCheckField);
										   runwindowmodal(NormCorrect);
									  Rescanpanel(#normzapas);
									}
									cmInsert:
									{
!			   message('cminsert1');
!			titlenrec:=normzapas.atl_nrec;
!			maxs:=normzapas.npp;
!			specnrec:=normzapas.npp;
!!			_loop normzapas where ((titlenrec==normzapas.atl_nrec))
!!			{
!			   if (maxs<normzapas.npp) or (maxs=normzapas.npp)
!			   {
!			   message('cminsert2');
!			   normzapas.npp:=normzapas.npp+1;
!				  	update current normzapas;
!			   }
!//			   maxs:=maxs+1;
!!			}
!			maxs:=maxs+1;
									}
									cmDelete:
									{

									}
									cmDone:
									{
										  rescanpanel(#normzapas);
									}
							end;
end.


Re: Параметры интерфейса

Добавлено: 21 июл 2014, 15:02
edward_K
Ну раз это разные таблицы то и обработка должна быть своя - также как и у normzapas
У вас должен быть раздел tableevent table normzapasspec - c аналогичными событиями(но код чутка другой).
вот это
and normzapasspec.cnorm == normzapas.atl_nrec
надо писать так
and normzapas.atl_nrec == normzapasspec.cnorm
в cmSetDefault по этой табле должно быть
set normzapasspec.cnorm :=normzapas.atl_nrec
browse не по katmc а по normzapasspec!

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 16:38
Руслан
Переделал view, сделал browse по таблице normzapasspec, tableevent по таблице normzapasspec, cmsetdefault с присвоением полю cnorm nrec таблицы normzapas. Но во-первых не присваивает количество и во-вторых МЦ отображает только в последнем выбранном документе. В базе по всем записям ссылки на МЦ есть, но в интерфейсе отображает только последнюю.

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

!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
 show   at   (,,92,25);
	const
	  cmPrintDoc = 3440;
	end;
 var
 	nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
	pptitlenrec,unitm:comp;
	wkl,grant_s, check_del, checkspecif,check_screen:boolean;
 	 res,check_i : word;
	 nmc:string;
	 pdate, pbdate, pedate : date;
	 statusnnrec:comp;
	 UnMea,plancopy:string;
	 somewindow:longint;
	 n:longint;
	 begindate,enddate:date;
	 sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
	 sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
	 sum_vstavka,vstavka1,vstavka2,vstavka3:double;
	 maxi,maxs:word;
	 butpick:longInt;
	 nomer_plana,formatname:string;
	 linia_name,podrasd,titlenpp:string;
	 status_plana,old_status,old_linia :comp;

create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
	x:integer;
	fldselect:longint;
	linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
 as select katpodr.name,normzapas.npp, *
from normzapas, normzapasspec, katpodr, katmc, x$users, katpodr katpodr_2//, katmc katmc_2
where((	normzapas.cpodrazd==katpodr.nrec
        and normzapas.atl_nrec == normzapasspec.cnorm								
   		and normzapasspec.cmc==katmc.nrec
	    and normzapas.atl_owner==x$users.atl_nrec
	    and katpodrnrec == katpodr_2.nrec
!	    and katmc.nrec == katmc_2.nrec
		and pmc == katmc.nrec
		))
		order by normzapas.npp;

window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
handleevent
    cmPrintDoc:
												{
												   UpdateTable();
												   res:=RunInterface('ireport',titlenrec);
												}
end;
			screen sCornormzapas(,,sci1EnEsc); //SciAqaSwitchItemName
			show at (,,,10);
			table katpodr;
			bevel be1 {1,0,110,10,bsRaised, bsFrame};
				fields
					normzapas.pdate :protect;
					normzapas.pbdate:noprotect;
					normzapas.pedate:noprotect;
					normzapas.npp:protect,noPickButton; //:noprotect; //(,,sciAQACancel1)
					katpodr.name :pickButton, protect;
					status  : [ list 'item 1', 'item 2', 'item 3' ];

<<

                     Дата         Начало действия         Конец действия
                    .@@@@@@@@@      .@@@@@@@@@            .@@@@@@@@@
                    Номер            Структурное подразделение
		            .@@@@@@@@@@@@   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Статус  .@@@@@@@@@@@@@@@@@@@@@
>>
			end;
!			browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
				browse bCornormzapas(,,sci1478EnEscTreeI )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
						show at (,11,,22)
							  table normzapasspec;
			 fields
					katmc.name 'Наименование МЦ' : [20], pickButton;
					normzapasspec.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
			end;
         tableevent table normzapasspec
										 cmSetDefault:
										 {
										 set normzapasspec.cnorm :=normzapas.atl_nrec
										 }
											cminsertrecord:
											{
											insert current normzapasspec;
											UpDatePanels();
											}
											cmDeleteRecord :
											 {
											Delete Current normzapasspec;
											 }
		 end;
end;

						  browse bnormzapas(,,Sci178EnEsc)
							  table normzapas;
							  fields
								  normzapas.pdate   'Дата' : [15] , protect, noAutoSize;
 								  normzapas.npp   'Номер' : [25], protect, noAutoSize;
								  katpodr.name   'Подразделение' : [25] , protect, noAutoSize;
							      x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
						  end;
						   //end;
						  tableevent table normzapas

							 cmSetDefault: {
														normzapas.pdate:=Cur_Date();
														normzapas.cpodrazd:=0;
														normzapas.npp := 1;
														SetModified(true);
														UpDateTableWithInserted
														 PutCommand(cmDefault);
											}
							cmUpdateRecord :{ //if grant_s=false
							  					//{
												  	update current normzapas;
												//}
										 	}
							cmInsertRecord :{
							   					insert current normzapas;
												UpDatePanels();
											}
							cmDeleteRecord :
							{
							  if Message('Удалить нормы?', yesButton + noButton) = cmYes
								{
								    Delete Current normzapas;
								}

							}
							cmCheckRecord:
 							{
									MakeValid(#normzapas);
									if isvalid(#normzapas)
											{
									update current normzapas;
											}
									if isnew
											{
									Putcommand(cmInsertRecord);
											}

							}
							cmCheckField:
							  {
									updatetable;
									SetModified(true);
									  case CurField of
										#normzapas.pbdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pedate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.npp:
										{
									  	  update current normzapas;
										  RescanPanel(#normzapas);
										}
										end;
							  }
							end;

							handleEvent
										cmInit:
										{
										 RescanPanel(Scornormzapas);
										   Rescanpanel(#normzapas);
										}
									cmPick:
									{
											  Updatetable();
											  case CurField of
												#katpodr.name:
												{
												  katpodrnrec:=normzapas.cpodrazd;
												  res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
												  normzapas.cpodrazd:=katpodrnrec
												  update current normzapas;
												if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
												  {
												  }
												  RescanPanel(#normzapas);
												}
												#katmc.name:
												{
												pmc := normzapasspec.cmc;
												res := runinterface('L_MCU::GetSomeMC_KatMC', pmc, false, -12345);//вызов интерфейса выбора МЦ без ввода количества
!												res := runinterface('L_MCU::GetSomeMC', pmc);
!												res := runinterface('iGetKau.GetCodeKau', pmc);
												normzapasspec.cmc := pmc;
												update current normzapasspec;
												if getfirst katmc where((normzapasspec.cmc==katmc.nrec))=tsOk
												  {
												  }
												RescanPanel(#normzapasspec);
												}
											  end;
										}
										cmCheckField : update current normzapas;
									cmCancel:
									{
									}
									cmPrintDoc:
											{
											   UpdateTable();
											   res:=RunInterface('ireport',titlenrec);
											}
									cmClose:
									{
									   CloseWindow(cmDefault);
									}
									cmDefault:
									{
										   PutCommand(cmCheckField);
										   runwindowmodal(NormCorrect);
									  Rescanpanel(#normzapas);
									}
									cmInsert:
									{
!			   message('cminsert1');
!			titlenrec:=normzapas.atl_nrec;
!			maxs:=normzapas.npp;
!			specnrec:=normzapas.npp;
!!			_loop normzapas where ((titlenrec==normzapas.atl_nrec))
!!			{
!			   if (maxs<normzapas.npp) or (maxs=normzapas.npp)
!			   {
!			   message('cminsert2');
!			   normzapas.npp:=normzapas.npp+1;
!				  	update current normzapas;
!			   }
!//			   maxs:=maxs+1;
!!			}
!			maxs:=maxs+1;
									}
									cmDelete:
									{

									}
									cmDone:
									{
										  rescanpanel(#normzapas);
									}
							end;
end.


Re: Параметры интерфейса

Добавлено: 21 июл 2014, 16:45
edward_K
э. а вот это что за хрень - and pmc == katmc.nrec
. Вы логи то компиляции смотрите или нет? vip_res.log
и нет события cmUpdateRecord с update current .... ; по обоим таблам. Кол-во просто не сохраняется?

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 17:02
Руслан
and pmc == katmc.nrec - pmc - это параметр передаваемый в интерфейсе L_MCU::GetSomeMC_KatMC. В логах ничего нет. Количество просто в базе не сохраняет.

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 17:41
edward_K
Да ладно нет - должно быть типа этот узел уже поцеплен. Закоменьте эту строку.
Добавьте в vip.cfg

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

[Compilers] 
! Уровень выдачи диагностики (0-только Error, 1-Warning и Error, 2-все : Warning, Info, Error)
  ErrorLevel=2 

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 18:00
Руслан
А ну да, такое предупреждение есть: Узел уже подцеплен на == по этому полю в этом ограничении. Я думал это ничего существенного...

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 18:04
Руслан
Закомментил строку с pmc == katmc.nrec и стали нормально отображаться МЦ. Количество по-прежнему не сохраняется.

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

!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
 show   at   (,,92,25);
	const
	  cmPrintDoc = 3440;
	end;
 var
 	nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
	pptitlenrec,unitm:comp;
	wkl,grant_s, check_del, checkspecif,check_screen:boolean;
 	 res,check_i : word;
	 nmc:string;
	 pdate, pbdate, pedate : date;
	 statusnnrec:comp;
	 UnMea,plancopy:string;
	 somewindow:longint;
	 n:longint;
	 begindate,enddate:date;
	 sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
	 sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
	 sum_vstavka,vstavka1,vstavka2,vstavka3:double;
	 maxi,maxs:word;
	 butpick:longInt;
	 nomer_plana,formatname:string;
	 linia_name,podrasd,titlenpp:string;
	 status_plana,old_status,old_linia :comp;

create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
	x:integer;
	fldselect:longint;
	linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
 as select katpodr.name,normzapas.npp, *
from normzapas, normzapasspec, katpodr, katmc, x$users, katpodr katpodr_2//, katmc katmc_2
where((	normzapas.cpodrazd==katpodr.nrec
        and normzapas.atl_nrec == normzapasspec.cnorm								
   		and normzapasspec.cmc==katmc.nrec
	    and normzapas.atl_owner==x$users.atl_nrec
	    and katpodrnrec == katpodr_2.nrec
!	    and katmc.nrec == katmc_2.nrec
!		and pmc == katmc.nrec
		))
		order by normzapas.npp;

window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
handleevent
    cmPrintDoc:
												{
												   UpdateTable();
												   res:=RunInterface('ireport',titlenrec);
												}
end;
			screen sCornormzapas(,,sci1EnEsc); //SciAqaSwitchItemName
			show at (,,,10);
			table katpodr;
			bevel be1 {1,0,110,10,bsRaised, bsFrame};
				fields
					normzapas.pdate :protect;
					normzapas.pbdate:noprotect;
					normzapas.pedate:noprotect;
					normzapas.npp:protect,noPickButton; //:noprotect; //(,,sciAQACancel1)
					katpodr.name :pickButton, protect;
					status  : [ list 'item 1', 'item 2', 'item 3' ];

<<

                     Дата         Начало действия         Конец действия
                    .@@@@@@@@@      .@@@@@@@@@            .@@@@@@@@@
                    Номер            Структурное подразделение
		            .@@@@@@@@@@@@   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Статус  .@@@@@@@@@@@@@@@@@@@@@
>>
			end;
!			browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
				browse bCornormzapas(,,sci1478EnEscTreeI )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
						show at (,11,,22)
							  table normzapasspec;
			 fields
					katmc.name 'Наименование МЦ' : [20], pickButton;
					normzapasspec.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
			end;
         tableevent table normzapasspec
										 cmSetDefault:
										 {
										 set normzapasspec.cnorm :=normzapas.atl_nrec
										 }
											cminsertrecord:
											{
											insert current normzapasspec;
											UpDatePanels();
											}
											cmDeleteRecord :
											 {
											Delete Current normzapasspec;
											 }
		 end;
end;

						  browse bnormzapas(,,Sci178EnEsc)
							  table normzapas;
							  fields
								  normzapas.pdate   'Дата' : [15] , protect, noAutoSize;
 								  normzapas.npp   'Номер' : [25], protect, noAutoSize;
								  katpodr.name   'Подразделение' : [25] , protect, noAutoSize;
							      x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
						  end;
						   //end;
						  tableevent table normzapas

							 cmSetDefault: {
														normzapas.pdate:=Cur_Date();
														normzapas.cpodrazd:=0;
														normzapas.npp := 1;
														SetModified(true);
														UpDateTableWithInserted
														 PutCommand(cmDefault);
											}
							cmUpdateRecord :{ //if grant_s=false
							  					//{
												  	update current normzapas;
												//}
										 	}
							cmInsertRecord :{
							   					insert current normzapas;
												UpDatePanels();
											}
							cmDeleteRecord :
							{
							  if Message('Удалить нормы?', yesButton + noButton) = cmYes
								{
								    Delete Current normzapas;
								}

							}
							cmCheckRecord:
 							{
									MakeValid(#normzapas);
									if isvalid(#normzapas)
											{
									update current normzapas;
											}
									if isnew
											{
									Putcommand(cmInsertRecord);
											}

							}
							cmCheckField:
							  {
									updatetable;
									SetModified(true);
									  case CurField of
										#normzapas.pbdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pedate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.npp:
										{
									  	  update current normzapas;
										  RescanPanel(#normzapas);
										}
										end;
							  }
							end;

							handleEvent
										cmInit:
										{
										 RescanPanel(Scornormzapas);
										   Rescanpanel(#normzapas);
										}
									cmPick:
									{
											  Updatetable();
											  case CurField of
												#katpodr.name:
												{
												  katpodrnrec:=normzapas.cpodrazd;
												  res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
												  normzapas.cpodrazd:=katpodrnrec
												  update current normzapas;
												if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
												  {
												  }
												  RescanPanel(#normzapas);
												}
												#katmc.name:
												{
												pmc := normzapasspec.cmc;
												res := runinterface('L_MCU::GetSomeMC_KatMC', pmc, false, -12345);//вызов интерфейса выбора МЦ без ввода количества
!												res := runinterface('L_MCU::GetSomeMC', pmc);
!												res := runinterface('iGetKau.GetCodeKau', pmc);
												normzapasspec.cmc := pmc;
												update current normzapasspec;
												if getfirst katmc where((normzapasspec.cmc==katmc.nrec))=tsOk
												  {
												  }
												RescanPanel(#normzapasspec);
												}
											  end;
										}
										cmCheckField : update current normzapas;
									cmCancel:
									{
									}
									cmPrintDoc:
											{
											   UpdateTable();
											   res:=RunInterface('ireport',titlenrec);
											}
									cmClose:
									{
									   CloseWindow(cmDefault);
									}
									cmDefault:
									{
										   PutCommand(cmCheckField);
										   runwindowmodal(NormCorrect);
									  Rescanpanel(#normzapas);
									}
									cmInsert:
									{
!			   message('cminsert1');
!			titlenrec:=normzapas.atl_nrec;
!			maxs:=normzapas.npp;
!			specnrec:=normzapas.npp;
!!			_loop normzapas where ((titlenrec==normzapas.atl_nrec))
!!			{
!			   if (maxs<normzapas.npp) or (maxs=normzapas.npp)
!			   {
!			   message('cminsert2');
!			   normzapas.npp:=normzapas.npp+1;
!				  	update current normzapas;
!			   }
!//			   maxs:=maxs+1;
!!			}
!			maxs:=maxs+1;
									}
									cmDelete:
									{

									}
									cmDone:
									{
										  rescanpanel(#normzapas);
									}
							end;
end.


Re: Параметры интерфейса

Добавлено: 21 июл 2014, 18:34
edward_K
Ну а про cmUpdateRecord кто читать будет?

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 19:06
Руслан
edward_K писал(а):Ну а про cmUpdateRecord кто читать будет?
Сделал cmUpdateRecord, теперь все нормально, количество сохраняет. Но в спецификации по F7 не создает и по F8 не удаляет записи. В статус-лайне кнопки F7 и F8 есть, но они не работают

Re: Параметры интерфейса

Добавлено: 21 июл 2014, 19:35
Руслан
Поменял статус-лайн на Sci178EnEsc и заработало, удаляет и создает новые записи.

Re: Параметры интерфейса

Добавлено: 23 июл 2014, 16:56
Руслан
Пытаюсь делать список со статусами. Не присваивает наименование статусов из таблицы и не сохраняет nrec статуса в таблицу normzapas.

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

#include %src%\src\normzapas.vih;
#include %src%\src\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
 show   at   (,,92,25);
	const
	  cmPrintDoc = 3440;
	end;
 var
 	nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
	pptitlenrec,unitm:comp;
	wkl,grant_s, check_del, checkspecif,check_screen:boolean;
 	 res,check_i : word;
	 nmc:string;
	 pdate, pbdate, pedate : date;
	 statusnnrec:comp;
	 UnMea,plancopy:string;
	 somewindow:longint;
	 n:longint;
	 wValues: array [1..3] of word;
	 lValues: array [1..3] of comp;
	 sValues: array [1..1] of string;
	 begindate,enddate:date;
	 sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
	 sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
	 sum_vstavka,vstavka1,vstavka2,vstavka3:double;
	 maxi,maxs:word;
	 butpick:longInt;
	 nomer_plana,formatname:string;
	 linia_name,podrasd,titlenpp:string;
	 status_plana,old_status,old_linia :comp;
	 v1 : iSecurity_norm;

create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
	x:integer;
	fldselect:longint;
	linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
 as select katpodr.name,normzapas.npp, *
from normzapas, normzapasspec, katpodr, katmc, x$users, katpodr katpodr_2, ppstatus//, katmc katmc_2
where((	normzapas.cpodrazd==katpodr.nrec
        and normzapas.atl_nrec == normzapasspec.cnorm
   		and normzapasspec.cmc==katmc.nrec
!		and comp(userid) == normzapas.atl_owner
	    and normzapas.atl_owner==x$users.atl_nrec
	    and katpodrnrec == katpodr_2.nrec
!	    and katmc.nrec == katmc_2.nrec
!		and pmc == katmc.nrec
		))
		order by normzapas.npp;

window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
handleevent
    cmPrintDoc:
												{
												   UpdateTable();
												   res:=RunInterface('ireport',titlenrec);
												}
end;
			screen sCornormzapas(,,sci1EnEsc); //SciAqaSwitchItemName
			show at (,,,10);
			table katpodr;
			bevel be1 {1,0,110,10,bsRaised, bsFrame};
				fields
					normzapas.pdate :protect;
					normzapas.pbdate:noprotect;
					normzapas.pedate:noprotect;
					normzapas.npp:protect,noPickButton; //:noprotect; //(,,sciAQACancel1)
					katpodr.name :pickButton, protect;
!					status  : [ list 'item 1', 'item 2', 'item 3' ];
					status (,,SciAqaSwitchItemName) : [ list 'item 1', 'item 2', 'item 3' ];

<<

                     Дата         Начало действия         Конец действия
                    .@@@@@@@@@      .@@@@@@@@@            .@@@@@@@@@
                    Номер            Структурное подразделение
		            .@@@@@@@@@@@@   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Статус  .@@@@@@@@@@@@@@@@@@@@@
>>
			end;
!			browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
				browse bCornormzapas(,,Sci178EnEsc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc) sci1478EnEscTreeI
						show at (,11,,22)
							  table normzapasspec;
			 fields
					katmc.name 'Наименование МЦ' : [20], pickButton;
					normzapasspec.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
			end;
			procedure grants();
				{
												if(v1.fSecurityPolicy(sGetTune('USER.descr'),normzapas.atl_nrec,normzapas.cstatus) = FALSE )
													{
															cfsSetProp('bnormzapas','StatusCtx', Sci17EnEsc);
															cfsSetProp('bCornormzapas','StatusCtx',sciAQACancel1);
															cfsSetProp('status','StatusCtx',SciAqaSwitchItemName);
															SetFormat(sCornormzapas);
				   //										 cfsSetProp('sCorPPlan_nogrant','StatusCtx',sciAQACancel1);
														   // SetFieldOption(#ppspecif.npp,ofProtected);
															grant_s:=false;
			//												message('grant_s false');
													}
													else if(v1.fSecurityPolicy(sGetTune('USER.descr'),normzapas.atl_nrec,normzapas.cstatus) = true )
													{
													   if( getfirst x$users where (( sGetTune('USER.descr') == x$users.XU$LOGINNAME )) = tsOk )
													   {
				   //									   cfsSetCurrentContainer('Plan.PlanCorrect.sCorPPlan');
				   //									   cfsCreateObject('button', 'sCorPPlan', 'Etalons', false, butpick);
														   if (x$users.xu$type=1)
														   {
															 // SetFieldOption(#ppspecif.npp,ofSelectable);
				   //											 if (x$users.xu$type=1 and x$users.xu$loginname='pivovarchukaa')
				   //												 {
																	   //message('full_grants');
																	   cfsSetProp('Bnormzapas','StatusCtx',Sci178EnEsc);
																	   SetFormat(sCornormzapas);
																	   cfsSetProp('bCornormzapas','StatusCtx',Sci13478Esc);
																	   cfsSetProp('sCornormzapas','StatusCtx',SciAqaSwitchItemName);
				   //												 }
			//	   													   message('grant_s true');
														   }
														   else
														   {
															   //message('grants');
															   cfsSetProp('Bnormzapas','StatusCtx',Sci178EnEsc);
															   SetFormat(sCornormzapas);
															   cfsSetProp('bCornormzapas','StatusCtx',Sci13478Esc);
															   cfsSetProp('sCornormzapas','StatusCtx',SciAqaSwitchItemName);
														   }
																grant_s:=true;
													   }
													}
													rescanpanel(#normzapas);
				}
				procedure spisok2(prava:boolean);
				{
				var i,j:longint;
						 i:=1;
						 j:=0;
						 prava:=true;
						 titlenrec:=normzapas.atl_nrec;
						 if prava=true
						 {
							 n:=RecordsInTable(#ppstatus);
							 SetLimit(sValues,n);
							 SetLimit(lValues,n);
							 SetLimit(wValues,n);
							 _loop ppstatus
							 {
									 wValues[i] := j;
									 lValues[i] := ppstatus.atl_nrec;
									 sValues[i] := ppstatus.name;
									 i:=i+1;
									 j:=j+1;
									 message (sValues[i]);
							 }
						 }
						 else
						 {
							n:=RecordsInTable(#ppstatus)-1;
							SetLimit(sValues,n);
							SetLimit(lValues,n);
							SetLimit(wValues,n);
							_loop ppstatus
							{
							   if ppstatus.atl_nrec<>comp(281474976710657)
							   {
									wValues[i] := j;
									lValues[i] := ppstatus.atl_nrec;
									sValues[i] := ppstatus.name;
									i:=i+1;
									j:=j+1;
							   }
							}
						 }
						SetEnumList (sCornormzapas, #status, sValues,wValues);
!					SetEnumList (sCorPPlan_nogrant, #status, sValues,wValues);
!					SetEnumList (sCorPPlan_full_grants, #status, sValues,wValues);
			
					if getfirst ppstatus where((normzapas.cstatus==ppstatus.atl_nrec))=tsOk
					{
					   n:=n+1;
					for (i:=1;i<n;i++)
						{
							if ppstatus.atl_nrec=lValues[i]
							{
			
							 selectFieldInFormat(sCornormzapas ,#status);
							 status:=wValues[i];
!							 selectFieldInFormat(sCorPPlan_nogrant ,#status);
!							 status:=wValues[i];
!							 selectFieldInFormat(sCorPPlan_full_grants ,#status);
!							 status:=wValues[i];
							}
			
						}
					}
					else
					{
					set status:=wValues[1];
					}
					old_status:=lValues[status+1];
					RescanPanel(sCornormzapas);
!					RescanPanel(sCorPPlan_nogrant);
!					RescanPanel(sCorPPlan_full_grants);
					  Rescanpanel(#normzapasspec);
					  Rescanpanel(#normzapas);
				}
         tableevent table normzapasspec
										 cmSetDefault:
										 {
										 set normzapasspec.cnorm :=normzapas.atl_nrec
										 }
										 cmUpdateRecord :
										 { //if grant_s=false
																						 //{
										  update current normzapasspec;
																		 //}
										 }
											cminsertrecord:
											{
											insert current normzapasspec;
											UpDatePanels();
											}
											cmDeleteRecord :
											 {
											Delete Current normzapasspec;
											 }
		 end;
end;

						  browse bnormzapas(,,Sci178EnEsc)
							  table normzapas;
							  fields
								  normzapas.pdate   'Дата' : [15] , protect, noAutoSize;
 								  normzapas.npp   'Номер' : [25], protect, noAutoSize;
								  katpodr.name   'Подразделение' : [25] , protect, noAutoSize;
							      x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
						  end;
						   //end;
						  tableevent table normzapas

							 cmSetDefault: {
														normzapas.pdate:=Cur_Date();
														normzapas.cpodrazd:=0;
														normzapas.npp := 1;
														SetModified(true);
														UpDateTableWithInserted
														 PutCommand(cmDefault);
											}
							cmUpdateRecord :{ //if grant_s=false
							  					//{
												  	update current normzapas;
												//}
										 	}
							cmInsertRecord :{
							   					insert current normzapas;
!							                    insert current normzapasspec;
												UpDatePanels();
											}
							cmDeleteRecord :
							{
							  if Message('Удалить нормы?', yesButton + noButton) = cmYes
								{
								    Delete Current normzapas;
								Delete Current normzapasspec;
								}

							}
							cmCheckRecord:
 							{
									MakeValid(#normzapas);
									if isvalid(#normzapas)
											{
									update current normzapas;
											}
									if isnew
											{
									Putcommand(cmInsertRecord);
											}

							}
							cmCheckField:
							  {
									updatetable;
									SetModified(true);
									  case CurField of
										#normzapas.pbdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pedate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.pdate:
										{
										  update current normzapas;
										  RescanPanel(#normzapas);
										}
										#normzapas.npp:
										{
									  	  update current normzapas;
										  RescanPanel(#normzapas);
										}
										end;
							  }
							end;

							handleEvent
										cmInit:
										{
										 RescanPanel(Scornormzapas);
										   Rescanpanel(#normzapas);
										}
									cmPick:
									{
											  Updatetable();
											  case CurField of
												#katpodr.name:
												{
												  katpodrnrec:=normzapas.cpodrazd;
												  res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
												  normzapas.cpodrazd:=katpodrnrec
												  update current normzapas;
												if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
												  {
												  }
												  RescanPanel(#normzapas);
												}
												#katmc.name:
												{
												pmc := normzapasspec.cmc;
												res := runinterface('L_MCU::GetSomeMC_KatMC', pmc, false, -12345);//вызов интерфейса выбора МЦ без ввода количества
!												res := runinterface('L_MCU::GetSomeMC', pmc);
!												res := runinterface('iGetKau.GetCodeKau', pmc);
												normzapasspec.cmc := pmc;
												update current normzapasspec;
												if getfirst katmc where((normzapasspec.cmc==katmc.nrec))=tsOk
												  {
												  }
												RescanPanel(#normzapasspec);
												}
											  end;
										}
										cmCheckField : update current normzapas;
									cmCancel:
									{
									}
									cmPrintDoc:
											{
											   UpdateTable();
											   res:=RunInterface('ireport',titlenrec);
											}
									cmClose:
									{
									   CloseWindow(cmDefault);
									}
									cmDefault:
									{
										   PutCommand(cmCheckField);
										   runwindowmodal(NormCorrect);
									  Rescanpanel(#normzapas);
									}
									cmInsert:
									{
!			   message('cminsert1');
!			titlenrec:=normzapas.atl_nrec;
!			maxs:=normzapas.npp;
!			specnrec:=normzapas.npp;
!!			_loop normzapas where ((titlenrec==normzapas.atl_nrec))
!!			{
!			   if (maxs<normzapas.npp) or (maxs=normzapas.npp)
!			   {
!			   message('cminsert2');
!			   normzapas.npp:=normzapas.npp+1;
!				  	update current normzapas;
!			   }
!//			   maxs:=maxs+1;
!!			}
!			maxs:=maxs+1;
									}
									cmDelete:
									{

									}
									cmDone:
									{
										  rescanpanel(#normzapas);
									}
							end;
end.


Re: Параметры интерфейса

Добавлено: 23 июл 2014, 17:10
edward_K
сделайте маленький фейс и смотрите на нем. Из очевидного - почему status не из таблицы?