BOOL CLBIterator :: GetNextItem (long &rlItem, char* pcGeo) { short iRCode = 0; char cGeo = '0'; if (m_iCnt > m_iCntItems) // alle abgeholt return FALSE; // was ist DAS ?? (#HK960110) while ((iRCode = m_rlb.GetSel(m_iCnt)) == 0) // Aufruf für Auswahl mehrerer Obj. { if (m_iCnt > m_iCntItems) // alle abgeholt return FALSE; m_iCnt++; } if (iRCode == LB_ERR) { rlItem = -1; return FALSE; } m_rlb.GetText (m_iCnt, m_sItem); m_iIdBase = DEX_GetIdBase(); if (m_iIdBase == 10) rlItem = atol(m_sItem); else rlItem = strtoul(m_sItem, NULL, 16); if (rlItem == 0) return FALSE; cGeo = FindObjGeo (m_pItem); switch(cGeo) { case 'F': break; case 'L': break; case 'P': break; default: return FALSE; } *pcGeo = cGeo; m_iCnt++; return TRUE; }
BOOL _XTENSN_EXPORT PASCAL ExportIdentEntryAsXml (long Ident, BOOL, void *pData) { PBDDATA pbdData; char KText[34]; char pLText[1025]; INITSTRUCT(pbdData, PBDDATA); pbdData.pbdTyp = 'i'; pbdData.pbdCode = Ident; pbdData.pbdKText = KText; pbdData.pbdLText = pLText; pbdData.pbdKTextLen = sizeof(KText) -1; pbdData.pbdLTextLen = 1024; ErrCode RC = DEX_GetPBDData (pbdData); KText[32] = '\0'; EXPORTDATA *pED = (EXPORTDATA *)pData; RemoveNewLines (pbdData.pbdLText); char cbBuffer[MAX_OKS_LENX]; HRESULT hr = ClassFromIdentX (Ident, cbBuffer); CXMLAttribute Attr (g_cbIdent, (10 == DEX_GetIdBase()) ? "%ld" : "0x%lx", Ident); CXMLNode Node (pED -> fh, g_cbObjectClass, Attr); if (EXPORTMODE_Normal == (s_rgExportMode & EXPORTMODE_TXI)) { if (S_OK == hr) { CXMLText (pED -> fh, g_cbOKS, cbBuffer); } } else { if (SUCCEEDED(hr) && s_rgExportMode & EXPORTMODE_OKSOnly) { // S_OK oder S_FALSE CXMLText (pED -> fh, g_cbOKS, cbBuffer); } } // evtl. Tabellennamen ausgeben TABLENAME TN; INITSTRUCT(TN, TABLENAME); TN.lIdent = Ident; TN.pBuffer = cbBuffer; TN.iLen = sizeof(cbBuffer); hr = DEX_GetTableName (TN); if (S_OK == hr) CXMLText (pED -> fh, g_cbTableName, cbBuffer); // KurzText, Langtext ausgeben { CXMLAttribute IsDefault (g_cbIsDefault, "%d", EC_OKAY == RC ? 0 : 1); CXMLText (pED -> fh, g_cbName, pbdData.pbdKText, IsDefault); } if (pbdData.pbdLTextLen > 0 && pbdData.pbdLText[0] != '\0') { // Langtext (Beschreibungstext ausgeben CXMLText (pED -> fh, g_cbDescription, pbdData.pbdLText); } // Objekteigenschaften ausgeben bool fRet = true; // Identifikator übergeben pED -> ulIdent = (ULONG)Ident; { CXMLNode Feats (pED -> fh, g_cbObjectFeatures); ENUMLONGKEYEX ELK; ELK.eKey = Ident; ELK.eFcn = (ENUMLONGKEYEXPROC)ExportMCodeEntryAsXml; ELK.ePtr = pED; ELK.eData = MPObjectFeature|MPReadOnlyFeatures|FEATURETYPE_DefinitionOnly /*|MPSystemFeatures*/; fRet = DEX_EnumObjektMerkmaleClassEx (ELK); } if (pED -> pIUnk) { LPPROGRESSINDICATOR(pED -> pIUnk) -> SetPosition (++(pED -> ulCnt)); if (LPPROGRESSINDICATOR(pED -> pIUnk) -> WasCanceled()) return false; // abbrechen } return fRet; // weitermachen }