Пример #1
0
BOOL CReportCtrl::OnValueChanged(NMHDR* pNotifyStruct, LRESULT *pResult)
{
 
	XTP_NM_REPORTRECORDITEM* pItemNotify = (XTP_NM_REPORTRECORDITEM*) pNotifyStruct;
	CXTPReportRecordItem *pItem = pItemNotify->pItem;

	CString str;
	if (GetInplaceList()->GetSafeHwnd() != NULL)
		return FALSE;
	else
		GetInplaceEdit()->GetWindowText(str);

	
	str.Trim();
	switch (m_cols[pItem->GetIndex()].fmt)
	{
	case FmtStr:
		pItem->SetCaption(str);
		break;

	case FmtId:
		{
			int nId = _ttoi(str);
			if (nId > 0)
			{
				pItem->SetCaption(CNumericString(nId));
			}
			else
			{
				AlertError(_T("请填入正确的数值"));
				return TRUE;
			}
		}
		break;

	case FmtIdStr:
		if (!str.IsEmpty())
		{
			pItem->SetCaption(str);
		}
		else
		{
			AlertError(_T("字段不能为空,请重新输入"));
			return TRUE;
		} 
		break;
	}
	return TRUE;
}
Пример #2
0
CXTPReportRecord* CReportCtrl::TransferAddRecord(void)
{
	ASSERT (m_pAddOpRecord != NULL);

	CXTPReportRecord *pRec = new CXTPReportRecord();
	for (int i=0; i<m_nColCount; ++i)
	{
		const ColInfo &col = m_cols[i];
		if (col.fmt != FmtIdOnly)
		{
			CXTPReportRecordItem *pItem = new CXTPReportRecordItem();
			if (!col.check)
			{
				pItem->SetCaption(m_pAddOpRecord->GetItem(i)->GetCaption(NULL));
			}
			else
			{
				pItem->SetEditable(col.editable);
				pItem->HasCheckbox(col.check); 
				pItem->SetChecked(m_pAddOpRecord->GetItem(i)->IsChecked());
			}
			pRec->AddItem(pItem);
		}
	}

	PutRecordAux(pRec);

	GetRecords()->InsertAt(m_pAddOpRecord->GetIndex(),pRec);
	ClearAddRecord();
	
	Populate();

	return pRec;
 
}
Пример #3
0
void CSimpleReport::ColReplace(int r, int c, const char* s)
{
	CXTPReportRecord* pRec = GetRecords()->GetAt(r);
	if (!pRec)
		return;

	CXTPReportRecordItem* p = pRec->GetItem(c);
	if (p)
		p->SetCaption(s);

}
Пример #4
0
CXTPReportRecordItem* CReportCtrl::RecordItemFromCol(const ColInfo &c,const _variant_t &v)
{
	CXTPReportRecordItem *pItem = new CXTPReportRecordItem();
	pItem->SetEditable(c.editable);
	if (!c.check)
	{
		pItem->SetCaption(CString(v));
	}
	else
	{
		pItem->HasCheckbox(c.check); 
		pItem->SetChecked((bool)v);
	}
	return pItem;
}