Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцеховая

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

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

Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцеховая

Сообщение 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.  
Время ведет!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Den »

а что возвращает cfsCreateObject(cfcButton, 'SCRHEADER', 'StartFuncCO', FALSE, iBtnFuncCO) ?
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение 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')
    }
  } 
Время ведет!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Den »

-5 это помоему контейнер не существует.
Вроде указан верно идентификатор скрина.Хм
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Den »

Дак в приход ГП встраивается в эту область в шапку M_UP::NAKL502.EDITSOPR.SCRHEADER вроде как.
В нем и нужно добавлять кнопарь
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение 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.
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Masygreen »

А еще подскажите почему иногда кнопка съезжает в сторону если подключаешь несколько ресурсов?
Чтоб этого избежать, хотел завязаться координаты вышестоящей кнопки, но тоже как-то мимо...

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

    if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) = cfOk) //cfsGetCurrentContainerSelf
    {

      var
       _ii:integer;
      cfsGetProp('M_UP::NAKL502.EDITSOPR.SCRHEADER.b_SCRHEADER_Формирование_прихода', cfpOrigin_X,_ii);
      message(_ii);
Время ведет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение m0p3e »

Проблема точно в нескольких ресурсах?
Может FontSize разные? ;)
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Masygreen »

m0p3e писал(а):Проблема точно в нескольких ресурсах?
Может FontSize разные? ;)
Точно, на 1 пункт различались... визуально незаметно было ..
Чего делать ? Забивать константы под использванные фонтсайзы? или можно динамикой отработать ?
Время ведет!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение edward_K »

Надежней ExtendFormats - сразу попадаете куда нужно без танцев с бубнами.
Есть правда тонкости с панелями и т.п,, что без исходников не всегда понятно куда надо.
Но ТП думаю не откажет в паре файликов. Ну или сюда пишите = кто нибудь поделится.
А что вывело ii? Вам нужно на шрифте 8/8 добавить кнопку, подсмотреть x и y эталоного объекта
а потом в пропорции добалять свой объект. Ну или подбирать коэффициенты.
Мне как то надоело и я добавил пару настроек, чтобы регулировать на ходу.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение m0p3e »

Я темку создавал по этой проблеме. viewtopic.php?f=8&t=13190

Но в данном случае лучше делать как Edward_K советует. ExtendFormats.
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Masygreen »

edward_K писал(а):Надежней ExtendFormats - сразу попадаете куда нужно без танцев с бубнами.
Есть правда тонкости с панелями и т.п,, что без исходников не всегда понятно куда надо.
Но ТП думаю не откажет в паре файликов. Ну или сюда пишите = кто нибудь поделится.
А что вывело ii? Вам нужно на шрифте 8/8 добавить кнопку, подсмотреть x и y эталоного объекта
а потом в пропорции добалять свой объект. Ну или подбирать коэффициенты.
Мне как то надоело и я добавил пару настроек, чтобы регулировать на ходу.
Доступ к исходникам есть, ExtendFormats в хелпе какое-то куцее описание .. если есть пример и не жалко поделитесь знаниями

ii - выело 0, походу не достучался я по этой строке, ну наверно это правильно т.к. объект же на лету создается или как оно там происходит ..

Идея была взять координаты нижней кнопки и просто сместить свою вниз на двойную ширину .. хм ...
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение Masygreen »

Идея с коэффициентами понятна, только ради одной кнопки огород городить. Хотя где одна кнопка там и две .. и т.п.
Всё таки отскочить от уже существующего объекта было бы проще... (
Время ведет!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение m0p3e »

Masygreen писал(а):Идея с коэффициентами понятна, только ради одной кнопки огород городить. Хотя где одна кнопка там и две .. и т.п.
Всё таки отскочить от уже существующего объекта было бы проще... (
Если кажется, что проще через коэффициенты, то в теме что я давал выше, как раз эта идея реализована. Читаются координаты текущей кнопки и расcчитываются коэффициенты. Только там это вынесено в отдельный объект и делается один раз при входе в систему. По аналогии можно применить и локально.

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

Re: Докомпиляци "M_UP::IMNFINTRF" Накл. на приход ГП\Межцехо

Сообщение 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-ле. Надо его отобразить, прочитать координаты и скрыть снова.
Ответить