Foxtable(狐表)用户栏目专家坐堂 → 请老师看一下,这个应该怎么实现


  共有1971人关注过本帖树形打印复制链接

主题:请老师看一下,这个应该怎么实现

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/26 10:29:00 [显示全部帖子]

方法一:你可以自己做一个下拉窗口,放入一个table控件,一列项目、一列数量,勾选、填写后显示和计算。

 

方法二:你可以把每个项目显示多次,做两个,就勾选2个,最后根据勾选的个数计算。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/26 17:59:00 [显示全部帖子]

1、你说的下拉组合框指什么?是combobox,还是dropdownbox?

 

2、如果是自己做的下拉窗口,直接对表格进行筛选即可;如果是combobox,代码改成下面

 

Dim str As String = e.Form.Controls("ComboBox1").Value
e.Sender.ComboList = DataTables("jcfy").GetComboListString("检测项目", "检测部门 = '" & str & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/26 20:01:00 [显示全部帖子]

 

实例发上来测试一下

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/27 11:57:00 [显示全部帖子]

代码改成

 

Dim r As Row = Tables("表A").Current
If r IsNot Nothing Then
    Dim t As Table = e.Form.Controls("Table1").Table
    t.FinishEditing
    Dim rs As List(of Row) = t.GetCheckedRows
    If rs.Count > 0 Then
        Dim xm As String
        Dim fy As Double
        For Each r1 As Row In rs
            xm = xm & "," & r1("检测项目")
            fy += r1("检测费用") * r1("检测数量")
        Next
        r("检测项目") = xm.Trim(",")
        r("检测费用") = fy
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/27 15:27:00 [显示全部帖子]

Dim r As Row = Tables("表A").Current
If r IsNot Nothing Then
    Dim t As Table = e.Form.Controls("Table1").Table
    t.FinishEditing
    Dim rs As List(of Row) = t.GetCheckedRows
    If rs.Count > 0 Then
        Dim xm As String
        Dim fy As Double
        For Each r1 As Row In rs
            If r1("检测数量") > 1 Then
                xm = xm & "," & r1("检测项目") & "*" & r1("检测数量")
                fy += r1("检测费用") * r1("检测数量")
            Else
                xm = xm & "," & r1("检测项目")
                fy += r1("检测费用")
            End If
        Next
        r("检测项目") = xm.Trim(",")
        r("检测费用") = fy
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 10:38:00 [显示全部帖子]

以下是引用Engineer1在2018/12/4 10:23:00的发言:
老师检测数量改动后,下次进入不能恢复到初始状态,想在进入的时候处于初始状态应该怎么弄?

 

你修改【检测数量】之后,清空其余各列的数据咯,在datacolchanged事件编写代码。

 

http://www.foxtable.com/webhelp/scr/0625.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/5 16:04:00 [显示全部帖子]

以下是引用Engineer1在2018/12/4 10:23:00的发言:
老师检测数量改动后,下次进入不能恢复到初始状态,想在进入的时候处于初始状态应该怎么弄?

 

DropDownOpened事件,循环每一行,清空表格的数量值,即可。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/5 16:08:00 [显示全部帖子]


For Each rr As Row In t.Table.Rows
    rr("检测数量") = Nothing
Next

 回到顶部