以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教如何判断所取值在列表项目中的位置 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75250) |
-- 作者:lake163 -- 发布时间:2015/10/1 11:50:00 -- 请教如何判断所取值在列表项目中的位置
如何判断所取值在列表项目中的位置。
举例: 表A:有单位、科室、科室顺序 三列。 表B:有单位、科室名称 三列。 科室名称为备注列,一个单位的所有科室名称均分行输入在科室名称列(各个单位都不一样),如: 办公室 会计室 财务室
等 在表A的PrepareEdit 中写入相应代码,可以使得表A的“科室”列根据输入的单位及表B生成列表项目。 现在的要求是:根据“科室”列选择的内容,如“会计室”,在“科室顺序”列中填入该室在列表项目中的顺序,即2。 请教老师如何操作。
(通过将科室名称全部拆分成行,可以做到。但工作中因单位数太多,为了代码项目的输入方便,仍想将一个单位的科室列表项目输入在一个单元格中) [此贴子已经被作者于2015/10/1 15:17:16编辑过]
|
-- 作者:sloyy -- 发布时间:2015/10/1 23:18:00 -- 这样处理相当麻烦,没看出有啥好处. |
-- 作者:lake163 -- 发布时间:2015/10/2 10:25:00 -- 这样做的好处:(1)可以不用为“科室”单独建一张表;(2)输入、查看“代码项目”时都很方便,直接在一张表中进行即可。 呵呵,还有一个不是原因的原因:我购买的开发版还未到位,目前用的是试用版,表的总数已达限制,没法增加了。
[此贴子已经被作者于2015/10/2 10:28:20编辑过]
|
-- 作者:游 -- 发布时间:2015/10/2 10:51:00 --
1、以后公司每增加一个部门或部门改名(比如财务室升级为财务部),就得修改程序了。
2、试用版没有限制外部表的数量啊。 |
-- 作者:lake163 -- 发布时间:2015/10/3 8:27:00 -- 1、增加一个部门或部门改名,程序不用改,需要修改相关数据;采用其他方式也必然如此。 |
-- 作者:大红袍 -- 发布时间:2015/10/4 11:05:00 -- 参考
http://www.foxtable.com/help/topics/1523.htm
|
-- 作者:lake163 -- 发布时间:2015/10/4 11:20:00 -- 谢谢大红袍老师的关注! 在老师的帮助下,生成列表项目的多种方法都已掌握,包括上表中的方式、使用GetComboListString、目录树方式以及帮助文件中提到的弹出窗口模糊输入。 现在的想法是,使用上表的形式时,如何判断所取列表值在列表项目中的位置。 比如:在表B的第一列,输入“项目6”,这时我如何得到项目6在列表项目中的顺序2。 之所以这样考虑,是因为列表项目(科室)是受(单位)影响的,如果单独为(科室)建立一个表,然后预先设置顺序是可以做到的。 但为简化输入,想将(科室)列表项目与(单位)基本信息放在一个表中。 [此贴子已经被作者于2015/10/4 11:33:52编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/10/4 12:40:00 -- 去编写datacolchanged事件,
Dim ary() As String = DataTables("表A").GetComboListString("第一列").split("|") |
-- 作者:lake163 -- 发布时间:2015/10/4 14:40:00 -- 谢谢!我的需求可能有点古怪。 一般来说,是根据数组的序号,取数组的值。我的需求简化后,实际上就是根据值,确定其在数组里的序号,有两个步骤: 一、根据“列表项目”列生成数组,假如为 ar Dim ar As String = DataTables("列表项目表").find(.....) 例中:表=表A,列=第一列 二、根据当前的值,假如: Dim dw As String = e.dataRow("第一列")
上楼中的两行代码,好象不能达到目的。
[此贴子已经被作者于2015/10/4 14:42:29编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/10/7 11:45:00 -- Dim ary() As String = ar.Split("|") |