Foxtable(狐表)用户栏目专家坐堂 → 数组中的顺序号如何提出来使用?


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

主题:数组中的顺序号如何提出来使用?

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
数组中的顺序号如何提出来使用?  发帖心情 Post By:2018/10/26 7:59:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb


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


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 9:13:00 [只看该作者]

没看懂。上面说的“数组”具体指什么内容

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/10/26 14:28:00 [只看该作者]

请看DataChanged事件中代码。因为第一列中部分需要使用序号排序,其它部分需要用拼音首字母排序。所以,我感觉需要使用数组解决。如果有其它方法解决,也可以的。

Select Case e.DataCol.Name
    Case "第一列"
        If e.DataRow.IsNull("第一列") Then
            e.DataRow("第一列缩写") = Nothing 
        Else
            e.DataRow("第一列缩写") = GetPinYin(e.DataRow("第一列"), 1)
        End If

        Dim Names() As String = {"甲甲","甲乙","甲丙","甲丁"}
        For i As Integer = 0 To Names.Length - 1
            e.DataRow("第一列代码") = Format(Array.Indexof(Names,Names(i)),"000") & "-" & e.DataRow("第一列缩写") 
'如何编写类似上面这行代码,实现从上面names集合中,根据第一列填入的内容,如“甲甲”、“甲乙”、.......,自动写入对应的顺序号001、002呢?

'            msgbox(Array.Indexof(Names,Names(i)))
        Next
End Select

[此贴子已经被作者于2018/10/26 14:34:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 14:33:00 [只看该作者]

序号根据什么规则生成?按录入顺序?那直接使用_Identify排序不就行了

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/10/26 14:37:00 [只看该作者]

这个序号只能由自己规定,放在一个集合中。一般是根据实际习惯排序的。如省委、省委办公厅、省政府、省政府办公厅等等。其它普通单位则根据拼音首字母排序即可。

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 14:42:00 [只看该作者]

序号只能由自己规定:有没有规律?如果没有,不可能通过代码生成。如果是通过拍脑袋决定的,只能手工录入

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/10/26 14:52:00 [只看该作者]

规律是这样的:
1、已知顺序的单位事先放在一个集合中,由其在集合中的顺序号决定。这个规律由人提前决定,能提取出顺序号即可。但我不知道怎么根据第一列的具体内容(如“甲甲”、“甲乙”.....),提取集合中顺序号写入?
2、其它单位由拼音首字母决定。这首字母就是规律。这个好弄些。

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 15:17:00 [只看该作者]

这个规律由人提前决定 -- 这就不叫规律,就是拍脑袋决定的。

如果是按照第一列录入的顺序,就是直接使用_Identify排序

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/10/26 15:33:00 [只看该作者]

一个人为规定的集合中顺序号,难道不能提取出来使用?之所以需要这样,是因为有的时候需要由用户自行添加,不得已为用户规定了这样的规律。否则,做成的表并不全面。
所以,我的设计思路是这样的:
1、如果第一列输入的内容在集合Names中,则提取出其在集合中的顺序号,填入”第一列代码“中。
2、如果第一列输入的内容不在集合Names中,则提取首字母填入”第一列代码“中。



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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 16:00:00 [只看该作者]

Select Case e.DataCol.Name
    Case "第一列"
        If e.DataRow.IsNull("第一列") Then
            e.DataRow("第一列缩写") = Nothing
        Else
            e.DataRow("第一列缩写") = GetPinYin(e.DataRow("第一列"), 1)
        End If
        
        Dim Names() As String = {"甲甲","甲乙","甲丙","甲丁"}
        Dim idx As Integer = Array.Indexof(Names,e.DataRow("第一列"))
        e.DataRow("第一列代码") =  Format(idx,"000") & "-" & e.DataRow("第一列缩写")
End Select

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