以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  订单明细的控件动态显示?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65470)

--  作者:swagger
--  发布时间:2015/3/17 2:46:00
--  订单明细的控件动态显示?
每张订单的订单明细的产品是不固定的,怎么实现控件如textbox或label动态显示订单明细?
--  作者:Bin
--  发布时间:2015/3/17 8:36:00
--  
拼接所有订单明细 再显示, 具体请上例子,  描述清楚你想实现的需求,免得浪费功夫出来的结果不是你想要的
--  作者:swagger
--  发布时间:2015/3/17 10:24:00
--  
以下是引用Bin在2015/3/17 8:36:00的发言:
拼接所有订单明细 再显示, 具体请上例子,  描述清楚你想实现的需求,免得浪费功夫出来的结果不是你想要的

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目152.foxdb


--  作者:swagger
--  发布时间:2015/3/17 10:25:00
--  

订单10里面有两个产品,订单11里面有三个产品,然后在label里面根据订单显示不同的产品名称等信息, 如果选中订单10,label出现两个,选中订单11,label出现3个


--  作者:Bin
--  发布时间:2015/3/17 10:40:00
--  
Label显示一个数字2? 还是什么意思? 你窗口都已经显示明细表了? 还要一个Label显示什么? 不明白你的需求
--  作者:swagger
--  发布时间:2015/3/17 10:51:00
--  
以下是引用Bin在2015/3/17 10:40:00的发言:
Label显示一个数字2? 还是什么意思? 你窗口都已经显示明细表了? 还要一个Label显示什么? 不明白你的需求

我意思是用控件形式代替明细表


--  作者:swagger
--  发布时间:2015/3/17 10:55:00
--  
譬如如果订单编号100,里面有两个产品,产品A和产品B, 那么选中订单100的时候,label 就显示产品A和产品B, 订单编号101的订单里面有三个产品,A,B,C,那么选中订单101的时候,控件label就显示 产品A,产品B, 产品C
--  作者:有点甜
--  发布时间:2015/3/17 10:56:00
--  

 呃,你就是想生成多个控件而已。参考下面的代码,比如写到 Afterload事件

 

Dim sl As Double = 10
For Each r As Row In Tables("订单.订单明细").Rows
    Dim lbl As WinForm.Label
    lbl = e.Form.CreateControl("p_lbl" & r.Index, ControlTypeEnum.Label)
    lbl.Text = r("产品名称")
    lbl.Left = sl
    lbl.Top = 100
    sl += lbl.Width + 20
    e.Form.Controls("Panel1").AddControl(lbl)
Next


--  作者:swagger
--  发布时间:2015/3/17 18:25:00
--  
以下是引用有点甜在2015/3/17 10:56:00的发言:

 呃,你就是想生成多个控件而已。参考下面的代码,比如写到 Afterload事件

 

Dim sl As Double = 10
For Each r As Row In Tables("订单.订单明细").Rows
    Dim lbl As WinForm.Label
    lbl = e.Form.CreateControl("p_lbl" & r.Index, ControlTypeEnum.Label)
    lbl.Text = r("产品名称")
    lbl.Left = sl
    lbl.Top = 100
    sl += lbl.Width + 20
    e.Form.Controls("Panel1").AddControl(lbl)
Next

这个无法随着订单号改变而改变啊


--  作者:有点甜
--  发布时间:2015/3/17 19:17:00
--  

 呃,能不能有点变通?你在那里需要生成,就在那里放下面的代码啊。比如你把代码写到textbox的ValueChanged事件里面去。

 

Dim sl As Double = 10
e.Form.Controls("Panel1").basecontrol.Controls.Clear
For Each r As Row In Tables("订单.订单明细").Rows
    Dim lbl As WinForm.Label
    lbl = e.Form.CreateControl("p_lbl" & r.Index, ControlTypeEnum.Label)
    lbl.Text = r("产品名称")
    lbl.Left = sl
    lbl.Top = 100
    sl += lbl.Width + 20
    e.Form.Controls("Panel1").AddControl(lbl)
Next

[此贴子已经被作者于2015/3/17 19:16:57编辑过]