易表在线答疑技术与交流用户社区 → [求助]列名是动态拼凑出来的,如何获取具体的列值


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

主题:[求助]列名是动态拼凑出来的,如何获取具体的列值

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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
[求助]列名是动态拼凑出来的,如何获取具体的列值  发帖心情 Post By:2015/4/2 18:27:00 [只看该作者]

如题所示,假设一个表的某一列名称为"1号_合做数量",一般情况下该列的一个具体值可以用[1号_合做数量]来获取,但如果列名是动态拼凑出来的呢:[%前缀%]+"合做数量" ,(假设[%前缀%] = "1号_"),这种情况下又该如何获取列值呢?

我想做一个统计计件工资的表,如附件中的截图所示,[1号_工价],这个列名需要动态拼凑出来
图片点击可在新窗口打开查看此主题相关图片如下:计件工资统计.jpg
图片点击可在新窗口打开查看



if([%姓名1%] = "" and [%姓名2%] = "" ,SetVariable("%合做人数%",0), true) and 
if([%姓名1%] <> "" and [%姓名2%] = "" ,SetVariable("%合做人数%",1) and SetVariable("%合做人员%",[%姓名1%]), true) and 
if([%姓名1%] = "" and [%姓名2%] <> "" ,SetVariable("%合做人数%",1) and SetVariable("%合做人员%",[%姓名2%]), true) and 
if([%姓名1%] <> "" and [%姓名2%] <> "" ,SetVariable("%合做人数%",2), true)  
 and 
if([%合做人数%] = 0, msgbox("请选择合做人员!", 0), 
SetVariable("%合做人数%",[%合做人数%]+1) and 
SetVariable("%平均金额%",[1号_工价] * [%合做数量%] / [%合做人数%]) and
ReplaceFor("单表测试","合做数量",[%合做数量%] ,"姓名", "=", [姓名] ) and
ReplaceFor("单表测试","1号_金额",[%平均金额%],"姓名", "=", [姓名])
[此贴子已经被作者于2015/4/3 10:21:42编辑过]

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


加好友 发短信
等级:业余侠客 帖子:383 积分:1419 威望:0 精华:0 注册:2007/4/10 19:20:00
  发帖心情 Post By:2015/4/2 20:32:00 [只看该作者]

在运行过程中动态设置指定列的刷新公式。

语法
SetColFormula(Grid,Col,Formula)
Grid       指定表,可以用表名称,也可以用表位置表示。
Col        指定列,可以用列名称,也可以用列位置表示。
Formula    刷新公式。

例子
SetColFormula(GridName,"金额","[数量]*[单价]*(1-[折扣])")

提示:如果刷新公式中有引号,那么公式用两个引号表示一个,具体写法:

1、按照常规写出刷新公式:
SetColFormula(GridName,"型号",FindText("产品资料","品名","编号","=",[编号]))

2、将刷新公式中的每个双引号分别用连续的两个双引号代替:
SetColFormula(GridName,"型号",FindText(""产品资料"",""品名"",""编号"",""="",[编号]))

3、最后给刷新公式的两端加上双引号:
SetColFormula(GridName,"型号","FindText(""产品资料"",""品名"",""编号"",""="",[编号])")


 回到顶部
美女呀,离线,留言给我吧!
dancedy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By:2015/4/3 8:51:00 [只看该作者]

一般函数可以直接拼接,如 FindText(GridName,[%前缀%]+"合做数量")

 

具体情况具体分析,可以上传例子


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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
  发帖心情 Post By:2015/4/3 10:23:00 [只看该作者]

我想做一个统计计件工资的表,如附件中的截图所示,[1号_工价],这个列名需要动态拼凑出来

图片点击可在新窗口打开查看此主题相关图片如下:计件工资统计.jpg
图片点击可在新窗口打开查看

if([%姓名1%] = "" and [%姓名2%] = "" ,SetVariable("%合做人数%",0), true) and 
if([%姓名1%] <> "" and [%姓名2%] = "" ,SetVariable("%合做人数%",1) and SetVariable("%合做人员%",[%姓名1%]), true) and 
if([%姓名1%] = "" and [%姓名2%] <> "" ,SetVariable("%合做人数%",1) and SetVariable("%合做人员%",[%姓名2%]), true) and 
if([%姓名1%] <> "" and [%姓名2%] <> "" ,SetVariable("%合做人数%",2), true)  
 and 
if([%合做人数%] = 0, msgbox("请选择合做人员!", 0), 
SetVariable("%合做人数%",[%合做人数%]+1) and 
SetVariable("%平均金额%",[1号_工价] * [%合做数量%] / [%合做人数%]) and
ReplaceFor("单表测试","合做数量",[%合做数量%] ,"姓名", "=", [姓名] ) and
ReplaceFor("单表测试","1号_金额",[%平均金额%],"姓名", "=", [姓名])
[此贴子已经被作者于2015/4/3 10:29:23编辑过]

 回到顶部
美女呀,离线,留言给我吧!
dancedy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By:2015/4/3 10:56:00 [只看该作者]

假设[%前缀%] = "1号_"

 

Eval("SetVariable(""%平均金额%"",[" + [%前缀%] + "工价] * [%合做数量%] / [%合做人数%]) ")


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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
回复:(dancedy)假设[%前缀%] = "1号_" Ev...  发帖心情 Post By:2015/4/3 11:55:00 [只看该作者]

非常感谢版主,终于解决了我的难题。之前我也有看到Eval这个函数,但由于是第一次学习,根本就想不到用这个函数来解决。

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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
  发帖心情 Post By:2015/4/8 9:42:00 [只看该作者]

我在新增行的时候遇到问题了,列名用动态拼凑出来的时候,新增行不成功,也没有任何错误提示。请版主指点,谢谢!

SetVariable("%列名前缀%",Mid(colname, 0, 4)) and 
addRow("单表测试1","姓名,工序,[%列名前缀%]+""是否合做""",赵明达,热压,true)
或者
addRow("单表测试1","姓名,工序,Eval([%列名前缀%]+""是否合做"")",赵明达,热压,true)

[此贴子已经被作者于2015/4/8 10:19:49编辑过]

 回到顶部
美女呀,离线,留言给我吧!
dancedy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By:2015/4/8 10:21:00 [只看该作者]

Eval("addRow(""单表测试1"",""姓名,工序," + [%列名前缀%] + "是否合做"",""赵明达"",""热压"",true)")

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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
  发帖心情 Post By:2015/4/8 10:21:00 [只看该作者]

后来仔细想了一下,最终转过弯来了

SetVariable("%列名前缀%",Mid(colname, 0, 4)) and 
Eval("addRow(""单表测试1"","""+[%列名前缀%]+"是否合做"",true)")

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


加好友 发短信
等级:论坛游民 帖子:11 积分:242 威望:0 精华:0 注册:2015/3/23 15:57:00
回复:(dancedy)Eval("addRow(""单表测试1"",""姓名...  发帖心情 Post By:2015/4/8 10:22:00 [只看该作者]

谢谢!刚才就是没能转过弯来

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