Добавление документа в модуль

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

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

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

Re: Добавление документа в модуль

Сообщение BlazeBio »

Вот скажите,должно появиться чего? А то у меня тупняк с созданием нового меню.

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

#ifdef ComponentVersion
#component "L_Dogovor"
#end

const
  cmDoSomething  = 3005;
end

Interface ChangePersMenu;
View select * from x$resources;
HandleEvent
cmInit :
{
If Message ( 'Изменить?', YesNo ) = cmYes
{
 var iMenu, iSubMenu : LongInt;
  DeleteMenuHowDynamics ( 'ololo' );
  iMenu := LoadMenuEx ( 'L_Dogovor::blazebio',true,false);
  AddMenuItem ( iMenu, 'лол', cmDoSomething);
  StoreMenuHowDynamics ( iMenu,'ololo');
  DisposeLoadMenu ( iMenu );
  ReinitHeaderMenu;
};
else
{
	DeleteMenuHowDynamics ( 'ololo' );
	ReinitHeaderMenu;
}
Abort;
}; 
cmDoSomething:
{
	message('Всё работает!');
}
End;
END.

BlazeBio menu
{
  {
   - 'Справочники',cmRunInterface ( 'L_dogovor::Plan' );
  }
}
А то получается какой-то действительно лол. :)
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Добавление документа в модуль

Сообщение Vik »

Абсолютно не понятно, для чего своё меню пересохранять как динамическое. Так же сомнительно, как докомпиляция собственного интерфейса. А вообще, у вас должна просто создаться запись в x$Resources с xr$Type = 3 и xr$Name = 'MENU ololo'. Это при условии, что вы сможете откомпилировать то, что написали, потому что меню BlasBio описано неверно
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Добавление документа в модуль

Сообщение Алексей »

Создал свою таблицу в базе (новый документ). Хочу работать со стандартными статусами Галактики L_DOGOVOR::StatLog
Но при вызове ругается что тип не зарегистрирован в ChkNotes.vpp.
Можно как то обойти это ?
И какие типы документов в галке оставлены под пользовательские? (типа vidsopr viddoc.... какие цифры юзать, диапозон)
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

Не оставили разработчики диапазона. Можно докомпилировать объектник iNotes как-то так:

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

 Alter Interface iNotes;
overload NotesObj.GetWorkDocNotes(pVidDoc : word) : Boolean; end;
Function GetWorkDocNotes(pVidDoc : word) : Boolean;
{
 Result := inherited::GetWorkDocNotes(pVidDoc);
 If not Result
   If pVidDoc = MyTipDoc
     Result := true;
}
End.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Добавление документа в модуль

Сообщение Алексей »

в саппорте внёс вручную нужные мне записи, статусы заработали.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

При проверке будет материться :)
Там ситуация следующая. При запуске интерфейса работы со статусами ищется первый подходящий статус (запись в KatNotes) с таким видом документа. Если он не находится, то запускается интерфейс CheckKatNotes, который пытается проинициализировать типовые статусы, предварительно проверив тип статуса на зарегистрированность (вот здесь рождается сообщение выше).
После ручного добавления записи в KatNotes для данного типа проверка автоматически уже не вызывается.
Если уж совсем красиво хочется сделать, то дополнительно нужно добавить обработку своего типа в CheckKatNotes. Дело 10 минут, а все требуемые статусы будет добавляться без участия саппорта. :)
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Добавление документа в модуль

Сообщение Алексей »

а требуемые это оформляемые исполняемые и т.д.? мне они как раз не нужны вообще, там полностью другая ветка. но спасибо, возьму на вооружение.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

Алексей писал(а):а требуемые это оформляемые исполняемые и т.д.? мне они как раз не нужны вообще, там полностью другая ветка. но спасибо, возьму на вооружение.
Можно описать любые. Они станут стандартными :)

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

  CASE pVidDoc OF
    1..11,17,18,21..22,27,30..33,37 : // платежные документы
    {
      AddNote (0,0,0,'0','оформляемый'     ,'оформл.',1) ;
      AddNote (0,0,1,'1','исполняемый'     ,'исполн.',1) ;
      AddNote (0,0,2,'2','закрытый'        ,'закрыт' ,1) ;
      delete KatNotes where ((pVidDoc == KatNotes.VidDoc and
                              word(2) << KatNotes.Status));
    }
................................................
Vitaliy
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 27 апр 2005, 09:52
Откуда: Сибирь

Re: Добавление документа в модуль

Сообщение Vitaliy »

m0p3e писал(а): После ручного добавления записи в KatNotes для данного типа проверка автоматически уже не вызывается.
Если уж совсем красиво хочется сделать, то дополнительно нужно добавить обработку своего типа в CheckKatNotes. Дело 10 минут, а все требуемые статусы будет добавляться без участия саппорта. :)
Ну ручное добавление можно внести в событие инициализации своего фейса с проверкой на наличие этих записей в табилце.
А вот на счет докомпиляции фейса: если мне память не изменяет, то при установке патчей, в которых докомпиленый фейс есть, прийдется передокомпилять. Или я не прав?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Добавление документа в модуль

Сообщение m0p3e »

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

А вот на счет докомпиляции фейса: если мне память не изменяет, то при установке патчей, в которых докомпиленый фейс есть, прийдется передокомпилять. Или я не прав?
Не обязательно, но крайне желательно. В этом и суть докомпиляции - при выходе обновлений пересобираем и получаем обновление стандартного функционала + свои доработки.
Vitaliy
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 27 апр 2005, 09:52
Откуда: Сибирь

Re: Добавление документа в модуль

Сообщение Vitaliy »

m0p3e писал(а): Не обязательно, но крайне желательно. В этом и суть докомпиляции - при выходе обновлений пересобираем и получаем обновление стандартного функционала + свои доработки.
Ну все правильно, таким образом заказчик, который не имеет лицензии на вип, даже имея исходные коды для докомпиляции будет вынужден прикупить эту самую лицензию на вип :) Ну и у себя, если надоработано не мало, надо всегда держать общий пакет для сборки, что бы сразу после установки патчей дособирать. Что не совсем удобно.
ну это уже оффтопик :)
Ответить