以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于跨表多行合并代码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186208)

--  作者:jhxb8821
--  发布时间:2023/4/13 8:18:00
--  关于跨表多行合并代码问题
有两个表“订单表”、“订单明细表”,比如:“订单明细表”中订单编号为101#,“产品名称”列分别为ABC,“数量”列分别是51020;希望在“订单表”中增加“订单详情”列,订单编号101#自动统计为“A5),B10),C20)”,请教老师,这个代码怎么写?
--  作者:有点蓝
--  发布时间:2023/4/13 8:49:00
--  
产品少可以这样,如果有几十上百个,这个功能不是合理的用法。作为一个数据库软件,也不应该这样存储数据,这样出报表倒是可以理解。但是数据存储和数据展示是2种不同的概念,尽量分开处理

如果要做,大概:订单表datacolchanged事件

select case e.datacol.name
case "编号"
dim s as string
for each dr as datarow = datatables("订单明细").select("编号=\'" & e.datarow("编号") & "\'")
s = s & "," & dr("产品名称")  & “(” & dr("数量") & “)”
next
e.datarow("订单详情") = s
end select


--  作者:jhxb8821
--  发布时间:2023/4/13 9:06:00
--  
老师,提示有语法错误
--  作者:有点蓝
--  发布时间:2023/4/13 9:18:00
--  
for each dr as datarow in datatables("订单明细").......
--  作者:jhxb8821
--  发布时间:2023/4/13 9:29:00
--  
,A(5),B(10),C(15)
蓝老师,怎么多了一个逗号

--  作者:有点蓝
--  发布时间:2023/4/13 9:30:00
--  
e.datarow("订单详情") = s.trim(",")
--  作者:jhxb8821
--  发布时间:2023/4/13 9:35:00
--  
好了,非常感谢蓝老师
--  作者:jhxb8821
--  发布时间:2023/4/21 10:46:00
--  代码

老师,下列代码为什么已打开,软件就关闭

Dim tmp As String = ProjectPath & "Attachments\\资料卡2.doc" 

Dim rep As String = ProjectPath & "Reports\\资料卡2.doc" 

Dim mht As String = ProjectPath & "Reports\\资料卡2.mhtml"

Dim wrt As New WordReport(Tables("事件登记"), tmp, rep)

wrt.Build() 

wrt.SaveToMHT(mht)

wrt.Quit

e.Form.Controls("WebBrowser1").Address = mht



--  作者:有点蓝
--  发布时间:2023/4/21 10:51:00
--  
如果有安装wps,参考:http://www.foxtable.com/webhelp/topics/3735.htm
--  作者:jhxb8821
--  发布时间:2023/4/21 11:05:00
--  
我查看了一下电脑,没有安装过WPS文件