int CInteractionStructureView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CXTPReportView::OnCreate(lpCreateStruct) == -1) { return -1; } GetReportCtrl().SetPaintManager(new CXTPReportInteractionStructurePaintManager()); CXTPToolTipContext* pToolTipContext = GetReportCtrl().GetToolTipContext(); if (pToolTipContext != NULL) { pToolTipContext->SetStyle(xtpToolTipOffice2007); pToolTipContext->SetMaxTipWidth(200); pToolTipContext->SetMargin(CRect(2, 2, 2, 2)); pToolTipContext->SetDelayTime(TTDT_INITIAL, 1000); } LoadImages(); CXTPReportControl& wndReport = GetReportCtrl(); CXTPReportColumn* pColumn = wndReport.AddColumn(new CXTPReportColumn(0, _T("Name"), 250)); pColumn->SetTreeColumn(TRUE); pColumn->SetAlignment(DT_VCENTER); pColumn->SetEditable(FALSE); pColumn->SetSortable(TRUE); pColumn->SetSortIncreasing(TRUE); pColumn = wndReport.AddColumn(new CXTPReportColumn(ICON_COLUMN_NO /*1*/, _T(""), 30)); pColumn->SetMinWidth(25); pColumn->SetAlignment(DT_RIGHT); pColumn->SetEditable(FALSE); pColumn->EnableResize(FALSE); wndReport.SetGridStyle(false, xtpReportGridNoLines); wndReport.GetReportHeader()->AllowColumnRemove(FALSE); wndReport.GetPaintManager()->SetColumnStyle(xtpReportColumnFlat); wndReport.EditOnClick(FALSE); wndReport.SetMultipleSelection(true); wndReport.SetTreeIndent(7); wndReport.ShowHeader(FALSE); wndReport.ShowRowFocus(FALSE); wndReport.GetReportHeader()->AllowColumnResize(false); wndReport.SetSortRecordChilds(TRUE); wndReport.GetColumns()->SetSortColumn(wndReport.GetColumns()->GetAt(0), TRUE); wndReport.GetPaintManager()->m_bShadeSortColumn = FALSE; ShowScrollBar(SB_HORZ, FALSE); RefreshList(); return 0; }
HRESULT CXTPReportDataManager::CreateColumns() { HRESULT hr = E_FAIL; try { XTPREPORTADODB::FieldsPtr pFields; if (FAILED(hr = m_pDataSource->get_Fields(&pFields)) || pFields == NULL) return hr; long lFields; if (FAILED(hr = pFields->get_Count(&lFields)) || lFields == 0) return hr; VARIANT vtIdx; vtIdx.vt = VT_I4; for (int i = 0; i < lFields; i++) { vtIdx.lVal = i; XTPREPORTADODB::FieldPtr pField; if (FAILED(hr = pFields->get_Item(vtIdx, &pField)) || pField == NULL) break; /* XTPREPORTADODB::DataTypeEnum dteType; if (FAILED(hr = pField->get_Type(&dteType))) break; if (dteType == XTPREPORTADODB::adLongVarBinary) continue;*/ BSTR bstrName; pField->get_Name(&bstrName); CString strName(bstrName); ::SysFreeString(bstrName); CXTPReportColumn* pColumn = new CXTPReportColumn(i, strName, 100); if (!pColumn) break; long lAttrs; if (SUCCEEDED(hr = pField->get_Attributes(&lAttrs)) && (lAttrs & XTPREPORTADODB::adFldUpdatable)) pColumn->SetEditable(TRUE); m_pReportControl->AddColumn(pColumn); } } catch(_com_error &e) { TRACE_ProviderError(m_pConnection); TRACE_ComError(e); hr = FAILED(hr) ? hr : E_FAIL; } catch(...) { TRACE(_T("Unknown error in CreateColumns()\n")); hr = FAILED(hr) ? hr : E_FAIL; } return FAILED(hr) ? hr : S_OK; }