| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdsFldspec::Validate | (hzLogger*,const hzString&,const char*,unsigned int,) |
Declared in file: hzDissemino.h
Defined in file : hdsConfig.cpp
Function Logic:
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 ;
}