示例#1
0
void CObjectData::LoadData(CValue &Val)
{
	if(Val.GetSizeStrArray())
	{
		sType=Val.GetAt("Тип").GetString();
		nLength=Val.GetAt("Длина");
		nPrec=Val.GetAt("Точность");
/*
		nChildImage=Val.GetAt("ChildImage");
		bEdit=Val.GetAt("Edit");
		bGroup=Val.GetAt("Group");
		nType=Val.GetAt("Type");
*/
	}
}
示例#2
0
void CDynControl::AddControl(CValue &ObjectVal)
{
	if(ObjectVal.GetSizeStrArray()==0)
		return;
	m_csObjName=ObjectVal.GetAt("Микроформа");
	m_nControlType=ObjectVal.GetAt("ТипЭлемента");

	int nID=ObjectVal.GetAt("nID");
	if(nID>=FORM_START_ID && nID<=FORM_FINISH_ID)
	{
		m_nID=nID;
	}

	CRect Rect;
	Rect.left=ObjectVal.GetAt("x1");
	Rect.top=ObjectVal.GetAt("y1");
	Rect.right=ObjectVal.GetAt("x2");
	Rect.bottom=ObjectVal.GetAt("y2");

	m_x1=Rect.left;
	m_y1=Rect.top;
	m_x2=Rect.right;
	m_y2=Rect.bottom;
	m_x3=m_x1;
	m_y3=m_y1;

	m_csName=ObjectVal.GetAt("Идентификатор");
	m_csDescription=ObjectVal.GetAt("Описание");
	m_csValue=ObjectVal.GetAt("Заголовок");
	m_csVAllign=ObjectVal.GetAt("Положение верт");
	m_csHAllign=ObjectVal.GetAt("Положение гориз");

	m_bAutoSizeDown=ObjectVal.GetAt("Вниз")!=0;
	m_bAutoSizeRight=ObjectVal.GetAt("Вправо")!=0;
	m_csLayer=ObjectVal.GetAt("Слой");
	if(m_csLayer.IsEmpty())
		m_csLayer=DEFAULT_LAYER_NAME;

	m_bVisible=ObjectVal.GetAt("Видимость")!=0;
	m_bEnable=ObjectVal.GetAt("Доступность")!=0;
	m_nTabOrder=ObjectVal.GetAt("Пропускать при вводе")!=0;

	if (m_nControlType == ID_BUTTONFORMOBJECT) //Пользовательская форма - микроформа
	{
		m_Property=ObjectVal;
	}
	else
	{
		PrepareDataArray();

		for(int i=0;i<aDataList.GetSize();i++)
		{
			int nType=aDataList[i].nType;
			if(nType==FUNCTION_DATA||nType==STRING_DATA||nType==LIST_DATA)
				aDataList[i].sData=ObjectVal.GetAt(aDataList[i].csName);
			else
			if(nType==INT_DATA||nType==BOOL_DATA||nType==COLOR_DATA)
				aDataList[i].nData=ObjectVal.GetAt(aDataList[i].csName);
			else
			if(nType==DOUBLE_DATA)
				aDataList[i].fData=ObjectVal.GetAt(aDataList[i].csName);
		}
	}


	AddControl(Rect);

	if(m_nControlType==ID_DYNBUTTONGRID)
	{
		bWasEdit=ObjectVal.GetAt("WasEdit");
		if(bWasEdit)
		{
			CGridCtrl *pGrid=(CGridCtrl *)m_pWnd;
			int nColumn=ObjectVal.GetAt("Число колонок");
			pGrid->SetColumnCount(nColumn);
			for(int nCol=0;nCol<pGrid->GetColumnCount();nCol++)
			{
				CValue Val;
				Val=ObjectVal.GetAt(nCol+1);
				CGridCell* pCell = (CGridCell*)pGrid->GetCell(0, nCol);
				if (pCell)
				if(Val.GetSizeStrArray())
				{
					pGrid->aColumns[nCol].csName=Val.GetAt("Идентификатор");
					pGrid->aColumns[nCol].csDescription=Val.GetAt("Описание");
					pCell->TextData()=Val.GetAt("Заголовок");
					pGrid->aColumns[nCol].csTitle=pCell->TextData();
					pGrid->aColumns[nCol].csFormule=Val.GetAt("Формула");
					pGrid->aColumns[nCol].csType=Val.GetAt("Тип значения");
					pGrid->aColumns[nCol].nLength=Val.GetAt("Длина");
					pGrid->aColumns[nCol].nPrec=Val.GetAt("Точность");

					pGrid->aColumns[nCol].bVisible=Val.GetAt("Видимость")?1:0;
					pGrid->aColumns[nCol].bEnable=Val.GetAt("Доступность")?1:0;
					pGrid->aColumns[nCol].bTab=Val.GetAt("Пропускать при вводе")?1:0;
					int W=Val.GetAt("Ширина колонки");
					//if(W!=0)
					{
						pGrid->aColumns[nCol].nColumnWidth=W;
						pGrid->m_arColWidths[nCol]=W;
					}
				}
			}
		}
	}

}