Foxtable(狐表)用户栏目专家坐堂 → 如何将数字转换为字符组合


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

主题:如何将数字转换为字符组合

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
如何将数字转换为字符组合  发帖心情 Post By:2025/1/20 8:43:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "应选户型_120型A", "应选户型_90型B", "应选户型_60型C", "应选户型_30型D" 
        If e.DataRow.IsNull("应选户型_120型A") OrElse e.DataRow.IsNull("应选户型_90型B") OrElse e.DataRow.IsNull("应选户型_60型C") OrElse e.DataRow.IsNull("应选户型_30型D") Then '身份证号码是否为空
            e.DataRow("户型汇总") = Nothing '如果为空,则清除出生日期
        Else
            '如何将数字转换成字符组合?
            
            e.DataRow("户型汇总") = 
        End If 
End Select
请老师看看例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目250120.rar

这样可以吗

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/20 10:43:00 [显示全部帖子]

非常感谢两位老师的代码,假若“户型汇总”列不用字母表示(A,A,B,C),就直接用户型表示(120型, 120型, 90型, 60型),则这个代码又如何变化?

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/20 11:15:00 [显示全部帖子]

谢谢老师,代码非常非常的完美

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/21 14:05:00 [显示全部帖子]

关于按照指定科目的顺序和日期的先后顺序排序的问题?
班级代码 科目 日期 顺序号
701 物理 2023-09-03   
701 物理 2024-07-18   
701 物理 2024-03-09   
701 语文 2023-10-05   
701 语文 2024-02-03   
701 语文 2024-08-23   
701 数学 2023-09-23   
701 数学 2024-07-28   
701 数学 2024-03-19   
701 化学 2023-10-25   
701 化学 2024-02-13   
701 化学 2024-08-23   
701 英语 2023-09-23   
701 英语 2024-07-18   
701 英语 2024-03-19   

我希望一是按照科目“语文、数学、英语、物理、化学”的顺序排序,二是按照日期的先后顺序排序,顺序号的格式701+科目编号1位+日期编号2位,排序后效果如下:
班级代码 科目 日期 顺序号
701 语文 2023-10-05 701-11
701 语文 2024-02-03 701-12
701 语文 2024-08-23 701-13
701 数学 2023-09-23 701-21
701 数学 2024-03-19 701-22
701 数学 2024-07-28 701-23
701 英语 2023-09-23 701-31
701 英语 2024-03-19 701-32
701 英语 2024-07-18 701-33
701 物理 2023-09-03 701-41
701 物理 2024-03-09 701-42
701 物理 2024-07-18 701-43
701 化学 2023-10-25 701-51
701 化学 2024-02-13 701-52
701 化学 2024-08-23 701-53

当新增一个日期时,顺序号会自动变化,日期排在最前的顺序号则自动调整到最前面,比如:
当增加一行:701 语文 2023-08-15
则语文的顺序号自动调整为如下:
班级代码 科目 日期 顺序号
701 语文 2023-08-15 701-11
701 语文 2023-10-05 701-12
701 语文 2024-02-03 701-13
701 语文 2024-08-23 701-14

当增加一行:701 化学 2024-05-15
则化学的顺序号自动调整为如下:
班级代码 科目 日期 顺序号
701 化学 2023-10-25 701-51
701 化学 2024-02-13 701-52
701 化学 2024-05-15 701-53
701 化学 2024-08-23 701-54


Select e.DataCol.Name
    Case "班级代码", "科目", "日期"
        If e.DataRow.IsNull("班级代码") OrElse e.DataRow.IsNull("科目") OrElse e.DataRow.IsNull("日期") Then
            e.DataRow("顺序号") = Nothing
        Else
            Dim names() As String = {"语文", "数学", "英语", "物理", "化学"}
            Dim bh As String = e.DataRow("班级代码") & "-" '生成编号的前缀
            If e.DataRow("顺序号") Then 
                Dim max As String
                Dim idx As Integer 
                max = 
                
                If max > "" Then 
                    idx = CInt(max.Substring(max.length - 2)) + 1
                Else
                    idx = 1
                End If
                e.DataRow("顺序号") = lb & Format(idx, "00")
            End If 
        End If
End Select
请教老师上述功能如何才能实现?
     

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/21 16:10:00 [显示全部帖子]

非常感谢老师辛苦指教, 
上述代码, 出现错误, 提示:变量m在封闭块中隐藏变量
错误代码:Dim m As Integer = CInt(Right(s, 1)) + 1
将Dim m As Integer = CInt(Right(s, 1)) + 1修改为:m = CInt(Right(s, 1)) + 1
运行错误, 提示:调用的目标发生异常
从字符串""到类型"integer"转换无效
输入字符串的格式不正确

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/21 16:52:00 [显示全部帖子]

老师,这个代码还不够完美,运行出现下列结果
701 物理 2023-09-03 701-42 
701 物理 2024-07-18 701-43 
701 物理 2024-03-09 701-41

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/21 17:25:00 [显示全部帖子]

请老师将例1和例2一起完善一下,麻烦老师了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目250121.rar


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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/21 22:09:00 [显示全部帖子]

衷心感谢老师这么晩还加班回复!

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/23 11:03:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "字符"
        If e.DataRow.IsNull("字符") Then 
            e.DataRow("第十列") = Nothing
        Else 
            Dim fz As String = StrReverse(e.DataRow("字符")) '首先反转字符顺序
            e.DataRow("第十列") = fz.Chars(1) '然后用Chars函数, 返回指定位置的字符,起始位置为0。例如:"ABC".Chars(1)等于"B"          
        End If
End Select
老师,想取字符串倒数第2个字符,这个代码怎么没反应,还有更简单的方法吗

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


加好友 发短信
等级:四尾狐 帖子:893 积分:6164 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2025/1/23 12:38:00 [显示全部帖子]

非常感谢两位老师。18楼这种方法当时也想到过

 回到顶部
总数 11 1 2 下一页