以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]求几个关于下拉窗口与多值字段的问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127984)

--  作者:fengwenliuyan
--  发布时间:2018/11/26 16:21:00
--  [求助]求几个关于下拉窗口与多值字段的问题?
第一个任务是:
在筐架表窗口中,各客户的筐架数合计,根据客户的不同,合计每个客户每种筐架的合计数,如:
客户为北京,窗口控件的铁箱等筐架数量,等于下表所示数据的合计;

第二个任务是:
表中的单笔筐架列,设置为下拉窗口类型,效果如:窗口中的下拉窗口的样子;

第三个任务是:
下拉窗口中的控件,为什么设置了初始值字符,可是绑定了列的数据后,显示的下拉窗口中,之前控件的设置的初始值字符不见了?有什么办法吗?

第四个任务是:
“单笔筐架”列的下拉窗口中输入的各样数据,以多值字段形式,显示在“单笔筐架”列的单元格中,效果如:
表中的第一行与第五行的客户北京的“单笔筐架”列,当前显示的内容。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:测试1.table



--  作者:有点甜
--  发布时间:2018/11/26 17:14:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试1 (1).table


--  作者:fengwenliuyan
--  发布时间:2018/11/26 23:52:00
--  [求助]若“袋子和托盘”都未输入信息的情况下,单笔筐架显示:“1铁箱+1铁筐”?
客户为海南,单笔筐架列显示:“铁箱+0袋子”?
能否做成:
若“袋子和托盘”都未输入信息的情况下,单笔筐架显示:“1铁箱+1铁筐”?

--  作者:fengwenliuyan
--  发布时间:2018/11/26 23:55:00
--  
客户为海南,单笔筐架列显示:“铁箱+0袋子”?
能否做成:
若“袋子和托盘”都未输入信息的情况下,单笔筐架显示:“1铁箱+1铁筐”?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:测试1.table


--  作者:有点甜
--  发布时间:2018/11/27 9:08:00
--  

代码改成

 

Dim t As Table = Tables("筐架表")
Dim v1 = val(e.Form.controls("textbox1").text)
If val(e.Form.controls("textbox1").text) <> Nothing Then
    t.Current("铁箱") = v1
Else
    v1 = 1
    t.Current("铁箱") = v1
End If
Dim v3 = val(e.Form.controls("textbox3").text)
If val(e.Form.controls("textbox3").text) <> Nothing Then
    t.Current("袋子") = v3
Else
    v3 = 1
    t.Current("袋子") = v3
End If

e.Form.DropDownBox.value = v1 & "铁箱+" & v3 & "袋子"


--  作者:fengwenliuyan
--  发布时间:2018/11/27 10:30:00
--  
不行呀?改的是哪个位置的代码?我都试过了,怎么不行?
--  作者:fengwenliuyan
--  发布时间:2018/11/27 10:52:00
--  [求助]您的这段代码,不是太明白,我翻译了下,您看看
直译:
定义筐架表t
定义下拉窗口控件textbox1中的内容字符化为v1
若控件1中内容不为空,则表中铁箱单元格内容为v1
否则v1=1,且则表中铁箱单元格内容为v1
若控件3中内容不为空,则表中铁箱单元格内容为v3
否则v3=1,且则表中铁箱单元格内容为v3
下拉窗口所在单元格内容显示为,v1铁箱+v3袋子

这其中的v1=1,v3=1,还有为什么,else还是单元格=v1或v3?
目标效果是,想要内容为空时,在下拉窗口所在单元格的内容中,不显示为空的值?

--  作者:有点甜
--  发布时间:2018/11/27 12:24:00
--  

代码没问题,我测试也没问题。

 

上传具体实例,说明如何操作,达到怎样效果才是你需要的。


--  作者:fengwenliuyan
--  发布时间:2018/11/27 13:49:00
--  
我将您的这段代码:

Dim t As Table = Tables("筐架表")
Dim v1 = val(e.Form.controls("textbox1").text)
If val(e.Form.controls("textbox1").text) <> Nothing Then
    t.Current("铁箱") = v1
Else
    v1 = 1
    t.Current("铁箱") = v1
End If
Dim v3 = val(e.Form.controls("textbox3").text)
If val(e.Form.controls("textbox3").text) <> Nothing Then
    t.Current("袋子") = v3
Else
    v3 = 1
    t.Current("袋子") = v3
End If

e.Form.DropDownBox.value = v1 & "铁箱+" & v3 & "袋子"


放进了下拉窗口的DropDownClosed属性当中替换了之前的代码。

但是,测试效果是,单笔框架列的下拉窗口中,铁箱文本框内,输入任何一个数字,袋子不输入数据,然后,袋子列的数据都只会变成了1。

如:“9铁箱+1袋子”

而不是想要的,袋子不输入数据,就不显示在单笔框架的多值文本中。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试1 (1).table



--  作者:有点甜
--  发布时间:2018/11/27 15:06:00
--  

 

Dim t As Table = Tables("筐架表")
Dim str As String = ""
Dim v1 = val(e.Form.controls("textbox1").text)
If val(e.Form.controls("textbox1").text) <> Nothing Then
    t.Current("铁箱") = v1
    str &= v1 & "铁箱+"
   
End If
Dim v3 = val(e.Form.controls("textbox3").text)
If val(e.Form.controls("textbox3").text) <> Nothing Then
    t.Current("袋子") = v3
    str &= v3 & "袋子+"
End If
e.Form.DropDownBox.value = str.trim("+")