Foxtable(狐表)用户栏目专家坐堂 → [求助]列组合代码


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

主题:[求助]列组合代码

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/4/12 12:37:00 [只看该作者]

比如:
组合1=A5/B5/C5/D5/E5/F5
组合2=(A5+B5)(C5+D5)(E5+F5)

打开页面组合1, 执行组合1代码,
打开页面组合2, 执行组合2代码


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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 14:24:00 [只看该作者]

给控件指定有规律的名称,比如组合1 的控件,这样命名:组合1_ComboBox1、组合1_ComboBox2、....;组合2 的控件,这样命名:组合2_ComboBox1、组合2_ComboBox2、....

然后处理的时候,判断一下,如果当前控件以组合1开头,那么就只处理组合1开头的其它控件

If Typeof e.Sender Is WinForm.ComboBox OrElse e.Sender.name Like "*TextBox1*"
    Dim str As String = ""
    If e.Sender.name Like "组合1*"
        Dim c As String = e.Form.Controls("组合1_ComboBox1").text
        If c > "" Then
            str &= c
        End If
        c = e.Form.Controls("组合1_ComboBox2").text
        ……处理组合1的合并
        e.Form.Controls("组合1_TextBox2").text = str
    ElseIf e.Sender.name Like "组合2*"
        Dim c As String = e.Form.Controls("组合2_ComboBox1").text
        ……处理组合2的合并
    End If
End If

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/4/12 15:14:00 [只看该作者]

能否设计一个符号按钮,点击一下,可以将符号插入到组合的任意位置

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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 15:32:00 [只看该作者]

可以插入到控件文本光标所在的位置,利用SelectionStart属性:http://www.foxtable.com/webhelp/topics/1888.htm

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/15 11:15:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210715111409-515151.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/15 11:39:00 [只看该作者]

Dim s1 As String = "A/BxC"
s1 = s1.Replace("A","50").Replace("B","20").Replace("C","3")
msgbox(s1)

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/15 14:36:00 [只看该作者]

有点看不明白,A/BXC=产品规格, A=外径,B=内径 C=高度,对吧

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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/15 14:41:00 [只看该作者]

规则不是您自己定义的吗,我只是照抄而已

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12990 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/15 14:44:00 [只看该作者]

如果使用下段代码,如何修改可以实现:
If e.DataCol.Name = "产品规格1"
    e.DataRow("外径") = Nothing
    e.DataRow("内径") = Nothing
    e.DataRow("高度") = Nothing
    If e.DataRow.IsNull(e.DataCol.Name) = False Then
        Dim Str As String = e.NewValue
        Dim arr() As String = str.Split(new Char(){"/","×"})
        e.DataRow("外径") = arr(0)
        If arr.Length >= 3 Then
            e.DataRow("内径") = arr(1)
            e.DataRow("高度") = arr(2)
        Else
            If str.Contains("/") Then
                e.DataRow("内径") = arr(1)
            ElseIf str.Contains("×") Then
                e.DataRow("高度") = arr(1)
            End If
        End If
    End If
End If


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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/15 14:49:00 [只看该作者]

我以为是要把abc这些字母替换为单元格里具体的值。

如果是要把规格的数据拆分到其它单元格里,上面这段代码没有问题,测试有什么问题?

 回到顶部
总数 26 上一页 1 2 3 下一页