Return TypeFunction nameArguments
hzEcodehdsFldspec::Validate(hzLogger*,const hzString&,const char*,unsigned int,)

Declared in file: hzDissemino.h
Defined in file : hdsConfig.cpp

Function Logic:

0:START 1:!cfgFname 2:rc hzLogger::Log 3:!caller 4:rc hzLogger::Log 5:rc!=E_OK 6:Return rc 7:!m_pType 8:hzLogger::Log 9:Return E_SYNTAX 10:htype==HTMLTYPE_NULL 11:hzLogger::Log 12:Return E_SYNTAX 13:!m_Refname 14:hzLogger::Log 15:Return E_SYNTAX 16:htype 17:HTMLTYPE_TEXT 18:HTMLTYPE_PASSWORD 19:nRows 20:hzLogger::Log 21:!nCols 22:nCols 23:!nSize 24:rc hzLogger::Log 25:nRows

Function body:

hzEcode hdsFldspec::Validate (hzLogger* pLog, const hzString& cfgFname, const char* caller, unsigned int ln)
{
   _hzfunc("hdsApp::_testFldspec") ;
   hzEcode rc = E_OK ;
   if (!cfgFname)  { rc = E_ARGUMENT ; pLog->Log("No config file supplied\n") ; }
   if (!caller)    { rc = E_ARGUMENT ; pLog->Log("No caller func supplied\n") ; }
   if (rc != E_OK)
       return rc ;
   if (!m_pType)
       { pLog->Log("(%s) File %s Line %d <fldspec> No data type established\n", caller, *cfgFname, ln) ; return E_SYNTAX ; }
   if (htype == HTMLTYPE_NULL)
       { pLog->Log("(%s) File %s Line %d <fldspec> No HTML type established\n", caller, *cfgFname, ln) ; return E_SYNTAX ; }
   if (!m_Refname)
       { pLog->Log("(%s) File %s Line %d <fldspec> No refname supplied\n", caller, *cfgFname, ln) ; return E_SYNTAX ; }
   switch  (htype)
   {
   case HTMLTYPE_TEXT:
   case HTMLTYPE_PASSWORD:
       if (nRows)
           pLog->Log("(%s) File %s Line %d: Note. Rows for TEXT/PASSWORD are always 1 so not required\n", caller, *cfgFname, ln) ;
       if (!nCols)
               nCols = 1;
       if (!nSize)
           { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No max size supplied\n", caller, *cfgFname, ln) ; }
       nRows = 1;
       break ;
   case HTMLTYPE_TEXTAREA:
       if (!nRows) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No row size supplied\n", caller, *cfgFname, ln) ; }
       if (!nCols) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No col size supplied\n", caller, *cfgFname, ln) ; }
       if (!nSize) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No max size supplied\n", caller, *cfgFname, ln) ; }
       break ;
   case HTMLTYPE_SELECT:
       if (m_pType->Basetype() == BASETYPE_ENUM || m_pType->Basetype() == BASETYPE_STRING)
       {
           if (nRows || nCols || nSize)
               pLog->Log("(%s) File %s Line %d: Note. For Select field dimensions are not required\n", caller, *cfgFname, ln) ;
           break ;
       }
       rc = E_SYNTAX ;
       pLog->Log("(%s) File %s Line %d: <fldspec>: Data type of %s is incompatible to HTMLTYPE_SELECT\n",
           caller, *cfgFname, ln, m_pType->txtType()) ;
       break ;
   case HTMLTYPE_CHECKBOX:
       if (nSize)
           pLog->Log("(%s) File %s Line %d: Note. For Check-box field size is not required\n", caller, *cfgFname, ln) ;
       if (m_pType->Basetype() == BASETYPE_BOOL)
       {
           if (!nRows) nRows = 1;
           if (!nCols) nCols = 1;
           break ;
       }
       if (m_pType->Basetype() == BASETYPE_ENUM)
       {
           if (!nRows) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No row size supplied\n", caller, *cfgFname, ln) ; }
           if (!nCols) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No col size supplied\n", caller, *cfgFname, ln) ; }
           break ;
       }
       rc = E_SYNTAX ;
       pLog->Log("File %s Line %d: <fldspec>: Data type of %s is incompatible to HTMLTYPE_CHECKBOX\n", m_pType->txtType()) ;
       break ;
   case HTMLTYPE_RADIO:
       if (nSize)
           pLog->Log("(%s) File %s Line %d: Note. For Check-box/Radio field size is not required\n", caller, *cfgFname, ln) ;
       if (m_pType->Basetype() == BASETYPE_ENUM)
       {
           if (!nRows) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No row size supplied\n", caller, *cfgFname, ln) ; }
           if (!nCols) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No col size supplied\n", caller, *cfgFname, ln) ; }
           break ;
       }
       rc = E_SYNTAX ;
       pLog->Log("(%s) File %s Line %d: <fldspec>: Data type of %s is incompatible to HTMLTYPE_RADIO\n", caller, m_pType->txtType()) ;
       break ;
   case HTMLTYPE_FILE:
       if (nRows)
           pLog->Log("(%s) File %s Line %d: Note. Rows for FILE are always 1 so not required\n", caller, *cfgFname, ln) ;
       if (!nCols) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No col size supplied\n", caller, *cfgFname, ln) ; }
       if (!nSize) { rc = E_SYNTAX ; pLog->Log("(%s) File %s Line %d: No max size supplied\n", caller, *cfgFname, ln) ; }
       nRows = 1;
       break ;
   case HTMLTYPE_HIDDEN:
       if (nRows || nCols || nSize)
           pLog->Log("(%s) File %s Line %d: Note. For Hidden field dimensions are not required\n", caller, *cfgFname, ln) ;
       break ;
   }
   return rc ;
}