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; }
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; }
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); }
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; }