以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]狐表有“名表达式”功能吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157422) |
-- 作者:一丁 -- 发布时间:2020/10/15 14:51:00 -- [求助]狐表有“名表达式”功能吗? 求助狐爸,狐表有名表达式功能吗?如果没有要如何实现类似功能呢? 具体应用如下 \' 人员身份分类 Dim cFL1,cFL2,cFL3 As String cFL1 = DataTables("人员身份").GetComboListString("人员身份","人员类别=1","序号") \'行政人员,机关工勤 cFL2 = DataTables("人员身份").GetComboListString("人员身份","人员类别=2","序号") \'事业人员,事业工勤 cFL3 = DataTables("人员身份").GetComboListString("人员身份","人员类别=3","序号") \'特殊4类人员 Select Case e.DataRow("人员身份") Case 表达式1 (变量cFL1的值)
…………
………… Case 表达式2 (变量cFL2的值)
…………
………… Case 表达式2 (变量cFL3的值)
…………
………… End Select [此贴子已经被作者于2020/10/15 14:57:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/15 14:53:00 -- 什么叫“名表达式”?举例说明一下 |
-- 作者:一丁 -- 发布时间:2020/10/15 15:02:00 -- 在其他某种语言中,有一种叫“名表达式”的东西,具体作用就是将一个变量值直接程作为序执行的一部分,其书写方式是用括号把变量括起来。 例如 A = “事业人员” 那么代码 if e.row(“人员身份”) = (A) 则程序执行的时候就变成 if e.row(“人员身份”) = “事业人员” 说直白点,就是使用变量直接构建程序代码
[此贴子已经被作者于2020/10/15 15:04:31编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/15 15:37:00 -- 这个,变量直接使用即可,和表达式有啥关系?! Dim cFL1,cFL2,cFL3 As String cFL1 = "1" cFL2 = "2" cFL3 = "3" Dim a As String = "3" Select Case a Case cFL1 msgbox(0) Case cFL2 msgbox(1) Case cFL3 msgbox(2) End Select if e.row(“人员身份”) = A 直接这样使用即可。 您说的这个所谓的"名表达式"应该是指内插字符串的用法吧:https://docs.microsoft.com/zh-cn/dotnet/visual-basic/programming-guide/language-features/strings/interpolated-strings 目前foxtable的编译器不支持这种用法。需要.NET Framework 4.6及以上的版本才支持的。 |
-- 作者:一丁 -- 发布时间:2020/10/15 16:37:00 -- 因为我实际应用情况并非如此简单,如果是这样简单应用,当然可以直接使用变量,问题是case 之后的值是多值,类似于:“A”,"B",“C” Dim cFL1,cFL2,cFL3 As String cFL1 = "1" cFL2 = "2" cFL3 = "3" Dim a As String = "3" Select Case a Case cFL1 在运行时,这里的变量要替换成 “A”,"B",“C” 这样的多值比较,这里的 “A”,"B",“C” 是变量的值 msgbox(0) Case cFL2 msgbox(1) Case cFL3 msgbox(2) End Select 上图可能更好理解 [此贴子已经被作者于2020/10/15 16:44:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/15 16:44:00 -- 可以使用if判断。具体请举例详细的用法说明 |
-- 作者:一丁 -- 发布时间:2020/10/15 16:45:00 -- 此主题相关图片如下:yt.png |
-- 作者:有点蓝 -- 发布时间:2020/10/15 16:47:00 -- 请详细描述需要做什么样的判断?具体的功能,使用场合,需要什么结果? |
-- 作者:一丁 -- 发布时间:2020/10/15 17:04:00 -- 有两个表, 表1:datatables("人员身份"),里边有一个字段,存储若干种人员身份分类信息,例如:参公管理人员、行政工勤人员、参公工勤人员等等,而且是不确定的。 表2:datatables("工资调整"),里边有一个字段也叫“人员身份”,现在的需求是,当表2中的某一条记录的有关工资信息被修改,就必须进行对应的计算,但在计算之前,先得判断当前记录中的“人员身份”属于表1中若干种“人员身份”中的哪一种,因为分属于不同的“人员身份”,计算公式是不一样的。 本来可以使用 select case tables("工资调整").row("人员身份")
case "参公管理人员"、"行政工勤人员"、"参公工勤人员"
计算公式
………… end select 这样的代码,但问题是这里的case对比项目
"参公管理人员"、"行政工勤人员"、"参公工勤人员" 是不确定的,每次要表1中提取并动态生成比对项目,麻烦就出在这里。 |
-- 作者:有点蓝 -- 发布时间:2020/10/15 17:20:00 -- 表1的数据和结构是怎么样的?怎么样个动态法? |