Exemple #1
0
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;
}
Exemple #2
0
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
}