Текущее время: Пт, июл 18 2025, 07:24

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: BAPI для F-32 (выравнивание дебитора)
СообщениеДобавлено: Чт, апр 18 2013, 12:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Примера под рукой нет.
С остатками не помню как дело было точно, но там же остаток вычисляется автоматом по даблклику на сумме, не?

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI для F-32 (выравнивание дебитора)
СообщениеДобавлено: Вт, май 27 2014, 14:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вс, мар 21 2010, 15:48
Сообщения: 180
Откуда: Собянин-сити
Пол: Мужской
hub2002 написал(а):
Остатки тоже надо вычислять самому?
Можно примерчик?

Остатки вычислял из bsis,bsas,bsik bsak.
FIPI можно пользоваться только если полное выравнивание, для всех других случаев пакетник на fb05.
Вот пример кода.
Code:
*----------------------------------------------------------------------*
***INCLUDE Z_DEBTS_CLEAR.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  CLEARING
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form clearing .




* data: lt_cell_tab type  lvc_t_cell,
  data:
        lt_alv_cl type table of ZFI_fi_D01_alv1,
        ls_alv_cl type ZFI_fi_D01_alv1.
  data :l_dmbtr   type dmbtr.
  data: p_row     type lvc_s_row.

  field-symbols: <fs_alv_cl>  type ZFI_fi_D01_alv1,
                 <fs_bsis_cl> type bsis.

  field-symbols: <fs_row_cl>   type ZFI_fi_D01_alv1.
  field-symbols  <fs_alv_tab3> like ZFI_fi_D01_alv3.

  call method go_grid1->check_changed_data.

  loop at gt_alv_tab1 assigning <fs_row_cl> where check = 'X'.

    p_row-index = sy-tabix.

    perform summ_clear using p_row.
    perform sum_sal using p_row.

    clear: l_dmbtr.

    loop at gt_alv_tab3 assigning <fs_alv_tab3>.
      l_dmbtr = l_dmbtr + <fs_alv_tab3>-dmbtr .
    endloop.

    if <fs_row_cl>-dmbtr3 eq l_dmbtr and l_dmbtr ne '0' .

      perform start_posting using t_mode.

      perform get_ftpost using <fs_row_cl>.
      "gt_alv_tab2 таблица с позициями для выравнивания(1)
      "gt_alv_tab3 таблица с позициями для выравнивания
    elseif <fs_row_cl>-dmbtr3 ne l_dmbtr and l_dmbtr ne '0'.

      perform call_fb05 using <fs_row_cl>.


    endif.

  endloop.

*PERFORM main.
  perform prepare changing gs_db_debts.
  perform select  changing gs_db_debts.
  perform refresh_alv.

*  call screen '100'.


endform.                    " CLEARING
*&---------------------------------------------------------------------*
*&      Form  GET_FTPOST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_ftpost using ps_row type ZFI_fi_D01_alv1.
  data: cl_date(10) type c.
  data: l_auglv     like t041a-auglv.
  data  l_skb1      like skb1.
  data  es_t041a    like t041a.
  field-symbols <fs_alv_tab2> like ZFI_fi_D01_alv2.
  field-symbols <fs_alv_tab3> like ZFI_fi_D01_alv3.

  refresh: gt_ftpost,l_t_ftclear.
  write sp_bldat to cl_date dd/mm/yyyy.

  perform ftpos  using 'K' 1 'BKPF-BLDAT' cl_date.
  write sp_postd to cl_date dd/mm/yyyy.

  perform ftpos using 'K' 1 'BKPF-BUDAT' cl_date.

*  perform ftpos using 'K' 1 'BKPF-BLART' ''.

  perform ftpos using 'K' 1 'BKPF-BUKRS' ps_row-bukrs.

  perform ftpos using 'K' 1 'BKPF-WAERS' ps_row-waers.

  perform ftpos using 'K' 1 'BKPF-XBLNR' ps_row-xblnr.

  perform ftpos using 'K' 1 'BKPF-BKTXT' ps_row-bktxt.

  clear: l_f_ftclear.
  l_auglv           = 'UMBUCHNG'.
  l_f_ftclear-agbuk = ps_row-bukrs.
*  l_f_ftclear-xnops = 'X'.

  " считываем t041a
  call function 'FDM_AR_READ_T041A'
    exporting
      i_auglv   = l_auglv
    importing
      es_t041a  = es_t041a
    exceptions
      not_found = 1
      others    = 2.

  loop at gt_alv_tab2 assigning <fs_alv_tab2>.

    l_f_ftclear-selfd = 'BELNR'.

    concatenate <fs_alv_tab2>-belnr
                <fs_alv_tab2>-gjahr
                <fs_alv_tab2>-buzei into l_f_ftclear-selvon.

    call function 'SKB1_SINGLE_READ'
      exporting
        i_bukrs   = ps_row-bukrs
        i_saknr   = <fs_alv_tab2>-hkont
      importing
        o_skb1    = l_skb1
      exceptions
        not_found = 1.

    l_f_ftclear-agkoa = l_skb1-mitkz.
    l_f_ftclear-agkon = ps_row-kontr.

    if l_f_ftclear-agkoa eq 'D'.
      perform ftpos using 'K' 1 'BKPF-BLART' es_t041a-blard.
    else.
      perform ftpos using 'K' 1 'BKPF-BLART' es_t041a-blark.
    endif.


    if <fs_alv_tab2>-umskz is not initial.
      l_f_ftclear-xnops = ' '.
      l_f_ftclear-agums = <fs_alv_tab2>-umskz.

    else.
      l_f_ftclear-xnops = 'X'.
    endif.
    append l_f_ftclear to l_t_ftclear.


  endloop.


  loop at gt_alv_tab3 assigning <fs_alv_tab3>.
    clear: l_f_ftclear.
    l_f_ftclear-agbuk = <fs_alv_tab3>-bukrs.
    l_f_ftclear-xnops = 'X'.

    "документ из ALV
    l_f_ftclear-selfd = 'BELNR'.

    concatenate <fs_alv_tab3>-belnr
                <fs_alv_tab3>-gjahr
                <fs_alv_tab3>-buzei into l_f_ftclear-selvon.
    l_f_ftclear-agkoa = 'S'.
    l_f_ftclear-agkon = <fs_alv_tab3>-hkont.
    append l_f_ftclear to l_t_ftclear.

  endloop.

  call function 'POSTING_INTERFACE_CLEARING'
    exporting
      i_auglv                    = l_auglv
      i_tcode                    = 'FB05'
**      IMPORTING
**        e_msgid                    = l_msgid
**        e_msgno                    = l_msgno
**        e_msgty                    = l_msgty
**        e_msgv1                    = l_msgv1
**        e_msgv2                    = l_msgv2
**        e_msgv3                    = l_msgv3
**        e_msgv4                    = l_msgv4
**        e_subrc                    = l_subrc
    tables
      t_blntab                   = gt_blntab
      t_ftclear                  = l_t_ftclear
      t_ftpost                   = gt_ftpost
      t_fttax                    = gt_fttax
    exceptions
      clearing_procedure_invalid = 1
      clearing_procedure_missing = 2
      table_t041a_empty          = 3
      transaction_code_invalid   = 4
      amount_format_error        = 5
      too_many_line_items        = 6
      company_code_invalid       = 7
      screen_not_found           = 8
      no_authorization           = 9
      others                     = 10.

  if sy-subrc <> 0.
*      CLEAR: l_var1, l_var2, l_var3, l_var4.
*      PERFORM message_store USING l_msgid l_msgty l_msgno
*                                  l_msgv1 l_msgv2 l_msgv3 l_msgv4
*                                  space space space.
  else.
    perform end_posting.
  endif.
endform.                                                                                 " GET_FTPOST

*---------------------------------------------------------------------*
*       FORM BDC_DYNPRO                                               *
*---------------------------------------------------------------------*
*       BDCDATA-Füllen                                                *
*---------------------------------------------------------------------*
form bdc_dynpro using program dynpro changing p_bdcdata type standard table.
  data: bdcdata type bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  append bdcdata to p_bdcdata.
endform.                    " BDC_DYNPRO

*---------------------------------------------------------------------*
*       FORM BDC_FIELD                                                *
*---------------------------------------------------------------------*
*       BDCDATA-Füllen                                                *
*---------------------------------------------------------------------*
form bdc_field using fnam fval changing p_bdcdata type standard table.
  data: bdcdata type bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  append bdcdata to p_bdcdata.
endform.                    " BDC_FIELD

*&---------------------------------------------------------------------*
*&      Form  CALL_FB05
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_<FS_ROW_CL>  text
*----------------------------------------------------------------------*
form call_fb05  using ps_row type ZFI_fi_D01_alv1.
  data it_bdcmsgcoll   like table of bdcmsgcoll with header line.
  refresh bdcdata[].
*  perform prepare_fb05_batch using ps_row changing bdcdata[].
  perform prepare_fb05_batch_part using ps_row changing bdcdata[].
  call transaction 'FB05'
   using bdcdata mode t_mode update 'S'
         messages into it_bdcmsgcoll.

endform.                    " CALL_FB05
*&---------------------------------------------------------------------*
*&      Form  PREPARE_FB05_BATCH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_INV  text
*      <--P_IT_BDCDATA[]  text
*----------------------------------------------------------------------*

form prepare_fb05_batch  using p_inv changing p_bdcdata type standard table.

  field-symbols <fs_alv_tab2> like ZFI_fi_D01_alv2.

  perform dynpro_122  using p_inv changing p_bdcdata[].

  loop at gt_alv_tab2 assigning <fs_alv_tab2>.

    perform dynpro_710  using p_inv <fs_alv_tab2> changing p_bdcdata[].

    perform dynpro_733  using p_inv  <fs_alv_tab2> changing p_bdcdata[].

  endloop.

  perform dynpro_710_1 using p_inv changing p_bdcdata[].
  perform dynpro_733_1 using p_inv changing p_bdcdata[].
  perform dynpro_3100 using p_inv changing p_bdcdata[].

endform.                    " PREPARE_FB05_BATCH

*&---------------------------------------------------------------------*
*&      Form  prepare_fb05_batch_part
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_INV  text
*      <--P_IT_BDCDATA[]  text
*----------------------------------------------------------------------*

form prepare_fb05_batch_part using p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.

  data: l_dmbtr type ZFI_dmbtr5.

  field-symbols <fs_alv_tab2> like ZFI_fi_D01_alv2.

  perform dynpro_122  using p_inv changing p_bdcdata[].

  read table gt_alv_tab2 assigning <fs_alv_tab2> index 1.

  l_dmbtr = p_inv-dmbtr5.

  perform dynpro_710_part  using p_inv <fs_alv_tab2> changing p_bdcdata[].
  perform dynpro_733_part  using p_inv  <fs_alv_tab2> changing p_bdcdata[].

  perform dynpro_3100_part using p_inv l_dmbtr changing p_bdcdata[].


  perform dynpro_710_1 using p_inv changing p_bdcdata[].
  perform dynpro_733_1 using p_inv changing p_bdcdata[].
  perform dynpro_3100_part_2 using p_inv changing p_bdcdata[].

endform.                    " prepare_fb05_batch_part


*&---------------------------------------------------------------------*
*&      Form  dynpro_122
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_INV      text
*      -->P_BDCDATA  text
*----------------------------------------------------------------------*
form dynpro_122 using p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.
  data: cl_date(10) type c.
  data  es_t041a    like t041a.
  data  l_skb1      like skb1.
  " считываем t041a
  call function 'FDM_AR_READ_T041A'
    exporting
      i_auglv   = 'UMBUCHNG'
    importing
      es_t041a  = es_t041a
    exceptions
      not_found = 1
      others    = 2.

  call function 'SKB1_SINGLE_READ'
    exporting
      i_bukrs   = p_inv-bukrs
      i_saknr   = p_inv-hkont
    importing
      o_skb1    = l_skb1
    exceptions
      not_found = 1.



  write sp_bldat to cl_date dd/mm/yyyy.

  write sp_postd to cl_date dd/mm/yyyy.


  perform bdc_dynpro using 'SAPMF05A' '122' changing p_bdcdata[].

  perform bdc_field using 'BKPF-BLDAT' cl_date changing p_bdcdata[].

  if l_skb1-mitkz eq 'D'.

    perform bdc_field  using 'BKPF-BLART' es_t041a-blard changing p_bdcdata[].

  else.

    perform bdc_field  using 'BKPF-BLART' es_t041a-blark changing p_bdcdata[].

  endif.

  perform bdc_field  using 'BKPF-BUKRS' p_inv-bukrs changing p_bdcdata[].
  perform bdc_field  using 'BKPF-BUDAT' cl_date changing p_bdcdata[].
  perform bdc_field  using 'BKPF-WAERS' p_inv-waers changing p_bdcdata[].
  perform bdc_field  using 'BKPF-XBLNR' p_inv-xblnr changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/06' changing p_bdcdata[].                       

endform.                    " dynpro_122_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_710_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_710  using  p_inv type ZFI_fi_D01_alv1 p_alv type ZFI_fi_D01_alv2
                 changing p_bdcdata type standard table.

  data l_skb1   like skb1.

  perform bdc_dynpro using 'SAPMF05A' '710' changing p_bdcdata[].

  call function 'SKB1_SINGLE_READ'
    exporting
      i_bukrs   = p_inv-bukrs
      i_saknr   = p_inv-hkont
    importing
      o_skb1    = l_skb1
    exceptions
      not_found = 1.

  perform bdc_field  using 'RF05A-AGKOA' l_skb1-mitkz changing p_bdcdata[].
  perform bdc_field  using 'RF05A-AGKON' p_inv-kontr changing p_bdcdata[].
  perform bdc_field  using 'RF05A-AGBUK' p_inv-bukrs changing p_bdcdata[].

  if p_alv-umskz is not initial.
    perform bdc_field  using 'RF05A-XNOPS' ' ' changing p_bdcdata[].
    perform bdc_field  using 'RF05A-AGUMS' p_alv-umskz changing p_bdcdata[].
  else.
    perform bdc_field  using 'RF05A-XNOPS' 'X' changing p_bdcdata[].
  endif.

  perform bdc_field  using 'BDC_OKCODE' '/05' changing p_bdcdata[].

endform.                    " dynpro_710_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_710_part
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_710_part  using  p_inv type ZFI_fi_D01_alv1 p_alv type ZFI_fi_D01_alv2
                 changing p_bdcdata type standard table.

  data l_skb1   like skb1.

  perform bdc_dynpro using 'SAPMF05A' '710' changing p_bdcdata[].

  call function 'SKB1_SINGLE_READ'
    exporting
      i_bukrs   = p_inv-bukrs
      i_saknr   = p_inv-hkont
    importing
      o_skb1    = l_skb1
    exceptions
      not_found = 1.

  perform bdc_field  using 'RF05A-AGKOA' l_skb1-mitkz changing p_bdcdata[].
  perform bdc_field  using 'RF05A-AGKON' p_inv-kontr changing p_bdcdata[].
  perform bdc_field  using 'RF05A-AGBUK' p_inv-bukrs changing p_bdcdata[].

  if p_alv-umskz is not initial.

    perform bdc_field  using 'RF05A-XNOPS' ' ' changing p_bdcdata[].
    perform bdc_field  using 'RF05A-AGUMS' p_alv-umskz changing p_bdcdata[].

  else.

    perform bdc_field  using 'RF05A-XNOPS' 'X' changing p_bdcdata[].

  endif.

  perform bdc_field  using 'BDC_OKCODE' '/05' changing p_bdcdata[].

endform.                    " dynpro_710_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_733_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_733  using  p_inv type ZFI_fi_D01_alv1 p_alv type ZFI_fi_D01_alv2 changing p_bdcdata type standard table.
  data: l_sel type selxx_f05a.
  perform bdc_dynpro using 'SAPMF05A' '733' changing p_bdcdata[].
  perform bdc_field  using 'RF05A-FELDN(1)' 'BELNR' changing p_bdcdata[].
  concatenate p_alv-belnr
              p_alv-gjahr
              p_alv-buzei into l_sel.

  perform bdc_field  using 'RF05A-SEL01(1)' l_sel changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/07' changing p_bdcdata[].
endform.                    "dynpro_733

*&---------------------------------------------------------------------*
*&      Form  dynpro_733_part
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_733_part  using  p_inv type ZFI_fi_D01_alv1 p_alv type ZFI_fi_D01_alv2 changing p_bdcdata type standard table.
  data: l_sel type selxx_f05a.
  perform bdc_dynpro using 'SAPMF05A' '733' changing p_bdcdata[].
  perform bdc_field  using 'RF05A-FELDN(1)' 'BELNR' changing p_bdcdata[].
  concatenate p_alv-belnr
              p_alv-gjahr
              p_alv-buzei into l_sel.

  perform bdc_field  using 'RF05A-SEL01(1)' l_sel changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/11' changing p_bdcdata[].
endform.                    "dynpro_733_part


*&---------------------------------------------------------------------*
*&      Form  dynpro_710_1_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_710_1  using  p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.

  data l_skb1   like skb1.
  field-symbols <fs_alv_tab3> like ZFI_fi_D01_alv3.

  perform bdc_dynpro using 'SAPMF05A' '710' changing p_bdcdata[].

  call function 'SKB1_SINGLE_READ'
    exporting
      i_bukrs   = p_inv-bukrs
      i_saknr   = p_inv-korrk
    importing
      o_skb1    = l_skb1
    exceptions
      not_found = 1.

  if l_skb1-mitkz is not initial.
    perform bdc_field  using 'RF05A-AGKOA' l_skb1-mitkz changing p_bdcdata[].
  else.
    perform bdc_field  using 'RF05A-AGKOA' 'S' changing p_bdcdata[].
  endif.
  read table gt_alv_tab3 assigning <fs_alv_tab3> index 1.
  if <fs_alv_tab3> is assigned.
    perform bdc_field  using 'RF05A-AGKON' <fs_alv_tab3>-hkont changing p_bdcdata[].
  endif.

  perform bdc_field  using 'RF05A-AGBUK' p_inv-bukrs changing p_bdcdata[].
  perform bdc_field  using 'RF05A-AGUMS' ' ' changing p_bdcdata[].
  perform bdc_field  using 'RF05A-XNOPS' 'X' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/05' changing p_bdcdata[].
endform.                    " dynpro_710_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_733_1_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_733_1  using  p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.
  data: l_sel       type selxx_f05a.
  data: l_feldn(14) type c value 'RF05A-FELDN( )'.
  data: l_sel01(14) type c value 'RF05A-SEL01( )'.

  field-symbols <fs_alv_tab3> like ZFI_fi_D01_alv3.

  perform bdc_dynpro using 'SAPMF05A' '733' changing p_bdcdata[].


  loop at gt_alv_tab3 assigning <fs_alv_tab3>.

    l_feldn+12(1) = sy-tabix.
    l_sel01+12(1) = sy-tabix.

    perform bdc_field  using l_feldn 'BELNR' changing p_bdcdata[].

    clear: l_sel.

    concatenate <fs_alv_tab3>-belnr
                <fs_alv_tab3>-gjahr
                <fs_alv_tab3>-buzei into l_sel.
    perform bdc_field  using l_sel01 l_sel changing p_bdcdata[].
  endloop.

  perform bdc_field  using 'BDC_OKCODE' '/11' changing p_bdcdata[].

endform.                    "dynpro_733
*&---------------------------------------------------------------------*
*&      Form  dynpro_3100_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_3100  using  p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.


  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/00' changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '=PART' changing p_bdcdata[].
  perform bdc_field  using 'BDC_SUBSCR' 'SAPDF05X                                6104PAGE'
        changing p_bdcdata[].

  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_CURSOR' 'DF05B-PSZAH(01)' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '=PI' changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' 'BU' changing p_bdcdata[].


endform.                    " dynpro_3100_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_3100_part
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_3100_part  using  p_inv type ZFI_fi_D01_alv1 p_dmbtr type ZFI_dmbtr5 changing p_bdcdata type standard table.

  data: p_fval type bdc_fval.

  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/00' changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '=PART' changing p_bdcdata[].
  perform bdc_field  using 'BDC_SUBSCR' 'SAPDF05X                                6104PAGE'
        changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_CURSOR' 'DF05B-PSZAH(01)' changing p_bdcdata[].

  perform convert_curr_to_external using p_dmbtr
                                  changing p_fval.


  perform bdc_field  using 'DF05B-PSZAH(01)' p_fval changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '=SL' changing p_bdcdata[].


endform.                    " dynpro_3100_ALV

*&---------------------------------------------------------------------*
*&      Form  dynpro_3100_part_2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form dynpro_3100_part_2  using  p_inv type ZFI_fi_D01_alv1 changing p_bdcdata type standard table.


  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '/00' changing p_bdcdata[].
  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' '=PART' changing p_bdcdata[].
  perform bdc_field  using 'BDC_SUBSCR' 'SAPDF05X                                6104PAGE'
        changing p_bdcdata[].

  perform bdc_dynpro using 'SAPDF05X' '3100' changing p_bdcdata[].
  perform bdc_field  using 'BDC_OKCODE' 'BU' changing p_bdcdata[].


endform.                    " dynpro_3100_part_2


*&---------------------------------------------------------------------*
*&      Form  refresh_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form refresh_alv.
  data stable type lvc_s_stbl.
  stable-row = 'X'.
  stable-col = 'X'.

  call method go_grid1->refresh_table_display
    exporting
      is_stable = stable
    exceptions
      finished  = 1
      others    = 2.

endform.                    "refresh_alv

*&---------------------------------------------------------------------*
*&      Form  SUMM_clear
*&---------------------------------------------------------------------*
*       Расшифровка сумм для выравнивания
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form summ_clear using ps_row    type lvc_s_row.
  data: ls_alv_tab2 type ZFI_fi_D01_alv2,
        ls_row      type ZFI_fi_D01_alv1.
  field-symbols: <fs_row>  type bsid,
                 <fs_row2> type bsik,
                 <fs_bsid> type bsid,
                 <fs_bsik> type bsik.
  clear: gt_alv_tab2.
  read table gt_alv_tab1 into ls_row index ps_row-index.
  if sy-subrc = 0.
    if  ls_row-type_kontr = 'X'.
      read table gt_bsid assigning <fs_row> with key bukrs = ls_row-bukrs kunnr = ls_row-kontr zuonr = ls_row-zuonr gjahr = ls_row-gjahr belnr = ls_row-belnr buzei = ls_row-buzei.
      if sy-subrc = 0.
        ls_alv_tab2-belnr = <fs_row>-belnr.
        ls_alv_tab2-buzei = <fs_row>-buzei.
        ls_alv_tab2-bldat = <fs_row>-bldat.
        ls_alv_tab2-budat = <fs_row>-budat.
        ls_alv_tab2-bukrs = <fs_row>-bukrs.
        ls_alv_tab2-gjahr = <fs_row>-gjahr.

        ls_alv_tab2-hkont = <fs_row>-hkont.
        ls_alv_tab2-umskz = <fs_row>-umskz.

        if <fs_row>-shkzg = 'H'.
          ls_alv_tab2-dmbtr = <fs_row>-dmbtr * -1.
        else.
          ls_alv_tab2-dmbtr = <fs_row>-dmbtr.
        endif.
        append ls_alv_tab2 to gt_alv_tab2.
        loop at gt_bsid assigning <fs_bsid> where rebzg = <fs_row>-belnr
                                              and rebzj = <fs_row>-gjahr
                                              and rebzz = <fs_row>-buzei.
          clear ls_alv_tab2.
          ls_alv_tab2-belnr = <fs_bsid>-belnr.
          ls_alv_tab2-buzei = <fs_bsid>-buzei.
          ls_alv_tab2-bldat = <fs_bsid>-bldat.
          ls_alv_tab2-budat = <fs_bsid>-budat.
          ls_alv_tab2-bukrs = <fs_bsid>-bukrs.
          ls_alv_tab2-gjahr = <fs_bsid>-gjahr.

          ls_alv_tab2-hkont = <fs_bsid>-hkont.
          ls_alv_tab2-umskz = <fs_bsid>-umskz.

          if <fs_bsid>-shkzg = 'H'.
            ls_alv_tab2-dmbtr = <fs_bsid>-dmbtr * -1.
          else.
            ls_alv_tab2-dmbtr = <fs_bsid>-dmbtr.
          endif.
          append ls_alv_tab2 to gt_alv_tab2.
        endloop.
      endif.
    else.
      read table gt_bsik assigning <fs_row2> with key bukrs = ls_row-bukrs lifnr = ls_row-kontr zuonr = ls_row-zuonr gjahr = ls_row-gjahr belnr = ls_row-belnr buzei = ls_row-buzei.
      if sy-subrc = 0 .
        ls_alv_tab2-belnr = <fs_row2>-belnr.
        ls_alv_tab2-buzei = <fs_row2>-buzei.
        ls_alv_tab2-bldat = <fs_row2>-bldat.
        ls_alv_tab2-budat = <fs_row2>-budat.
        ls_alv_tab2-bukrs = <fs_row2>-bukrs.
        ls_alv_tab2-gjahr = <fs_row2>-gjahr.

        ls_alv_tab2-hkont = <fs_row2>-hkont.
        ls_alv_tab2-umskz = <fs_row2>-umskz.

        if <fs_row2>-shkzg = 'H'.
          ls_alv_tab2-dmbtr = <fs_row2>-dmbtr * -1.
        else.
          ls_alv_tab2-dmbtr = <fs_row2>-dmbtr.
        endif.
        append ls_alv_tab2 to gt_alv_tab2.
        loop at gt_bsik assigning <fs_bsik> where rebzg = <fs_row2>-belnr
                                              and rebzj = <fs_row2>-gjahr
                                              and rebzz = <fs_row2>-buzei.
          clear ls_alv_tab2.
          ls_alv_tab2-belnr = <fs_bsik>-belnr.
          ls_alv_tab2-buzei = <fs_bsik>-buzei.
          ls_alv_tab2-bldat = <fs_bsik>-bldat.
          ls_alv_tab2-budat = <fs_bsik>-budat.
          ls_alv_tab2-bukrs = <fs_bsik>-bukrs.
          ls_alv_tab2-gjahr = <fs_bsik>-gjahr.

          ls_alv_tab2-hkont = <fs_row2>-hkont.
          ls_alv_tab2-umskz = <fs_row2>-umskz.

          if <fs_bsik>-shkzg = 'H'.
            ls_alv_tab2-dmbtr = <fs_bsik>-dmbtr * -1.
          else.
            ls_alv_tab2-dmbtr = <fs_bsik>-dmbtr.
          endif.
          append ls_alv_tab2 to gt_alv_tab2.
        endloop.
      endif.
    endif.

  endif.
*  call screen 200 starting at 5 5.
endform.                    " SUMM

*---------------------------------------------------------------------*
*       FORM CONVERT_CURR_TO_EXTERNAL                                 *
*---------------------------------------------------------------------*
* Конвертирование суммы из внутреннего во внешнее представление
*---------------------------------------------------------------------*
*  -->  _P_CURR - Сумма во внутреннем представлении (type CURR)
*  -->  _P_FVAL - Сумма во внешнем представлении    (type C)
*---------------------------------------------------------------------*

form convert_curr_to_external using _p_curr type dmbtr
                              changing _p_fval type bdc_fval.
  data: _zcurr type dmbtr.
  clear: _p_fval.
  if not _p_curr is initial.
    _zcurr = abs( _p_curr ).
    move _zcurr to _p_fval.
    condense _p_fval no-gaps.
    replace '.' with ',' into _p_fval.
  endif.
endform. "CONVERT_CURR_TO_EXTERNAL



_________________
"Sap"ЕР-подрывник...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB