找回密码
 立即注册

QQ登录

只需一步,快速开始

ForMyLove

银牌会员

3

主题

16

帖子

2197

积分

银牌会员

积分
2197

活字格认证

最新发帖
ForMyLove
银牌会员   /  发表于:2011-7-15 11:41  /   查看:7253  /  回复:3
表头内容为客户信息,明细行为该客户下产品的信息
                        
               销售订单               
        客户:        A化工厂        
        电话:        010-12345        
                        
        产品编码        产品名称        规格
        A001        一号模具        400×500
        A002        二号模具        400×400
        A003        三号模具        400×350
其中,产品信息保存在数据库表tb_product中,客户信息保存在tb_Customer中.tb_product中有字段记录客户信息的id.用一个MR控件能实现吗?请问如何实现

3 个回复

倒序浏览
Arthas
葡萄城公司职员   /  发表于:2011-7-15 14:24:00
沙发
这个貌似比较easy。
上面是一个column header,
下面的是row。
即便是DataGridView也可以轻松完成。

应该是MultiRow最简单的使用场景。甚至还没有使用free layout功能呢。
当然随着开发的进行,
布局比较复杂的时候,MultiRow的优势就体现出来了。
扯淡第一高手
回复 使用道具 举报
Arthas
葡萄城公司职员   /  发表于:2011-7-15 14:32:00
板凳
根据你的表单设计以及上面提的需求,
实际上你会根据一个客户的ID来查询客户信息, 紧接着, 通过客户ID还要查出该客户对应的产品明细对吧?
因此实际上你会做两次SQL查询, 一次是在tb_Customer表,
可以得到一行信息, 这行信息对应的是客户的资料,
这个因为只有一行, 你取出来直接给Header Cell赋值即可。
然后查询tb_Product表, 得到Product信息, 得到一个Table之后,
这个做数据绑定。
如果不考虑翻页的话, 这就已经OK了。。
扯淡第一高手
回复 使用道具 举报
barrylei
超级版主   /  发表于:2011-7-18 12:21:00
地板
我写了一个例子,见附件以及下图。我使用了NorthWind的Customer表和Order表来模拟你的Case,前一个是主表,后一个是从表。
基本的思路是
1. 在IDE下建立连接,VS2010很方便可以做,参考MSDN。
2. 然后添加一个BindingNavigator
3. 设置BindingNavigator的BindingSource到CustomerBindingSource
4. 把MultiRow的DataSource设置到CustomerOrderBindingSource
5. 在customersBindingSource的CurrentChanged事件里写下面的代码,这段代码就是给Header上设置主表信息。
6. 运行程序
  1.             DataRowView dr = (DataRowView)this.customersBindingSource.Current;
  2.             this.gcMultiRow1.ColumnHeaders[0].Cells["CustomerID"].Value = dr.Row[0];
  3.             this.gcMultiRow1.ColumnHeaders[0].Cells["CompanyName"].Value = dr.Row[1];
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部