Страница 1 из 1

Ошибка с katmc.nrec

Добавлено: 25 июн 2010, 14:53
BlazeBio
Ошибка "Нет такой функции, поля или метода : KATMC.NREC" появляется в месте вызова L_MCU::KATMC. В чём может быть причина?

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

#component "L_DOGOVOR"
vipInterface AddMC ;//(SecurityPolicy);
public :
  function fCollection ( nrecMC : comp ) : string;
  function fTypeMC ( nrecMC : comp ) : string;
end;

Interface AddMC 'Каталог матценностей';
	show at (,,100,30);
  create view
  //var  kmcBARKOD : string;
  //     kmcName : string;
  ( ei, kgr, gr, collection, typeMC )
  as select
  ced->name,
  cgroupmc->kod,
  cgroupmc->name,
  fCollection ( katmc.nrec ),
  fTypeMC ( katmc.nrec ),
  *
  from katmc, exclassval, exclassseg
  WHERE (( 5 == katmc.isArch ))
  order by katmc.BARKOD
  ;
  form SFkatmc("SFkatmc.out");
/*
*******************************************************************************
Название:        fCollection ( nrecMC : comp ) : string;
Описание:        Функция поиска вида коллекции у МЦ
Входные пар-ры:  nrecMC : comp; - nrec МЦ
Выходные пар-ры: Название коллекции к которой принадлежит МЦ
*******************************************************************************
*/
  function fCollection ( nrecMC : comp ) : string;
  {
    if ( GetFirst exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable and 3 == exclassval.classcode )) = tsOk )
    {  if ( GetFirst exclassseg where (( exclassval.cclassseg == exclassseg.nrec )) = tsOk )
        fCollection := exclassseg.name;
    } else fCollection := ' ';
  }

/*
*******************************************************************************
Название:        fTypeMC ( nrecMC : comp ) : string;
Описание:        Функция поиска доп. характеристик прикрепленных к МЦ
                 (цв., р.р. и т.д.)
Входные пар-ры:  nrecMC : comp; - nrec МЦ
Выходные пар-ры: Строку с перечислением описания доп. данных по МЦ
*******************************************************************************
*/
  function fTypeMC ( nrecMC : comp ) : string;
  {
    var tempCATMC : string;
    tempCATMC := '';

    if ( GetFirst exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable)) = tsOk )
    {
      do
      {
        if ( exclassval.classcode = 3 ){tempCATMC := tempCATMC + '';}
        else
        {
          if ( GetFirst exclassseg where (( exclassval.cclassseg == exclassseg.nrec )) = tsOk )
            tempCATMC := exclassseg.name + ' ' + tempCATMC;
        }
      } while ( GetNext exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable )) = tsOk )
    }
    fTypeMC := tempCATMC;
  }

	browse brClasdisc;
	  fields
		katmc.BARKOD 'Код' : [5], protect;
		katmc.name 'Наименование товара' : [30], protect;
		ei 'ед.и' : [3], protect, centered;
		kgr 'код' : [6], skip;
		gr 'группа' : [10], skip;
		collection 'Коллекция' : [20], Protect;
		typeMC 'вид' : [10], Protect;
		katmc.volume '%сортн' : [5.1], Protect;
		katmc.massa 'вес изд' : [5.1], Protect;
	end;

  handleEvent
    cmInit :
    {
      // Ограничение отображения и возможностей работы с документом при ограничение прав
      if( SecurityPolicy::fSecurityPolicy(sGetTune('user.descr'), 'ChangeMC') = FALSE )
        cfsSetProp('brClasdisc','StatusCtx', sciAQACancel1);
      else cfsSetProp('brClasdisc','StatusCtx', sciAQAEnEsc178 );

    }
    // Формирование отчета Списка МЦ
    cmAqaReport : //cmEditReport :
    {
      if ( GetFirstIn(0,0) = 0 )
      do
      {
        SFkatmc.Write(katmc.BARKOD);   // Баркод МЦ
        SFkatmc.Write(katmc.name);     // Название МЦ
        //SFkatmc.Write(ei);           // Единица измерения
        SFkatmc.Write(kgr);            // Код группы к которой принадлежит МЦ
        //SFkatmc.Write(gr);           // Название группы
        SFkatmc.Write(collection);     // Название коллекции
        SFkatmc.Write(typeMC);         // Уточнение доп. информации о МЦ
        SFkatmc.Write(katmc.volume);   // % запланированного изготовления продукции
        SFkatmc.Write(katmc.massa);    // Масса изделия
      }
      while ( GetNextIn(0,0) = 0 )

      SFkatmc.PutEvent(feBreak);
      SFkatmc.ShowFile('');
    }
    // Редактирование данных по МЦ, вызов интерфейса L_MCU::KATMC
    cmDefault : //cmArmEdit :
    {
      if(SecurityPolicy::fSecurityPolicy(UserName, 'ChangeMC') = FALSE){}
      else
      {
        RunInterface('L_MCU::KATMC',katmc.nrec,0);
        ReDrawPanel(tnkatmc);
        stop;
      }
    }
    // Вставка новой записи (Новой МЦ с условием katmc.isarch = 5;)
    cmInsert :
    {
      insert katmc set katmc.isarch = 5;
      ReReadRecord(#katmc);
      RunInterface('L_MCU::KATMC',katmc.nrec,0);
      ReDrawPanel(tnkatmc);
      stop;
    }
    // Удаление МЦ
    cmDelete :
    {
       cmRunInterface('L_MCU::KATMC', katmc.nrec,0);
       ReDrawPanel(tnkatmc);
       stop;
    }
  end;
end.

Re: Ошибка с katmc.nrec

Добавлено: 25 июн 2010, 15:24
KATZ
Может, попробовать

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

cmRunInterface('L_MCU::KATMC', katmc.nrec,0);
написать без "cm"?

Re: Ошибка с katmc.nrec

Добавлено: 25 июн 2010, 16:16
BlazeBio
Исправил здесь и ещё кое-где, и заработало! Всегда другому человеку со стороны лучше видно, чем самому. :cool: