Текущее время: Ср, июл 16 2025, 10:06

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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