Foxtable(狐表)用户栏目专家坐堂 → 请教如何判断所取值在列表项目中的位置


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

主题:请教如何判断所取值在列表项目中的位置

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
请教如何判断所取值在列表项目中的位置  发帖心情 Post By:2015/10/1 11:50:00 [只看该作者]

 

如何判断所取值在列表项目中的位置。

 

举例:

表A:有单位、科室、科室顺序  三列。

表B:有单位、科室名称  三列。

  科室名称为备注列,一个单位的所有科室名称均分行输入在科室名称列(各个单位都不一样),如:

       办公室

       会计室

       财务室

 

在表A的PrepareEdit 中写入相应代码,可以使得表A的“科室”列根据输入的单位及表B生成列表项目。

现在的要求是:根据“科室”列选择的内容,如“会计室”,在“科室顺”列中填入该室在列表项目中的顺序,即2。

请教老师如何操作。

 

(通过将科室名称全部拆分成行,可以做到。但工作中因单位数太多,为了代码项目的输入方便,仍想将一个单位的科室列表项目输入在一个单元格中)

[此贴子已经被作者于2015/10/1 15:17:16编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2015/10/1 23:18:00 [只看该作者]

这样处理相当麻烦,没看出有啥好处.

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2015/10/2 10:25:00 [只看该作者]

这样做的好处:(1)可以不用为“科室”单独建一张表;(2)输入、查看“代码项目”时都很方便,直接在一张表中进行即可。

呵呵,还有一个不是原因的原因:我购买的开发版还未到位,目前用的是试用版,表的总数已达限制,没法增加了。
[此贴子已经被作者于2015/10/2 10:28:20编辑过]

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


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/10/2 10:51:00 [只看该作者]

图片点击可在新窗口打开查看

 

 

1、以后公司每增加一个部门或部门改名(比如财务室升级为财务部),就得修改程序了。

 

 

2、试用版没有限制外部表的数量啊。


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2015/10/3 8:27:00 [只看该作者]

1、增加一个部门或部门改名,程序不用改,需要修改相关数据;采用其他方式也必然如此。

2、如果在外部数据源中已经创建好,没有数量限制。但如果在狐表中创建外部表,仍有限制。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/4 11:05:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2015/10/4 11:20:00 [只看该作者]

谢谢大红袍老师的关注!
在老师的帮助下,生成列表项目的多种方法都已掌握,包括上表中的方式、使用GetComboListString、目录树方式以及帮助文件中提到的弹出窗口模糊输入。

现在的想法是,使用上表的形式时,如何判断所取列表值在列表项目中的位置。
比如:在表B的第一列,输入“项目6”,这时我如何得到项目6在列表项目中的顺序2。

之所以这样考虑,是因为列表项目(科室)是受(单位)影响的,如果单独为(科室)建立一个表,然后预先设置顺序是可以做到的。
但为简化输入,想将(科室)列表项目与(单位)基本信息放在一个表中。

[此贴子已经被作者于2015/10/4 11:33:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/4 12:40:00 [只看该作者]

去编写datacolchanged事件,

 

Dim ary() As String = DataTables("表A").GetComboListString("第一列").split("|")
msgbox(array.indexOf(ary,"2"))


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2015/10/4 14:40:00 [只看该作者]

谢谢!我的需求可能有点古怪。

一般来说,是根据数组的序号,取数组的值。我的需求简化后,实际上就是根据值,确定其在数组里的序号,有两个步骤:

一、根据“列表项目”列生成数组,假如为 ar 

       Dim ar As String  =  DataTables("列表项目表").find(.....)            例中:表=表A,列=第一列

二、根据当前的值,假如:  Dim dw As String = e.dataRow("第一列")
    需要根据DW的值,确定基在AR中的序号。

 

  上楼中的两行代码,好象不能达到目的。

 


 

[此贴子已经被作者于2015/10/4 14:42:29编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/7 11:45:00 [只看该作者]

Dim ary() As String = ar.Split("|")
msgbox(array.indexOf(ary,dw))


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