Return TypeFunction nameArguments
hzEcodehdsApp::CreateDefaultForm(const hzString&,)

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

Function Logic:

0:START 1:cname==subscriber 2:hzLogger::Log 3:Return E_OK 4:hdbADP::GetPureClass pClass 5:!pClass 6:hzLogger::Out 7:Return E_NOTFOUND 8:hdbClass::MbrCount hzLogger::Log pFormdef pFormdef pFormdef pFormdef hzMapS::Insert mbrNo 9:mbrNoMbrCount(); 10:hdbClass::GetMember pMbr pFld hdsVE::InitVE hdbMember::strName pFld pFld pFld hzVect::Add 11:pFormhdl pFormhdl pFormhdl pFormhdl hzMapS::Insert hzMapS::Insert pFormref pFormref hzMapS::Insert hzMapM::Insert 12:Return rc

Function body:

hzEcode hdsApp::CreateDefaultForm (const hzString& cname)
{
   _hzfunc("hdsApp::CreateDefaultForm") ;
   const hdbClass*     pClass ;
   const hdbMember*    pMbr ;
   hdsFormdef*     pFormdef ;
   hdsFormhdl*     pFormhdl ;
   hdsFormref*     pFormref ;
   hdsField*       pFld ;
   hzString        S ;
   uint32_t        mbrNo ;
   hzEcode         rc = E_OK ;
   if (cname == "subscriber")
   {
       m_pLog->Log("Subscriber class is a special case. No default form is required\n") ;
       return E_OK ;
   }
   pClass = m_ADP.GetPureClass(cname) ;
   if (!pClass)
       { m_pLog->Out("No such class as %s\n", *cname) ; return E_NOTFOUND ; }
   m_pLog->Log("Doing class %s with %d members\n", *cname, pClass->MbrCount()) ;
   pFormdef = new hdsFormdef() ;
   pFormdef->m_Formname = "dflt_form_" + cname ;
   pFormdef->m_DfltAct = "/dflt_fhdl_" + cname ;
   pFormdef->m_pClass = pClass ;
   m_FormDefs.Insert(pFormdef->m_Formname, pFormdef) ;
   for (mbrNo = 0; mbrNo < pClass->MbrCount() ; mbrNo++)
   {
       pMbr = pClass->GetMember(mbrNo) ;
       pFld = new hdsField(this) ;
       pFld->InitVE(this) ;
       pFld->m_strPretext = pMbr->strName() ;
       pFld->m_Line = mbrNo ;
       pFld->m_Indent = 0;
       pFormdef->m_vecFlds.Add(pFld) ;
   }
   pFormhdl = new hdsFormhdl() ;
   pFormhdl->m_Refname = "dflt_fhdl_" + cname ;
   pFormhdl->m_pFormdef = pFormdef ;
   pFormhdl->m_flgFH |= VE_COOKIES ;
   m_FormHdls.Insert(pFormhdl->m_Refname, pFormhdl) ;
   m_FormUrl2Hdl.Insert(pFormdef->m_DfltAct, pFormhdl->m_Refname) ;
   pFormref = new hdsFormref(this) ;
   pFormref->m_Formname = pFormdef->m_Formname ;
   m_FormUrl2Ref.Insert(pFormdef->m_DfltAct, pFormref) ;
   m_FormRef2Url.Insert(pFormref, pFormdef->m_DfltAct) ;
   return rc ;
}