(完整版)adobeform学习小结

(完整版)adobeform学习小结
(完整版)adobeform学习小结

目录

资产负债表 (3)

3.图片和文本 (25)

4.开发过程 (29)

BC480_EN_COL62.FV-VART-A4.pdf pdf_based print forms

安装文档

1.ZADOBE_DEMO1

2.资产负债表

3.一些图片,文本的设置.

*&---------------------------------------------------------------------*

*& Report ZADOBE_DEMO1

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

zadobe demo1

REPORT zcall_adobe_form.

DATA: fm_name TYPE rs38l_fnam, " CHAR 30 0 Name of Function Module

fp_docparams TYPE sfpdocparams, " Structure SFPDOCPARAMS Short Descr iption Form Parameters for Form Processing

fp_outputparams TYPE sfpoutputparams. " Structure SFPOUTPUTPARAMS Short Description Form Processing Output Parameter

PARAMETERS:

p_vbeln TYPE vbeln_va,

p_show as CHECKBOX DEFAULT 'X'.

START-OF-SELECTION.

* Sets the output parameters and opens the spool job

CALL FUNCTION 'FP_JOB_OPEN' "& Form Processing: Ca

ll Form

CHANGING

ie_outputparams = fp_outputparams

EXCEPTIONS

cancel = 1

usage_error = 2

system_error = 3

internal_error = 4

OTHERS = 5.

IF sy-subrc <> 0.

*

ENDIF.

*&---- Get the name of the generated function module

CALL FUNCTION 'FP_FUNCTION_MODULE_NAME' "& Form Processing Generation

EXPORTING

i_name = 'ZADOBE_DEMO2'

IMPORTING

e_funcname = fm_name.

IF sy-subrc <> 0.

*

ENDIF.

*-- Fetch the Data and store it in the Internal Table

*SELECT * FROM mari INTO TABLE it_mari UP TO 15 ROWS.

* Language and country setting (here US as an example)

fp_docparams-langu = 'E'.

fp_docparams-country = 'US'.

*&--- Call the generated function module

CALL FUNCTION fm_name

EXPORTING

/1BCDWB/DOCPARAMS = fp_docparams

IV_VBELN = p_vbeln

IV_FLAG = p_show

IV_LOGO_NAME = 'ZHUAYI'

* IMPORTING

* /1BCDWB/FORMOUTPUT =

EXCEPTIONS

USAGE_ERROR = 1

SYSTEM_ERROR = 2

INTERNAL_ERROR = 3

OTHERS = 4

.

IF SY-SUBRC <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*&---- Close the spool job

CALL FUNCTION 'FP_JOB_CLOSE'

* IMPORTING

* E_RESULT =

EXCEPTIONS

usage_error = 1

system_error = 2

internal_error = 3

OTHERS = 4.

IF sy-subrc <> 0.

*

ENDIF.

资产负债表*&---------------------------------------------------------------------*

*& Report RFIDCN_BSAIS Financial Statement (China)

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT zrfidcn_bsais_ywy1 MESSAGE-ID idcn.

INCLUDE rfidcn_bsais_top.

INCLUDE bilai00_1.

INCLUDE rfidcn_bsais_sel.

INCLUDE rfidcn_bsais_e01.

*INCLUDE rfidcnsau_fsc_f01."Notes 1672660

INCLUDE rfidcn_bsais_fsc_f01."Notes 1672660

INCLUDE rfidcnsau_fsc_f02. "1641277 INCLUDE rfidcnsau_fsc_lcl. "1641277 *怎样连续打印销售单

START-OF-SELECTION.

PERFORM fsc_start_job USING o_direct o_prndev.

* DO 2 TIMES.

* CASE sy-index.

** Balance Sheet

* WHEN 1.

* g_btyp = gc_balance_sheet.

* ASSIGN gs_formhdr_b TO .

* ASSIGN gt_formlines_b TO .

** Income Statement

* WHEN 2.

g_btyp = gc_income_statement.

ASSIGN gs_formhdr_i TO .

ASSIGN gt_formlines_i TO .

* ENDCASE.

CHECK p_btyp EQ g_btyp OR p_btyp IS INITIAL.

PERFORM loc_bila_par_prepare USING g_btyp.

* submit RFBILA00

PERFORM loc_submit_bila CHANGING gt_fscbilaintf .

IF lcl_bsais=>contain_fareas( versn ) IS NOT INITIAL. "1641277 * submit local procedures to retrieve balances for functional area no des

PERFORM loc_get_balances USING versn g_btyp "1641277

CHANGING gt_fscbilaintf "1641277 . "1641277 ENDIF. "1641277 * Prepare interface header

PERFORM fsc_form_header_prepare USING gs_fscdef

CHANGING .

PERFORM loc_form_header_prepare CHANGING .

* Prepare interface lines

PERFORM fsc_form_assembly USING gs_fscdef gt_fscbilaintf bilaskal

CHANGING .

CASE g_btyp.

WHEN gc_balance_sheet.

DELETE WHERE linesec = gc_section_is.

WHEN gc_income_statement.

DELETE WHERE linesec <> gc_section_is.

ENDCASE.

* Call Adobe

PERFORM fsc_print USING o_direct g_form_name langu.

* ENDDO.

PERFORM fsc_close_job USING o_direct.

* Display in ALV

IF p_btyp IS INITIAL.

g_btyp = gc_balance_sheet.

ENDIF.

* Button NEXT switches between BS and IS ALV

* DO.

* CASE g_btyp.

* WHEN gc_balance_sheet.

* ASSIGN gs_formhdr_b TO .

* ASSIGN gt_formlines_b TO .

* Income Statement

* WHEN gc_income_statement.

ASSIGN gs_formhdr_i TO .

ASSIGN gt_formlines_i TO .

* ENDCASE.

PERFORM loc_top_document_prepare USING

CHANGING go_top_document.

PERFORM fsc_alv USING o_direct bilaskal

gt_catalog g_ucomm g_btyp go_top_document.

IF g_ucomm NE 'NEXT'.

EXIT.

ENDIF.

CHECK p_btyp IS INITIAL.

IF g_btyp = gc_balance_sheet.

g_btyp = gc_income_statement.

ELSE.

g_btyp = gc_balance_sheet.

ENDIF.

* ENDDO.

*&---------------------------------------------------------------------*

*& Form loc_BILA_PAR_PREPARE

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM loc_bila_par_prepare USING p_btyp TYPE idcn_bilatyp.

REFRESH: b_monate, v_monate.

CASE p_btyp.

* WHEN ' ' OR gc_balance_sheet."Notes 1672660

WHEN gc_balance_sheet."Notes 1672660

b_monate-sign = 'I'.

b_monate-option = 'BT'.

b_monate-low = '01'.

b_monate-high = p_monate.

APPEND b_monate.

bilvjahr = bilbjahr - 1.

v_monate-sign = 'I'.

v_monate-option = 'BT'.

v_monate-low = '01'.

v_monate-high = '16'.

APPEND v_monate.

* bilabtyp = '1'."Notes 1672660

IF p_biltyp = 'X'."Notes 1672660

bilabtyp = '3'."Notes 1672660

ELSE."Notes 1672660

bilabtyp = '1'."Notes 1672660

ENDIF."Notes 1672660

WHEN gc_income_statement.

b_monate-sign = 'I'.

b_monate-option = 'BT'.

* b_monate-low = '01'."Notes 1672660

IF p_biltyp = 'X'."Notes 1672660

b_monate-low = p_monate."Notes 1672660

ELSE."Notes 1672660

b_monate-low = '01'."Notes 1672660

ENDIF."Notes 1672660

b_monate-high = p_monate.

APPEND b_monate.

* bilvjahr = bilbjahr - 1."Notes 1672660

IF p_biltyp = 'X'."Notes 1672660

bilvjahr = bilbjahr."Notes 1672660

ELSE."Notes 1672660

bilvjahr = bilbjahr - 1."Notes 1672660

ENDIF."Notes 1672660

v_monate-sign = 'I'.

v_monate-option = 'BT'.

v_monate-low = '01'."Notes 1672660

v_monate-high = p_monate.

APPEND v_monate.

* bilabtyp = '1'."Notes 1672660

IF p_biltyp = 'X'."Notes 1672660

bilabtyp = '3'."Notes 1672660

ELSE."Notes 1672660

bilabtyp = '1'."Notes 1672660

ENDIF."Notes 1672660

ENDCASE.

bilalist = 'X'.

bilatree = ''.

bilagrid = ''.

ENDFORM. " loc_BILA_PAR_PREPARE

*&---------------------------------------------------------------------*

*& Form loc_FORM_HEADER_PREPARE

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM loc_form_header_prepare CHANGING

ps_formhdr TYPE idcn_formhdr.

CONSTANTS:

lc_separator(1) TYPE c VALUE ','.

DATA:

l_poper LIKE t009b-poper,

l_periv LIKE t001-periv,

l_ex_rate TYPE ukurs_d,

l_ex_rate_s(15) TYPE c,

l_cc_currency TYPE waers,

ls_x001 LIKE x001,

ls_t001 LIKE t001,

l_bilaskal LIKE bilaskal.

SELECT SINGLE * FROM t001 INTO ls_t001 "#EC WARN OK

WHERE bukrs EQ sd_bukrs-low.

IF sy-subrc NE 0.

MESSAGE i001 WITH sd_bukrs-low.

LEAVE PROGRAM.

ENDIF.

*------------------------------------------------------------------* FSC local header data

*------------------------------------------------------------------* Year, Month, Last Day in the Month

l_periv = ls_t001-periv.

ps_formhdr-byear = bilbjahr.

ps_formhdr-bmonth = p_monate.

IF ps_formhdr-bmonth GT 12. "1641277 ps_formhdr-bmonth = 12. "1641277 ENDIF. "1641277

IF sy-subrc EQ 0.

l_poper = p_monate.

CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'

EXPORTING

i_gjahr = bilbjahr

i_periv = l_periv

i_poper = l_poper

IMPORTING

e_date = g_lastday

EXCEPTIONS

input_false = 1

t009_notfound = 2

t009b_notfound = 3

OTHERS = 4.

IF sy-subrc = 0.

ps_formhdr-bday = g_lastday+6(2).

ELSE.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

LEAVE PROGRAM.

ENDIF.

ENDIF.

* Typ (BS, IS)

ps_formhdr-bilatype = g_btyp.

* Header period strings for Amount and Comparised Amount WRITE g_lastday TO ps_formhdr-bperiod_d.

CONCATENATE text-001 ps_formhdr-bperiod_d

INTO ps_formhdr-bperiod_d

SEPARATED BY space.

CASE g_btyp.

WHEN gc_balance_sheet.

ps_formhdr-title = text-003.

ps_formhdr-btxtcol = text-004.

ps_formhdr-vtxtcol = text-005.

WHEN gc_income_statement.

ps_formhdr-title = text-006.

ps_formhdr-btxtcol = text-007.

IF p_biltyp = 'X'."Notes 1672660

ps_formhdr-vtxtcol = text-025."Notes 1672660

ELSE."Notes 1672660

ps_formhdr-vtxtcol = text-008.

ENDIF."Notes 1672660

ENDCASE.

* CONCATENATE ps_formhdr-title lc_separator

* INTO ps_formhdr-title.

* CONCATENATE ps_formhdr-title

* ps_formhdr-bperiod_d

* INTO ps_formhdr-title SEPARATED BY space.

* Currency

ps_formhdr-currency = ls_t001-waers.

IF sd_curtp IS INITIAL OR sd_curtp = '10'.

l_cc_currency = ls_t001-waers.

ELSE.

CLEAR: ls_x001.

CALL FUNCTION 'FI_CURRENCY_INFORMATION'

EXPORTING

i_bukrs = ls_t001-bukrs

IMPORTING

e_x001 = ls_x001

EXCEPTIONS

currency_2_not_defined = 1

currency_3_not_defined = 2

OTHERS = 3.

IF sd_curtp = ls_x001-curt2.

l_cc_currency = ls_x001-hwae2.

ENDIF.

IF sd_curtp = ls_x001-curt3.

l_cc_currency = ls_x001-hwae3.

ENDIF.

ENDIF.

ps_formhdr-currency = l_cc_currency.

IF bilawaer IS NOT INITIAL AND bilawaer NE l_cc_currency. ps_formhdr-currency = bilawaer.

CALL FUNCTION 'READ_EXCHANGE_RATE'

EXPORTING

date = bilastid

foreign_currency = bilawaer

local_currency = l_cc_currency

type_of_rate = kurst

IMPORTING

exchange_rate = l_ex_rate

EXCEPTIONS

no_rate_found = 1

no_factors_found = 2

no_spread_found = 3

derived_2_times = 4

overflow = 5

zero_rate = 6

OTHERS = 7.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CONCATENATE ps_formhdr-title lc_separator INTO ps_formhdr-title.

CONCATENATE ps_formhdr-title text-002 bilawaer

INTO ps_formhdr-title SEPARATED BY space.

CONCATENATE ps_formhdr-title lc_separator INTO ps_formhdr-title.

WRITE l_ex_rate TO l_ex_rate_s DECIMALS 2 LEFT-JUSTIFIED.

CONCATENATE ps_formhdr-title text-009 l_ex_rate_s

INTO ps_formhdr-title SEPARATED BY space.

ENDIF.

* Scaling

ps_formhdr-bilaskal = bilaskal.

IF ps_formhdr-bilaskal(1) NE '0'.

l_bilaskal = ps_formhdr-bilaskal.

l_bilaskal+2(1) = '0'.

SELECT SINGLE ddtext FROM dd07t "#EC WARN OK

INTO ps_formhdr-bilaskaltxt

WHERE domname EQ 'BILA_SKAL' AND

ddlanguage EQ sy-langu AND

as4local EQ 'A' AND

as4vers EQ '0000' AND

domvalue_l EQ l_bilaskal.

IF sy-subrc EQ 0.

CONCATENATE ps_formhdr-bilaskaltxt ps_formhdr-currency INTO ps_formhdr-bilaskaltxt SEPARATED BY space.

ENDIF.

ELSE.

ps_formhdr-bilaskaltxt = ps_formhdr-currency.

ENDIF.

* Business area, Profit Center restrictions

CLEAR ps_formhdr-gsber.

IF lines( sd_gsb_s ) EQ 0.

ELSEIF lines( sd_gsb_s ) EQ 1 AND

sd_gsb_s-low IS NOT INITIAL AND

sd_gsb_s-high IS INITIAL AND

sd_gsb_s-option EQ 'EQ' AND

sd_gsb_s-sign EQ 'I'.

ps_formhdr-gsber = sd_gsb_s-low.

ELSE.

ps_formhdr-gsber = '#'.

ENDIF.

CLEAR ps_formhdr-prctr.

IF lines( sd_prc ) EQ 0.

ELSEIF lines( sd_prc ) EQ 1 AND

sd_prc-low IS NOT INITIAL AND

sd_prc-high IS INITIAL AND

sd_prc-option EQ 'EQ' AND

sd_prc-sign EQ 'I'.

ps_formhdr-prctr = sd_prc-low.

ELSE.

ps_formhdr-prctr = '#'.

ENDIF.

* System data

ps_formhdr-cdate = sy-datum.

ps_formhdr-ctime = sy-uzeit.

ps_formhdr-cuser = sy-uname.

ENDFORM. " loc_FORM_HEADER_PREPARE

*&---------------------------------------------------------------------*

*& Form CHECK_BTYP

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*--------------------------------------------------------------------

--*

FORM check_btyp .

IF p_btyp NE gc_balance_sheet AND

p_btyp NE gc_income_statement AND

p_btyp NE space.

MESSAGE e260.

ENDIF.

ENDFORM. " CHECK_BTYP

*&---------------------------------------------------------------------*

*& Form LOC_SUBMIT_BILA

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM loc_submit_bila CHANGING

pt_fscbilaintf TYPE idcn_t_fscbilaintf

ps_formhdr TYPE idcn_formhdr.

* RFBILA00 returns calculated data back in memory if

* -activated SWITCH FILOCCN_SFWS_SC_01 and

* -enhancement implementation IDCN_BILA is activ

* for enhancement spot FI_BILA_PRINT

TYPE-POOLS: rsds.

DATA: l_repid TYPE sy-repid VALUE 'RFBILA00',

trange TYPE rsds_trange,

trange_line LIKE LINE OF trange,

trange_frange_t_line LIKE LINE OF trange_line-frange_t,

trange_frange_t_selopt_t_line LIKE LINE OF trange_frange_t_li ne-selopt_t,

texpr TYPE rsds_texpr.

CALL FUNCTION 'RS_REFRESH_FROM_DYNAMICAL_SEL'

EXPORTING

curr_report = l_repid

mode_write_or_move = 'M'

IMPORTING

p_trange = trange

EXCEPTIONS

not_found = 1

wrong_type = 2

OTHERS = 3.

* IF sy-subrc EQ 0 AND sd_prc[] IS NOT INITIAL.

IF sd_prc[] IS NOT INITIAL.

trange_line-tablename = 'FAGLFREESEL'.

trange_frange_t_line-fieldname = 'PRCTR'.

LOOP AT sd_prc.

trange_frange_t_selopt_t_line-sign = sd_prc-sign.

trange_frange_t_selopt_t_line-option = sd_prc-option.

trange_frange_t_selopt_t_line-low = sd_prc-low.

trange_frange_t_selopt_t_line-high = sd_prc-high.

APPEND trange_frange_t_selopt_t_line TO trange_frange_t_line-se lopt_t.

ENDLOOP.

APPEND trange_frange_t_line TO trange_line-frange_t.

APPEND trange_line TO trange.

ELSE.

* CLEAR sd_prc[].

CLEAR trange_frange_t_line-selopt_t[].

ENDIF.

CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_EX'

EXPORTING

field_ranges = trange

IMPORTING

expressions = texpr.

SUBMIT rfbila00 "#EC SUB_P AR

WITH bilalist EQ bilalist "#EC SUB_SEL OP

WITH bilatree EQ bilatree

WITH bilagrid EQ bilagrid

WITH x_adobe EQ 'X'

WITH sd_bukrs IN sd_bukrs

WITH sd_curtp EQ sd_curtp

WITH sd_saknr IN sd_saknr

WITH sd_rldnr IN sd_rldnr

WITH sd_gsb_s IN sd_gsb_s

WITH bilavers EQ gs_fscdef-versn

WITH bilbjahr EQ bilbjahr

WITH b-monate IN b_monate

WITH bilvjahr EQ bilvjahr

WITH v-monate IN v_monate

WITH bilabtyp EQ bilabtyp

WITH bilanull EQ 'X'

WITH repwaers EQ bilawaer

WITH stichtag EQ bilastid

WITH kurs_typ EQ kurst

WITH FREE SELECTIONS texpr

AND RETURN.

PERFORM fsc_convert_structures CHANGING pt_fscbilaintf ps_formhdr.

ENDFORM. " LOC_SUBMIT_BILA

*&---------------------------------------------------------------------*

*& Form CHECK_CURTP

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM check_curtp .

DATA: x001 TYPE x001.

CHECK sd_curtp IS NOT INITIAL.

CALL FUNCTION 'FI_CURRENCY_INFORMATION'

EXPORTING

i_bukrs = sd_bukrs-low

IMPORTING

e_x001 = x001.

IF x001-curt2 <> sd_curtp AND x001-curt3 <> sd_curtp.

MESSAGE e822(fr) WITH sd_curtp sd_bukrs-low.

ENDIF.

ENDFORM. " CHECK_CURTP

*&---------------------------------------------------------------------*

*& Form CHECK_LANGU

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM check_langu .

DATA: ls_idcn_fsclinest TYPE idcn_fsclinest. "#EC NEED ED

CHECK versn IS NOT INITIAL AND

fsckey IS NOT INITIAL.

SELECT * FROM idcn_fsclinest

INTO ls_idcn_fsclinest

UP TO 1 ROWS

WHERE versn EQ versn

AND fsckey EQ fsckey

AND langu EQ langu.

ENDSELECT.

IF sy-subrc NE 0.

MESSAGE e261(idcnsau) WITH fsckey versn langu.

ENDIF.

ENDFORM. " CHECK_LANGU

*&---------------------------------------------------------------------*

*& Form SET_STATUS

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM set_status .

DATA: lt_exclude TYPE TABLE OF sy-ucomm WITH HEADER LINE.

CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'

EXPORTING

p_status = 'S1000'

p_program = 'RFIDCN_BSAIS'

TABLES

p_exclude = lt_exclude.

ENDFORM. " SET_STATUS

*&---------------------------------------------------------------------*

*& Form CHECK_PRCTR

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM check_prctr.

DATA: l_pcrch LIKE tka00-pcrch,

l_kokrs LIKE tka02-kokrs,

l_scenario LIKE fagl_ledger_scen-scenario,

lx_fin_gsber(1) TYPE c,

lx_fin_pca(1) TYPE c,

l_fagl_split_field TYPE fagl_split_field,

l_splitmethd LIKE fagl_activec-splitmethd.

CHECK sd_prc[] IS NOT INITIAL.

IF sd_prc[] IS NOT INITIAL.

* 2. Profit center & New G/L active

IF g_glflex_active IS INITIAL.

MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* 5. Profit center & Old G/L inactive

IF sd_prc[] IS NOT INITIAL.

CLEAR l_kokrs.

SELECT kokrs FROM tka02 INTO l_kokrs "#EC NEED ED

WHERE bukrs IN sd_bukrs AND

gsber IN sd_gsb_s.

ENDSELECT.

IF sy-subrc EQ 0 AND l_kokrs IS NOT INITIAL.

SELECT pcrch FROM tka00 INTO l_pcrch "#EC NEED ED

WHERE kokrs EQ l_kokrs AND

gjahr LE bilbjahr.

ENDSELECT.

IF sy-subrc EQ 0 AND l_pcrch IS NOT INITIAL.

MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

ENDIF.

* 3. Scenarios for Leading 0L Ledger

IF sd_prc[] IS NOT INITIAL OR

sd_gsb_s[] IS NOT INITIAL.

CLEAR: lx_fin_gsber, lx_fin_pca.

SELECT scenario FROM fagl_ledger_scen INTO l_scenario

WHERE rldnr IN sd_rldnr.

IF l_scenario EQ 'FIN_GSBER'.

lx_fin_gsber = 'X'.

ENDIF.

IF l_scenario EQ 'FIN_PCA'.

lx_fin_pca = 'X'.

ENDIF.

ENDSELECT.

IF sd_gsb_s[] IS NOT INITIAL AND lx_fin_gsber IS INITIAL OR

sd_prc[] IS NOT INITIAL AND lx_fin_pca IS INITIAL.

MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* 4. Document splitting

IF sd_prc[] IS NOT INITIAL OR

sd_gsb_s[] IS NOT INITIAL.

SELECT splitmethd FROM fagl_activec

INTO l_splitmethd

UP TO 1 ROWS

WHERE active EQ 'X'.

ENDSELECT.

IF sy-subrc NE 0 OR

l_splitmethd IS INITIAL.

MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* 5. Check document splitting characteristic for GL Accounting PERFORM check_doc_split_charac USING 'PRCTR' 'X' 'PPRCTR' 'X'.

PERFORM check_doc_split_charac USING 'SEGMENT' 'X' 'PSEGMENT' 'X'.

* 5. Document splitting characteristics

* IF sd_prc[] IS NOT INITIAL OR

* sd_gsb_s[] IS NOT INITIAL.

* SELECT SINGLE * FROM fagl_split_field INTO l_fagl_split_field

* WHERE field EQ 'PRCTR'.

* IF sy-subrc NE 0 OR

** l_fagl_split_field-prtfield IS INITIAL OR

** l_fagl_split_field-b_balance IS INITIAL OR

** l_fagl_split_field-oim_balance IS INITIAL OR

* l_fagl_split_field-b_mandatory IS INITIAL.

* MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

* EXIT.

* ENDIF.

* SELECT SINGLE * FROM fagl_split_field INTO l_fagl_split_field

* WHERE field EQ 'SEGMENT'.

* IF sy-subrc NE 0 OR

** l_fagl_split_field-prtfield IS INITIAL OR

** l_fagl_split_field-b_balance IS INITIAL OR

** l_fagl_split_field-oim_balance IS INITIAL OR

* l_fagl_split_field-b_mandatory IS INITIAL.

* MESSAGE i264(idcnsau) DISPLAY LIKE 'W'.

* EXIT.

* ENDIF.

* ENDIF.

ENDFORM. " CHECK_PRCTR

*&---------------------------------------------------------------------*

*& Form CHECK_GSB

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM check_gsb .

DATA: l_pcrch LIKE tka00-pcrch,

l_kokrs LIKE tka02-kokrs,

l_scenario LIKE fagl_ledger_scen-scenario,

lx_fin_gsber(1) TYPE c,

lx_fin_pca(1) TYPE c,

l_fagl_split_field TYPE fagl_split_field,

l_splitmethd LIKE fagl_activec-splitmethd.

CHECK sd_gsb_s[] IS NOT INITIAL.

* 1. Business Area & active per CoCode

IF sd_gsb_s[] IS NOT INITIAL AND

gs_t001-xgsbe IS INITIAL.

MESSAGE i265(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

IF sd_prc[] IS NOT INITIAL.

* 2. Profit center & New G/L active

IF g_glflex_active IS INITIAL.

MESSAGE i265(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* 5. Profit center & Old G/L inactive

IF sd_prc[] IS NOT INITIAL.

CLEAR l_kokrs.

SELECT kokrs FROM tka02 INTO l_kokrs "#EC NEED ED

WHERE bukrs IN sd_bukrs AND

gsber IN sd_gsb_s.

ENDSELECT.

IF sy-subrc EQ 0 AND l_kokrs IS NOT INITIAL.

SELECT pcrch FROM tka00 INTO l_pcrch "#EC NEED ED

WHERE kokrs EQ l_kokrs AND

gjahr LE bilbjahr.

ENDSELECT.

IF sy-subrc EQ 0 AND l_pcrch IS NOT INITIAL.

MESSAGE i265(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

ENDIF.

* 3. Scenarios for Leading 0L Ledger

IF sd_prc[] IS NOT INITIAL OR

sd_gsb_s[] IS NOT INITIAL.

CLEAR: lx_fin_gsber, lx_fin_pca.

SELECT scenario FROM fagl_ledger_scen INTO l_scenario

WHERE rldnr IN sd_rldnr.

IF l_scenario EQ 'FIN_GSBER'.

lx_fin_gsber = 'X'.

ENDIF.

* IF l_scenario EQ 'FIN_PCA'.

* lx_fin_pca = 'X'.

* ENDIF.

ENDSELECT.

IF sd_gsb_s[] IS NOT INITIAL AND lx_fin_gsber IS INITIAL.

* sd_prc[] IS NOT INITIAL AND lx_fin_pca IS INITIAL.

MESSAGE i265(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* 4. Document splitting

IF sd_prc[] IS NOT INITIAL OR

sd_gsb_s[] IS NOT INITIAL.

SELECT splitmethd FROM fagl_activec

INTO l_splitmethd

UP TO 1 ROWS

WHERE active EQ 'X'.

ENDSELECT.

IF sy-subrc NE 0 OR

l_splitmethd IS INITIAL.

MESSAGE i265(idcnsau) DISPLAY LIKE 'W'.

EXIT.

ENDIF.

ENDIF.

* Check document splitting characteristic for GL Accounting PERFORM check_doc_split_charac USING 'GSBER' 'X' 'PARGB' 'X'.

ENDFORM. " CHECK_GSB

*&---------------------------------------------------------------------*

*& Form INIT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM init .

*** Check Switch - EhP6 and EhP5

IF cl_idficn_switch_check=>filoccn_sfws_sc_02( ) EQ abap_false.

* Business function FIN_LOC_CI_13 is not active

MESSAGE s258(idcn).

相关主题
相关文档
最新文档