⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupitems.h

📁 从各种控件中获得数据 自动生成XML文档 并通过XSLT转换为其他形式的XML文档
💻 H
字号:
#pragma once 

/*
 In order to use this class , your class shall have following functions include;
 
 Copy construction : for example
 	CDbConnectionItem( const CDbConnectionItem & conn);
 Assign operator
	CDbConnectionItem& operator = ( const CDbConnectionItem& item);

A function to find it is me
	BOOL ItIsMe ( TI code );
Write XML file function
	BOOL WriteToResult ( CXMLResult & rst);
Reas XML fiel function
	BOOL ReadFromResult (int i , CXMLResult &rst);
};
*/
template < class T, class TI>
class CGroupItems 
{
	long m_Max;
public:
    CGroupItems(){m_Max = 0;};
	~CGroupItems(){};
protected:
	CArray<T,T&> m_Items;
public:
	
	virtual BOOL ReadFromResult ( CXMLResult & rst)
	{
		
		long num= 0 ;
		if(!rst.GetRecordNum (num))
			return FALSE;
		for ( long l = 0 ; l < num ; l ++ )
		{
			T temp;
			if (!temp.ReadFromResult (l,rst))
				return FALSE;
			m_Items.Add(temp);
		}
		return TRUE;
	}
	virtual BOOL WriteToResult ( CXMLResult &rst)
	{
		for ( int i = 0 ; i < m_Items.GetSize(); i++)
		{
			if (!m_Items[i].WriteToResult (rst))
				return FALSE;
		}
		return TRUE;
	}

	BOOL InitFromFile ( const CString &filename)
	{
		CXMLResult result;
		if (!result.LoadFromFile (filename))
			return FALSE;
		return ReadFromResult(result);
	}

	BOOL InitFromString( const CString & strRst)
	{
		CXMLResult result;
		if (!result.LoadFromString (strRst))
			return FALSE;
		return ReadFromResult(result);
	}
	BOOL SaveToFile ( const CString & file)
	{
		CXMLResult result;
		result.InitCmd();
		return WriteToResult(result);
	}
	T GetItem ( long i )
	{
		if ( i >= 0 && i < m_Items.GetSize())
			return m_Items[i];
		return T();
	}
	T operator[](long i )
	{
		return GetItem(i);
	}
	virtual void AddItem ( T& item)
	{
		m_Items.Add( item);
		m_Max ++;
		
	}
	virtual int Find (const TI& code )
	{
		for ( int i = 0 ; i < m_Items.GetSize(); i++)
		{
			if (m_Items[i].ItIsMe(code ))
				return i;
		}
		return -1;
	}
	long GetNewCode ()
	{
		return m_Max+1;
	}
	long GetItemCount() const
	{
		return (long)m_Items.GetSize ();
	}

	virtual bool DeleteItem( long index)
	{
		m_Items.RemoveAt (index);
		return true;
	}

	virtual bool ModifyItem (int index, T& item)
	{
		m_Items[index] = item;
		return true;
	}

	virtual bool Clear()
	{
		m_Items.RemoveAll ();
		m_Max = -1;
		return true;
	}

};


	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -