Функция coGetAttr

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

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

Ответить
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Функция coGetAttr

Сообщение Руслан »

Ругается при компиляции на функцию coGetAttr. Нет такой функции, поля или метода

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

#include ExtAttr.Vih
#include TxoApi.vih
#Component "F_TxoApi"
VipInterface Txo_RentOSMC Implements ObjTxoIdentPlugin Licensed(Free);

! Простой интерфейс для обработки накладной
Interface Txo_RentOSMC;
!
create view TXOview
var
 CurSoprDoc:comp;
 CurTiDkGal:word;
 as select 
  spkatos.nrec
 ,spkatos.CGRUP
 ,osmc.nrec
 ,osmc.cmc
 ,osmc.cKatos
 ,sposmc.nrec
 ,sposmc.cosmc
 ,sposmc.cnastros
 ,sposmc.SIZNM
 ,groupmc.nrec
 ,groupmc.kod
 ,katmc.nrec
 ,katmc.CGROUPMC
 ,attrval.nRec
 ,attrval.wtable
 ,attrval.cRec
 ,attrval.cattrnam
 ,attrval.vcomp
 
from
  spkatos  (readonly)
 ,OSMC     (readonly)
 ,SPOSMC   (readonly)
 ,KATMC    (readonly)
 ,GROUPMC  (readonly)
 ,ATTRVAL  (readonly)
where
((
  CurSoprDoc == OSMC.cKatos                     and
  OSMC.cmc == KatMC.nrec                        and
  Katmc.CGROUPMC == GROUPMC.nrec                and
  9002 == GROUPMC.KOD                           and
  OSMC.nrec == SPOSMC.COSMC                     and
  cogettune('OS.USER.METUM') == SPOSMC.CNASTROS and 
  OSMC.nrec == ATTRVAL.cRec                     and
  word(3109) == ATTRVAL.WTABLE
));


function GetInfo : string;
{
   GetInfo := 'обработка состава инвертарной карточки сданных в аренду';
}

function ParamMaster : string;
   {
        Message('!!!');
        ParamMaster :='';
   }

procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
 {
   // установить ограничения на логическую таблицу
   CurTiDkGal := buf.TiDkgal;
   CurSoprDoc := buf.cSoprDoc;
!
   TxoAllowRecallStoreCycles(hTxo);
!    TxoHeadAddKau(hTxo, wFlKau_auto, 18, KatSopr.cOrg)
    // построить выгрузку циклов
 
    TXOview._loop OSMC 
      {
       if(getfirst katmc = tsok)
        {
         if(getfirst GROUPMC= tsok)
          {
           if(getfirst SPOSMC = tsok)
            {
           
              TxoBodyClear(hTxo); // очистить промежуточный буффер
!             
            TxoBodyAddKau(hTxo, 0, 1 , coGetAttr (3109; OSMC.nrec; 'Арендатор'));  
              TxoBodyAddKau(hTxo, 0, 14, coGetAttr (3109; OSMC.nrec; 'Аренда договор'));     
!              
              TxoBodySetSum(hTxo, round(SPOSMC.SIZNM,0), 0, 0);  // закачать суммы
              TxoBodyInsert(hTxo);  // добавить в выгрузку   
            }
          }
        }
      }
    
 }
end.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функция coGetAttr

Сообщение Den »

Это же объектный метод. Понятно что так ругаться будет. Нужно объявить ссылку типа vipinterface и писать .coGetAttr(...
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Функция coGetAttr

Сообщение Irina_ »

Здравствуйте. Попробуйте
Var var1 : iExtAttr;
Pp : Comp;

pp:= var1.coGetAttr (3109; OSMC.nrec; 'Арендатор')
TxoBodyAddKau(hTxo, 0, 1 , pp);
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Функция coGetAttr

Сообщение Руслан »

Irina_ писал(а):Здравствуйте. Попробуйте
Var var1 : iExtAttr;
Pp : Comp;

pp:= var1.coGetAttr (3109; OSMC.nrec; 'Арендатор')
TxoBodyAddKau(hTxo, 0, 1 , pp);
Добавил, теперь ругается на эту строку:

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

TxoBodyAddKau(hTxo, 0, 1 , (var1.coGetAttr (3109; OSMC.nrec; 'Арендатор')));
Не хватает скобки...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Функция coGetAttr

Сообщение edward_K »

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