【转载】读取文本、保存文本、修改文本 CREATE_TEXT SAVE_TEXT READ_TEXT 函数(有时候修改完显示无变化)
修改文本CREATE_TEXT/SAVE_TEXT/READ_TEXT(有时候修改完显示无变化)
最近修改外向交货单文本
发现用SAVE_TEXT修改后,文本没有变
但是READ_TEXT文本,发现能读出来
只是显示的没修改
后来想起,有时候表里有个字段,是控制是否去显示的
比如 AUFK-LTEXT
订单长文本
如果这个字段为空
就算修改了长文本,还是不会显示的……
这个咋修改,我没去研究,没时间,
SAVE_TEXT修改不了
就用 CREATE_TEXT试了试,是可以显示出来的
代码如下:
PARAMETERS:
FID LIKE THEAD-TDID DEFAULT 'ZR01',
FNAME LIKE THEAD-TDNAME DEFAULT '8000002140',
FOBJECT LIKE THEAD-TDOBJECT DEFAULT 'VBBK',
TEXT TYPE STRING DEFAULT '1234567890'.
DATA: FLINES LIKE TABLE OF TLINE WITH HEADER LINE.
"文本内容
FLINES-TDLINE = TEXT.
APPEND FLINES.
"修改文本
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = FID
FLANGUAGE = '1'
FNAME = FNAME
FOBJECT = FOBJECT
* SAVE_DIRECT = 'X'
* FFORMAT = '*'
TABLES
FLINES = FLINES
EXCEPTIONS
NO_INIT = 1
NO_SAVE = 2
OTHERS = 3.
字段解释如下
如果修改表头文本
查看文本日志:
一般头对象object都是vbbk,id zr01是业务配的,
FNAME:对于抬头,就是凭证号
对于行项目,是凭证+行项目,比如: 8000002140000010
8000002140000010(凭证8000002140,行项目000010)
行项目的object多数是 vbbp.具体按下图查看
另外,co02 co03做文本创建修改,显示不了,
就是AUFK-LTEXT这个值导致的
网上有个帖子:
地址:http://www.itpub.net/thread-1159311-1-1.html
可以参考下,主要提到的是:
怀疑是生产订单抬头表AUFK有个字段LTEXT,是标识该订单有没有长文本的
我在调试标准代码的时候如果把这个字段的值改为1,就可以在CO03中显示我用SAVE_TEXT创建的长文本,去掉就不显示
但是现在生产订单我是bdc做的,做时候怎么才能把这个字段的值赋进去呢?
你看看你的工单中long text的栏位指示标记没有为X,应该是表AUFK中的long text indicator的那个字段,这个字段必须为X,才可以在工单中show出来。你的程序需要先更新表AUFK中的这个字段才可以。
SAVE MODE DIRECT参数打上X,默认值为空。打上X后,STXH表里才会更新长文本的信息。否则只能用READ_TEXT读取出长文本,但在前台看不到