用户有一需求:
有一道工序库存完工后,需要停放两天才能使用;
考虑到这停放中不需要计划人工干预,只要上道工序完工后存放两天即可;
计划员需要查询这种类型库存, 用户提出,中间不需要计划员下单专门 做一个存放工序;
该类型产品已经用了批次,我提议用批次特性来解决;建立一个类:包括日期、时间特性;
用户可以根据这个特性去查库存的时间;
一切很顺利,可是在我常用报表中(自己开发的报表),需要体现这个日期,时间时,发现特性值的数值,按正规模式读取来根本不是正确的数值;
搞了一天,还是不行; 后来查阅资料一个功能QSS0_FLTP_TO_CHAR_CONVERSION'
form get_charg_type3
using matnr type matnr
charg type charg_d
werks type werks_d
charact type char30
changing ntime like mkpf-CPUTM .
data:r_e_objek type objnum,
r_e_obtab type tabelle,
r_e_klart type klassenart,
r_e_class type klasse_d.
data: allocvaluesnum type standard table of bapi1003_alloc_values_num
with header line,
allocvalueschar type standard table of
bapi1003_alloc_values_char with header line,
allocvaluescurr type standard table of
bapi1003_alloc_values_curr with header line,
return type standard table of bapiret2.
data s like CHA_CLASS_VIEW-SOLLWERT.
call function 'VB_BATCH_2_CLASS_OBJECT'
exporting
i_matnr = matnr
i_charg = charg
i_werks = werks
importing
e_objek = r_e_objek
e_obtab = r_e_obtab
e_klart = r_e_klart
e_class = r_e_class.
call function 'BAPI_OBJCL_GETDETAIL'
exporting
objectkey = r_e_objek
objecttable = r_e_obtab
classnum = r_e_class
classtype = r_e_klart
* KEYDATE = SY-DATUM
* UNVALUATED_CHARS = ’ ’
* LANGUAGE = SY-LANGU
* IMPORTING
* STATUS =
* STANDARDCLASS =
tables
allocvaluesnum = allocvaluesnum
allocvalueschar = allocvalueschar
allocvaluescurr = allocvaluescurr
return = return
.
loop at allocvaluesnum.
if allocvaluesnum-CHARACT = 'I_TIME'.
" ntime = allocvaluesnum-VALUE_FROM.
CALL FUNCTION 'QSS0_FLTP_TO_CHAR_CONVERSION'
EXPORTING
i_number_of_digits = 0
i_fltp_value = allocvaluesnum-VALUE_FROM
i_value_not_initial_flag = 'X'
i_screen_fieldlength = 16
IMPORTING
e_char_field = s.
endif.
endloop.
CONDENSE s.
ntime = s.
endform.