Advertisement
Guest User

Untitled

a guest
Feb 6th, 2019
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 32.82 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *&  Include           ZFI_0287_NIOKTR_CLI02
  3. *&---------------------------------------------------------------------*
  4.  
  5. CLASS data_calc IMPLEMENTATION.
  6.   METHOD scaling.
  7.     PERFORM get_range_zssp USING
  8.             'FI_0287_NIOKTR11'
  9.             '001'
  10.             'T001'
  11.             'BUKRS'
  12.             CHANGING
  13.             mr_001.
  14.  
  15.     PERFORM get_value_zssp USING
  16.             'FI_0287_NIOKTR11'
  17.             '002'
  18.             'ANLB'
  19.             'AFABE'
  20.             CHANGING
  21.             mv_002.
  22.   ENDMETHOD.
  23.  
  24.   METHOD select_alv.
  25.     DATA:
  26.       lt_alv_report         TYPE TABLE OF zsfi_0287_alv,
  27.       lt_alv_report_grouped TYPE TABLE OF zsfi_0287_alv.
  28.     "** Масштабирование
  29.     "****************************************************************
  30.     scaling( ).
  31.  
  32.     "****************************************************************
  33.     "****************************************************************
  34.  
  35.     IF mt_anlkl[] IS NOT INITIAL.
  36.       SELECT anla~bukrs, anla~anln1, anla~anln2
  37.       FROM anla
  38.       JOIN anlz ON
  39.           anla~bukrs = anlz~bukrs
  40.       AND anla~anln1 = anlz~anln1
  41.       AND anla~anln2 = anlz~anln2
  42.       WHERE
  43.           anlz~adatu LE @mv_rdate
  44.       AND anlz~bdatu GE @mv_rdate
  45.       AND anla~bukrs EQ @mv_bukrs
  46.       AND anla~anln1 IN @mt_anln1
  47.       AND anla~anln2 IN @mt_anln2
  48.       AND anla~anlkl IN @mt_anlkl
  49.       AND ( anla~aktiv IS NOT NULL  AND anla~aktiv  LE @mv_rdate )
  50.       AND ( anla~deakt IS NULL      OR anla~deakt   GT @mv_rdate )
  51.       AND anla~inken = 'X'
  52.       AND anla~invnr IN @mt_invnr
  53.       AND anlz~kostl IN @mt_kostl
  54.       AND anlz~prctr IN @mt_prctr
  55.       AND anlz~werks IN @mt_werks
  56.       AND anlz~stort IN @mt_stort
  57.       AND anlz~pernr = @mv_mol
  58.       INTO CORRESPONDING FIELDS OF TABLE @mt_os_cards.
  59.     ELSE.
  60.       IF
  61.             mt_anln1[]  IS INITIAL
  62.         AND mt_anln2[]  IS INITIAL
  63.         AND mt_anlkl[]  IS INITIAL
  64.         AND mt_invnr[]  IS INITIAL
  65.         AND mt_kostl[]  IS NOT INITIAL
  66.         AND mt_werks[]  IS NOT INITIAL
  67.         AND mt_stort[]  IS NOT INITIAL
  68.         AND mv_mol      IS NOT INITIAL.
  69.  
  70.         SELECT anla~bukrs, anla~anln1, anla~anln2
  71.           FROM anla
  72.           WHERE
  73.                 anla~bukrs EQ @mv_bukrs
  74.           AND ( anla~aktiv IS NOT NULL  AND anla~aktiv  LE @mv_rdate )
  75.           AND ( anla~deakt IS NULL      OR anla~deakt   GT @mv_rdate )
  76.           AND anla~inken = 'X'
  77.           INTO CORRESPONDING FIELDS OF TABLE @mt_os_cards.
  78.  
  79.         SELECT anla~bukrs, anla~anln1, anla~anln2
  80.        FROM anla
  81.        JOIN anlz ON
  82.            anla~bukrs = anlz~bukrs
  83.        AND anla~anln1 = anlz~anln1
  84.        AND anla~anln2 = anlz~anln2
  85.        FOR ALL ENTRIES IN @mt_os_cards
  86.        WHERE
  87.            anla~bukrs EQ @mt_os_cards-bukrs
  88.        AND anla~anln1 EQ @mt_os_cards-anln1
  89.        AND anla~anln2 EQ @mt_os_cards-anln2
  90.        AND anlz~adatu LE @mv_rdate
  91.        AND anlz~bdatu GE @mv_rdate
  92.        AND anlz~bukrs EQ @mv_bukrs
  93.        AND anlz~anln1 IN @mt_anln1
  94.        AND anlz~anln2 IN @mt_anln2
  95.        AND anlz~kostl IN @mt_kostl
  96.        AND anlz~prctr IN @mt_prctr
  97.        AND anlz~werks IN @mt_werks
  98.        AND anlz~stort IN @mt_stort
  99.        AND anlz~pernr = @mv_mol
  100.        INTO CORRESPONDING FIELDS OF TABLE @mt_os_cards.
  101.  
  102.       ELSEIF mt_anlkl[] IS INITIAL.
  103.         " Раскомментировать когда появится таблица ZT_FORMS_LIST
  104. *        SELECT anlkl
  105. *        from zt_forms_list
  106. *        INTO @mt_forms_list_anlkl.
  107.  
  108.         SELECT anla~bukrs, anla~anln1, anla~anln2
  109.         FROM anla
  110.         JOIN anlz ON
  111.             anla~bukrs = anlz~bukrs
  112.         AND anla~anln1 = anlz~anln1
  113.         AND anla~anln2 = anlz~anln2
  114.         FOR ALL ENTRIES IN @mt_forms_list_anlkl
  115.         WHERE
  116.             anlz~adatu LE @mv_rdate
  117.         AND anlz~bdatu GE @mv_rdate
  118.         AND anla~bukrs EQ @mv_bukrs
  119.         AND anla~anln1 IN @mt_anln1
  120.         AND anla~anln2 IN @mt_anln2
  121.         AND anla~anlkl EQ @mt_forms_list_anlkl-anlkl
  122.         AND ( anla~aktiv IS NOT NULL  AND anla~aktiv  LE @mv_rdate )
  123.         AND ( anla~deakt IS NULL      OR anla~deakt   GT @mv_rdate )
  124.         AND anla~inken = 'X'
  125.         AND anla~invnr IN @mt_invnr
  126.         AND anlz~kostl IN @mt_kostl
  127.         AND anlz~prctr IN @mt_prctr
  128.         AND anlz~werks IN @mt_werks
  129.         AND anlz~stort IN @mt_stort
  130.         AND anlz~pernr = @mv_mol
  131.         INTO CORRESPONDING FIELDS OF TABLE @mt_os_cards.
  132.       ENDIF.
  133.     ENDIF.
  134.  
  135.     "****************************************************************
  136.     "*** Выборка для ALV по карточкам
  137.     "****************************************************************
  138.     "** 1. БЕ
  139.     "****************************************************************
  140.     mv_001_bukrs = mv_bukrs.
  141.  
  142.     "** 2. Наименование БЕ
  143.     "****************************************************************
  144.     SELECT SINGLE adrc~name1, adrc~name2, adrc~name3, adrc~name4
  145.     FROM adrc
  146.     JOIN t001 ON adrc~addrnumber = t001~adrnr
  147.     WHERE
  148.           adrc~nation EQ ''
  149.     AND   t001~bukrs  EQ @mv_bukrs
  150.     INTO CORRESPONDING FIELDS OF @lv_002_temp.
  151.  
  152.     IF lv_002_temp-name1 IS NOT INITIAL.
  153.       CONCATENATE lv_002_temp-name1 mv_002_name_be INTO mv_002_name_be SEPARATED BY ', '.
  154.     ENDIF.
  155.  
  156.     IF lv_002_temp-name2 IS NOT INITIAL.
  157.       CONCATENATE lv_002_temp-name2 mv_002_name_be INTO mv_002_name_be SEPARATED BY ', '.
  158.     ENDIF.
  159.  
  160.     IF lv_002_temp-name3 IS NOT INITIAL.
  161.       CONCATENATE lv_002_temp-name3 mv_002_name_be INTO mv_002_name_be SEPARATED BY ', '.
  162.     ENDIF.
  163.  
  164.     IF lv_002_temp-name4 IS NOT INITIAL.
  165.       CONCATENATE lv_002_temp-name4 mv_002_name_be INTO mv_002_name_be SEPARATED BY ', '.
  166.     ENDIF.
  167.  
  168.     IF mv_002_name_be IS NOT INITIAL.
  169.       mv_002_name_be = substring( val = mv_002_name_be off = 0 len = strlen( mv_002_name_be ) - 1 ).
  170.     ENDIF.
  171.  
  172.     LOOP AT mt_os_cards ASSIGNING FIELD-SYMBOL(<cards1>).
  173.       "** 5a. Название ОС
  174.       "****************************************************************
  175.       SELECT SINGLE anla~txt50
  176.       FROM anla
  177.       WHERE
  178.             anla~bukrs = @mv_bukrs
  179.       AND   anla~anln1 EQ @<cards1>-anln1
  180.       AND   anla~anln2 EQ @<cards1>-anln2
  181.       INTO @mv_05a_name_os_a.
  182.  
  183.       "** 5b. Название ОС (продолжение)
  184.       "****************************************************************
  185.       SELECT SINGLE anla~txa50
  186.       FROM anla
  187.       WHERE
  188.             anla~bukrs = @mv_bukrs
  189.       AND   anla~anln1 EQ @<cards1>-anln1
  190.       AND   anla~anln2 EQ @<cards1>-anln2
  191.       INTO @mv_05b_name_os_b.
  192.  
  193. ****      "** 5c. Название ОС (продолжение из ракурса)
  194. ****      "****************************************************************
  195. ****      select single anla~anlkl
  196. ****      from anla
  197. ****      where
  198. ****            anla~bukrs = @mv_bukrs
  199. ****      and   anla~anln1 in @mt_anln1
  200. ****      and   anla~anln2 in @mt_anln2
  201. ****      into @mv_05c_name_os_c.
  202.  
  203.       "** 6. Класс ОС
  204.       "****************************************************************
  205.       SELECT SINGLE anla~anlkl
  206.       FROM anla
  207.       WHERE
  208.             anla~bukrs = @mv_bukrs
  209.       AND   anla~anln1 EQ @<cards1>-anln1
  210.       AND   anla~anln2 EQ @<cards1>-anln2
  211.       INTO @mv_006_os_class.
  212.  
  213.       "** 7. Наименование класса
  214.       "****************************************************************
  215.       SELECT SINGLE anla~txt50 " anka~txk50
  216.       FROM anla
  217.       JOIN anka ON anka~anlkl = anla~anlkl
  218.       INTO @mv_007_class_name.
  219.  
  220.       "** 8. Инвертарный номер
  221.       "****************************************************************
  222.       SELECT SINGLE anla~invnr
  223.       FROM anla
  224.       WHERE
  225.             anla~bukrs EQ @<cards1>-bukrs
  226.       AND   anla~anln1 EQ @<cards1>-anln1
  227.       AND   anla~anln2 EQ @<cards1>-anln2
  228.       INTO @mv_008_inv_number.
  229.  
  230.       "** 9. МВЗ
  231.       "****************************************************************
  232.       SELECT SINGLE anlz~kostl
  233.       FROM anlz
  234.       WHERE
  235.             anlz~bukrs = @mv_bukrs
  236.       AND   anlz~anln1 EQ @<cards1>-anln1
  237.       AND   anlz~anln2 EQ @<cards1>-anln2
  238.       AND   anlz~adatu LE @mv_rdate
  239.       AND   anlz~bdatu GT @mv_rdate
  240.       INTO @mv_009_mvz.
  241.  
  242.       "** 10. Наименование МВЗ
  243.       "****************************************************************
  244.       SELECT SINGLE cskt~ktext
  245.       FROM cskt
  246.       JOIN tka02 ON cskt~kokrs = tka02~kokrs
  247.       WHERE
  248.             cskt~spras  EQ 'R'
  249.       AND   cskt~kostl  EQ @mv_009_mvz
  250.       AND   cskt~datbi  GE @mv_rdate
  251.       AND   tka02~kokrs EQ @<cards1>-bukrs
  252.       INTO @mv_010_mvz_name.
  253.  
  254.       "** 11. Завод
  255.       "****************************************************************
  256.       SELECT SINGLE anlz~werks
  257.       FROM anlz
  258.       WHERE
  259.             anlz~bukrs EQ @<cards1>-bukrs
  260.       AND   anlz~anln1 EQ @<cards1>-anln1
  261.       AND   anlz~anln2 EQ @<cards1>-anln2
  262.       AND   anlz~adatu LE @mv_rdate
  263.       AND   anlz~bdatu GT @mv_rdate
  264.       INTO @mv_011_factory.
  265.  
  266.       "** 12. Наименование завода
  267.       "****************************************************************
  268.       SELECT SINGLE t001w~name1
  269.       FROM t001w
  270.       WHERE
  271.           t001w~werks = @mv_011_factory
  272.       INTO @mv_012_factory_name.
  273.  
  274.       "** 13. Местоположение
  275.       "****************************************************************
  276.       SELECT SINGLE anlz~stort
  277.       FROM anlz
  278.       WHERE
  279.             anlz~bukrs EQ @<cards1>-bukrs
  280.       AND   anlz~anln1 EQ @<cards1>-anln1
  281.       AND   anlz~anln2 EQ @<cards1>-anln2
  282.       AND   anlz~adatu LE @mv_rdate
  283.       AND   anlz~bdatu GT @mv_rdate
  284.       INTO @mv_013_place.
  285.  
  286.       "** 14. Наименование местоположения
  287.       "****************************************************************
  288.       SELECT SINGLE t499s~ktext
  289.       FROM t499s
  290.       WHERE
  291.             t499s~werks = @mv_011_factory
  292.       AND   t499s~stand = @mv_013_place
  293.       INTO @mv_014_place_name .
  294.  
  295.       "** 15. Табельный номер
  296.       "****************************************************************
  297.       SELECT SINGLE anlz~pernr
  298.       FROM anlz
  299.       WHERE
  300.             anlz~bukrs EQ @<cards1>-bukrs
  301.       AND   anlz~anln1 EQ @<cards1>-anln1
  302.       AND   anlz~anln2 EQ @<cards1>-anln2
  303.       AND   anlz~adatu LE @mv_rdate
  304.       AND   anlz~bdatu GT @mv_rdate
  305.       INTO @mv_015_billing_number.
  306.  
  307.       "** 16. ФИО
  308.       "****************************************************************
  309.       SELECT SINGLE pa0001~ename
  310.       FROM pa0001
  311.       JOIN anlz ON pa0001~pernr = anlz~pernr
  312.       WHERE
  313.             pa0001~begda LE @mv_rdate
  314.       AND   pa0001~endda GT @mv_rdate
  315.       INTO @mv_016_fio_emp1.
  316.  
  317.       "** 17. Должность сотрудника
  318.       "****************************************************************
  319.       SELECT SINGLE t513s~stltx
  320.       FROM t513s
  321.       JOIN pa0001 ON t513s~stell = pa0001~stell
  322.       WHERE
  323.             t513s~sprsl   EQ 'R'
  324.       AND   t513s~begda   LE @mv_rdate
  325.       AND   t513s~endda   GT @mv_rdate
  326.       AND   pa0001~pernr  EQ @mv_015_billing_number
  327.       AND   pa0001~begda  LE @mv_rdate
  328.       AND   pa0001~endda  GT @mv_rdate
  329.       INTO @mv_017_position_emp1.
  330.  
  331.       "** 18. МВП
  332.       "****************************************************************
  333.       SELECT SINGLE anlz~prctr
  334.       FROM anlz
  335.       WHERE
  336.             anlz~bukrs EQ @<cards1>-bukrs
  337.       AND   anlz~anln1 EQ @<cards1>-anln1
  338.       AND   anlz~anln2 EQ @<cards1>-anln2
  339.       AND   anlz~adatu LE @mv_rdate
  340.       AND   anlz~bdatu GT @mv_rdate
  341.       INTO @mv_018_mvp.
  342.  
  343.       "** 19. Наименование МВП
  344.       "****************************************************************
  345.       SELECT SINGLE cepct~ltext
  346.       FROM cepct
  347.       JOIN tka02 ON cepct~kokrs = tka02~kokrs
  348.       WHERE
  349.             cepct~spras EQ 'R'
  350.       AND   cepct~prctr EQ   @mv_018_mvp
  351.       AND   cepct~datbi GE  @mv_rdate
  352.       AND   tka02~bukrs EQ   @<cards1>-bukrs
  353.       INTO @mv_019_mvp_name.
  354.  
  355.       "** 20.  Внутренний заказ
  356.       "****************************************************************
  357.       SELECT SINGLE anlz~iaufn
  358.       FROM anlz
  359.       WHERE
  360.             anlz~bukrs EQ @<cards1>-bukrs
  361.       AND   anlz~anln1 EQ @<cards1>-anln1
  362.       AND   anlz~anln2 EQ @<cards1>-anln2
  363.       AND   anlz~adatu LE @mv_rdate
  364.       AND   anlz~bdatu GT @mv_rdate
  365.       INTO @mv_020_inner_order.
  366.  
  367.       "** 21. Наименование внутреннего заказа
  368.       "****************************************************************
  369.       SELECT SINGLE aufk~ktext
  370.       FROM aufk
  371.       WHERE
  372.           aufk~aufnr = @mv_020_inner_order
  373.       INTO @mv_021_inner_order_name.
  374.  
  375.       "** 22. Организация исполнитель
  376.       "****************************************************************
  377.       SELECT SINGLE   but000~name_org1,
  378.                       but000~name_org2,
  379.                       but000~name_org3,
  380.                       but000~name_org4
  381.       FROM but000
  382.       JOIN draw ON but000~partner = draw~zz_bu_partner
  383.       JOIN anlu ON draw~doknr     = anlu~zz_dogovor
  384.       WHERE
  385.             anlu~bukrs EQ @<cards1>-bukrs
  386.       AND   anlu~anln1 EQ @<cards1>-anln1
  387.       AND   anlu~anln2 EQ @<cards1>-anln2
  388.       INTO CORRESPONDING FIELDS OF @ms_022_temp.
  389.  
  390.       CONCATENATE
  391.       ms_022_temp-name_org1
  392.       ms_022_temp-name_org2
  393.       ms_022_temp-name_org3
  394.       ms_022_temp-name_org4
  395.       INTO
  396.       mv_022_org_executive
  397.       SEPARATED BY space.
  398.  
  399.  
  400.       "** 23. Пин объекта
  401.       "****************************************************************
  402.       SELECT SINGLE prps~zzpin
  403.       FROM prps
  404.       JOIN anla ON prps~pspnr = anla~pspnr
  405.       WHERE
  406.             anla~bukrs EQ @<cards1>-bukrs
  407.       AND   anla~anln1 EQ @<cards1>-anln1
  408.       AND   anla~anln2 EQ @<cards1>-anln2
  409.       INTO  @mv_023_pin.
  410.  
  411.       "** 24. Дата завершения
  412.       "****************************************************************
  413.       SELECT SINGLE anek~bzdat
  414.       FROM anek
  415.       WHERE
  416.             anek~bukrs EQ @<cards1>-bukrs
  417.       AND   anek~anln1 EQ @<cards1>-anln1
  418.       AND   anek~anln2 EQ @<cards1>-anln2
  419.       AND   anek~ldgrp EQ '0L'
  420.       INTO  @mv_024_end_date.
  421.  
  422.  
  423.       "** 25. Дата постановки на учёт
  424.       "****************************************************************
  425.       SELECT SINGLE anla~aktiv
  426.       FROM anla
  427.       WHERE
  428.             anla~bukrs EQ @<cards1>-bukrs
  429.       AND   anla~anln1 EQ @<cards1>-anln1
  430.       AND   anla~anln2 EQ @<cards1>-anln2
  431.       INTO @mv_030_registration_date.
  432.  
  433.       "** 26. Счет затрат
  434.       "****************************************************************
  435.       SELECT SINGLE t095b~ktnafg
  436.       FROM t095b
  437.       JOIN t001 ON t095b~ktopl = t001~ktopl
  438.       JOIN anla ON t095b~ktogr = anla~ktogr
  439.       WHERE
  440.             t001~bukrs  EQ @<cards1>-bukrs
  441.       AND   t095b~afabe EQ @mv_002
  442.       AND   anla~bukrs  EQ @<cards1>-bukrs
  443.       AND   anla~anln1  EQ @<cards1>-anln1
  444.       AND   anla~anln2  EQ @<cards1>-anln2
  445.       INTO @mv_029_accouting_cost.
  446.  
  447.       "** 27. Первоначальная стоимость
  448.       "****************************************************************
  449.       CREATE OBJECT mo_026_amort.
  450.  
  451.       APPEND VALUE #( bukrs = <cards1>-bukrs anln1 = <cards1>-anln1 anln2 = <cards1>-anln2 ) TO mt_026_input.
  452.  
  453.       mo_026_amort->fetch_db(
  454.         EXPORTING
  455.           i_input = mt_026_input
  456.           i_afabe = mv_002
  457.           i_datum = mv_rdate
  458.       ).
  459.  
  460.       ms_026_amort_out = mo_026_amort->calc( ).
  461.  
  462.       LOOP AT ms_026_amort_out ASSIGNING FIELD-SYMBOL(<ls_amort_out1>).
  463.         mv_026_amort_perv_st = mv_026_amort_perv_st + <ls_amort_out1>-perv_st.
  464.       ENDLOOP.
  465.  
  466.       FREE mo_026_amort.
  467.  
  468. *      "****************************************************************
  469. *      "****************************************************************
  470.  
  471.       APPEND VALUE #(
  472.         be                      = mv_001_bukrs
  473.         name_be                 = mv_002_name_be
  474.         os                      = <cards1>-anln1
  475.         subnumber               = <cards1>-anln2
  476.         os_name_a               = mv_05a_name_os_a
  477.         os_name_b               = mv_05b_name_os_b
  478. *        os_name_c =
  479.         os_class                = mv_006_os_class
  480.         class_name              = mv_007_class_name
  481.         inv_number              = mv_008_inv_number
  482.         mvz                     = mv_009_mvz
  483.         mvz_name                = mv_010_mvz_name
  484.         factory                 = mv_011_factory
  485.         factory_name            = mv_012_factory_name
  486.         place                   = mv_013_place
  487.         place_name              = mv_014_place_name
  488.         billing_number          = mv_015_billing_number
  489.         fio_emp1                = mv_016_fio_emp1
  490.         position_emp1           = mv_017_position_emp1
  491.         mvp                     = mv_018_mvp
  492.         mvp_name                = mv_019_mvp_name
  493.         inner_order             = mv_020_inner_order
  494.         inner_order_name        = mv_021_inner_order_name
  495.         org_executive           = mv_022_org_executive
  496.         pin_obj                 = mv_023_pin
  497.         end_date                = mv_024_end_date
  498.         registration_date       = mv_030_registration_date
  499.         accounting_cost         = mv_029_accouting_cost
  500.         amort_pert_st           = mv_026_amort_perv_st
  501.       ) TO lt_alv_report.
  502.  
  503.     ENDLOOP.
  504.  
  505.     "****************************************************************
  506.     "*** Группировка
  507.     "****************************************************************
  508.     grouping(   EXPORTING it_alv_report = lt_alv_report
  509.                 IMPORTING et_alv_report = lt_alv_report_grouped
  510.              ).
  511.  
  512.     LOOP AT lt_alv_report_grouped ASSIGNING FIELD-SYMBOL(<lt_alv_report_grouped>).
  513.       APPEND <lt_alv_report_grouped> TO gt_alv_report.
  514.     ENDLOOP.
  515.  
  516.  
  517.   ENDMETHOD.
  518.  
  519.   METHOD select_pdf.
  520.     DATA:
  521.       lv_012_nioktr_name TYPE text240,
  522.       ls_tab1            TYPE zsfi_0287_tab1,
  523. *      ls_tab2            TYPE zsfi_0286_tab2,
  524.       lv_fio_job         TYPE text100.
  525.  
  526.     "** Постоянная часть
  527.     "****************************************************************
  528.     gv_context-editable = mv_intpdf.
  529.  
  530.     "** 1. Организация
  531.     gv_context-is_main-organization = mv_002_name_be.
  532.  
  533.     "** 2. Структурное подразделение
  534.       IF mv_bukrs IN mr_001.
  535.         gv_context-is_main-mv_name = mv_019_mvp_name.
  536.       ELSE.
  537.         gv_context-is_main-mv_name = mv_010_mvz_name.
  538.       ENDIF.
  539.  
  540.     "** 4. Код
  541.       IF mv_bukrs IN mr_001.
  542.         gv_context-is_main-code = mv_018_mvp.
  543.       ELSE.
  544.         gv_context-is_main-code = mv_009_mvz.
  545.       ENDIF.
  546.  
  547. *    "** 5. номер документа
  548. *    IF mv_shtrh IS NOT INITIAL.
  549. *      gv_context-is_main-barcode = zcl_fiaa_static=>generate_barcode_new(
  550. *        i_context  = 'ZFI_NIOKTR21_CONTEXT'
  551. *        i_formname = mv_form
  552. *        i_bukrs    = mv_001_bukrs
  553. *        i_anln1    = anln1
  554. *        i_anln2    = anln2
  555. *        i_docnum   = <wa>-fsd-n22_doc_nr
  556. *        i_bldat    = mv_rdate
  557. *        i_found    = lv_found ).
  558.  
  559. *      gv_context-is_main-card_nioktr_num =
  560. *    ENDIF.
  561.     "** 6. Дата составления. (rep_date с СЭ)
  562.     gv_context-is_main-rep_date = mv_rdate.
  563.  
  564.     "** 8. Поле дата. (день из p_com_date с СЭ)
  565.     gv_context-is_main-com_day = mv_comdat+6(2).  " need test it in IDS
  566.  
  567.     "** 9. Поле месяц. (месяц из p_com_date с СЭ)
  568.     gv_context-is_main-com_month = mv_comdat+4(2).  " need test it in IDS
  569.  
  570.     "** 10. Поле год. (год из p_com_date с СЭ)
  571.     gv_context-is_main-com_year = mv_comdat+0(4).  " need test it in IDS
  572.  
  573.     "** 11. Поле №. (p_com_number с СЭ)
  574.     gv_context-is_main-com_num = mv_comnum.
  575.  
  576.     "** 12. Поле дата. (день из p_prot_date с СЭ)
  577.     gv_context-is_main-prot_day = mv_prot_d+6(2).  " need test it in IDS
  578.  
  579.     "** 13. Поле месяц. (месяц из p_prot_date с СЭ)
  580.     gv_context-is_main-prot_month = mv_prot_d+4(2).  " need test it in IDS
  581.  
  582.     "** 14. Поле год. (год из p_prot_date с СЭ)
  583.     gv_context-is_main-prot_year = mv_prot_d+0(4).  " need test it in IDS
  584.  
  585.     "** 15. Поле №. (p_prot_number с СЭ)
  586.     gv_context-is_main-prot_num = mv_prot_n.
  587.  
  588.     "** 16. Результат / (вид ниоктр)
  589.     gv_context-is_main-results = mv_007_class_name.
  590.  
  591.     "** 17. Работы по теме/ (полное наименование объекта (темы)  НИОКТР)
  592.     gv_context-is_main-job = mv_05a_name_os_a.
  593.  
  594.     "** 18. Выполненной/ (наименование научной организации, структурного подразделения, номер и дата договора)
  595.     gv_context-is_main-org = mv_022_org_executive.
  596.  
  597.     "** 19. принят к учету, передан для использования/ (указать область применения результатов НИОКТР, структурное подразделение)
  598.     gv_context-is_main-co = mv_co.
  599.  
  600.     "** 32. Председатель комиссии
  601.     gv_context-is_main-fio_chrm = mv_fioch.
  602.  
  603.     "** 33. Должность председатель комиссии
  604.     gv_context-is_main-job_chrm = mv_jobch.
  605.  
  606.     "** 34. Член комиссии 1
  607.     gv_context-is_main-fio_mc_1 = mv_fiomc1.
  608.  
  609.     "** 35. Должность члена комиссии 1
  610.     gv_context-is_main-job_mc_1 = mv_jobmc1.
  611.  
  612.     "** 36. Член комиссии 2
  613.     gv_context-is_main-fio_mc_2 = mv_fiomc2.
  614.  
  615.     "** 37. Должность члена комиссии 2
  616.     gv_context-is_main-job_mc_2 = mv_jobmc2.
  617.  
  618.  
  619.     "** 38. Член комиссии 3
  620.     gv_context-is_main-fio_mc_3 = mv_fiomc3.
  621.  
  622.     "** 39. Должность члена комиссии 3
  623.     gv_context-is_main-job_mc_3 = mv_jobmc3.
  624.  
  625.  
  626.     "** 40. Член комиссии 4
  627.     gv_context-is_main-fio_mc_4 = mv_fiomc4.
  628.  
  629.     "** 41. Должность члена комиссии 4
  630.     gv_context-is_main-job_mc_4 = mv_jobmc4.
  631.  
  632.  
  633.     "** 42. Член комиссии 5
  634.     gv_context-is_main-fio_mc_5 = mv_fiomc5.
  635.  
  636.     "** 43. Должность члена комиссии 5
  637.     gv_context-is_main-job_mc_5 = mv_jobmc5.
  638.  
  639.  
  640.     "** 44. Член комиссии 6
  641.     gv_context-is_main-fio_mc_6 = mv_fiomc6.
  642.  
  643.     "** 45. Должность члена комиссии 6
  644.     gv_context-is_main-job_mc_6 = mv_jobmc6.
  645.  
  646.  
  647.     "** 46. Член комиссии 7
  648.     gv_context-is_main-fio_mc_7 = mv_fiomc7.
  649.  
  650.     "** 47. Должность члена комиссии 7
  651.     gv_context-is_main-job_mc_7 = mv_jobmc7.
  652.  
  653.  
  654.     "** 48. Член комиссии 8
  655.     gv_context-is_main-fio_mc_8 = mv_fiomc8.
  656.  
  657.     "** 49. Должность члена комиссии 8
  658.     gv_context-is_main-job_mc_8 = mv_jobmc8.
  659.  
  660.  
  661.     "** 50. Член комиссии 9
  662.     gv_context-is_main-fio_mc_9 = mv_fiomc9.
  663.  
  664.     "** 51. Должность члена комиссии 9
  665.     gv_context-is_main-job_mc_9 = mv_jobmc9.
  666.  
  667.  
  668.     "** 52. Член комиссии 10
  669.     gv_context-is_main-fio_mc_10 = mv_fiomc10.
  670.  
  671.     "** 53. Должность члена комиссии 10
  672.     gv_context-is_main-job_mc_10 = mv_jobmc10.
  673.  
  674.     "** 54. Лицо, ответственное за ведение учета
  675.     gv_context-is_main-fio_uch = mv_fiouch.     "проверить название поля gv_context-is_main-...
  676.  
  677.     "** 55. Должность лица ответственного за учёт
  678.     gv_context-is_main-job_uch = mv_jobuch.      "проверить название поля gv_context-is_main-...
  679.  
  680.     "** 56. Карточку составил
  681.     gv_context-is_main-fio_crd = mv_fiocrd.      "проверить название поля gv_context-is_main-...
  682.  
  683.     "** 57. Должность составившего карточку
  684.     gv_context-is_main-job_crd = mv_jobcrd.      "проверить название поля gv_context-is_main...
  685.  
  686.     "** Таблица 1. 20-29
  687.     LOOP AT gt_alv_report ASSIGNING FIELD-SYMBOL(<ls_tab1>).
  688.       CLEAR ls_tab1.
  689.    
  690.     ls_tab1-pin_obj = <ls_tab1>-pin_obj.         " ПИН объекта НИОКТР/ 1 столбец (20)
  691.     ls_tab1-inv_number = <ls_tab1>-inv_number.   "Инвентарный номер объекта/ 3 столбец (21)
  692.     ls_tab1-end_date = <ls_tab1>-end_date.       "Дата завершения работ/ 4 столбец (22)
  693.     ls_tab1-registration_date = <ls_tab1>-registration_date.   "Дата постановки на учет (отражения по дебету счета 04.04)/  5 столбец (23)
  694.     ls_tab1-amort_pert_st = <ls_tab1>-amort_pert_st.           "Первоначальная стоимость, руб. коп./ 7 столбец (25)
  695.     ls_tab1-method       =  'линейный'.             "Способ списания/ 9 столбец (27). Проверить название поля.
  696.     ls_tab1-accounting_cost = <ls_tab1>-accounting_cost.   "Счет, субсчет, код аналитического учета для отнесения суммы списания НИОКТР/ 11 столбец (29)
  697.     APPEND ls_tab1 TO gv_context-it_tab1.
  698.     ENDLOOP.
  699.  
  700.   ENDMETHOD.
  701.  
  702.   METHOD sscr_add_fields.
  703.  
  704. **    ms_params = is_params.
  705.  
  706.     mv_bukrs = iv_bukrs.
  707.     mv_form  = iv_form.
  708.     mv_rdate = iv_rdate.
  709.  
  710.     mt_anln1 = it_anln1.    " Основное средство
  711.     mt_anln2 = it_anln2.    " Субномер
  712.     mt_anlkl = it_anlkl.    " Класс ОС
  713.     mt_invnr = it_invnr.    " Инвентарный номер
  714.     mt_kostl = it_kostl.    " МВЗ
  715.     mt_werks = it_werks.    " Завод
  716.     mt_stort = it_stort.    " Местоположение
  717.     mt_pernr = it_pernr.    " МОЛ
  718.     mt_prctr = it_prctr.    " МВП
  719.     mv_group = iv_group.    " В разрезе структурных подразделений
  720.     mv_mol   = iv_mol.      " В разрезе МОЛ
  721.     mv_plase = iv_plase.    " В разрезе местоположений
  722.    
  723.     mv_comdat = iv_comdat.
  724.     mv_comnum = iv_comnum.
  725.     mv_co = iv_co.
  726.     mv_prot_n = iv_prot_n.
  727.     mv_prot_d = iv_prot_d.
  728.  
  729.  
  730.     mv_chrm = iv_chrm.                  
  731.     mv_mbrc1 = iv_mbrc1.                    
  732.     mv_mbrc2 = iv_mbrc2.            
  733.     mv_mbrc3 = iv_mbrc3.                    
  734.     mv_mbrc4 = iv_mbrc4.        
  735.     mv_mbrc5 = iv_mbrc5.                    
  736.     mv_mbrc6 = iv_mbrc6.                    
  737.     mv_mbrc7 = iv_mbrc7.                    
  738.     mv_mbrc8 = iv_mbrc8.                    
  739.     mv_mbrc9 = iv_mbrc9.        
  740.     mv_mbrc10 = iv_mbrc10.                    
  741.     mv_uchet = iv_uchet.                    
  742.     mv_crd = iv_crd.          
  743.  
  744.  
  745.       mv_fioch = iv_fioch.         "          TYPE pa0001-ename,
  746.       mv_fiomc1 = iv_fiomc1.        "           TYPE pa0001-ename,
  747.       mv_fiomc2 = iv_fiomc2.         "          TYPE pa0001-ename,
  748.       mv_fiomc3 = iv_fiomc3.          "          TYPE pa0001-ename,
  749.       mv_fiomc4 = iv_fiomc4.           "        TYPE pa0001-ename,
  750.       mv_fiomc5 = iv_fiomc5.            "       TYPE pa0001-ename,
  751.       mv_fiomc6 = iv_fiomc6.             "      TYPE pa0001-ename,
  752.       mv_fiomc7 = iv_fiomc7.              "      TYPE pa0001-ename,
  753.       mv_fiomc8 = iv_fiomc8.               "    TYPE pa0001-ename,
  754.       mv_fiomc9 = iv_fiomc9.                "   TYPE pa0001-ename,
  755.       mv_fiomc10 = iv_fiomc10.               "   TYPE pa0001-ename,
  756.       mv_fiouch = iv_fiouch.                " TYPE pa0001-ename,
  757.       mv_fiocrd = iv_fiocrd.                " TYPE pa0001-ename,
  758.  
  759.  
  760.       mv_jobch                    " TYPE t513s-stltx,
  761.       mv_jobmc1                   " TYPE t513s-stltx,
  762.       mv_jobmc2                   " TYPE t513s-stltx,
  763.       mv_jobmc3                   " TYPE t513s-stltx,
  764.       mv_jobmc4                   " TYPE t513s-stltx,
  765.       mv_jobmc5                   " TYPE t513s-stltx,
  766.       mv_jobmc6                   " TYPE t513s-stltx,
  767.       mv_jobmc7                   " TYPE t513s-stltx,
  768.       mv_jobmc8                   " TYPE t513s-stltx,
  769.       mv_jobmc9                   " TYPE t513s-stltx,
  770.       mv_jobmc10                  " TYPE t513s-stltx,
  771.       mv_jobuch                   " TYPE t513s-stltx,
  772.       mv_jobcrd                   " TYPE t513s-stltx,
  773.  
  774.          
  775.  
  776.  
  777.  
  778.  
  779.  
  780.     mv_debit = iv_debit.    " Ответственный за оприходывание
  781.     mv_pol   = iv_pol.      " Ответственный за получение
  782.     mv_uchet = iv_uchet.    " Ответственный за учёт
  783.     mv_fiodb = iv_fiodb.
  784.     mv_fiopol = iv_fiopol.
  785.     mv_fiouch = iv_fiouch.
  786.     mv_shtrh  = iv_shtrh.   " Сформировать штрих-код
  787.     mv_format = iv_format.
  788.     mv_prpdf  = iv_prpdf.   " Предварительный просмотр PDF
  789.     mv_intpdf = iv_intpdf.  " Интерактивный просмотр PDF
  790.     mv_pdfnam = iv_pdfnam.  " Устройство вывода
  791.     mv_jobdb  = iv_jobdb.   " Ответственный за оприходывание
  792.     mv_jobpol = iv_jobpol.  " Ответственный за получение
  793.     mv_jobuch = iv_jobuch.  " Ответственный за учёт
  794.  
  795.   ENDMETHOD.
  796.  
  797.   METHOD grouping.
  798.     DATA:
  799.       lt_alv_report      TYPE TABLE OF zsfi_0286_alv,
  800.       lt_alv_report_temp TYPE TABLE OF zsfi_0286_alv.
  801.  
  802.     lt_alv_report = it_alv_report.
  803.  
  804.     " В разрезе структурных подразделений
  805.     IF mv_group IS NOT INITIAL.
  806.       IF mv_001_bukrs IN mr_001.
  807.         LOOP AT lt_alv_report ASSIGNING FIELD-SYMBOL(<lt_alv_report>) GROUP BY <lt_alv_report>-mvp.
  808.           LOOP AT GROUP <lt_alv_report> INTO DATA(lt_member).
  809.             APPEND lt_member TO lt_alv_report_temp.
  810.           ENDLOOP.
  811.         ENDLOOP.
  812.       ELSE.
  813.         LOOP AT lt_alv_report ASSIGNING <lt_alv_report> GROUP BY <lt_alv_report>-mvz.
  814.           LOOP AT GROUP <lt_alv_report> INTO lt_member.
  815.             APPEND lt_member TO lt_alv_report_temp.
  816.           ENDLOOP.
  817.         ENDLOOP.
  818.       ENDIF.
  819.     ENDIF.
  820.     IF lt_alv_report_temp IS NOT INITIAL.
  821.       CLEAR lt_alv_report.
  822.       APPEND LINES OF lt_alv_report_temp TO lt_alv_report.
  823.       CLEAR lt_alv_report_temp.
  824.     ENDIF.
  825.  
  826.     " В разрезе МОЛ
  827.     IF mv_mol IS NOT INITIAL.
  828.       LOOP AT lt_alv_report ASSIGNING <lt_alv_report> GROUP BY <lt_alv_report>-inv_number.
  829.         LOOP AT GROUP <lt_alv_report> INTO lt_member.
  830.           APPEND lt_member TO lt_alv_report_temp.
  831.         ENDLOOP.
  832.       ENDLOOP.
  833.     ENDIF.
  834.     IF lt_alv_report_temp IS NOT INITIAL.
  835.       CLEAR lt_alv_report.
  836.       APPEND LINES OF lt_alv_report_temp TO lt_alv_report.
  837.       CLEAR lt_alv_report_temp.
  838.     ENDIF.
  839.  
  840.     " В разрезе местоположений
  841.     IF mv_plase IS NOT INITIAL.
  842.       LOOP AT lt_alv_report ASSIGNING <lt_alv_report> GROUP BY <lt_alv_report>-place.
  843.         LOOP AT GROUP <lt_alv_report> INTO lt_member.
  844.           APPEND lt_member TO lt_alv_report_temp.
  845.         ENDLOOP.
  846.       ENDLOOP.
  847.     ENDIF.
  848.     IF lt_alv_report_temp IS NOT INITIAL.
  849.       CLEAR lt_alv_report.
  850.       APPEND LINES OF lt_alv_report_temp TO lt_alv_report.
  851.       CLEAR lt_alv_report_temp.
  852.     ENDIF.
  853.  
  854.     et_alv_report = lt_alv_report.
  855.  
  856.     " Без группировки
  857. *    IF      mv_group  IS INITIAL
  858. *        AND mv_mol    IS INITIAL
  859. *        AND mv_plase  IS INITIAL.
  860. *      LOOP AT lt_alv_report ASSIGNING <lt_alv_report>.
  861. *        APPEND <lt_alv_report> TO gt_alv_report.
  862. *      ENDLOOP.
  863. *    ENDIF.
  864.  
  865.  
  866.   ENDMETHOD.
  867.  
  868.   METHOD add_param_to_range.
  869.     DATA: ls_new_line TYPE REF TO data.
  870.     DATA: lv_sign TYPE char1.
  871.     DATA: lv_option TYPE char2.
  872.     DATA: iv_sign_opt_loc TYPE char3.
  873.     FIELD-SYMBOLS: <lt_itab> TYPE ANY TABLE.
  874.  
  875.     iv_sign_opt_loc = iv_sign_opt.
  876.  
  877.     IF strlen( iv_sign_opt_loc ) < 2.
  878.       iv_sign_opt_loc = 'IEQ'.
  879.     ENDIF.
  880.     lv_sign   = iv_sign_opt_loc(1).
  881.     lv_option = iv_sign_opt_loc+1.
  882.  
  883.     ASSIGN ('CT_RANGE[]') TO <lt_itab>.
  884.     IF sy-subrc = 0.
  885.       CREATE DATA ls_new_line LIKE LINE OF <lt_itab>.
  886.       ASSIGN ls_new_line->* TO FIELD-SYMBOL(<ls_line>).
  887.       IF sy-subrc = 0.
  888.         ASSIGN COMPONENT 'SIGN'   OF STRUCTURE <ls_line> TO FIELD-SYMBOL(<lv_sign>).    <lv_sign>   = lv_sign.
  889.         ASSIGN COMPONENT 'OPTION' OF STRUCTURE <ls_line> TO FIELD-SYMBOL(<lv_option>).  <lv_option> = lv_option.
  890.         ASSIGN COMPONENT 'LOW'    OF STRUCTURE <ls_line> TO FIELD-SYMBOL(<lv_low>).     <lv_low>    = iv_value.
  891.         ASSIGN COMPONENT 'HIGH'   OF STRUCTURE <ls_line> TO FIELD-SYMBOL(<lv_high>).    <lv_high>   = space.
  892.         INSERT <ls_line> INTO TABLE <lt_itab>.
  893.       ENDIF.
  894.     ENDIF.
  895.   ENDMETHOD.
  896.  
  897.  
  898. ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement