易表在线答疑技术与交流用户社区 → [原创]请教如何在公式中引用带年月的表名?


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

主题:[原创]请教如何在公式中引用带年月的表名?

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
[原创]请教如何在公式中引用带年月的表名?  发帖心情 Post By:2006/8/20 0:43:00 [只看该作者]

   我有几个表名为“发放200607”的表(表名由电脑自动生成,名称为“发放”加当月的相连年月简写,如06年6月为“发放200606”,06年7月则为“发放200607”,以此类推),问题是:我如何在公式中引用这个表名,如公式:ReplaceFor("增减变动","人数",SumFor("发放200607","人数")),如果此处到下个月时,就应是:ReplaceFor("增减变动","人数",SumFor("发放200608","人数")),我想将“发放yyyymm”搞成一个变量或其他什么的,公式就变成了:ReplaceFor("增减变动","人数",SumFor("发放200608","人数"))只要能在公式中随年月而相应自由适应变动即可,请问如何实施呀?
   谢谢指教!文字某个变量

-=-=-=- 以下内容由 tzszw2006年08月20日 00:44am 时添加 -=-=-=-
公式就变成了:ReplaceFor("增减变动","人数",SumFor("某个变量","人数"))

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


加好友 发短信
等级:论坛游民 帖子:19 积分:0 威望:0 精华:0 注册:2006/8/12 1:00:00
  发帖心情 Post By:2006/8/20 0:54:00 [只看该作者]

请发个文件,看看

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/8/20 1:10:00 [只看该作者]

实际上,这个问题也就是问:
如何将字符表式:"发放"+Left(text(Format(today()-20,"yyyy.mm")),4)+Right(text(Format(today()-20,"yyyy.mm")),2)变成
“发放200607”这个带引号的字符串?

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


加好友 发短信
等级:超级版主 帖子:8672 积分:1734 威望:0 精华:0 注册:2006/8/11 10:52:00
  发帖心情 Post By:2006/8/20 7:40:00 [只看该作者]

试试:
ReplaceFor("增减变动","人数",SumFor("发放"+format(today(),"yyyymm"),"人数"))

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/8/20 20:20:00 [只看该作者]

smileboy 老师啊!用这个公式放上去也不行哎!总是显示"XXXX内存不能为读"或EgridXXX的错误之类的提示信息!不知何故?
现将全公式附上,请帮忙看一下!谢谢!
ClearGrid("增减变动")and OpenGrid("增减变动") And ClearSubtotal()and AddRow("增减变动","单位名称","上月发放小计") and DelFor("增减变动","单位名称","<>","上月发放小计") and ReplaceFor("增减变动","姓名","上月发放小计")and ReplaceFor("增减变动","人数",[%syffrs%])and ReplaceFor("增减变动","月待遇",[%syffdy%])and ReplaceFor("增减变动","其他",[%syffqt%])and ReplaceFor("增减变动","月核发",[%syffhf%])And AddRow("增减变动","单位名称","本月新增小计")and FilterFor("单位名称","=","本月新增小计")and SetCellText("增减变动",Row,"姓名","本月新增小计")and SetCellText("增减变动",Row,"人数",SumFor("社会化发放","人数","发放月份","=",[%bysj%]))and SetCellText("增减变动",Row,"月待遇",SumFor("社会化发放","月待遇","发放月份","=",[%bysj%]))and SetCellText("增减变动",Row,"其他",SumFor("社会化发放","其他","发放月份","=",[%bysj%]))and SetCellText("增减变动",Row,"月核发",SumFor("社会化发放","月核发","发放月份","=",[%bysj%]))and AppendRows("社会化发放","发放月份","=",[%bysj%])And AddRow("增减变动","单位名称","本月减少小计")and FilterFor("单位名称","=","本月减少小计")and SetCellText("增减变动",Row,"姓名","本月减少小计")and SetCellText("增减变动",Row,"人数",SumFor("发放备查","人数","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月待遇",SumFor("发放备查","月待遇","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"其他",SumFor("发放备查","其他","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月核发",SumFor("发放备查","月核发","注销年月","=",[%bysj%]))and AppendRows("发放备查","注销年月","=",[%bysj%])and save() and ShowGrid()
其中,表达式变量[%syffrs%]公式为:SumFor("发放"+format(today()-30,"yyyymm"),"人数")       (此处format(today()-30,"yyyymm")是达到上月200607的效果);

表达式变量[%syffdy%]公式为:SumFor("发放"+format(today()-30,"yyyymm"),"月待遇");
表达式变量[%syffqt%]公式为:SumFor("发放"+format(today()-30,"yyyymm"),"其他");
表达式变量[%syffhf%]公式为:SumFor("发放"+format(today()-30,"yyyymm"),"月核发")

好象是这一段也了问题(因其他地方我昨晚测试是行的):ReplaceFor("增减变动","姓名","上月发放小计")and ReplaceFor("增减变动","人数",[%syffrs%])and ReplaceFor("增减变动","月待遇",[%syffdy%])and ReplaceFor("增减变动","其他",[%syffqt%])and ReplaceFor("增减变动","月核发",[%syffhf%])


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


加好友 发短信
等级:超级版主 帖子:235 积分:10 威望:0 精华:0 注册:2006/8/11 11:02:00
  发帖心情 Post By:2006/8/20 20:39:00 [只看该作者]

印象中好象format与大部分函数都存在嵌套问题,试试把公式中:format(today()-30,"yyyymm")改为其它形式看看。

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/8/20 21:44:00 [只看该作者]

按  lmk   老师的提议,换了另外一种思路和方法,终于搞定了!很高兴!
谢谢呀!


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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/8/21 12:35:00 [只看该作者]

大师啊,昨天搞好了,并按要求生成了想要的数据,但今天又不行了,提示内存不能读!(估计还是嵌套之类的问题),烦请指导一下为感呀!
RecalcCol("社会化发放","开户年月") and RecalcCol("发放备查","注销年月")and ClearGrid("增减变动")and OpenGrid("增减变动") And ClearSubtotal()and AddRow("增减变动","单位名称","上月发放小计") and DelFor("增减变动","单位名称","<>","上月发放小计") and FilterFor("单位名称","=","上月发放小计")and ReplaceFor("增减变动","姓名","上月发放小计")and ReplaceFor("增减变动","人数",SumFor("历史发放","人数","发放月份","=",[%sysj%]))and ReplaceFor("增减变动","月待遇",SumFor("历史发放","月待遇","发放月份","=",[%sysj%]))and ReplaceFor("增减变动","其他",SumFor("历史发放","其他","发放月份","=",[%sysj%]))and ReplaceFor("增减变动","月核发",SumFor("历史发放","月核发","发放月份","=",[%sysj%]))and AddRow("增减变动","单位名称","本月新增小计")and FilterFor("单位名称","=","本月新增小计")and SetCellText("增减变动",Row,"姓名","本月新增小计")and SetCellText("增减变动",Row,"人数",SumFor("社会化发放","人数","开户年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月待遇",SumFor("社会化发放","月待遇","开户年月","=",[%bysj%]))and SetCellText("增减变动",Row,"其他",SumFor("社会化发放","其他","开户年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月核发",SumFor("社会化发放","月核发","开户年月","=",[%bysj%]))and AppendRows("社会化发放","开户年月","=",[%bysj%])And AddRow("增减变动","单位名称","本月减少小计")and FilterFor("单位名称","=","本月减少小计")and SetCellText("增减变动",Row,"姓名","本月减少小计")and SetCellText("增减变动",Row,"人数",SumFor("发放备查","人数","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月待遇",SumFor("发放备查","月待遇","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"其他",SumFor("发放备查","其他","注销年月","=",[%bysj%]))and SetCellText("增减变动",Row,"月核发",SumFor("发放备查","月核发","注销年月","=",[%bysj%]))and AppendRows("发放备查","注销年月","=",[%bysj%])and save() and ShowGrid()

我是意思是先清除本“增减变动”表内容,然后分别从上月发放库“历史发放”表中取发放总额,从本月发放库“社会化发放”表中取当月新增加的记录总额和具体记录,从已删除发放记录“发放备查”表中取当月已减少的记录总额和具体记录。


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2006/8/21 12:48:00 [只看该作者]

ReplaceFor中的替换值,SetCellText中的写入值都应该用表达式变量代替。

 回到顶部