批次特性值 日期读取

来源:互联网 发布:mysql 5.1.59.tar.gz 编辑:程序博客网 时间:2024/05/21 17:28

用户有一需求:

   有一道工序库存完工后,需要停放两天才能使用;

  考虑到这停放中不需要计划人工干预,只要上道工序完工后存放两天即可;

 计划员需要查询这种类型库存, 用户提出,中间不需要计划员下单专门 做一个存放工序;

 该类型产品已经用了批次,我提议用批次特性来解决;建立一个类:包括日期、时间特性;

 用户可以根据这个特性去查库存的时间;

  一切很顺利,可是在我常用报表中(自己开发的报表),需要体现这个日期,时间时,发现特性值的数值,按正规模式读取来根本不是正确的数值;

搞了一天,还是不行; 后来查阅资料一个功能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.

0 0