以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多值列作为其他列下拉值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126937)

--  作者:湛江智
--  发布时间:2018/11/1 12:01:00
--  [求助]多值列作为其他列下拉值

当前行的多值列作为多值列下拉多选录入列的下拉值,求助

 

也就是窗口 多值列下拉多选录入控件,下拉多选值:

苹果,香蕉,樱桃,西瓜  

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值列作为其他列下拉值.foxdb


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/11/1 12:02:51编辑过]

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

enter事件

 

e.sender.ComboList = e.Form.controls("combobox1").text.replace(",", "|")


--  作者:湛江智
--  发布时间:2018/11/1 15:47:00
--  回复:(有点甜)enter事件?e.sender.ComboL...
 如果 多值列下拉多选录入 里面的值不是 多值列里面的值时,(不是下拉选择录入的值)

多值列下拉多选录入 单元格的背景色样式采用 样式1,代码怎么修改呢? 谢谢

Dim val As String = Tables("表A").Current("多值列下拉多选录入")

Dim fdr As DataRow = DataTables("表A").Find("(多值列 = \'" & val & "\' or 多值列 like \'" & val & ",*\' or 多值列 like \'*," & val & ",*\' or 多值列 Like \'*," & val & "\')")
If fdr IsNot Nothing Then
Else
            e.Style = "样式1"
End If
End If

[此贴子已经被作者于2018/11/1 16:56:00编辑过]

--  作者:有点甜
--  发布时间:2018/11/1 17:56:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值列作为其他列下拉值.foxdb


--  作者:湛江智
--  发布时间:2018/11/1 18:12:00
--  回复:(有点甜)[upload=foxdb,多值列作为其他列下拉...
 版本过高,辛苦贴出代码了
狗到期,不能升级了,不好意思

--  作者:有点甜
--  发布时间:2018/11/1 20:47:00
--  

1、设置样式1;

 

2、drawcell事件代码

 

If e.Col.name = "多值列下拉多选录入" Then
    Dim val As String = e.text
    If val > "" Then
        Dim fdr As DataRow = DataTables("表A").Find(" \',\' + 多值列 + \',\' like \'%," & val & ",%\' ")
        If fdr Is Nothing Then
            e.Style = "样式1"
        End If
    End If
End If


--  作者:湛江智
--  发布时间:2018/11/2 8:55:00
--  回复:(有点甜)1、设置样式1;?2、drawcel...

大师,多值列下拉多选录入列里面的值,如果和多值列里面的顺序不一致也可以不执行单元格样式1,怎么修改呢?

 


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

[此贴子已经被作者于2018/11/2 8:56:12编辑过]

--  作者:有点甜
--  发布时间:2018/11/2 9:16:00
--  
If e.Col.name = "多值列下拉多选录入" Then
    Dim val As String = e.text
    If val > "" Then
        Dim alltrue As Boolean = True
        For Each v As String In val.split(",")
            Dim fdr As DataRow = DataTables("表A").Find(" \',\' + 多值列 + \',\' like \'%," & v & ",%\' ")
            If fdr Is Nothing Then
                alltrue = False
                Exit For
            End If
        Next
        If alltrue = False Then
            e.Style = "样式1"
        End If
    End If
End If

--  作者:湛江智
--  发布时间:2018/11/14 18:39:00
--  回复:(有点甜)If e.Col.name = "多值列下拉多选录入...

大师,如果要通过2列日期差,自动生成单元格样式,下拉代码怎么修改呢?

 


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

Select Case e.DataCol.name

    Case "计划日期","实际日期"

        If e.DataRow.IsNull("计划日期") = False And e.DataRow.IsNull("实际日期") = False  Then

            Dim d As Integer

            Dim dt1 As Date = e.DataRow("计划日期")

            Dim dt2 As Date = e.DataRow("实际日期")

            d= (dt2- dt1).TotalDays()

            If d <=   "-3"  \'小于等于

                e.Style = "样式1"

            ElseIf  d = "-2"

                e.Style = "样式2"

            ElseIf  d = "-1"

                e.Style = "样式3"

            ElseIf  d = "0"

                e.Style = "样式4"

            ElseIf  d = "1"

                e.Style = "样式5"

            ElseIf  d = "2"

                e.Style = "样式6"

            ElseIf  d >=  "3"  \'大于等于

                e.Style = "样式7"

            End If

        End If

End Select


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

参考

 

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