vs2008 MFC 对话框 grid++ report 使用经验总结

grid++ report  在不使用数据库的情况下如何使用的问题;

 

看grid++ report的例子都是从数据库中获取记录的,没有从外部输入数据的情况,参考grid++ report 5.6的例子;

class CScatterChartEvent :public CGridppReportEventImpl
{
public:
	virtual void Initialize(void)
	{
		m_pDetailChart = m_pOwnerDlg->m_pGridppReport->ControlByName("DetailChart")->AsChart;
		
		m_pRecordset = m_pOwnerDlg->m_pGridppReport->DetailGrid->Recordset;

		m_pCategoryIDField = m_pOwnerDlg->m_pGridppReport->FieldByName("CategoryID");

		m_pDetailChart->SeriesCount = 1;
		m_pDetailChart->SeriesLabel[0] = "XX曲线";
	}

	virtual void CScatterChartEvent::FetchRecord(void)
	{
		for (unsigned int i=0;i<m_pOwnerDlg->m_AllInfo.size();i++)
		{
			m_pRecordset->Append();

			m_pCategoryIDField->Value=i;

			m_pRecordset->Post();
		}

	}

	//如果一个图表要多次输出,就应该在每次输出图表所对应的事件中为图表提供数据,在内容行中的图表应该在 ProcessRecord 事件中提供图表数据;
	//在分组头或分组尾中的图表应该分别在 GroupBegin 与 GroupEnd 事件中提供图表数据。
	//如果是在ProcessRecord、GroupBegin 或 GroupEnd 事件中提供图表数据,
	//在赋值之前必须调用图表的 PrepareSnapShort 方法,在赋值完成之后必须调用图表的 SnapShort方法。

	virtual void ProcessRecord(void) 
	{
		m_pDetailChart->PrepareSnapShot();
		m_pDetailChart->EmptyXYValue();

		list<LDIIP_TrigInfo>::iterator iter;
		int i=0;

		for(iter=m_pOwnerDlg->m_AllInfo[m_pOwnerDlg->m_Index].begin();iter!=m_pOwnerDlg->m_AllInfo[m_pOwnerDlg->m_Index].end();iter++)
		{
			//
			m_pDetailChart->AddXYValue(0, i, (*iter)._speed);
			i++;
		}

		m_pDetailChart->SnapShot();
	};

	CPrintSpeedGraphDlg *m_pOwnerDlg;
	IGRRecordsetPtr m_pRecordset;
	IGRChartPtr m_pDetailChart;
	IGRFieldPtr m_pCategoryIDField;
	IGRFieldPtr m_pCategoryNameField;
	IGRFieldPtr m_pAmtFields[12];
};


其中vector<list <TrigInfo>> m_AllInfo; 从外部将数据传入散列连线图;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值