EssOtlVerifyOutlineEx

指定したアウトラインが正しいことを確認し、そのアウトラインで検出したエラーの配列を構築します。この関数は、グローバル・アウトライン・エラーおよび不正なメンバーそれぞれのエラーの両方を戻します。

構文

            ESS_FUNC_M 
            EssOtlVerifyOutlineEx
             (
            hOutline, pulErrors, pulCount, pMbrErrors
            );
         
パラメータデータ型説明

hOutline

ESS_HOUTLINE_T

アウトラインのコンテキスト・ハンドル。

pulErrors

ESS_PULONG_T

グローバル・アウトライン・エラーのビットマスク宛先を指すポインタ。アウトラインに式のエラーがある場合、値のある唯一のフィールドは次のようになります:

ESS_OUTERROREX_OUTLINEHASFORMULAERROR

pulCount

ESS_PULONG_T

エラーのあるメンバーの数。pMbrErrors配列の要素数を定義します。アウトラインにエラーがある場合、エラーはビットマスクになります。アウトラインに式のエラーのみがある場合、pMbrErrorフィールドはエラー番号(ulErrors)と行番号(ulErrors2)から構成されます。この場合、pulErrorsがESS_OUTERROREX_OUTLINEHASFORMULAERRORに設定されます。

pMbrErrors

ESS_OUTERROR_T

*pulCountメンバーのある配列を指すポインタ。配列の各要素には、単一のメンバーのエラーが含まれています。

備考

戻り値

正常終了の場合は0が戻されます。それ以外の場合は、次のいずれかの値が戻されます:

         ESS_STS_T TestVerifyOtlEx(ADT_CMDCTX_T *cmdctxp)
{
   ESS_STS_T         sts = ESS_STS_NOERR;
   ESS_STS_T         sts2 = ESS_STS_NOERR;
   ESS_SHORT_T       hOutline;
   ESS_ULONG_T       ulErrors;
   ESS_ULONG_T       ulCount;
   ESS_POUTERROR_T   pMbrErrors;
   ESS_ULONG_T       ind;
   ESS_PMBRINFO_T    ppMbrInfo;

   if (cmdctxp->cmdbuf.argn < 2)
   {
      hOutlineChoice = ishOutlineMenu(cmdctxp);
   }
   else
   {
      hOutlineChoice = atoi(*(cmdctxp->cmdbuf.args + 1));
   }

   sts = EssOtlVerifyOutlineEx(cmdctxp->hOutline[hOutlineChoice], &ulErrors,
                               &ulCount, &pMbrErrors);

   if (sts == ESS_STS_NOERR)
   {
      fprintf(cmdctxp->output, "\n------Global Errors------\n");

      if (ulErrors & ESS_OUTERROR_CURTOOMANYDIMS)
      {
         fprintf(cmdctxp->output, "Too many dimensions in currency outline\n");
      }
      else if(ulErrors & ESS_OUTERROR2_ATTRCALCABSENT)
      {
         fprintf(cmdctxp->output, "Attribute calculations dimension is absent\n");
      }
      else if(ulErrors & ESS_OUTERROREX_OUTLINEHASFORMULAERROR)
      {
         fprintf(cmdctxp->output, "Outline has formula error\n");
      }
      else if (ulErrors == 0)
      {
         fprintf(cmdctxp->output, "No errors\n");
      }
      else
      {
         fprintf(cmdctxp->output, "Unknown error\n");
      }

      fprintf(cmdctxp->output, "\n------Member Errors------\n");

                if(ulErrors != ESS_OUTERROREX_OUTLINEHASFORMULAERROR)
                {
                          for (ind = 0; ind < ulCount; ind++)
                          {
                                 sts2 = EssOtlGetMemberInfo(cmdctxp->hOutline[hOutlineChoice],
                                                                                   pMbrErrors[ind].hMember, &ppMbrInfo);

                                 if (sts2 == ESS_STS_NOERR)
                                 {
                                        fprintf(cmdctxp->output, "Member: %s\n", ppMbrInfo->szMember);
                                        EssFree(cmdctxp->hInst, ppMbrInfo);
                                 }
                                 else
                                 {
                                        fprintf(cmdctxp->output, "Member: Unknown member\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALNAME)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROREX_OUTLINEHASFORMULAERROR\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_DUPLICATENAME)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROR_DUPLICATENAME\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALCURRENCY)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROR_ILLEGALCURRENCY\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALDEFALIAS)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROR_ILLEGALDEFALIAS\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALCOMBOALIAS)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROR_ILLEGALCOMBOALIAS\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALALIASSTRING)
                                 {
                                        fprintf(cmdctxp->output, "   ESS_OUTERROR_ILLEGALALIASSTRING\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ILLEGALTAG)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_ILLEGALTAG\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_NOTIMEDIM)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_NOTIMEDIM\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_DUPLICATEALIAS)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_DUPLICATEALIAS\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_MEMBERCALC)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_MEMBERCALC\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_SHARENOTLEVEL0)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_SHARENOTLEVEL0\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_NOSHAREPROTO)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_NOSHAREPROTO\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_TIMESPARSE)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_TIMESPARSE\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_LEAFLABEL)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_LEAFLABEL\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_ALIASSHARED)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_ALIASSHARED\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADTIMEBAL)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADTIMEBAL\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADSKIP)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADSKIP\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADSHARE)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADSHARE\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADSTORAGE)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADSTORAGE\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADCATEGORY)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADCATEGORY\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_BADSTORAGECATEGORY)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_BADSTORAGECATEGORY\n");
                                 }
            
                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_SHAREDMEMBERFORMULA)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_SHAREDMEMBERFORMULA\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_SHAREUDA)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_SHAREUDA\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_DUPGENLEVNAME)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_DUPGENLEVNAME\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_VIRTLEV0NOFORMULA)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_VIRTLEV0NOFORMULA\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_VIRTBADPARENT)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_VIRTBADPARENT\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_VIRTBADCHILD)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_VIRTBADCHILD\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors & ESS_OUTERROR_VIRTWHOLEDIMVIRTUAL)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR_VIRTWHOLEDIMVIRTUAL\n");
                                 }

                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_NOTLEVEL0)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_NOTLEVEL0\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_LEVELMISMATCH)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_LEVELMISMATCH\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALORDER)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALORDER\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALDATATYPE)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALORDER\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_DATATYPEMISMATCH)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_DATATYPEMISMATCH\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALATTRIBUTEPARENT)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALATTRIBUTEPARENT\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ATTRDIMNOTASSOCIATED)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ATTRDIMNOTASSOCIATED\n");
                                 }
                                 if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALUDA)
                                 {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALUDA\n");
                                 }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_CHILDCOUNT)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_CHILDCOUNT\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALATTRCALC)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALATTRCALC\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_DUPLICATEATTRCALC)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_DUPLICATEATTRCALC\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALATTRSET)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALATTRSET\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALATTRCALCSET)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALATTRCALCSET\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_NOTATTRIBUTE)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_NOTATTRIBUTE\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ATTRCALCABSENT)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ATTRCALCABSENT\n");
                                }
                                if (pMbrErrors[ind].ulErrors2 & ESS_OUTERROR2_ILLEGALATTRVALUE)
                                {
                                        fprintf(cmdctxp->output,"   ESS_OUTERROR2_ILLEGALATTRVALUE\n");
                                }
                        }
                }

      if(ulErrors != ESS_OUTERROREX_OUTLINEHASFORMULAERROR)
      {
                for (ind = 0; ind < ulCount; ind++)
                {
                       sts2 = EssOtlGetMemberInfo(cmdctxp->hOutline[hOutlineChoice],
                                                                         pMbrErrors[ind].hMember, &ppMbrInfo);

                       if (sts2 == ESS_STS_NOERR)
                       {
                              fprintf(cmdctxp->output, "Member: %s\n", ppMbrInfo->szMember);
                              EssFree(cmdctxp->hInst, ppMbrInfo);
                       }
                       else
                       {
                              fprintf(cmdctxp->output, "Member: Unknown member\n");
                       }

                       fprintf(cmdctxp->output, "Error %d at line %d\n", pMbrErrors[ind].ulErrors, pMbrErrors[ind].ulErrors2);
                }
      }

      if (ulCount == 0)
      {
         fprintf(cmdctxp->output, "No errors\n");
      }

      EssFree(cmdctxp->hInst, pMbrErrors);
   }

   fprintf(cmdctxp->output, "\nsts: %ld\n\n", sts);

   return(sts);
}
      

関連トピック