以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 【求助】怎么实现多个订单编号 对应新增多行呢? (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=113114) |
||||
-- 作者:李孝春 -- 发布时间:2018/1/9 15:31:00 -- 【求助】怎么实现多个订单编号 对应新增多行呢? 下面红色部分代码怎么实现多个订单编号 对应新增多行呢? 首先师资明细表事件代码 Select e.DataCol.Name Case "师傅名" Dim dr As DataRow= DataTables("订单主表").Find("安装师傅 = \'" & e.DataRow("师傅名") & "\' ") If dr IsNot Nothing Then \'如果找到, 则设置各列内容 e.DataRow("订单编号")= dr ("订单编号") e.DataRow("施工日期")=dr ("安装日期") e.DataRow("客户名称")=dr("客户名称") e.DataRow("客户地址")=dr("客户地址") Dim filter As String = "(安装师傅 = \'" & e.DataRow("师傅名") & "\')" Dim d=Date.Today d = d.addmonths(-1) Dim y As Integer = d.Year Dim m As Integer = d.Month Dim dt1 As New Date(y, m, 1) Dim dt2 As New Date(y, m, Date.DaysInMonth(y,m)) \'获取该月的最后一天 e.DataRow("施工面积") = DataTables("订单主表").compute("sum(安装面积)", filter & " And 订单日期 >= #" & dt1 & "# And 订单日期 <= #" & dt2 & "#") e.DataRow("施工费") = DataTables("订单主表").compute("sum(安装费)", filter & " And 订单日期 >= #" & dt1 & "# And 订单日期 <= #" & dt2 & "#") End If Case "数量","施工面积","施工费" e.DataRow("合计")=e.DataRow("施工面积")*e.DataRow("施工费") End Select 遍历师傅表里面的全部师傅名字并新增对应的行 Dim Vals As List(of String) Vals = DataTables("师傅表").GetValues("姓名") For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("师资明细").AddNew() dr("师傅名") = Vals(i) Next 怎么实现师资明细表中的数据实现这样的效果呢? 如果订单主表中,安装师傅名字 张三 在一个月内假设有是个安装订单编号 那么 师资明细表中 张三 订单1 张三 订单2 张三 订单3 …… 张三 订单10 然后在成其他师傅的名字的订单编号呢? 李四 订单1 王五 订单1 |
||||
-- 作者:有点甜 -- 发布时间:2018/1/9 15:43:00 -- 1、尽量不要在datacolchanged事件增加本表的行,你这样做什么逻辑?
2、请上传实例具体说明要做的功能。 |
||||
-- 作者:李孝春 -- 发布时间:2018/1/9 17:40:00 -- 回复:(有点甜)1、尽量不要在datacolchanged事件增加... 此主题相关图片如下:11.png 要实现图二的样子 将某个师傅在所有订单主表中 参加安装的 都显示出来 比如李四 参与了三个订单主表
[此贴子已经被作者于2018/1/9 17:41:12编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/1/9 18:09:00 -- 没看懂你的例子。就例子的数据而言,输入什么、操作什么、最后得到什么?
|
||||
-- 作者:李孝春 -- 发布时间:2018/1/9 18:54:00 -- 回复:(有点甜)没看懂你的例子。就例子的数据而言,... 有点甜老师 思路是这样的 下面数据库是有数据的 可以直接使用
点明细查看 会弹出新窗体 点生成明细 会将师傅表里面的师傅名称写入 师资明细表中 然后师资明细表就会根据师傅名字去查找对应订单主表里面的记录 并将订单编号 查找出来生成多行明细表 [此贴子已经被作者于2018/1/9 18:56:31编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2018/1/9 20:34:00 -- Static cnt As Integer cnt = cnt + 1 If cnt < 2 Then DataTables("师资明细").datarows.Clear() Dim Vals As List(of String) Vals = DataTables("师傅表").GetValues("姓名") For i As Integer = 0 To Vals.Count - 1 Dim drs As List(Of DataRow) = DataTables("订单主表").Select("安装师傅=\'" & Vals(i) & "\'","订单编号") If drs.Count > 0 Then For Each fdr As DataRow In drs Dim dr As DataRow = DataTables("师资明细").AddNew() dr("师傅名") = Vals(i) dr("订单编号") = fdr("订单编号") Next Else Dim dr1 As DataRow = DataTables("师资明细").AddNew() dr1("师傅名") = Vals(i) End If Next Else MessageBox.show("一次只能一次") Dim 变量名 As WinForm.Button = e.Form.Controls("Button1") 变量名.Enabled=False End If
|