有没有能自动分组的网格控件和报表控件
本帖最后由 bileisisisi 于 2012-06-30 16:20:43 编辑
有三个表
表1:用户编号,用户姓名
表2:物品编码,物品名称,数量,单价,金额,票据单号
表3:用户编号,上次现金余额,本次现金余额,实收金额,票据单号
内容如下:
表1:
用户编号 用户姓名
-----------------------
1 张三
2 李四
表二
用户编号 物品编码 物品名称 数量 单价 金额 票据单号
------------------------
1 1 牙膏 1 10 10 000001
1 2 罐头 3 20 60 000001
1 3 饼干 4 1.4 5.6 000001
2 4 蜗居 1 10 10 000002
2 3 饼干 4 1.4 5.6 000002
2 7 芹菜 4 1.4 5.6 000002
表三:
用户编号 上次现金余额 本次现金余额 实收金额 票据单号
---------------------
1 0 0.6 76 00001
2 0 0.4 22 00002
根据以上数据 要生成如下格式的报表
销售报表
用户编号 用户姓名 物品编码 物品名称 数量 单价 金额 票据单号 上次现金余额 本次现金余额 实收金额
-------------------------------------------------------------------------
1 牙膏 1 10 10
1 张三 2 罐头 3 20 60 000001 0 0.6 76
3 饼干 4 1.4 5.6
4 蜗居 1 10 10
2 李四 3 饼干 4 1.4 5.6 000002 0 0.4 22
7 芹菜 4 1.4 5.6
请问用什么网格控件和报表控件可以实现以上效果
/***************源数据抽象***********/
struct _client_info /*个人基本信息 */
struct _contract /*借款合同 */
struct _income /*资产和收入信息*/
/************************************/
/***************目标表抽象***********/
struct _crm_products /*所有表的基类 */
/************************************/
_crm_products* use_client_info(struct _client_info *pclient)
{
retrun 0;
}
_crm_products* use_contract(struct _contract *pcontract)
{
retrun 0;
}
_crm_products* use_income(struct _income *pincome)
{
retrun 0;
}
/**
* 工厂模式的目的就根据不同的要求输出不同的产品
* 对于一个工厂来说,就看我们输入的参数是什么
* 至于结果,可以是简单也可以是很复杂
* struct _crm_products就很复杂
*/
_crm_products* make_crm_product(int deal_type)
{
if(CLIENT_INFO_TYPE == deal_type) return( use_client_info( pclient ) );
if(CONTRACT_TYPE == deal_type) return( use_client_info( pclient ) );
if(INCOME_TYPE == deal_type) return( use_client_info( pclient ) );
return( null );
}