ABAP SMARTFORMS 如何对字段进行计算后输出

SMARTFORMS文本里输出内表某一字段的值I_TABLE-DATE,值为"2012-10-30",现在要输出这个值的前一个月,即"2012年9月",要怎么输出呢我现在... SMARTFORMS 文本里输出内表某一字段的值 I_TABLE-DATE,值为"2012-10-30",
现在要输出这个值的前一个月,即"2012年9月",要怎么输出呢

我现在只会输出“2012年10月”,即
&I_TABLE-DATE+0(4)&年&I_TABLE-DATE+5(2)&月
展开
 我来答
isunflowerzz
2012-11-05 · 超过12用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:30.1万
展开全部
思路:SMARTFORMS里输出的只能是变量或常量,所以你要在输出I_TABLE-DATE前,定义一个全局变量A,写一个简单的取前一个月的逻辑,然后输出I_TABLE-DATE改为A就可以了

步骤:1、在SMARTFORMS--表格--全局设置--全局定义中定义A LIKE CHAR10.
2、在输出I_TABLE-DATE文本前,添加一个程序行,用Function:FIMA_DATE_CREATE等获取上个月数据:“2012年10月”
3、输出文本I_TABLE-DATE改为A,激活即可
ronachen2007
2012-10-31 · 超过10用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:34.2万
展开全部
你首先要用这个函数得到上一个月才能得到2012年9月.你现在是2012-10-30,怎么会得到2012年9月呢?
CALL FUNCTION 'FIMA_DATE_CREATE'
EXPORTING
I_DATE = SY-DATUM "当前日期
I_MONTHS = '-1' "减1月
I_SET_LAST_DAY_OF_MONTH = 'X'
IMPORTING
E_DATE = LASTDATE. "得到上一个月日期
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静水逐花
2012-10-30 · TA获得超过1032个赞
知道小有建树答主
回答量:733
采纳率:0%
帮助的人:489万
展开全部
右键-创建-逻辑流-程序行
在程序行里面去计算上一个月是几月
然后按照你现在的输出方式进行输出
建议在调用smartform之前
就在代码里面计算好
然后在smartform里面直接输出就好了

计算上一个月不用多说吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
levindeng1983
2012-10-31
知道答主
回答量:5
采纳率:0%
帮助的人:7700
展开全部
你需要计算这个日期的前一个月是多少,方法是先设定一个变量,里面装这个日期的当月第一天,本例就是2012-10-01,然后用这个变量-1,就可以得到上个月的最后一天
然后你取前六位就可以了
concatenate I_TABLE-DATE+0(4) I_TABLE-DATE+5(2) '01' into var
var = var - 1.
输出var+0(6)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wayfd
2012-10-30 · TA获得超过316个赞
知道小有建树答主
回答量:353
采纳率:100%
帮助的人:203万
展开全部
data: year(4) type c,
month(2) type c.
year = sy-datum+0(4).
month=sy-datum+4(2).
month = month -1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式