以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于组合框列表项目的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56178)

--  作者:coolbhb
--  发布时间:2014/8/31 15:32:00
--  关于组合框列表项目的问题
组合框中列表项目可以cmb.ComboList = DataTables("客户").GetComboListString("公司名称")来获得,但是如何用关联表中的列作为列表项目呢?因为GetComboListString只是datatables的属性。
--  作者:有点甜
--  发布时间:2014/8/31 15:35:00
--  

cmb.ComboList = DataTables("客户").GetComboListString("公司名称", "关联列 = \'" & Tables("表A").Current("关联列") & "\'")

[此贴子已经被作者于2014-8-31 15:35:50编辑过]

--  作者:coolbhb
--  发布时间:2014/8/31 15:44:00
--  
没太搞明白,比如我的父表中没有要作为列表项目的列,窗口中的组合框要用关联表中的一列作为列表项目。如下图

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/8/31 15:46:00
--  

 不明白你的意思。你要从哪个表取数据,就写哪个表,关联表也就是子表加一个条件而已

 

cmb.ComboList = DataTables("子表").GetComboListString("公司名称", "关联列 = \'" & Tables("父表").Current("关联列") & "\'")


--  作者:coolbhb
--  发布时间:2014/8/31 15:59:00
--  
这个我弄明白了,刚才是因为其他代码所以才出现错误,现在又有个新问题,还是这张图,就是我在组合框中选定一个值,后面标签上显示对应这个年度的应收金额。
Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim tx1 As DataRow = cm.SelectedItem
If tx1 IsNot Nothing Then
    e.Form.Controls("应收").Value = tx1("面积应收")
End If
这段代码有问题,可能是没有指定关联表的条件什么的。麻烦帮我看看。

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/8/31 16:02:00
--  

 这种,不能直接得到,你要去查询

 

Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim tx1 As DataRow = DataTables("子表").Find("xxx列 = \'" & cm.Text & "\'")
If tx1 IsNot Nothing Then
    e.Form.Controls("应收").Value = tx1("面积应收")
End If

--  作者:coolbhb
--  发布时间:2014/9/2 9:33:00
--  
Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim tx1 As DataRow = DataTables("年度应收").Find("供热年度 = \'" & cm.Text & "\'")
If tx1 IsNot Nothing Then
    e.Form.Controls("应收").Value = tx1("面积应收")
End If
这个代码还是有问题,当选择另外一个客户的时候,不能正确显示当前客户的数值,显示的是其他客户相同年份的

--  作者:有点甜
--  发布时间:2014/9/2 9:37:00
--  

 那你就加入客户条件

 

Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim tx1 As DataRow = DataTables("年度应收").Find("供热年度 = \'" & cm.Text & "\' and 客户 = \'" & xxxx & "\'")
If tx1 IsNot Nothing Then
    e.Form.Controls("应收").Value = tx1("面积应收")
End If

 

[此贴子已经被作者于2014-9-2 9:37:05编辑过]

--  作者:coolbhb
--  发布时间:2014/9/2 9:37:00
--  
项目在此,窗口1的代码问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11489.table


--  作者:有点甜
--  发布时间:2014/9/2 9:47:00
--  

如下

 

 

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