Страница 1 из 2
					
				Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцеховая
				Добавлено: 24 май 2018, 12:56
				 Masygreen
				Спасайте, никак не получается добавит кнопку в интерфейс (УПЛ - Накладная на приход ГП\ Межцеховая накладная)
Там везде embeddedPanel и как то всё мимо..
надо в SCEDITWINDOW-EDITSOPR-SCRHEADER добавить кнопку (как вариант еще расширить меню по правой кнопке, пробовал через пользовательские функции, но там засада при запрете редактирования пользовательские функции отключаются)...
 
Напрашивается какой-то неверных код .. который естественно не работает... что делать?
Код: Выделить всё
#Component "M_UP"
const
  cmStartFuncCO = 30100;
end;
alter interface IMNFINTRF;
var
  iBtnFuncCO: longint;
window EDITSOPR;
HandleEvent
  cmStartFuncCO:
  {
    message('1');
  };
end;
end;
HandleEvent
  cmOnVipLoad:
  {
    if inherited:: handleEvent(cmOnVipLoad) != heOk then
    {
      abort;
      exit;
    }
    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk) //cfsGetCurrentContainerSelf
    {
      cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO);
      cfsSetProp(iBtnFuncCO, cfpOrigin_X, 612);
      cfsSetProp(iBtnFuncCO, cfpOrigin_Y, 240);
      cfsSetProp(iBtnFuncCO, cfpSize_X, 155);
      cfsSetProp(iBtnFuncCO, cfpSize_Y, 25);
      cfsSetProp(iBtnFuncCO, cfpCommand, cmStartFuncCO);
      cfsSetProp(iBtnFuncCO, cfpVisible, TRUE);
      cfsSetProp(iBtnFuncCO, cfpTitle, 'Функция');
    }
  }
end;
end.  
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 13:06
				 Den
				а что возвращает cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO) ?
			 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 13:22
				 Masygreen
				Den писал(а):а что возвращает cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO) ?
 , возвращает "
-5"
Как оказалось в 
cmOnVipLoad, я вообще не попадаю. Заменил на 
cmInit. Во все mesage попадаю.
Код: Выделить всё
  cmInit:
  {
    message('3-0')
    if inherited:: handleEvent(cmInit) != heOk then
    {
      abort;
      exit;
    }
    message('3-1')
    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk) //cfsGetCurrentContainerSelf
    {
      message(cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO));
      cfsSetProp(iBtnFuncCO, cfpOrigin_X, 612);
      cfsSetProp(iBtnFuncCO, cfpOrigin_Y, 240);
      cfsSetProp(iBtnFuncCO, cfpSize_X, 155);
      cfsSetProp(iBtnFuncCO, cfpSize_Y, 25);
      cfsSetProp(iBtnFuncCO, cfpCommand, cmStartFuncCO);
      cfsSetProp(iBtnFuncCO, cfpVisible, TRUE);
      cfsSetProp(iBtnFuncCO, cfpTitle, 'Функция');
      message('3-2')
    }
  } 
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 14:00
				 Den
				-5  это помоему контейнер не существует.
Вроде указан верно идентификатор скрина.Хм
			 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 14:16
				 Den
				Дак в приход ГП встраивается  в эту область в шапку M_UP::NAKL502.EDITSOPR.SCRHEADER  вроде как.
В нем и нужно добавлять кнопарь
			 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 15:25
				 Masygreen
				Den писал(а):Дак в приход ГП встраивается  в эту область в шапку M_UP::NAKL502.EDITSOPR.SCRHEADER  вроде как.
В нем и нужно добавлять кнопарь
Глубокие поклоны, заработало...
Код: Выделить всё
#Component "M_UP"
const
  cmStartFuncCO = 30100;
end;
alter interface NAKL502;
var
  iBtnFuncCO: longint;
window EDITSOPR;
HandleEvent
  cmStartFuncCO:
  {
    message('1');
  };
end;
end;
HandleEvent
  cmOnVipLoad:
  {
    if inherited:: handleEvent(cmOnVipLoad) != heOk then
    {
      abort;
      exit;
    }
    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk) //cfsGetCurrentContainerSelf
    {
      cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO);
      cfsSetProp(iBtnFuncCO, cfpOrigin_X, 612);
      cfsSetProp(iBtnFuncCO, cfpOrigin_Y, 240);
      cfsSetProp(iBtnFuncCO, cfpSize_X, 155);
      cfsSetProp(iBtnFuncCO, cfpSize_Y, 25);
      cfsSetProp(iBtnFuncCO, cfpCommand, cmStartFuncCO);
      cfsSetProp(iBtnFuncCO, cfpVisible, TRUE);
      cfsSetProp(iBtnFuncCO, cfpTitle, 'Славься Den');
    }
  }
end;
end.
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 15:52
				 Masygreen
				А еще подскажите почему иногда кнопка съезжает в сторону если подключаешь несколько ресурсов?
Чтоб этого избежать, хотел завязаться координаты вышестоящей кнопки, но тоже как-то мимо...
Код: Выделить всё
    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk) //cfsGetCurrentContainerSelf
    {
      var
       _ii:integer;
      cfsGetProp('M_UP::NAKL502.EDITSOPR.SCRHEADER.b_SCRHEADER_Формирование_прихода', cfpOrigin_X,_ii);
      message(_ii);
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 17:26
				 m0p3e
				Проблема точно в нескольких ресурсах?
Может FontSize разные? 

 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 17:56
				 Masygreen
				m0p3e писал(а):Проблема точно в нескольких ресурсах?
Может FontSize разные? 

 
Точно, на 1 пункт различались... визуально незаметно было .. 
Чего делать ?  Забивать константы под использванные фонтсайзы? или можно динамикой отработать ?
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 17:59
				 edward_K
				Надежней ExtendFormats - сразу попадаете куда нужно без танцев с бубнами.
Есть правда тонкости с панелями и т.п,, что без исходников не всегда понятно куда надо.
Но ТП думаю не откажет в паре файликов. Ну или сюда пишите = кто нибудь поделится.
А что вывело ii? Вам нужно на шрифте 8/8 добавить кнопку, подсмотреть x и y эталоного объекта
а потом в пропорции добалять свой объект. Ну или подбирать коэффициенты.
Мне как то надоело и я добавил пару настроек, чтобы регулировать на ходу.
			 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 18:07
				 m0p3e
				Я темку создавал по этой проблеме. 
viewtopic.php?f=8&t=13190
Но в данном случае лучше делать как Edward_K советует. ExtendFormats.
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 18:18
				 Masygreen
				edward_K писал(а):Надежней ExtendFormats - сразу попадаете куда нужно без танцев с бубнами.
Есть правда тонкости с панелями и т.п,, что без исходников не всегда понятно куда надо.
Но ТП думаю не откажет в паре файликов. Ну или сюда пишите = кто нибудь поделится.
А что вывело ii? Вам нужно на шрифте 8/8 добавить кнопку, подсмотреть x и y эталоного объекта
а потом в пропорции добалять свой объект. Ну или подбирать коэффициенты.
Мне как то надоело и я добавил пару настроек, чтобы регулировать на ходу.
Доступ к исходникам есть, ExtendFormats в хелпе какое-то куцее описание .. если есть пример и не жалко поделитесь знаниями
ii - выело 0, походу не достучался я по этой строке, ну наверно это правильно т.к. объект же на лету создается или как оно там происходит .. 
Идея была взять координаты нижней кнопки и просто сместить свою вниз на двойную ширину .. хм ...
 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 18:22
				 Masygreen
				Идея с коэффициентами понятна, только ради одной кнопки огород городить. Хотя где одна кнопка там и две .. и т.п.
Всё таки отскочить от уже существующего объекта было бы проще... (
			 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 24 май 2018, 20:03
				 m0p3e
				Masygreen писал(а):Идея с коэффициентами понятна, только ради одной кнопки огород городить. Хотя где одна кнопка там и две .. и т.п.
Всё таки отскочить от уже существующего объекта было бы проще... (
Если кажется, что проще через коэффициенты, то в теме что я давал выше, как раз эта идея реализована. Читаются координаты текущей кнопки и расcчитываются коэффициенты. Только там это вынесено в отдельный объект и делается один раз при входе в систему. По аналогии можно применить и локально. 
Но я за ExtendFormats. 

 
			
					
				Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо
				Добавлено: 25 май 2018, 02:04
				 edward_K
				Вот пример
Код: Выделить всё
ExtendFormats SCFILTERDO;
Window winFilterDO 'Установка фильтров' EscClose, Gray;
#IFDEF _MY_
  Show at(, , 76, 22);
#ELSe
  Show at(, , 76, 18);
#ENDIF
Panel paFilterDO;
  NoTableNavigation;
Screen scFilterDO ('', hcLok_Filtr_doc, sci13EnEsc);
  Show at(, , , 21);
#IFDEF _MY_
Fields
  wFltDop : NoProtect;
  FltKatNazna.Name ('Выберите назначение'        , , ): Protect, PickButton;
//********************************************************************************
#ENDIF
<<
  Дополнительно фильтровать по  
  [.] Назначению` .@@@@@@@@@@@@@@@@@@@@@@@@@
>>  
end;
....
Самое сложное - сосчитать кол-во пустых строк.
Я обычно копирую формат экрана, пишу куда нужно, а лишнее очищаю строку/забиваю пробелами.
Полезно в комментарих записать куда вы метите - пригодится при измении формата.
Есть еще умельцы - вставляют поле куда нибудь, а потом сдвигают все поля с этой строки и ниже  вниз. Есть одно но - если объект скрыт, то все его координаты в 0-ле. Надо его отобразить, прочитать координаты и скрыть снова.