Докомпиляция интерфейса ?

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

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

Ответить
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Докомпиляция интерфейса ?

Сообщение Gameus_ »

Доброго дня. Есть такая проблема: пользователи хотят видеть в интерфейсе L_DOGOVOR::GETCALPLAN поле кункт отгрузки. Смотрю конфигуратором - ссылка на marpunkt есть, а самой таблицы нет. Как тут быть ? Я так понимаю нужно докомпилировать стандартный интерфейс и добавить во вьюху таблицу ?? Если да, то можете поделиться аналогичным примером? докомпиляции никогда не делал, да и вообще, с интерфейсами не особо знаком.... из того, что нашел на форуме по alter interface - ниче не понял :(
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Добавление полей с значениями двух атрибутов в 4 закладку карточки сотрудника через докомпиляцию

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

alter interface RecWin04 (fix 'Место работы и должность');

Create View
as Select *
from
 AttrNam PsnLinkPostN
,AttrVal PsnLinkPostV
,AttrNam PsnLinkDeptN
,AttrVal PsnLinkDeptV
Where ((
         'Место работы/учебы'  == PsnLinkDeptN.name
     and 25005                 == PsnLinkDeptN.wTable
     and PsnLinkDeptN.wTable   == PsnLinkDeptV.wTable
     and PsnLinks.nrec         == PsnLinkDeptV.cRec
     and PsnLinkDeptN.nrec     == PsnLinkDeptV.cAttrNam
     and 'Должность/профессия' == PsnLinkPostN.name
     and 25005                 == PsnLinkPostN.wTable
     and PsnLinkPostN.wTable   == PsnLinkPostV.wTable
     and PsnLinks.nrec         == PsnLinkPostV.cRec
     and PsnLinkPostN.nrec     == PsnLinkPostV.cAttrNam
      ))
;

hideFormats scrLinkedPsn;

screen scrLinkedPsn_my;
show at (,3,,19);
table PsnLinks;
Fields
  PsnLinks.SeqNmb      ('N п/п');
  PsnLinksTypeCat.Name ('Степень родства. Выбор из каталога по F3.',
          , scStaffReceptionT2ComPick) : pickbutton, protect;
  PsnLinks.RBornDate   ('Дата рождения', ,
          scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;
  PsnLinks.RFIO        ('Фамилия, Имя, Отчество') : noProtect;
  LPLivName ('Место проживания. F3-Выбор.',
          , scStaffReceptionT2ComPick) : pickbutton, protect;
  PsnLinkDeptV.vString ('Место работы/учебы родственника (Для редактирования нажмите Alt+A)') : Protect;
  PsnLinkPostV.vString ('Должность/профессия родственника (Для редактирования нажмите Alt+A)') : Protect;
  PsnLinks.LType      ('Кто родственник...') : noProtect;
  PsnLinks.KolLgota   ('Количество ММОТ в льготе') : noProtect;
  PsnLinks.DatOk      ('Дата окончания действия льготы') : noProtect;
  DateBegDocInv   ('', hcStaffijd,
         scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;
  DateEndDocInv   ('', hcStaffijd,
         scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;

Buttons
  cmPasteFromBuf,,,'Скопировать адрес сотрудника',
        hcStaffGetPersonPasspAddr;

<<   'Персональные данные родственника'
                          Р О Д С Т В Е Н Н И К И
      № п/п.@@@@  Степень родства.@@@@@@@@@@@@@@@@@@@@@@@@@   Дата рождения.@@@@@@@@@@
      Фамилия,Имя,Отчество .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      Место прописки:      .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                          <.Скопировать адрес сотрудника.>
      Место работы .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Должность .@@@@@@@@@@@@@@@@@@@@@

      [.] Иждивенец (не имеет самостоятельных доходов)`
      [.] Студент или учащийся дневного отделения     `
      [.] Инвалид                                     `
      [.] Ребенок вдовы/вдовца/одинокого опекуна      `
      Кол-во ММОТ в льготе .@@@              Дата окончания действия льготы.@@@@@@@@@@
     `Дата начала действия льготы на инвалида`   .@@@@@@@@@@
     `Дата окончания действия льготы на инвалида`.@@@@@@@@@@
>>
end; // scrLinkedPsn

HandleEvent
 cmPickAttr:
  {
   inherited::handleEvent (cmPickAttr);
   RescanPanel(#PsnLinks);
  };

End;

end.
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

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

Сообщение m0p3e »

Зависит от задачи, но с ними однозначно лучше.
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

если есть время, можете посмотреть мой случай ? интерфейс L_DOGOVOR::GETCALPLAN (накладные на отпуск -- расшир инф -- календарный план) там ссылка на markunkt имеется... нужно подцепить саму таблицу и показать наименование пункта разгрузки. Задача как я понимаю "из простых" у меня просто нет опыта в этих делах, не знаю с какой стороны подойти....
исходников нет......
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

Добавте конфигуратором вычисляемое поле.
sTXOGetField('MARPUNKT','NAME',CALPLAN.CPUNKTP)
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

Спасибо, то, что нужно. Не знал про такую полезную функцию :)
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

А можно, если потребуется, самому функцию на випе написать, объявить ее как static, зарегистрировать и использовать в вычисляемых полях по тому же принципу, что и sTXOGetField
mwoland

Сообщение mwoland »

Vik, нельзя ли поподробнее про регистрацию функции?
Охх сам прочитал. Спасибо за пинок в нужном направлении. Очень полезная инфа. Была бы тут репа - заплюсил бы.
Ответить