Module Pool
Module Pool
* Nome programma
: Z1FI_FII049_UT_WIND_TELECOM
* Autore
: Antonio Petrone AE00405
* Data creazione
: <01.02.2010>
* RDM
: CC-M09-SAP-AA-0060
* Funzionalit del programma: WF CESPITI - ZENIT
*
* Descrizione di dettaglio : <descrizione ampliata>
*
* Autore modifica
: <nome> <cognome> <azienda>
* Data modifica
: <data modifica>
* Motivo intervento
: <descrizione>
**
************************************************************************
program z1aa_fie113_01 .
***
include z1aa_fie113_01_top.
***
include z1aa_fie113_01_for.
INCLUDE Z1AA_FIE113_01_MOD.
include z1aa_fie113_01_top.
*----------------------------------------------------------------------*
*
INCLUDE Z1AA_FIE113_01_TOP
*
*----------------------------------------------------------------------*
tables: ztaa_fie113_wf_t,
ztaa_fie113_wf_p,
ztaa_fie113_wf_c,
ztaa_fie113_wf_m,
ztaa_fie113_wf_n,
ztaa_fie113_wf_u,
ztaa_fie113_wf_v,
ztaa_fie113_wf_z,
ra01m,
t001,
tgsbt,
t087t,
cskt,
t006d,
t087s,
t087j,
icon,
t006,
t097t,
ztbcusto,
t087l,
anlz,
t087v,
t093c,
csks,
tgsb,
dd07t.
data: begin of tb_testata occurs 0.
include structure ztaa_fie113_wf_t.
data end of tb_testata.
option(2),
low type zujhr,
high type zujhr.
data end of va_zujhr.
* FUNCTION CODES FOR TABSTRIP 'STRIP_200'
constants: begin of c_strip_200,
tab1 like sy-ucomm value 'STRIP_200_FC1',
tab2 like sy-ucomm value 'STRIP_200_FC2',
end of c_strip_200.
* DATA FOR TABSTRIP 'STRIP_200'
controls: strip_200 type tabstrip.
data:
begin of g_strip_200,
subscreen
like sy-dynnr,
prog
like sy-repid value 'Z1AA_FIE113_01',
pressed_tab like sy-ucomm value c_strip_200-tab1,
end of g_strip_200.
data: va_gdlgrp like anla-gdlgrp.
*************************************************************
*----------------------------------------------------------------------*
*
CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_event_handler definition.
public section.
methods:
**Gestire nuovi pulsanti inseriti
handle_user_command for event user_command of cl_gui_alv_grid
importing e_ucomm,
**Aggiungere pulsanti alla toolbar
handle_toolbar for event toolbar of cl_gui_alv_grid
importing e_object e_interactive,
**Gestire hotspot click
handle_hotspot_click for event hotspot_click of cl_gui_alv_grid
importing e_row_id e_column_id es_row_no,
handle_hotspot_click_log for event hotspot_click of
cl_gui_alv_grid
importing e_row_id e_column_id es_row_no,
*Double-click control
handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row e_column es_row_no,
**Un modo ad oggetti per gestire controlli
handle_double_click_log
for event double_click of cl_gui_alv_grid
importing e_row e_column es_row_no,
**dei dati quando si edita un'alv grid
handle_data_changed
for event data_changed of cl_gui_alv_grid
importing er_data_changed e_onf4 e_onf4_before e_onf4_after."
*e_ucomm
private section.
data: error_in_data type c.
* Methods to modularize event handler method HANDLE_DATA_CHANGED:
methods: check_valore
importing
ps_good_valore type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
* Methods to modularize event handler method HANDLE_DATA_CHANGED:
methods: check_prozs
importing
ps_good_prozs type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
* Methods to modularize event handler method HANDLE_DATA_CHANGED:
methods: check_menge
importing
ps_good_menge type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
methods: check_zujhr
importing
ps_good_zujhr type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
methods: check_zujhr_a
importing
ps_good_zujhr_a type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
methods: check_zflag_ci
importing
ps_good_zflag_ci type lvc_s_modi
pr_data_changed type ref to cl_alv_changed_data_protocol.
endclass.
"lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_event_handler implementation .
method handle_user_command.
perform handle_user_command using e_ucomm.
endmethod.
"handle_user_command
method handle_toolbar.
perform handle_toolbar using e_object e_interactive .
endmethod .
"handle_toolbar
method handle_hotspot_click.
perform hotspot_click using e_row_id e_column_id es_row_no.
endmethod .
"handle_hotspot_click
method handle_hotspot_click_log.
perform hotspot_click_log using e_row_id e_column_id es_row_no.
endmethod.
method handle_double_click.
perform handle_double_click using e_row e_column es_row_no.
endmethod .
"handle_double_click
method handle_double_click_log.
perform handle_double_click_log using e_row e_column es_row_no.
endmethod .
"handle_double_click
*
*
*
*
method handle_data_changed.
perform handle_data_changed using er_data_changed
e_onf4
e_onf4_before
e_onf4_after.
data: ls_good type lvc_s_modi.
endcase.
endloop.
if error_in_data eq 'X'.
call method er_data_changed->display_protocol.
endif.
endmethod .
"handle_DATA_CHANGED
method check_valore.
data: l_valore type btrab,
l_prozs type prozs,
l_menge type menge_d,
ls_good_valore type lvc_s_modi.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_valore-row_id
i_fieldname = ps_good_valore-fieldname
importing e_value
= l_valore.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_valore-row_id
i_fieldname = 'PROZS'
importing e_value
= l_prozs.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_valore-row_id
i_fieldname = 'MENGE'
importing e_value
= l_menge.
if not l_prozs is initial and
not l_valore is initial.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '027' i_msgty = 'E'
i_msgv1 = text-m03
"Flugzeugtyp
i_msgv2 = l_valore
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_valore-fieldname
i_row_id = ps_good_valore-row_id.
error_in_data = 'X'.
exit.
endif.
if not l_prozs is initial and
not l_menge is initial.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '027' i_msgty = 'E'
i_msgv1 = text-m03
"Flugzeugtyp
i_msgv2 = l_valore
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_valore-fieldname
i_row_id = ps_good_valore-row_id.
error_in_data = 'X'.
exit.
endif.
if not l_valore is initial and
not l_menge is initial.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '027' i_msgty = 'E'
i_msgv1 = text-m03
"Flugzeugtyp
i_msgv2 = l_valore
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_valore-fieldname
i_row_id = ps_good_valore-row_id.
error_in_data = 'X'.
exit.
endif.
if l_prozs is initial and
l_valore is initial and
l_menge is initial.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '028' i_msgty = 'E'
i_msgv1 = text-m03
"Flugzeugtyp
i_msgv2 = l_valore
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_valore-fieldname
i_row_id = ps_good_valore-row_id.
exit.
endif.
call method grid->refresh_table_display.
endmethod.
" valore
method check_prozs.
data: l_valore type btrab,
l_prozs type prozs,
l_menge type menge_d,
ls_good_prozs type lvc_s_modi.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_prozs-row_id
i_fieldname = ps_good_prozs-fieldname
importing e_value
= l_prozs.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_prozs-row_id
i_fieldname = 'VALORE'
importing e_value
= l_valore.
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_prozs-fieldname
i_row_id = ps_good_prozs-row_id.
error_in_data = 'X'.
exit.
exit.
endif.
if l_prozs > 100.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '056' i_msgty = 'E'
i_msgv1 = text-m03
"Flugzeugtyp
i_msgv2 = l_prozs
i_msgv3 = text-m05
"exitstiert nicht
i_fieldname = ps_good_prozs-fieldname
i_row_id = ps_good_prozs-row_id.
error_in_data = 'X'.
exit.
endif.
call method grid->refresh_table_display.
endmethod.
" prozs
method check_menge.
data: l_valore type btrab,
l_prozs type prozs,
l_menge type menge_d,
l_buzei type buzei,
ls_good_menge type lvc_s_modi.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_menge-row_id
i_fieldname = ps_good_menge-fieldname
importing e_value
= l_menge.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_menge-row_id
i_fieldname = 'VALORE'
importing e_value
= l_valore.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_menge-row_id
i_fieldname = 'PROZS'
importing e_value
= l_prozs.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_menge-row_id
i_fieldname = 'BUZEI'
importing e_value
= l_buzei.
if not l_menge is initial.
clear va_pos.
read table tb_pos into va_pos with key buzei = l_buzei.
clear: wa_pos-valore, valore_medio.
call function 'ZUAA_FIE113_01'
exporting
bukrs
= tb_testata-bukrs
gjahr
= va_gjahr
ord41
= va_pos-ord41
ord42
= va_pos-ord42
ord43
= va_pos-ord43
ord44
= va_pos-ord44
gdlgrp
= va_pos-gdlgrp
meins
= va_pos-meins
importing
valore_medio = valore_medio
exceptions
ecc_quant
= 1
ecc_val_med = 2
others
= 3.
if sy-subrc <> 0.
case sy-subrc.
when 1.
message e034(zcaa_wf) with wa_pos-meins.
when 2.
message e033(zcaa_wf).
endcase.
endif.
va_pos-valore = l_menge * valore_medio.
modify tb_pos from va_pos index ps_good_menge-row_id.
call method grid->refresh_table_display.
endif.
endmethod.
" menge
method check_zujhr.
data: l_zujhr type zujhr,
l_zujhr_a type zujhr,
ls_good_valore type lvc_s_modi,
l_ord41 type ord41,
l_ord42 type ord42,
l_ord43 type ord43,
l_ord44 type ord44,
l_gdlgrp type gdlgrp,
l_buzei type buzei.
.
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'BUZEI'
importing e_value
= l_buzei.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'ORD41'
importing e_value
= l_ord41.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'ORD42'
importing e_value
= l_ord42.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'ORD43'
importing e_value
= l_ord43.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'ORD44'
importing e_value
= l_ord44.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr-row_id
i_fieldname = 'GDLGRP'
importing e_value
= l_gdlgrp.
refresh r_zujhr_pos.
clear r_zujhr_pos.
if not l_zujhr is initial.
if l_zujhr_a is initial.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'EQ'.
va_zujhr-low = l_zujhr.
append va_zujhr to r_zujhr_pos.
else.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'BT'.
va_zujhr-low = l_zujhr.
va_zujhr-high = l_zujhr_a.
append va_zujhr to r_zujhr_pos.
endif.
endif.
exporting
i_msgid = 'ZCAA_WF' i_msgno = '019' i_msgty = 'E'
i_msgv1 = l_zujhr
i_msgv2 = l_zujhr_a
i_fieldname = ps_good_zujhr-fieldname
i_row_id = ps_good_zujhr-row_id.
error_in_data = 'X'.
exit.
endif.
if not l_zujhr is initial.
loop at tb_pos into appo_pos where bukrs = tb_testata-bukrs
and buzei ne l_buzei
and ord41 = l_ord41
and ord42 = l_ord42
and ord43 = l_ord43
and ord44 = l_ord44
and gdlgrp = l_gdlgrp
and zujhr <= l_zujhr
and zujhr_a >= l_zujhr.
endloop.
if sy-subrc = 0.
call method pr_data_changed->add_protocol_entry
exporting
i_msgid = 'ZCAA_WF' i_msgno = '019' i_msgty = 'E'
i_msgv1 = l_zujhr
i_msgv2 = l_zujhr_a
i_fieldname = ps_good_zujhr-fieldname
i_row_id = ps_good_zujhr-row_id.
error_in_data = 'X'.
exit.
endif.
endif.
*
*
*
*
*
*
*
*
*
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
i_fieldname = 'BUZEI'
importing e_value
= l_buzei.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr_a-row_id
i_fieldname = 'ORD41'
importing e_value
= l_ord41.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr_a-row_id
i_fieldname = 'ORD42'
importing e_value
= l_ord42.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr_a-row_id
i_fieldname = 'ORD43'
importing e_value
= l_ord43.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr_a-row_id
i_fieldname = 'ORD44'
importing e_value
= l_ord44.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zujhr_a-row_id
i_fieldname = 'GDLGRP'
importing e_value
= l_gdlgrp.
refresh r_zujhr_pos.
clear r_zujhr_pos.
if not l_zujhr is initial.
if l_zujhr_a is initial.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'EQ'.
va_zujhr-low = l_zujhr.
append va_zujhr to r_zujhr_pos.
else.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'BT'.
va_zujhr-low = l_zujhr.
va_zujhr-high = l_zujhr_a.
append va_zujhr to r_zujhr_pos.
endif.
endif.
method check_zflag_ci.
data: va_ci,
ls_good_valore type lvc_s_modi.
call method pr_data_changed->get_cell_value
exporting i_row_id =
ps_good_zflag_ci-row_id
i_fieldname = ps_good_zflag_ci-fieldname
importing e_value
= va_ci.
if not va_ci is initial and va_flag_ci is initial.
va_flag_ci = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Includere "CI" Costi incrementativi'
textline1
= 'ATTENZIONE hai selezionato il FLAG "CI"'
textline2
= 'Saranno inclusi i costi incrementativi'
start_column = 25
start_row
= 6.
endif.
call method grid->refresh_table_display.
endmethod.
endclass.
data
"lcl_event_handler IMPLEMENTATION
Z1AA_FIE113_01_FOR
*----------------------------------------------------------------------*
*
INCLUDE Z1AA_FIE113_01_FOR
*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form controlli
*&---------------------------------------------------------------------*
form controlli_invio.
* refresh tb_pos_check.
* tb_pos_check[] = tb_pos[].
****** Controllo 61
if wa_pos-ord41 = '61' and va_flag_61 is initial.
clear ztaa_fie113_wf_v.
select single * from ztaa_fie113_wf_v where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and ord41 = wa_pos-ord41
and ord42 = wa_pos-ord42
and ord43 = wa_pos-ord43
and ord44 = wa_pos-ord44.
if ztaa_fie113_wf_v-meins = 'VAL'.
va_flag_61 = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Controllo per tipologia 61'
textline1
= 'ATTENZIONE Per Tipologia 61, accettarsi'
textline2 = 'di avere inserito il valore nel campo Quantita'''
start_column = 25
start_row
= 6.
endif.
endif.
*** popup CI
if not wa_pos-zflag_ci is initial and va_flag_ci is initial.
va_flag_ci = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Includere "CI" Costi incrementativi'
textline1
= 'ATTENZIONE hai selezionato il FLAG "CI"'
textline2
= 'Saranno inclusi i costi incrementativi'
start_column = 25
start_row
= 6.
endif.
* Controllo area territoriale / Unit Richeidente.
if not wa_pos-ord44 is initial.
if wa_pos-ord41 = '44'.
if tb_testata-zzrespbudg+2(2) = 'SR' or
tb_testata-zzrespbudg+2(2) = 'ER'.
if wa_pos-ord44+2(1) ne tb_testata-zzrespbudg+1(1).
message w080(zcaa_wf).
exit.
endif.
if wa_pos-ord44(2) ne '44'.
message w080(zcaa_wf).
exit.
endif.
endif.
endif.
endif.
* Controllo area territoriale / Unit Richeidente Campo destinatario
if not wa_pos-ord44_a is initial.
if wa_pos-ord41_a = '44'.
if wa_pos-ord44_a(2) ne '44'.
message w080(zcaa_wf).
exit.
endif.
endif.
endif.
if tb_testata-ztipo = 'DI'.
clear: tip, area, flag-imp, flag-ar_terr .
*controllo di esistenza su tabella custom
select single * from ztbcusto into ztbcusto
where societa = tb_testata-bukrs
and tipologia = wa_pos-ord41
and parte = wa_pos-ord42
and sezione = wa_pos-ord43.
if sy-subrc = 0.
*controllo sul campo IMPIANTO
if wa_pos-gdlgrp <> space.
move wa_pos-gdlgrp to tip.
*controllo ugualianza tra TIPOLOGIA ed IMPIANTO
if not tip = ztbcusto-tipologia.
flag-imp = 'X'.
endif.
endif.
*controllo sul campo AREA TERRITORIALE
if wa_pos-ord44 <> space.
move wa_pos-ord44 to area.
*controllo ugualianza tra TIPOLOGIA ed AREA TERRITORIALE
if not area = ztbcusto-tipologia.
flag-ar_terr = 'X'.
endif.
endif.
*impostazioni per messaggio d'errore
if flag-imp eq space
and
flag-ar_terr eq space .
else.
message w011(zcaa_wf).
exit.
endif.
else.
message w011(zcaa_wf).
exit.
endif.
* controllo IMPIANTO
if wa_pos-gdlgrp is initial.
message w020(zcaa_wf).
else.
clear va_gdlgrp.
concatenate wa_pos-ord41 tb_testata-zzrespbudg+1(3)
into va_gdlgrp.
if wa_pos-gdlgrp(5) ne va_gdlgrp(5).
message w042(zcaa_wf) with wa_pos-gdlgrp.
endif.
endif.
** controllo Esercizio di prima capitalizzazione
*
if wa_pos-zujhr is initial.
*
message w018(zcaa_wf).
*
exit.
*
endif.
*********************** TRASFERIMENTI
elseif tb_testata-ztipo = 'TR'.
clear: tip, area, flag-imp, flag-ar_terr .
*controllo di esistenza su tabella custom
select single * from ztbcusto into ztbcusto
where societa = tb_testata-bukrs
and tipologia = wa_pos-ord41
and parte = wa_pos-ord42
and sezione = wa_pos-ord43.
if sy-subrc = 0.
*controllo sul campo IMPIANTO
if wa_pos-gdlgrp <> space.
move wa_pos-gdlgrp to tip.
*controllo ugualianza tra TIPOLOGIA ed IMPIANTO
if wa_pos-kostl is initial.
message w032(zcaa_wf).
exit.
endif.
if wa_pos-kostl_a is initial.
message w032(zcaa_wf).
exit.
endif.
** Controllo Natura
*
IF wa_pos-eigkz_a IS INITIAL.
*
MESSAGE w017(zcaa_wf).
*
EXIT.
*
ELSEIF wa_pos-eigkz_a = 'T'.
** contollo N. collettivo cesp.
*
IF wa_pos-anlue_a IS INITIAL.
*
MESSAGE w016(zcaa_wf).
*
EXIT.
*
ENDIF.
*
ENDIF.
if wa_pos-prozs is initial and
wa_pos-valore is initial and
wa_pos-menge is initial.
message w030(zcaa_wf).
exit.
endif.
if not wa_pos-prozs is initial and
not wa_pos-valore is initial.
message w031(zcaa_wf).
exit.
endif.
if not wa_pos-prozs is initial and
not wa_pos-menge is initial.
message w031(zcaa_wf).
exit.
endif.
*
*
*
*
*
gdlgrp
= wa_pos-gdlgrp
meins
= wa_pos-meins
importing
valore_medio = valore_medio
exceptions
ecc_quant
= 1
ecc_val_med = 2
others
= 3.
if sy-subrc <> 0.
case sy-subrc.
when 1.
message e034(zcaa_wf) with wa_pos-meins.
when 2.
message e033(zcaa_wf).
endcase.
endif.
wa_pos-valore = wa_pos-menge * valore_medio.
wa_pos-zflag_t4x = 'X'.
* Controllo esistenza ZAPS
read table tb_pos with key zflag_t4x = space.
if sy-subrc = 0.
message w043(zcaa_wf).
endif.
else.
if wa_pos-zflag_t4x is initial.
read table tb_pos with key zflag_t4x = 'X'.
if sy-subrc = 0.
message w045(zcaa_wf).
endif.
endif.
endif.
**** Controllo 48.
clear ztaa_fie113_wf_u.
select single * from ztaa_fie113_wf_u where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and monat = tb_testata-bldat+4(2)
and ord41 = wa_pos-ord41
and ord42 = wa_pos-ord42
and ord43 = wa_pos-ord43
and ord44 = wa_pos-ord44
and gdlgrp = wa_pos-gdlgrp.
if sy-subrc = 0.
wa_pos-zflag_48 = 'X'.
read table tb_pos with key zflag_48 = space.
if sy-subrc = 0.
message w044(zcaa_wf).
endif.
if tb_testata-ztipo = 'DI'.
if tb_testata-zmotivo ne '1'.
message w048(zcaa_wf).
endif.
endif.
else.
read table tb_pos with key zflag_48 = 'X'.
if sy-subrc = 0.
message w046(zcaa_wf).
endif.
endif.
*** Controlli coerenza Esercizio Capitalizzazione
if not wa_pos-zujhr_a is initial.
if wa_pos-zujhr is initial.
message w052(zcaa_wf).
endif.
endif.
if not wa_pos-zujhr is initial.
if not wa_pos-zujhr_a is initial.
if wa_pos-zujhr_a < wa_pos-zujhr.
message w051(zcaa_wf) with wa_pos-zujhr_a wa_pos-zujhr.
endif.
endif.
endif.
*** Controllo campo PROZS %
if wa_pos-prozs > 100.
message w056(zcaa_wf).
endif.
endform.
" controlli
*----------------------------------------------------------------------*
*
INCLUDE TABLECONTROL_FORMS
*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form USER_OK_TC
*
*&---------------------------------------------------------------------*
form user_ok_tc using
p_tc_name type dynfnam
p_table_name
p_mark_name
changing p_ok
like sy-ucomm.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
data: l_ok
type sy-ucomm,
l_offset
type i.
*-END OF LOCAL DATA----------------------------------------------------*
* Table control specific operations
*
evaluate TC name and operations
search p_ok for p_tc_name.
if sy-subrc <> 0.
exit.
endif.
l_offset = strlen( p_tc_name ) + 1.
l_ok = p_ok+l_offset.
* execute general and TC specific operations
case l_ok.
when 'INSR'.
"insert row
perform fcode_insert_row using
p_tc_name
p_table_name.
clear p_ok.
when 'DELE'.
perform fcode_delete_row using
"delete row
p_tc_name
p_table_name
p_mark_name.
*
*
clear p_ok.
when 'P--' or
'P-' or
'P+' or
'P++'.
perform compute_scrolling_in_tc
*
*
*
*
*
*
*
*
*
*
*
*
"top of list
"previous page
"next page
"bottom of list
using p_tc_name
l_ok.
clear p_ok.
WHEN 'L--'.
"total left
PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
WHEN 'L-'.
"column left
PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
WHEN 'R+'.
"column right
PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
WHEN 'R++'.
"total right
PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
when 'MARK'.
"mark all filled lines
perform fcode_tc_mark_lines using p_tc_name
p_table_name
p_mark_name
.
clear p_ok.
when 'DMRK'.
"demark all filled lines
perform fcode_tc_demark_lines using p_tc_name
p_table_name
p_mark_name .
clear p_ok.
*
*
*
*
WHEN 'SASCEND'
OR
'SDESCEND'.
"sort column
PERFORM FCODE_SORT_TC USING P_TC_NAME
l_ok.
endcase.
endform.
" USER_OK_TC
*&---------------------------------------------------------------------*
*&
Form FCODE_INSERT_ROW
*
*&---------------------------------------------------------------------*
form fcode_insert_row
using
p_tc_name
type dynfnam
p_table_name
.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
data l_lines_name
like feld-name.
data l_selline
like sy-stepl.
data l_lastline
type i.
data l_line
type i.
data l_table_name
like feld-name.
field-symbols <tc>
type cxtab_control.
field-symbols <table>
type standard table.
field-symbols <lines>
type i.
*-END OF LOCAL DATA----------------------------------------------------*
assign (p_tc_name) to <tc>.
" FCODE_INSERT_ROW
*&---------------------------------------------------------------------*
*&
Form FCODE_DELETE_ROW
*
*&---------------------------------------------------------------------*
form fcode_delete_row
using
p_tc_name
type dynfnam
p_table_name
p_mark_name
.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
data l_table_name
like feld-name.
field-symbols <tc>
type cxtab_control.
field-symbols <table>
type standard table.
field-symbols <wa>.
field-symbols <mark_field>.
*-END OF LOCAL DATA----------------------------------------------------*
assign (p_tc_name) to <tc>.
* get the table, which belongs to the tc
concatenate p_table_name '[]' into l_table_name. "table body
assign (l_table_name) to <table>.
"not headerline
if <mark_field> = 'X'.
delete <table> index syst-tabix.
if sy-subrc = 0.
<tc>-lines = <tc>-lines - 1.
endif.
endif.
endloop.
endform.
" FCODE_DELETE_ROW
*&---------------------------------------------------------------------*
*&
Form COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_TC_NAME name of tablecontrol
*
-->P_OK
ok code
*----------------------------------------------------------------------*
form compute_scrolling_in_tc using
p_tc_name
p_ok.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
data l_tc_new_top_line
type i.
data l_tc_name
like feld-name.
data l_tc_lines_name
like feld-name.
data l_tc_field_name
like feld-name.
field-symbols <tc>
type cxtab_control.
field-symbols <lines>
type i.
*-END OF LOCAL DATA----------------------------------------------------*
assign (p_tc_name) to <tc>.
* get looplines of TableControl
concatenate 'G_' p_tc_name '_LINES' into l_tc_lines_name.
assign (l_tc_lines_name) to <lines>.
* is no line filled?
if <tc>-lines = 0.
*
yes, ...
l_tc_new_top_line = 1.
else.
*
no, ...
call function 'SCROLLING_IN_TABLE'
exporting
entry_act
= <tc>-top_line
entry_from
= 1
entry_to
= <tc>-lines
last_page_full
= 'X'
loops
= <lines>
ok_code
= p_ok
overlapping
= 'X'
importing
entry_new
= l_tc_new_top_line
exceptions
*
NO_ENTRY_OR_PAGE_ACT = 01
*
NO_ENTRY_TO
= 02
*
NO_OK_CODE_OR_PAGE_GO = 03
others
= 0.
*
*
*
endif.
* get actual tc and column
get cursor field l_tc_field_name
area l_tc_name.
if syst-subrc = 0.
if l_tc_name = p_tc_name.
*
set actual column
set cursor field l_tc_field_name line 1.
endif.
endif.
" COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*&
Form FCODE_TC_MARK_LINES
*&---------------------------------------------------------------------*
*
marks all TableControl lines
*----------------------------------------------------------------------*
*
-->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
form fcode_tc_mark_lines using p_tc_name
p_table_name
p_mark_name.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
data l_table_name
like feld-name.
field-symbols <tc>
type cxtab_control.
field-symbols <table>
type standard table.
field-symbols <wa>.
field-symbols <mark_field>.
*-END OF LOCAL DATA----------------------------------------------------*
assign (p_tc_name) to <tc>.
* get the table, which belongs to the tc
concatenate p_table_name '[]' into l_table_name. "table body
assign (l_table_name) to <table>.
"not headerline
<mark_field> = 'X'.
endloop.
endform.
"fcode_tc_mark_lines
*&---------------------------------------------------------------------*
*&
Form FCODE_TC_DEMARK_LINES
*&---------------------------------------------------------------------*
*
demarks all TableControl lines
*----------------------------------------------------------------------*
*
-->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
<mark_field> = space.
endloop.
endform.
"fcode_tc_mark_lines
*&---------------------------------------------------------------------*
*&
Form fieldacat
*&---------------------------------------------------------------------*
form fieldacat.
refresh gt_fieldcat_lvc.
* merge the fieldcatalog
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'ZTAA_FIE113_WF_P'
changing
ct_fieldcat
= gt_fieldcat_lvc[].
clear gt_fieldcat_lvc.
gt_fieldcat_lvc-fieldname = 'ICON'.
gt_fieldcat_lvc-tabname = 'TB_POS'.
gt_fieldcat_lvc-icon = 'X'.
gt_fieldcat_lvc-scrtext_s = 'Check'.
append gt_fieldcat_lvc.
* blind out the column 'XSTRING'
loop at gt_fieldcat_lvc .
if tb_testata-ztipo = 'DI'.
case gt_fieldcat_lvc-fieldname.
when 'PROZS'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'VALORE'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'MENGE'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'ZUJHR'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'ZUJHR_A'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
*
when 'ZRICAVO'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'ZFLAG_IMPORTO'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CAPIENZA'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CAP_ANNO'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CI'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'BUKRS'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'ID'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'GJAHR'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_T4X'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_48'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'CLASSE_A'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'ORD41_A'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'ORD42_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'ORD43_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'ORD44_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'ZFLAG'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'KOSTL'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'GSBER'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'ANLUE_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'GDLGRP_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'EIGKZ_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'KOSTL_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'GSBER_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'UMWKZ_A'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
when 'APPO_SEC'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
endcase.
elseif tb_testata-ztipo = 'TR'.
case gt_fieldcat_lvc-fieldname.
when 'PROZS'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'VALORE'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'MENGE'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'ZUJHR'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'ZUJHR_A'.
gt_fieldcat_lvc-edit = '1'.
modify gt_fieldcat_lvc.
when 'BUKRS'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'ID'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'GJAHR'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
when 'APPO_SEC'.
gt_fieldcat_lvc-no_out =
modify gt_fieldcat_lvc.
*
'X'.
'X'.
'X'.
'X'.
when 'ZFLAG_IMPORTO'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CAPIENZA'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CAP_ANNO'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_CI'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'APPO_SEC'.
gt_fieldcat_lvc-no_out = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_T4X'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
when 'ZFLAG_48'.
gt_fieldcat_lvc-edit = '1'.
gt_fieldcat_lvc-checkbox = 'X'.
modify gt_fieldcat_lvc.
endcase.
endif.
endloop.
data: lt_celltab type lvc_t_styl,
l_index type i.
loop at tb_pos.
l_index = sy-tabix.
refresh lt_celltab.
clear tb_pos-celltab.
perform fill_celltab using 'RW'
'PROZS'
changing lt_celltab. "CHIUDI
*
perform fill_celltab using 'RO'
*
'VALORE'
*
changing lt_celltab. "APRI
* endif.
*2c.Copy your celltab to the celltab of the current row of gt_outtab.
insert lines of lt_celltab into table tb_pos-celltab.
modify tb_pos index l_index.
endloop.
endform.
" fieldacat
*&---------------------------------------------------------------------*
*&
Form alv_grid
*&---------------------------------------------------------------------*
form alv_grid.
if not tb_pos[] is initial.
perform fieldacat.
perform escludi.
if g_custom_container is initial.
create object g_custom_container
exporting container_name = g_container.
create object grid
exporting i_parent = g_custom_container.
* make the ALV Grid Control editable and optimize the width of the colum
*
gs_layout-edit = 'X'.
gs_layout-cwidth_opt = 'X'.
gs_layout-zebra = 'X'.
gs_layout-cwidth_opt = 'X'.
gs_layout-stylefname = 'CELLTAB'.
*
*
exporting
i_ready_for_input = 1.
call method grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
else.
call method grid->refresh_table_display.
endif.
call method cl_gui_control=>set_focus exporting control = grid.
endif.
endform.
" alv_grid
*&---------------------------------------------------------------------*
*&
Form ordxx_text_lesen
*&---------------------------------------------------------------------*
form ordxx_text_lesen.
data: l_ord4x
l_ordtx
l_ordnr
like anla-ord41,
like ra01m-ordtx_1,
like t087-ordnr.
*
do 4 times
varying l_ord4x from wa_pos-ord41
varying l_ordtx from ra01m-ordtx_1
*
next wa_pos-ord42
next ra01m-ordtx_2.
Wenn Initial - text space setzen
if l_ord4x is initial.
l_ordtx
= space.
else.
unpack sy-index to l_ordnr.
perform ordxx_text using l_ordtx l_ord4x l_ordnr.
endif.
enddo.
endform.
" ordxx_text_lesen
*&---------------------------------------------------------------------*
*&
Form gdlgrp_text_lesen
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form gdlgrp_text_lesen.
data: ld_t087s like t087s.
*
check not wa_pos-gdlgrp is initial.
ld_t087s-gdlgrp = wa_pos-gdlgrp.
call function 'T087G_READ'
changing
f_t087s
= ld_t087s
exceptions
not_found = 1
no_entries = 2
others
= 3.
case sy-subrc.
when 0.
t087s = ld_t087s.
when others.
t087s-gdlgrp_txt = text-008.
endcase.
endform.
" gdlgrp_text_lesen
*&---------------------------------------------------------------------*
*&
Form ordxx_text
*&---------------------------------------------------------------------*
form ordxx_text using u_text u_ord4x u_ordnr.
*
local: u_ordnr,
u_ord4x.
data: ld_t087 like t087.
*
Ordnungsbegriffstext lesen
ld_t087-ordnr = u_ordnr.
ld_t087-ord4x = u_ord4x.
call function 'T087_READ'
importing
e_t087t
= t087t
changing
f_t087
= ld_t087
exceptions
not_found = 1
no_entries = 2
others
= 3.
if sy-subrc = 0.
u_text
= t087t-ordtx.
else.
u_text
= text-008.
endif.
*
endform.
" ordxx_text
*&---------------------------------------------------------------------*
*&
Form anlue_text_lesen
*&---------------------------------------------------------------------*
form anlue_text_lesen.
data: ld_t087v like t087v.
*
if not wa_pos-anlue is initial.
ld_t087v-anlue = wa_pos-anlue.
call function 'T087U_READ'
changing
f_t087v
= ld_t087v
exceptions
no_entries = 1
not_found = 2.
t087v-anlue_txt = text-008.
if sy-subrc = 0.
t087v-anlue_txt = ld_t087v-anlue_txt.
endif.
else.
t087v-anlue_txt = space.
endif.
endform.
" anlue_text_lesen
*&---------------------------------------------------------------------*
*&
Form anlue_check
*&---------------------------------------------------------------------*
form anlue_check.
* Prfen der Wirtschaftseinheit
data: ld_t087v like t087v.
*
check not wa_pos-anlue is initial.
ld_t087v-anlue = wa_pos-anlue.
call function 'T087U_READ'
changing
f_t087v
= ld_t087v
exceptions
no_entries = 1
not_found = 2.
if sy-subrc = 2.
message id sy-msgid
with
sy-msgv1
endif.
type 'E'
sy-msgv2
number sy-msgno
sy-msgv3
sy-msgv4.
endform.
" anlue_check
*&---------------------------------------------------------------------*
*&
Form controlli_100
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form controlli_100.
* Controlli Societ
if tb_testata-bukrs is initial.
message e001(zcaa_wf).
endif.
* Controlli Data registrazione
if tb_testata-bldat is initial.
message e010(zcaa_wf).
else.
concatenate tb_testata-bldat+6(2) '.'
tb_testata-bldat+4(2) '.'
tb_testata-bldat(4) into va_bldat.
endif.
** controllo data evento > sy-datum
if tb_testata-bldat > sy-datum.
message e076(zcaa_wf) with tb_testata-bldat sy-datum .
endif.
* Controllo tipo operazione
if tb_testata-ztipo is initial.
message e004(zcaa_wf).
endif.
* Motivo operazione
if tb_testata-zmotivo is initial.
message e006(zcaa_wf).
endif.
* Motivo operazione
if tb_testata-zzrespbudg is initial.
message e008(zcaa_wf).
endif.
* Controllo Passaggio esercizio
select single lgjahr into t093c-lgjahr from t093c
where bukrs = tb_testata-bukrs.
if va_gjahr > t093c-lgjahr.
message e059(ab).
endif.
refresh tb_ztaa_fie113_wf_z
select * into corresponding
from ztaa_fie113_wf_z where
and
.
fields of table tb_ztaa_fie113_wf_z
ztipo = tb_testata-ztipo
zmotivo = tb_testata-zmotivo.
add 1 to vn_pos.
loop at tb_cespiti where buzei eq space.
tb_cespiti-bukrs = tb_testata-bukrs.
tb_cespiti-gjahr = tb_testata-gjahr.
tb_cespiti-buzei = vn_pos.
modify tb_cespiti.
endloop.
if tb_testata-ztipo = 'DI'.
if tb_pos-zflag_t4x = 'X' and tb_pos-zujhr is initial.
tb_pos-zflag_importo = space.
tb_pos-zflag_capienza = 'X'.
endif.
if tb_pos-zflag_t4x = 'X' and not tb_pos-zujhr is initial.
tb_pos-zflag_importo = 'X'.
tb_pos-zflag_capienza = space.
endif.
if tb_pos-zflag_48 = 'X'.
tb_pos-zflag_importo = 'X'.
tb_pos-zflag_capienza = space.
endif.
if tb_pos-zflag_48 is initial and tb_pos-zflag_t4x is initial.
tb_pos-zflag_importo = 'X'.
tb_pos-zflag_capienza = space.
endif.
else.
tb_pos-zflag_importo = 'X'.
tb_pos-zflag_capienza = space.
endif.
*
*
*
endform.
" inserisci
*&---------------------------------------------------------------------*
*&
Form meins_pruefen
*&---------------------------------------------------------------------*
form meins_pruefen using u_meins.
*
data: g_trtyp
like t020-aktyp value 'H'.
constants: con_anzei(1)
type c value 'A'.
if g_trtyp = con_anzei.
exit.
endif.
*
*
select single * from t006 where
msehi = u_meins.
if sy-subrc ne 0.
message id 'AA' type 'E' number '183'
with u_meins.
endif.
*
Kaufmnische Einheit
if t006-kzkeh = space.
message id 'AA' type 'E' number '185'
with u_meins.
endif.
endform.
" meins_pruefen
*&---------------------------------------------------------------------*
*&
Form menge_meins_pruefen
*&---------------------------------------------------------------------*
form menge_meins_pruefen using u_meins u_menge.
if not u_menge is initial.
if u_meins is initial.
message id 'AA' type 'E' number '899'.
endif.
endif.
endform.
" menge_meins_pruefen
*&---------------------------------------------------------------------*
*&
Form menge_pruefen
*&---------------------------------------------------------------------*
form menge_pruefen.
*data:
gt_frules
type aist_fieldrules.
*data: ls_frules
like line of gt_frules.
*
*
check WA_POS-menge is initial.
*
*
read table gt_frules into ls_frules
*
with table key fldnm = 'WA_POS-MENGE'.
*
if
sy-subrc eq 0
*
and ls_frules-status eq '3'
"<< note 445513
*
and g_dialog
eq con_x. "<< note 387962
**
return error only in dialog processing e.g. in AS02
*
message e055(00).
*
endif.
endform.
" menge_pruefen
*&---------------------------------------------------------------------*
*&
Form help_meins_kaufm
*&---------------------------------------------------------------------*
form help_meins_kaufm using u_meins.
*
data: hlp_meins
like anka-meins.
data: l_input.
data: g_trtyp
like t020-aktyp value 'H'.
constants:
con_aende(1)
type c value 'V',
con_hinzu(1)
type c value 'H'.
*
Range erforderlich fr
*
Help Mengen/Flcheneinheit
ranges r_meins for t006a-msehi.
*
clear t006d.
refresh r_meins.
*
call function 'ME_VALUES_T006'
exporting
i_kz1eh = space
i_kz2eh = space
i_kzkeh = 'X'
i_kzwob = space
i_t006d = t006d
importing
e_meins = hlp_meins
tables
t_meins = r_meins.
*
EINGABE NICHT BERNEHMEN, WENN
*
keine Auswahl oder Anzeigen
l_input = '0'.
*
if g_trtyp = con_aende or
g_trtyp = con_hinzu.
loop at screen.
if screen-name = 'WA_POS-MEINS'.
l_input = screen-input.
exit.
endif.
*
endloop.
endif.
if hlp_meins
ne space and
l_input
ne '0'.
u_meins = hlp_meins.
endif.
endform.
" help_meins_kaufm
*&---------------------------------------------------------------------*
*&
Form crea_ranges
*&---------------------------------------------------------------------*
form crea_ranges.
refresh
refresh
refresh
refresh
refresh
r_anlue.
r_ord41.
r_ord42.
r_ord43.
r_ord44.
refresh
refresh
refresh
refresh
clear
clear
clear
clear
clear
clear
clear
clear
r_zujhr.
r_gdlgrp.
r_eigkz.
r_anlkl.
r_ord41.
r_ord42.
r_ord43.
r_ord44.
r_zujhr.
r_gdlgrp.
r_anlue.
r_eigkz.
r_gdlgrp-sign = 'I'.
r_gdlgrp-option = 'EQ'.
r_gdlgrp-low = wa_pos-gdlgrp.
append r_gdlgrp.
endif.
if not wa_pos-eigkz is initial.
clear r_eigkz.
refresh r_eigkz.
r_eigkz-sign = 'I'.
r_eigkz-option = 'EQ'.
r_eigkz-low = wa_pos-eigkz.
append r_eigkz.
endif.
if not wa_pos-anlue is initial.
clear r_anlue.
r_anlue-sign = 'I'.
r_anlue-option = 'EQ'.
r_anlue-low = wa_pos-anlue.
append r_anlue.
endif.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
endform.
" crea_ranges
*&---------------------------------------------------------------------*
*&
Form controllo_esistenza
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form controllo_esistenza.
data: begin of s_anlc.
include structure anlc.
data end of s_anlc.
data: begin of s_anlcv.
include structure anlcv.
data end of s_anlcv.
loop at tb_pos
endloop.
if sy-subrc = 0.
message e019(zcaa_wf).
endif.
read table tb_pos with key bukrs = tb_testata-bukrs
ord41 = wa_pos-ord41
ord42 = wa_pos-ord42
ord43 = wa_pos-ord43
ord44 = wa_pos-ord44
zujhr = wa_pos-zujhr
zujhr_a = wa_pos-eigkz_a
gdlgrp = wa_pos-gdlgrp.
if sy-subrc = 0.
message e019(zcaa_wf).
endif.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
refresh r_zujhr_pos.
clear r_zujhr_pos.
if not wa_pos-zujhr is initial.
if wa_pos-zujhr_a is initial.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'EQ'.
va_zujhr-low = wa_pos-zujhr.
append va_zujhr to r_zujhr_pos.
else.
clear va_zujhr.
va_zujhr-sign = 'I'.
va_zujhr-option = 'BT'.
va_zujhr-low = wa_pos-zujhr.
*
*
*
*
va_zujhr-high = wa_pos-zujhr_a.
append va_zujhr to r_zujhr_pos.
endif.
endif.
if not wa_pos-zujhr is initial.
loop at tb_pos into appo_pos where
and
and
and
and
and
and
and
endloop.
if sy-subrc = 0.
message e019(zcaa_wf).
endif.
endif.
if not wa_pos-zujhr_a is initial.
loop at tb_pos into appo_pos where
and
and
and
and
and
and
and
endloop.
if sy-subrc = 0.
message e019(zcaa_wf).
endif.
endif.
bukrs = tb_testata-bukrs
ord41 = wa_pos-ord41
ord42 = wa_pos-ord42
ord43 = wa_pos-ord43
ord44 = wa_pos-ord44
gdlgrp = wa_pos-gdlgrp
zujhr <= wa_pos-zujhr
zujhr_a >= wa_pos-zujhr.
bukrs = tb_testata-bukrs
ord41 = wa_pos-ord41
ord42 = wa_pos-ord42
ord43 = wa_pos-ord43
ord44 = wa_pos-ord44
gdlgrp = wa_pos-gdlgrp
zujhr >= wa_pos-zujhr_a
zujhr_a <= wa_pos-zujhr_a.
refresh t_cespiti.
select * into corresponding fields of table t_cespiti from anla
where bukrs = tb_testata-bukrs
and anlkl in r_anlkl
and ord41 in r_ord41
and ord42 in r_ord42
and ord43 in r_ord43
and ord44 in r_ord44
and zujhr in r_zujhr
and eigkz in r_eigkz
and anlue in r_anlue
and gdlgrp in r_gdlgrp.
loop at t_cespiti.
if not t_cespiti-deakt is initial.
delete t_cespiti.
continue.
endif.
if t_cespiti-zugdt is initial.
delete t_cespiti.
endif.
endloop.
*
*
*
*
tb_fogli-meins = vn_meins.
endat.
on change of tb_fogli_bapi-id_old or tb_fogli_bapi-buzei_old.
tb_fogli-menge = tb_fogli_bapi-menge.
tb_fogli-meins = tb_fogli_bapi-meins.
endon.
append tb_fogli.
endloop.
endloop.
if tb_cespiti[] is initial.
sort gt_log by buzei type id .
delete adjacent duplicates from gt_log.
perform alv_log.
else.
refresh: gt_log.
loop at tb_pos.
refresh: gt_log_bapi, tb_cespiti_bapi .
loop at tb_cespiti where buzei = tb_pos-buzei.
clear tb_cespiti_bapi.
tb_cespiti_bapi = tb_cespiti.
append tb_cespiti_bapi.
endloop.
clear: flag_check, flag_err.
when 'ANLN1'.
gt_fieldcat_lvc_4-hotspot = 'X'.
gt_fieldcat_lvc_4-no_out = 'X'.
modify gt_fieldcat_lvc_4.
when 'ANLN2'.
gt_fieldcat_lvc_4-no_out = 'X'.
modify gt_fieldcat_lvc_4.
when 'ANLKL'.
gt_fieldcat_lvc_4-no_out = 'X'.
modify gt_fieldcat_lvc_4.
when 'KANSW'.
gt_fieldcat_lvc_4-do_sum = 'X'.
modify gt_fieldcat_lvc_4.
when 'VALORE_MOVIMENTO'.
gt_fieldcat_lvc_4-do_sum = 'X'.
modify gt_fieldcat_lvc_4.
when 'VALORE_DISPONIBILE'.
gt_fieldcat_lvc_4-do_sum = 'X'.
modify gt_fieldcat_lvc_4.
when 'ZRICAVO'.
gt_fieldcat_lvc_4-do_sum = 'X'.
modify gt_fieldcat_lvc_4.
when 'CLASSE_A'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
when 'GJAHR'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
when 'ZZDEST_ANLN1'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
when 'ZZDEST_ANLN2'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
when 'BELNR'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
when 'DMBTR'.
gt_fieldcat_lvc_4-no_out =
modify gt_fieldcat_lvc_4.
'X'.
'X'.
'X'.
'X'.
'X'.
'X'.
when 'APPO_SEC'.
gt_fieldcat_lvc_4-no_out = 'X'.
modify gt_fieldcat_lvc_4.
*
*
*
when 'VALORE'.
gt_fieldcat_lvc_4-no_out = 'X'.
modify gt_fieldcat_lvc_4.
endcase.
endloop.
endform.
" fieldacat_400
*&---------------------------------------------------------------------*
*&
Form escludi
*&---------------------------------------------------------------------*
form escludi.
refresh it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_check
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_cut
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_delete_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_append_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_copy_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_insert_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_move_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_paste
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_paste_new_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_undo
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_insert_row
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_evt_enter
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_evt_modified
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_loc_copy
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_call_abc
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_deselect_all
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_graph
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_help
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_call_master_data
to it_tooolbar_excluding.
append cl_gui_alv_grid=>mc_fc_info
to it_tooolbar_excluding.
endform.
" escludi
*&---------------------------------------------------------------------*
*&
Form controlli_200
*&---------------------------------------------------------------------*
form controlli_200.
clear: va_flag_61,
va_flag_ci.
* Controllo area territoriale / Unit Richeidente.
if not wa_pos-ord44 is initial.
if wa_pos-ord41 = '44'.
if tb_testata-zzrespbudg+2(2) = 'SR' or
tb_testata-zzrespbudg+2(2) = 'ER'.
if wa_pos-ord44+2(1) ne tb_testata-zzrespbudg+1(1).
message e080(zcaa_wf).
exit.
endif.
if wa_pos-ord44(2) ne '44'.
message e080(zcaa_wf).
exit.
endif.
endif.
endif.
endif.
* Controllo area territoriale / Unit Richeidente Campo destinatario
if not wa_pos-ord44_a is initial.
if wa_pos-ord41_a = '44'.
if wa_pos-ord44_a(2) ne '44'.
message w080(zcaa_wf).
exit.
endif.
endif.
endif.
if tb_testata-ztipo = 'DI'.
clear: tip, area, flag-imp, flag-ar_terr .
*controllo di esistenza su tabella custom
select single * from ztbcusto into ztbcusto
where societa = tb_testata-bukrs
and tipologia = wa_pos-ord41
and parte = wa_pos-ord42
and sezione = wa_pos-ord43.
if sy-subrc = 0.
*controllo sul campo IMPIANTO
if wa_pos-gdlgrp <> space.
move wa_pos-gdlgrp to tip.
*controllo ugualianza tra TIPOLOGIA ed IMPIANTO
if not tip = ztbcusto-tipologia.
flag-imp = 'X'.
endif.
endif.
*controllo sul campo AREA TERRITORIALE
if wa_pos-ord44 <> space.
move wa_pos-ord44 to area.
*controllo ugualianza tra TIPOLOGIA ed AREA TERRITORIALE
if not area = ztbcusto-tipologia.
flag-ar_terr = 'X'.
endif.
endif.
*impostazioni per messaggio d'errore
if flag-imp eq space
and
flag-ar_terr eq space .
else.
message e011(zcaa_wf).
endif.
else.
message e011(zcaa_wf).
endif.
* controllo IMPIANTO
if wa_pos-gdlgrp is initial.
message e020(zcaa_wf).
else.
**
clear va_gdlgrp.
**
concatenate wa_pos-ord41 tb_testata-zzrespbudg+1(3)
**
into va_gdlgrp.
**
if wa_pos-gdlgrp(5) ne va_gdlgrp(5).
**
message e042(zcaa_wf) with wa_pos-gdlgrp.
**
endif.
endif.
*--------------- TRASFERIMENTI
elseif tb_testata-ztipo = 'TR'.
clear: tip, area, flag-imp, flag-ar_terr .
*controllo di esistenza su tabella custom
select single * from ztbcusto into ztbcusto
where societa = tb_testata-bukrs
and tipologia = wa_pos-ord41
and parte = wa_pos-ord42
and sezione = wa_pos-ord43.
if sy-subrc = 0.
*controllo sul campo IMPIANTO
if wa_pos-gdlgrp <> space.
move wa_pos-gdlgrp to tip.
*controllo ugualianza tra TIPOLOGIA ed IMPIANTO
if not tip = ztbcusto-tipologia.
flag-imp = 'X'.
endif.
endif.
*controllo sul campo AREA TERRITORIALE
if wa_pos-ord44 <> space.
move wa_pos-ord44 to area.
*controllo ugualianza tra TIPOLOGIA ed AREA TERRITORIALE
if not area = ztbcusto-tipologia.
flag-ar_terr = 'X'.
endif.
endif.
*impostazioni per messaggio d'errore
if flag-imp eq space
and
flag-ar_terr eq space .
else.
message e029(zcaa_wf).
exit.
endif.
else.
message e029(zcaa_wf).
exit.
endif.
* controllo IMPIANTO
if wa_pos-gdlgrp is initial.
message e020(zcaa_wf).
exit.
else.
**
clear va_gdlgrp.
**
concatenate wa_pos-ord41 tb_testata-zzrespbudg+1(3)
**
into va_gdlgrp.
**
if wa_pos-gdlgrp(5) ne va_gdlgrp(5).
**
message e042(zcaa_wf) with wa_pos-gdlgrp.
**
endif.
endif.
* centro di costo
*
if wa_pos-kostl is initial.
*
message e032(zcaa_wf).
*
exit.
*
endif.
* controllo Esercizio di prima capitalizzazione
*
if wa_pos-zujhr is initial.
*
message e018(zcaa_wf).
*
exit.
*
endif.
***** Videata dati trasferiti.
clear: tip, area, flag-imp, flag-ar_terr .
*controllo di esistenza su tabella custom
select single * from ztbcusto into ztbcusto
where societa = tb_testata-bukrs
and tipologia = wa_pos-ord41_a
and parte = wa_pos-ord42_a
and sezione = wa_pos-ord43_a.
if sy-subrc = 0.
*controllo sul campo IMPIANTO
if wa_pos-gdlgrp_a <> space.
move wa_pos-gdlgrp_a to tip.
*controllo ugualianza tra TIPOLOGIA ed IMPIANTO
if wa_pos-kostl_a is initial.
message e032(zcaa_wf).
exit.
endif.
if wa_pos-prozs is initial and
wa_pos-valore is initial and
wa_pos-menge is initial.
message e030(zcaa_wf).
exit.
endif.
if not wa_pos-prozs is initial and
not wa_pos-valore is initial.
message e031(zcaa_wf).
exit.
endif.
if not wa_pos-prozs is initial and
not wa_pos-menge is initial.
message e031(zcaa_wf).
exit.
endif.
*
*
*
*
*
clear: wa_pos-eigkz.
endif.
else.
clear: wa_pos-eigkz.
endif.
endif.
* Campo Natura a
if not
not
not
not
wa_pos-ord41_a
wa_pos-ord42_a
wa_pos-ord43_a
wa_pos-ord44_a
is
is
is
is
initial or
initial or
initial or
initial.
tb_testata-bukrs
= wa_pos-ord41_a
= wa_pos-ord42_a
= wa_pos-ord43_a
= wa_pos-ord44_a.
if wa_pos-ord44 is initial.
message e087(zcaa_wf).
endif.
endform.
" controlli_200
*&---------------------------------------------------------------------*
*&
Form handle_user_command
*&---------------------------------------------------------------------*
form handle_user_command using p_e_ucomm.
case p_e_ucomm.
when 'DEL'.
perform cancella.
when 'SALV'.
call method grid->refresh_table_display.
endcase.
endform.
" handle_user_command
*&---------------------------------------------------------------------*
*&
Form cancella
*&---------------------------------------------------------------------*
form cancella.
data: l_t_selected_rows type lvc_t_row,
ind type sy-index,
inde type line of lvc_t_row.
call method grid->get_selected_rows
importing
et_index_rows = l_t_selected_rows.
loop at l_t_selected_rows into inde.
clear tb_pos.
read table tb_pos index inde-index.
delete tb_cespiti where buzei = tb_pos-buzei.
delete gt_log where buzei = tb_pos-buzei.
*
DELETE tb_pos.
delete tb_pos index inde-index.
endloop.
call method grid->refresh_table_display
EXPORTING
is_stable
=
i_soft_refresh =
exceptions
finished
= 1
others
= 2.
endform.
" cancella
*&---------------------------------------------------------------------*
*&
Form handle_toolbar
*&---------------------------------------------------------------------*
form handle_toolbar using
p_e_object type ref to
cl_alv_event_toolbar_set
p_e_interactive.
*
*
*
clear ls_toolbar.
move 'SALV' to ls_toolbar-function.
move '@2L@' to ls_toolbar-icon.
move 'Modifica Riga' to ls_toolbar-quickinfo.
move 'Modifica Riga' to ls_toolbar-text.
move ' ' to ls_toolbar-disabled.
append ls_toolbar to p_e_object->mt_toolbar.
"#EC NOTEXT
"#EC NOTEXT
"#EC NOTEXT
"#EC NOTEXT
"#EC NOTEXT
"#EC NOTEXT
endform.
" handle_toolbar
*&---------------------------------------------------------------------*
*&
Form hotspot_click
*&---------------------------------------------------------------------*
form hotspot_click using
e_row_id type lvc_s_row
e_column_id type lvc_s_col
es_row_no type lvc_s_roid.
endloop.
clear: flag_check, flag_err.
retirementdata-perc_rate = tb_cespiti-prozs.
retirementdata-amount = tb_cespiti-valore_movimento + vn_valore.
*
*
*
*
*
*
*
if retirementdata-perc_rate > 0.
clear vn_valore.
vn_valore = ( tb_cespiti-kansw * retirementdata-perc_rate ) / 100.
retirementdata-amount = retirementdata-amount + vn_valore.
clear retirementdata-perc_rate.
endif.
retirementdata-cmpl_ret =
retirementdata-rev_on_ret = tb_pos-zricavo.
*retirementdata-ret_costs =
retirementdata-currency = 'EUR'.
*retirementdata-currency_iso
* retirementdata-quantity = tb_pos-menge + tb_pos-menge_old .
* retirementdata-base_uom = tb_pos-meins.
* retirementdata-base_uom_iso
* retirementdata-perc_rate = tb_pos-prozs + tb_pos-prozs_old.
* retirementdata-rev_nbv_in
* retirementdata-area_nbv
retirementdata-valuedate = tb_testata-budat.
* retirementdata-trade_id
* tretirementdata-r_part_ba
furtherpostingdata-alloc_nmbr = 'Attribuzione'.
furtherpostingdata-header_txt = 'TESTO'.
*furtherpostingdata-REF_DOC_NO
*furtherpostingdata-ITEM_TEXT
endform.
" valorizza_strutture
*&---------------------------------------------------------------------*
*&
Form alv_log
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form alv_log.
data: lt_fcat
type lvc_t_fcat,
ls_layo
type lvc_s_layo,
ls_vari
type disvariant,
ls_prnt
type lvc_s_prnt,
l_consistency_check type char1.
perform log_get_outtab.
perform log_set_grid_layo changing ls_layo.
perform log_set_grid_fcat changing lt_fcat.
if gr_container_log is initial.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
create object gr_container_log
exporting container_name = 'G_LOG'.
*
ENDIF.
*
ls_prnt-grpchgedit = con_true.
create object gr_event_handler .
set handler gr_event_handler->handle_double_click_log
for gr_grid_log .
set handler gr_event_handler->handle_hotspot_click_log
for gr_grid_log.
call method gr_grid_log->set_table_for_first_display
exporting
i_bypassing_buffer = 'X'
is_layout
= ls_layo
changing
it_outtab
= gt_log[]
it_fieldcatalog
= lt_fcat.
else.
call method gr_grid_log->refresh_table_display.
endif.
endform.
" alv_log
*&---------------------------------------------------------------------*
*&
Form log_set_grid_layo
*&---------------------------------------------------------------------*
form log_set_grid_layo changing cs_layo type lvc_s_layo.
cs_layo-zebra
cs_layo-no_toolbar
* cs_layo-box_fname
= 'X'.
= 'X'.
= 'BOX'.
= 'X'.
from cs_fcat.
= 'X'.
from cs_fcat.
= 'X'.
from cs_fcat.
when 'ANLN1'.
cs_fcat-no_out = 'X'.
modify ct_fcat from cs_fcat.
when 'ANLN2'.
*
*
cs_fcat-no_out = 'X'.
modify ct_fcat from cs_fcat.
endcase.
endloop.
endform.
" log_set_grid_fcat
*&---------------------------------------------------------------------*
*&
Form log_get_outtab
*&---------------------------------------------------------------------*
form log_get_outtab.
field-symbols: <ls_outtab> type g_ty_s_outtab.
data: l_excp_mod
l_excp_div
l_excp_amnt
l_excp
type
type
type
type
i,
i,
i value 4,
i.
*
*
*
*
loop at tb_pos.
CLEAR: vn_prozs_old, vn_valore_old, vn_menge_old, vn_meins_old.
refresh tb_pos_old.
select id gjahr prozs valore menge meins
into corresponding fields of table tb_pos_old
from ztaa_fie113_wf_p where bukrs = tb_pos-bukrs
and ord41 = tb_pos-ord41
and ord42 = tb_pos-ord42
and ord43 = tb_pos-ord43
and ord44 = tb_pos-ord44
and anlue = tb_pos-anlue
and gdlgrp = tb_pos-gdlgrp.
and eigkz = tb_pos-eigkz
and zujhr = tb_pos-zujhr.
clear: tb_pos-prozs_old, tb_pos-valore_old, tb_pos-menge_old.
loop at tb_pos_old.
* attenzione
select single zstato into ztaa_fie113_wf_t-zstato
from ztaa_fie113_wf_t where bukrs = tb_pos-bukrs
and id = tb_pos_old-id_old
and gjahr = tb_pos_old-gjahr_old.
*
*
*
*
*
*
*
*
if ztaa_fie113_wf_t-zstato ne 'AN1' or
ztaa_fie113_wf_t-zstato ne 'RF2' or
ztaa_fie113_wf_t-zstato ne 'RF3' or
ztaa_fie113_wf_t-zstato ne 'CO3'.
add tb_pos_old-prozs to tb_pos-prozs_old.
add tb_pos_old-valore to tb_pos-valore_old.
add tb_pos_old-menge to tb_pos-menge_old.
clear tb_fogli.
tb_fogli-buzei = tb_pos-buzei.
tb_fogli-id_old = tb_pos_old-id_old.
tb_fogli-gjahr_old = tb_pos_old-gjahr_old.
tb_fogli-buzei = tb_pos-buzei.
tb_fogli-prozs = tb_pos_old-prozs.
tb_fogli-valore = tb_pos_old-valore.
tb_fogli-menge = tb_pos_old-menge.
tb_fogli-meins = tb_pos_old-meins.
append tb_fogli.
endif.
endloop.
modify tb_pos.
endloop.
endform.
" old_fvi
*&---------------------------------------------------------------------*
*&
Form handle_data_changed
*&---------------------------------------------------------------------*
*FORM handle_data_changed USING er_data_changed
*
e_onf4
*
e_onf4_before
*
e_onf4_after.
*
* DATA: ls_good TYPE lvc_s_modi.
*
*
* LOOP AT er_data_changed->mt_good_cells INTO ls_good.
*
CASE ls_good-fieldname.
** check if column PLANETYPE of this row was changed
*
WHEN 'VALORE'.
*
CALL METHOD check_valore
*
EXPORTING
*
ps_good_planetype = ls_good
*
pr_data_changed
= er_data_changed.
*
** check if column SEATSOCC of this row was changed
*
WHEN 'SEATSOCC'.
**
call method check_seatsocc
**
exporting
**
ps_good
= ls_good
**
pr_data_changed = er_data_changed.
*
ENDCASE.
* ENDLOOP.
*
* IF error_in_data EQ 'X'.
*
CALL METHOD er_data_changed->display_protocol.
* ENDIF.
* .
*
*ENDFORM.
" handle_data_changed
*&---------------------------------------------------------------------*
*&
Form create_picture_control
*&---------------------------------------------------------------------*
form create_picture_control.
data: events type cntl_simple_events,
event type cntl_simple_event.
if g_picture_container is initial.
create object: g_picture_container
exporting container_name = 'PICTURE',
g_picture_control
exporting parent = g_picture_container.
event-eventid = cl_gui_picture=>eventid_picture_click.
event-appl_event = ' '.
"system event
append event to events.
event-eventid = cl_gui_picture=>eventid_picture_dblclick.
event-appl_event = ' '.
"system event
append event to events.
call method: g_picture_control->set_registered_events
exporting events = events.
*
*
*
endform.
" create_picture_control
*&---------------------------------------------------------------------*
*&
Form fill_picture_control
*&---------------------------------------------------------------------*
form fill_picture_control.
data: url(255) type c,
alignment type i.
data query_table like w3query occurs 1 with header line.
* DATA html_table LIKE w3html OCCURS 0.
data begin of html_table occurs 0.
include structure w3html.
data: end of html_table.
data return_code like w3param-ret_code.
data content_type like w3param-cont_type.
data content_length like w3param-cont_len.
data pic_data like w3mime occurs 0.
data pic_size type i.
refresh query_table.
query_table-name = '_OBJECT_ID'.
query_table-value = 'ZAA_ZENITH_2009_SMALL'.
append query_table.
**
**
**
**
**
**
**
**
**
**
*
*
*
*
*
*
*
*
*
*
*
endform.
" fill_picture_control
*&---------------------------------------------------------------------*
*&
Form create_picture_control_logo
*&---------------------------------------------------------------------*
form create_picture_control_logo.
data: events type cntl_simple_events,
event type cntl_simple_event.
if g_picture_container_logo is initial.
create object: g_picture_container_logo
exporting container_name = 'G_LOGO',
g_picture_control_logo
exporting parent = g_picture_container_logo.
event-eventid = cl_gui_picture=>eventid_picture_click.
event-appl_event = ' '.
"system event
append event to events.
event-eventid = cl_gui_picture=>eventid_picture_dblclick.
event-appl_event = ' '.
"system event
append event to events.
call method: g_picture_control_logo->set_registered_events
**
**
**
**
**
**
*
*
*
*
*
TABLES
data
CHANGING
url
EXCEPTIONS
OTHERS
= pict_tab
= url
= 4.
if sy-subrc ne 0.
clear pict_flag.
CALL METHOD g_docking_container->link
EXPORTING
repid = g_repid
dynnr = '0100'.
LEAVE TO SCREEN 100.
endif.
alignment = cl_gui_control=>align_at_left
+
cl_gui_control=>align_at_right +
cl_gui_control=>align_at_top
+
cl_gui_control=>align_at_bottom.
call method g_picture_control_logo->set_alignment
exporting alignment = alignment.
*
*
*
*
*
*
endform.
" fill_picture_control_logo
*&---------------------------------------------------------------------*
*&
Module ordxx_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ordxx_text_lesen_a output.
data: l_ord4x
l_ordtx
l_ordnr
like anla-ord41,
like ra01m-ordtx_1,
like t087-ordnr.
*
do 4 times
varying l_ord4x from wa_pos-ord41_a
next wa_pos-ord42_a
varying l_ordtx from ra01m-ordtx_1 next ra01m-ordtx_2.
*
Wenn Initial - text space setzen
if l_ord4x is initial.
l_ordtx
= space.
else.
unpack sy-index to l_ordnr.
perform ordxx_text using l_ordtx l_ord4x l_ordnr.
endif.
enddo.
endmodule.
" ordxx_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*&
Form kostl_lesen
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_ANLZ_KOSTL text
*
-->P_WA_POS_GSBER text
*
-->P_ENDMODULE text
*----------------------------------------------------------------------*
form kostl_lesen using u_kostl u_gsber.
data: l_kokrs
con_bdatu
like tka01-kokrs,
type d value '99991231'.
data: l_datum
like anlz-bdatu.
data: ld_message(1)
type c.
"<<< ins # 216603
call function 'RK_KOKRS_FIND'
exporting
bukrs
= tb_testata-bukrs
gsber
= u_gsber
importing
kokrs
= l_kokrs
exceptions
insufficient_input = 01.
*
if sy-subrc ne 0.
message e199(aa) with tb_testata-bukrs u_gsber.
endif.
*
*
Kostenstellentext lesen
* <<<<<<<<<< Begin of insertion note # 216603 >>>>>>>>>>
* If message handler is active, deactivate message handler before
* call of 'RK_KOSTL_READ'
call function 'MESSAGES_ACTIVE'
exceptions
not_active = 1.
if sy-subrc = 0.
ld_message = 'X'.
call function 'MESSAGES_STOP'
exceptions
a_message = 1
e_message = 2
i_message = 3
w_message = 4
others
= 5.
if sy-subrc <> 0.
* For TODO
endif.
endif.
* <<<<<<<<<< End of insertion note # 216603 >>>>>>>>>>
* <<<<<<<<<< Begin of insertion note # 315716 >>>>>>>>>>
*
Wenn Tagesdatum im Intervall, dann lese mit Tagesdatum
* IF sy-datlo GE tb_testata-bldat AND sy-datlo LE tb_testata-bldat.
*
l_datum = sy-datlo.
* ELSE.
**
Jetzt mit bdatu < 31.12.9999 oder adatu lesen
">>> ins # 337109
*
IF tb_testata-bldat NE con_bdatu.
*
l_datum = xanlz-bdatu.
">>> ins # 337109
*
*
*
*
ELSE.
l_datum = xanlz-adatu.
ENDIF.
ENDIF.
l_datum = tb_testata-bldat.
call function 'RK_KOSTL_READ'
exporting
datum
= l_datum
kokrs
= l_kokrs
kostl
= u_kostl
kosts
= 'X'
nurex
= space
spras
= sy-langu
importing
ktext
= cskt-ktext
exceptions
error_message = 98
others
= 99.
*
if sy-subrc ne 0.
Jetzt mit Adatu lesen
">>> ins # 337109
l_datum = tb_testata-budat.
* <<<<<<<<<< End of insertion note # 315716 >>>>>>>>>>
call function 'RK_KOSTL_READ'
exporting
datum
= l_datum
kokrs
= l_kokrs
kostl
= u_kostl
kosts
= 'X'
nurex
= space
spras
= sy-langu
importing
ktext
= cskt-ktext
exceptions
error_message = 98
others
= 99.
*
if sy-subrc ne 0.
if l_datum ne sy-datlo.
l_datum = sy-datlo.
*
Jetzt nochmal mit Tagesdatum falls Kostenstelle reorganisiert o..
call function 'RK_KOSTL_READ'
exporting
datum
= l_datum
kokrs
= l_kokrs
kostl
= u_kostl
kosts
= 'X'
nurex
= 'X'
spras
= sy-langu
importing
ktext
= cskt-ktext
exceptions
error_message = 98
others
= 99.
*
if sy-subrc ne 0.
cskt-ktext = text-008.
endif.
else.
*
cskt-ktext = text-008.
endif.
" >>> insert note # 315716
endif.
endif.
* <<<<<<<<<< Begin of insertion note # 216603 >>>>>>>>>>
* If message handler was active, reactivate message handler
if ld_message = 'X'.
call function 'MESSAGES_INITIALIZE'
exporting
reset = space.
endif.
* <<<<<<<<<< End of insertion note # 216603 >>>>>>>>>>
endform.
" kostl_lesen
*&---------------------------------------------------------------------*
*&
Form bbs_call_direct
*&---------------------------------------------------------------------*
form bbs_call_direct.
data: lt_sel
like rstisel
occurs 0 with header line,
lt_fields like rstifields occurs 0 with header line.
data: ld_rec like rstirec.
data: ld_kokrs like csks-kokrs.
check not wa_pos-kostl_a is initial.
perform bbs_fields_val_fill tables lt_fields lt_sel
using 'KOSTL'
'KOSTL'
'KOSTL'
wa_pos-kostl_a.
perform empfaenger_fuellen using 'KS03' ld_rec.
perform bbs_fields_val_fill tables lt_fields lt_sel
using 'BUKRS' 'BUKRS'
'BUKRS'
tb_testata-bukrs.
* Kostenrechnungskreis setzen.
perform kokrs_setzen using tb_testata-bukrs ld_kokrs.
perform bbs_fields_val_fill tables lt_fields lt_sel
using 'KOKRS' 'KOKRS'
'KOKRS'
ld_kokrs.
set parameter id 'CAC' field ld_kokrs.
check not lt_fields[] is initial.
* Aufruf der BBS-Schnittstelle
call function 'FIAA_BBS_TRANSACTION_CALL'
exporting
i_rec
= ld_rec
*
I_TCODE = SY-TCODE
tables
t_sel
= lt_sel
t_fields = lt_fields
exceptions
others
= 0.
endform.
" bbs_call_direct
*&---------------------------------------------------------------------*
*&
Form bbs_fields_val_fill
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_LT_FIELDS text
*
-->P_LT_SEL text
*
-->P_4327
text
*
-->P_4328
text
*
-->P_4329
text
*
-->P_WA_POS_KOSTL text
*----------------------------------------------------------------------*
form bbs_fields_val_fill tables ut_fields structure rstifields
ut_sel
structure rstisel
using value(u_fieldname)
value(u_rollname)
value(u_domname)
value(u_value).
* Fllen der Feldinformationen
ut_fields-field
= u_fieldname.
ut_fields-rollname = u_rollname.
ut_fields-domname = u_domname.
append ut_fields.
* Fllen des Feldinhalts
ut_sel-sign = 'I'.
ut_sel-option = 'EQ'.
ut_sel-field = u_fieldname.
ut_sel-low =
u_value.
append ut_sel.
endform.
" bbs_fields_val_fill
*&---------------------------------------------------------------------*
*&
Form empfaenger_fuellen
*&---------------------------------------------------------------------*
form empfaenger_fuellen using
value(u_tcode)
e_rec structure rstirec.
* Receiver-Applikation.
e_rec-rtool = 'TR'.
e_rec-ronam = u_tcode.
endform.
" empfaenger_fuellen
*&---------------------------------------------------------------------*
*&
Form kokrs_setzen
*&---------------------------------------------------------------------*
form kokrs_setzen using value(u_bukrs)
changing e_kokrs.
* Zustzlich Kostenrechnungskreis setzen.
call function 'RK_KOKRS_FIND'
exporting
bukrs = tb_testata-bukrs
importing
kokrs = e_kokrs
exceptions
others = 1.
endform.
" kokrs_setzen
*&---------------------------------------------------------------------*
*&
Form handle_double_click_log
*&---------------------------------------------------------------------*
form handle_double_click_log using
e_row_id type lvc_s_row
e_column_id type lvc_s_col
es_row_no type lvc_s_roid.
endform.
" fieldacat_popup
*&---------------------------------------------------------------------*
*&
Form hotspot_click_log
*&---------------------------------------------------------------------*
form hotspot_click_log using
e_row_id type lvc_s_row
e_column_id type lvc_s_col
es_row_no type lvc_s_roid.
data: in type sy-subrc,
va_buzei type buzei.
read table gt_log into gs_log index es_row_no-row_id.
if sy-subrc = 0.
sort tb_fogli by buzei id_old bldat buzei_old.
va_buzei = gs_log-buzei.
refresh tb_fogli_view.
loop at tb_fogli where buzei = va_buzei.
clear: tb_fogli_view, tb_fogli-menge, tb_fogli-meins.
tb_fogli_view = tb_fogli.
collect tb_fogli_view.
endloop.
loop at tb_fogli where buzei = va_buzei.
loop at tb_fogli_view where buzei = tb_fogli-buzei
and id_old = tb_fogli-id_old
and buzei_old = tb_fogli-buzei_old.
if not tb_fogli-menge is initial.
tb_fogli_view-menge = tb_fogli-menge.
tb_fogli_view-meins = tb_fogli-meins.
modify tb_fogli_view .
endif.
endloop.
endloop.
if not tb_fogli_view[] is initial.
call screen 450 starting at 5 5.
endif.
endif.
endform.
" hotspot_click_log
*&---------------------------------------------------------------------*
*&
Form umwkz_text_lesen
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form umwkz_text_lesen.
data: ld_t087k like t087k.
*
clear t087l.
check not wa_pos-umwkz_a is initial.
ld_t087k-umwkz = wa_pos-umwkz_a.
call function 'T087K_READ'
importing
e_t087l
= t087l
changing
f_t087k
exceptions
not_found
no_entries
others
= ld_t087k
= 1
= 2
= 3.
if sy-subrc > 0.
t087l-txt50 = text-008.
endif.
*
endform.
" umwkz_text_lesen
*&---------------------------------------------------------------------*
*&
Form fill_celltab
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_1251
text
*
<--P_LT_CELLTAB text
*----------------------------------------------------------------------*
form fill_celltab using value(p_mode)
campo
changing pt_celltab type lvc_t_styl.
data: ls_celltab type lvc_s_styl,
l_mode type raw4.
* This forms sets the style of column 'PRICE' editable
* according to 'p_mode' and the rest to read only either way.
*** if p_mode eq 'RW'.
****2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell
****
to status "editable".
***
l_mode = cl_gui_alv_grid=>mc_style_enabled.
*** else. "p_mode eq 'RO'
****2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell
****
to status "non-editable".
***
l_mode = cl_gui_alv_grid=>mc_style_disabled.
*** endif.
***** PEr dismissioni automatismo percentuale
if tb_testata-ztipo = 'DI'.
select single * from ztaa_fie113_wf_u where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and monat = tb_testata-bldat+4(2)
and ord41 = tb_pos-ord41
and ord42 = tb_pos-ord42
and ord43 = tb_pos-ord43
and ord44 = tb_pos-ord44
and gdlgrp = tb_pos-gdlgrp.
if sy-subrc = 0.
ls_celltab-fieldname = 'PROZS'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'MENGE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'VALORE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'MEINS'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
exit.
endif.
endif.
if tb_pos-valore > 0.
if tb_pos-menge > 0.
ls_celltab-fieldname = 'VALORE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
else.
ls_celltab-fieldname = 'VALORE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'MENGE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled..
insert ls_celltab into table pt_celltab.
endif.
ls_celltab-fieldname = 'PROZS'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
endif.
if tb_pos-prozs > 0.
ls_celltab-fieldname = 'PROZS'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'MENGE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled..
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'VALORE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
endif.
if tb_pos-menge > 0.
ls_celltab-fieldname = 'MENGE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
insert ls_celltab into table pt_celltab.
*
ls_celltab-fieldname = 'VALORE'.
*
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
*
insert ls_celltab into table pt_celltab.
ls_celltab-fieldname = 'PROZS'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
insert ls_celltab into table pt_celltab.
endif.
endform.
" fill_celltab
*&---------------------------------------------------------------------*
*&
Form aggiorna_posizione
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form aggiorna_posizione.
data: va_flag_t4x,
*
*
va_flag_48.
refresh tb_pos_check.
tb_pos_check[] = tb_pos[].
loop at tb_pos.
**** calcolo valore medio
if not tb_pos-menge is initial.
clear: tb_pos-valore, valore_medio.
call function 'ZUAA_FIE113_01'
exporting
bukrs
= tb_testata-bukrs
gjahr
= va_gjahr
ord41
= tb_pos-ord41
ord42
= tb_pos-ord42
ord43
= tb_pos-ord43
ord44
= tb_pos-ord44
gdlgrp
= tb_pos-gdlgrp
meins
= tb_pos-meins
importing
valore_medio = valore_medio
exceptions
ecc_quant
= 1
ecc_val_med = 2
others
= 3.
if sy-subrc <> 0.
case sy-subrc.
when 1.
message e034(zcaa_wf) with tb_pos-meins.
when 2.
message e033(zcaa_wf).
endcase.
endif.
tb_pos-valore = tb_pos-menge * valore_medio.
modify tb_pos.
endif.
endloop.
endform.
" aggiorna_posizione
*&---------------------------------------------------------------------*
*&
Form invio_a
*&---------------------------------------------------------------------*
form invio_a.
loop at screen.
if screen-name = 'WA_POS-EIGKZ_A'.
*
or screen-name = 'WA_POS-ANLUE_A'.
*
screen-input = 0.
modify screen.
endif.
endloop.
****** Controllo 61
if wa_pos-ord41 = '61' and va_flag_61 is initial.
clear ztaa_fie113_wf_v.
select single * from ztaa_fie113_wf_v where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and ord41 = wa_pos-ord41
and ord42 = wa_pos-ord42
and ord43 = wa_pos-ord43
and ord44 = wa_pos-ord44.
if ztaa_fie113_wf_v-meins = 'VAL'.
va_flag_61 = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Controllo per tipologia 61'
textline1
= 'ATTENZIONE Per Tipologia 61, accettarsi'
textline2 = 'di avere inserito il valore nel campo Quantita'''
start_column = 25
start_row
= 6.
endif.
endif.
*** popup CI
if not wa_pos-zflag_ci is initial and va_flag_ci is initial.
va_flag_ci = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Includere "CI" Costi incrementativi'
textline1
= 'ATTENZIONE hai selezionato il FLAG "CI"'
textline2
= 'Saranno inclusi i costi incrementativi'
start_column = 25
start_row
= 6.
endif.
*
if tb_testata-ztipo = 'DI'.
if not
not
not
not
wa_pos-ord41_a
wa_pos-ord42_a
wa_pos-ord43_a
wa_pos-ord44_a
is
is
is
is
initial or
initial or
initial or
initial.
tb_testata-bukrs
= wa_pos-ord41_a
= wa_pos-ord42_a
= wa_pos-ord43_a
= wa_pos-ord44_a.
clear: wa_pos-eigkz_a.
endif.
endloop.
endif.
else.
loop at screen.
if screen-name = 'WA_POS-EIGKZ_A'
or screen-name = 'WA_POS-ANLUE_A'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
if not wa_pos-zflag is initial.
loop at screen.
if screen-name = 'WA_POS-ORD44_A'.
screen-input = 1.
modify screen.
endif.
endloop.
else.
loop at screen.
if screen-name = 'WA_POS-ORD44_A'.
screen-input = 0.
modify screen.
endif.
endloop.
endif.
if wa_pos-ord41_a = '44'.
loop at screen.
if screen-name = 'WA_POS-ORD44_A'.
screen-input = 1.
screen-required = 1.
modify screen.
endif.
endloop.
endif.
endform.
" invio_a
*&---------------------------------------------------------------------*
*&
Form invio_da
*&---------------------------------------------------------------------*
form invio_da.
****** Controllo 61
if wa_pos-ord41 = '61' and va_flag_61 is initial.
clear ztaa_fie113_wf_v.
select single * from ztaa_fie113_wf_v where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and ord41 = wa_pos-ord41
and ord42 = wa_pos-ord42
and ord43 = wa_pos-ord43
and ord44 = wa_pos-ord44.
if ztaa_fie113_wf_v-meins = 'VAL'.
va_flag_61 = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Controllo per tipologia 61'
textline1
= 'ATTENZIONE Per Tipologia 61, accettarsi'
textline2 = 'di avere inserito il valore nel campo Quantita'''
start_column = 25
start_row
= 6.
endif.
endif.
*** popup CI
if not wa_pos-zflag_ci is initial and va_flag_ci is initial.
va_flag_ci = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Includere "CI" Costi incrementativi'
textline1
= 'ATTENZIONE hai selezionato il FLAG "CI"'
textline2
= 'Saranno inclusi i costi incrementativi'
start_column = 25
start_row
= 6.
endif.
loop at screen.
if screen-name = 'WA_POS-EIGKZ'.
*
or screen-name = 'WA_POS-ANLUE'.
screen-input = 0.
modify screen.
endif.
endloop.
*
if tb_testata-ztipo = 'DI'.
if not wa_pos-ord41 is initial or
not wa_pos-ord42 is initial or
not wa_pos-ord43 is initial.
or screen-name = 'WA_POS-ANLUE'.
screen-input = 0.
screen-required = 0.
modify screen.
clear: wa_pos-eigkz.
endif.
endloop.
endif.
else.
if screen-name = 'WA_POS-EIGKZ'
or screen-name = 'WA_POS-ANLUE'.
screen-input = 1.
modify screen.
endif.
endif.
* endif.
if wa_pos-ord41 = '44'.
if tb_testata-zzrespbudg+2(2) = 'SR' or
tb_testata-zzrespbudg+2(2) = 'ER'.
loop at screen.
if screen-name = 'WA_POS-ORD44'.
screen-input = 1.
screen-required = 1.
modify screen.
endif.
endloop.
endif.
endif.
endform.
" invio_da
Z1AA_FIE113_01_MOD
*----------------------------------------------------------------------*
*
INCLUDE Z1AA_FIE113_01_MOD
*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0100 output.
set pf-status 'FIE113_01_100'.
set titlebar 'FIE113_01_100_T'.
endmodule.
" STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module user_command_0100 input.
clear okcode_2.
okcode_2 = okcode.
case okcode_2 .
when 'INVI'.
clear okcode.
when 'DETT'.
perform controlli_100.
if tb_testata-ztipo = 'DI'.
call screen 0200.
elseif tb_testata-ztipo = 'TR'.
call screen 0300.
endif.
when 'BACK'.
clear okcode.
leave program.
when 'EXIT'.
clear okcode.
leave program.
endcase.
endmodule.
" USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module user_command_0200 input.
data: et_index_rows type lvc_t_row,
l_dynnr
like t082s-dynnr,
et_row_no type lvc_t_roid,
va_answer.
clear okcode_2.
okcode_2 = okcode.
case okcode_2 .
*
*
*
*
*
*
*
when 'INVI'.
CALL METHOD grid->refresh_table_display.
clear okcode.
perform controlli_invio.
when 'INS'.
if tb_testata-ztipo = 'DI'.
perform invio_da.
else.
perform invio_da.
perform invio_a.
endif.
perform controlli_200.
perform inserisci.
when 'SIMU'.
if not tb_pos[] is initial.
perform estrai_cespiti.
if not tb_cespiti[] is initial.
call screen 0400.
else.
message e015(zcaa_wf).
endif.
else.
message e026(zcaa_wf).
endif.
when 'SELZ'.
perform bbs_call_direct.
*
when 'BACK'.
CALL METHOD grid->free.
clear va_answer.
call function 'POPUP_TO_CONFIRM_STEP'
exporting
defaultoption = 'Y'
textline1
= 'Sei sicuro di uscire?'
textline2
= 'I dati non saranno salvati'
titel
= 'Salvataggio'
start_column
= 25
start_row
= 6
cancel_display = 'X'
importing
answer
= va_answer.
if va_answer = 'J'.
clear okcode.
set screen 0.
leave screen.
endif.
when 'EXIT'.
CALL METHOD grid->free.
clear okcode.
leave program.
endcase.
endmodule.
" USER_COMMAND_0200
INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module alv_grid output.
va_gjahr = tb_testata-bldat(4).
perform aggiorna_posizione.
perform alv_grid.
endmodule.
" alv_grid
OUTPUT
*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0200 output.
set pf-status 'STATUS200'.
set titlebar 'TITLE200'.
endmodule.
" STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*&
Module ord41_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord41_check input.
check not wa_pos-ord41 is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '1'
i_ord4x = wa_pos-ord41.
*
*
*
*
*
*
if wa_pos-ord41 ne '44'.
concatenate wa_pos-ord41 tb_testata-zzrespbudg+1(1)
into wa_pos-ord44.
else.
if tb_testata-zzrespbudg+2(2) = 'SR' or
tb_testata-zzrespbudg+2(2) = 'ER'.
loop at screen.
if screen-name = 'WA_POS-ORD44'.
screen-input = 1.
modify screen.
endif.
endloop.
else.
concatenate wa_pos-ord41 tb_testata-zzrespbudg+1(2)
into wa_pos-ord44.
endif.
endif.
endmodule.
" ord41_check INPUT
*&---------------------------------------------------------------------*
*&
Module ord42_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord42_check input.
check not wa_pos-ord42 is initial.
clear t087j.
check not wa_pos-izwek
is initial.
endmodule.
" invzweck_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module ord43_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord43_check input.
check not wa_pos-ord43 is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '3'
i_ord4x = wa_pos-ord43.
endmodule.
" ord43_check INPUT
*&---------------------------------------------------------------------*
*&
Module ord44_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord44_check input.
check not wa_pos-ord44 is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '4'
i_ord4x = wa_pos-ord44.
endmodule.
" ord44_check INPUT
*&---------------------------------------------------------------------*
*&
Module gdlgrp_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gdlgrp_check input.
check not wa_pos-gdlgrp is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '5'
i_gdlgrp = wa_pos-gdlgrp.
endmodule.
" gdlgrp_check INPUT
*&---------------------------------------------------------------------*
*&
Module anlue_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module anlue_check input.
check not wa_pos-anlue is initial.
perform anlue_check.
endmodule.
" anlue_check INPUT
*&---------------------------------------------------------------------*
*&
Module testo OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module testo output.
* data documento esercizio
* tb_testata-budat = sy-datum.
* va_gjahr = sy-datum(4).
* concatenate sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum(4) into
*va_budat.
tb_testata-budat = tb_testata-bldat.
va_gjahr = tb_testata-bldat(4).
concatenate tb_testata-bldat+6(2) '.' tb_testata-bldat+4(2) '.'
tb_testata-bldat(4) into va_budat.
va_uname = sy-uname.
if not tb_testata-ztipo is initial.
loop at screen.
if screen-name = 'TB_TESTATA-ZTIPO'.
screen-input = 0.
modify screen.
endif.
endloop.
endif.
endmodule.
" testo
OUTPUT
*&---------------------------------------------------------------------*
*&
Module anlue_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module anlue_text_lesen output.
perform anlue_text_lesen.
endmodule.
" anlue_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module gdlgrp_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gdlgrp_text_lesen output.
perform gdlgrp_text_lesen.
endmodule.
" gdlgrp_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module zzrespbudg_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module zzrespbudg_check input.
*Unit Richiedente
data e_zzrespbudg(4).
select single zzdescr into va_unita from ztpsrespbudg
where zzrespbudg = tb_testata-zzrespbudg.
if sy-subrc ne 0.
e_zzrespbudg = tb_testata-zzrespbudg.
clear tb_testata-zzrespbudg.
message e009(zcaa_wf) with e_zzrespbudg .
endif.
authority-check object 'I_INGRP'
id 'TCD'
field
sy-tcode
*
ID 'IWERK' FIELD
dummy
id 'INGRP' field tb_testata-zzrespbudg+1(3).
if sy-subrc <> 0.
message e035(zcaa_wf) with sy-uname tb_testata-zzrespbudg.
endif.
endmodule.
" zzrespbudg_check
INPUT
*&---------------------------------------------------------------------*
*&
Module eigkz_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module eigkz_text_lesen output.
if wa_pos-eigkz is initial.
t097t-eigtx = space.
else.
select single * from t097t where eigkz = wa_pos-eigkz and
spras = sy-langu.
if sy-subrc
= 0.
t097t-eigtx
= t097t-eigtx.
else.
t097t-eigtx = text-008.
endif.
*
endif.
endmodule.
" eigkz_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module menge_pruefen INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module menge_pruefen.
*
*
endmodule.
" menge_pruefen INPUT
*&---------------------------------------------------------------------*
*&
Module meins_pruefen INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module meins_pruefen.
perform meins_pruefen using wa_pos-meins.
perform menge_meins_pruefen using wa_pos-meins wa_pos-menge.
endmodule.
" meins_pruefen INPUT
*&---------------------------------------------------------------------*
*&
Module help_meins INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module help_meins input.
perform help_meins_kaufm using wa_pos-meins.
endmodule.
" help_meins INPUT
*&---------------------------------------------------------------------*
*&
Module STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0400 output.
set pf-status 'STATUS400'.
set titlebar 'TITLE400'.
endmodule.
" STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
*&
Module alv_grid_400 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module alv_grid_400 output.
perform alv_log.
*
*
*
*
*
* is_sort-fieldname = 'BUZEI'.
* is_sort-up = 'X'.
* is_sort-subtot = 'X'.
* append is_sort to it_sort.
*
*
* perform fieldacat_400.
* perform escludi.
*
** PERFORM refresh_alv_log.
*
** loop at tb_cespiti.
**
read table tb_pos with key bukrs = tb_cespiti-bukrs
**
buzei = tb_cespiti-buzei.
**
**
if sy-subrc ne 0.
**
delete tb_cespiti.
**
endif.
** endloop.
* sort tb_cespiti by bukrs buzei anln1 anln2 zujhr.
* delete adjacent duplicates from tb_cespiti.
* if g_custom_container_4 is initial.
*
create object g_custom_container_4
*
exporting container_name = g_container_4.
*
create object grid_4
*
exporting i_parent = g_custom_container_4.
*
** make the ALV Grid Control editable and optimize the width of the
*colum
*
gs_layout_4-edit = ' '.
*
gs_layout_4-cwidth_opt = 'X'.
*
gs_layout_4-zebra = 'X'.
*
*
*
create object gr_event_handler .
*
set handler gr_event_handler->handle_double_click for grid_4 .
*
set handler gr_event_handler->handle_hotspot_click for grid_4 .
*
*
*
** set table for first display
*
call method grid_4->set_table_for_first_display
*
exporting
*
it_toolbar_excluding = it_tooolbar_excluding
*
i_structure_name = 'ZSAA_FIE113_WF_CESPITI'
*
is_layout
= gs_layout_4
*
changing
*
it_sort
= it_sort[]
*
it_outtab
= tb_cespiti[]
*
it_fieldcatalog = gt_fieldcat_lvc_4[].
*
** make the ALV Grid Control ready for input
*
call method grid_4->set_ready_for_input
*
exporting
*
i_ready_for_input = 0.
* else.
*
call method grid_4->refresh_table_display.
*
* endif.
*
when 'SIMU'.
perform old_fvi.
perform babi_check.
when 'SAVE'.
perform save.
when 'BACK'.
clear okcode.
if not gr_container_log is initial.
call method gr_grid_log->free.
call method gr_container_log->free.
call method gr_container_d0100->free.
call method cl_gui_cfw=>flush.
clear: gr_grid_log, gr_container_log.
refresh gt_log.
endif.
set screen 0.
leave screen.
when 'EXIT'.
if not gr_container_log is initial.
call method gr_grid_log->free.
call method gr_container_log->free.
call method cl_gui_cfw=>flush.
clear: gr_grid_log, gr_container_log.
refresh gt_log.
endif.
clear okcode.
leave program.
endcase.
endmodule.
" USER_COMMAND_0400 INPUT
*&---------------------------------------------------------------------*
*&
Module bukrs_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module bukrs_check input.
* Controlli Societ
data e_bukrs(4).
select single butxt into va_societa from t001 where
bukrs = tb_testata-bukrs.
if sy-subrc ne 0.
e_bukrs = tb_testata-bukrs.
clear tb_testata-bukrs.
message e002(zcaa_wf) with e_bukrs .
endif.
endmodule.
" bukrs_check INPUT
*&---------------------------------------------------------------------*
*&
Module ztipo_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ztipo_check input.
* Controllo tipo operazione
data e_ztipo(2).
select single ddtext into va_tipo from dd07t
where domname = 'ZDAA_ZTIPO'
and ddlanguage = sy-langu
and domvalue_l = tb_testata-ztipo.
if sy-subrc ne 0.
e_ztipo = tb_testata-ztipo.
clear tb_testata-ztipo.
message e005(zcaa_wf) with e_ztipo .
endif.
endmodule.
" ztipo_check INPUT
*&---------------------------------------------------------------------*
*&
Module zmotivo_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module zmotivo_check input.
* Motivo operazione
data e_zmotivo(2).
select single zdescizione into va_motivo from ztaa_fie113_wf_z
where ztipo = tb_testata-ztipo
and zmotivo = tb_testata-zmotivo.
if sy-subrc ne 0.
e_zmotivo = tb_testata-zmotivo.
clear tb_testata-zmotivo.
message e007(zcaa_wf) with e_zmotivo .
endif.
if tb_testata-ztipo = 'DI'.
if tb_testata-zmotivo = 2.
if tb_testata-note is initial.
message w036(zcaa_wf).
endif.
endif.
endif.
endmodule.
" zmotivo_check INPUT
*&---------------------------------------------------------------------*
*&
Module picture OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module picture output.
perform create_picture_control.
perform fill_picture_control.
endmodule.
" picture OUTPUT
*&---------------------------------------------------------------------*
*&
Module logo OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module logo output.
perform create_picture_control_logo.
perform fill_picture_control_logo.
endmodule.
" logo OUTPUT
* OUTPUT MODULE FOR TABSTRIP 'TRASFERIMENTI': SETS ACTIVE TAB
module trasferimenti_active_tab_set output.
trasferimenti-activetab = g_trasferimenti-pressed_tab.
case g_trasferimenti-pressed_tab.
when c_trasferimenti-tab1.
g_trasferimenti-subscreen = '0301'.
when c_trasferimenti-tab2.
g_trasferimenti-subscreen = '0302'.
when c_trasferimenti-tab3.
g_trasferimenti-subscreen = '0303'.
when others.
*
DO NOTHING
endcase.
endmodule.
* INPUT MODULE FOR TABSTRIP 'TRASFERIMENTI': GETS ACTIVE TAB
module trasferimenti_active_tab_get input.
okcode = sy-ucomm.
case okcode.
when c_trasferimenti-tab1.
g_trasferimenti-pressed_tab = c_trasferimenti-tab1.
when c_trasferimenti-tab2.
g_trasferimenti-pressed_tab = c_trasferimenti-tab2.
when c_trasferimenti-tab3.
g_trasferimenti-pressed_tab = c_trasferimenti-tab3.
when others.
*
DO NOTHING
endcase.
endmodule.
*&---------------------------------------------------------------------*
*&
Module gdlgrp_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gdlgrp_text_lesen_a output.
data: ld_t087s like t087s.
*
check not wa_pos-gdlgrp_a is initial.
ld_t087s-gdlgrp = wa_pos-gdlgrp_a.
endif.
endmodule.
" eigkz_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*&
Module ord41_check_a INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord41_check_a input.
check not wa_pos-ord41_a is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '1'
i_ord4x = wa_pos-ord41_a.
if wa_pos-zflag is initial.
if wa_pos-ord41_a ne '44'.
concatenate wa_pos-ord41_a tb_testata-zzrespbudg+1(1)
into wa_pos-ord44_a.
else.
if tb_testata-zzrespbudg+2(2) = 'SR' or
tb_testata-zzrespbudg+2(2) = 'ER'.
loop at screen.
if screen-name = 'WA_POS-ORD44_A'.
screen-input = 1.
modify screen.
endif.
endloop.
else.
concatenate wa_pos-ord41_a tb_testata-zzrespbudg+1(2)
into wa_pos-ord44_a.
endif.
endif.
endif.
endmodule.
" ord41_check_a INPUT
*&---------------------------------------------------------------------*
*&
Module ord42_check_a INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord42_check_a input.
check not wa_pos-ord42_a is initial.
call function 'AISC_CHECK_EVALUATION_GROUP'
exporting
i_ordnr = '2'
i_ord4x = wa_pos-ord42_a.
endmodule.
" ord42_check_a INPUT
*&---------------------------------------------------------------------*
*&
Module ord43_check_a INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ord43_check_a input.
check not wa_pos-ord43_a is initial.
*&
Module gsber_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gsber_text_lesen output.
if wa_pos-gsber_a is initial.
tgsbt-gtext = space.
else.
perform gsber_text using tgsbt-gtext wa_pos-gsber_a.
endif.
endmodule.
" gsber_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Form gsber_text
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_TGSBT_GTEXT text
*
-->P_WA_POS_GSBER text
*----------------------------------------------------------------------*
form gsber_text using text gsber.
*
*local: *tgsbt.
*
Geschbereichstext lesen
select single * from tgsbt into tgsbt where gsber = gsber
and
spras = sy-langu.
if sy-subrc = 0.
text
= tgsbt-gtext.
else.
text
= text-001.
endif.
*
endform.
" gsber_text
*&---------------------------------------------------------------------*
*&
Module kostl_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module kostl_text_lesen output.
*
*
Aufruf Leseroutine
perform kostl_lesen
using wa_pos-kostl_a wa_pos-gsber_a.
endmodule.
" kostl_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module ok_code_transmit INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module ok_code_transmit input.
call function 'TABSTRIP_OKCODE_TRANSMIT'
exporting
i_okcode
= okcode
importing
e_first_tab_reached = gs_tab-first_reached
e_last_tab_reached = gs_tab-last_reached.
endmodule.
" ok_code_transmit INPUT
*&---------------------------------------------------------------------*
*&
Module gsber_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gsber_text_lesen_a output.
if wa_pos-gsber_a is initial.
tgsbt-gtext = space.
else.
perform gsber_text using tgsbt-gtext wa_pos-gsber_a.
endif.
endmodule.
" gsber_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*&
Module kostl_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module kostl_text_lesen_a output.
if wa_pos-kostl_a is initial.
cskt-ktext = space.
exit.
endif.
perform kostl_lesen
endmodule.
" kostl_text_lesen_a OUTPUT
*&---------------------------------------------------------------------*
*&
Module alv_450 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module alv_450 output.
*
perform fieldacat_popup.
PERFORM escludi.
if g_custom_container_popup is initial.
create object g_custom_container_popup
exporting container_name = g_container_popup.
create object grid_popup
exporting i_parent = g_custom_container_popup.
* make the ALV Grid Control editable and optimize the width of the colum
gs_layout_popup-no_toolbar = 'X'.
*
gs_layout-cwidth_opt = 'X'.
gs_layout_popup-zebra = 'X'.
* set table for first display
call method grid_popup->set_table_for_first_display
exporting
it_toolbar_excluding = it_tooolbar_excluding
i_structure_name = 'ZSAA_FIE113_WF_VIEW'
is_layout
= gs_layout_popup
changing
it_outtab
= tb_fogli_view[]
it_fieldcatalog
= gt_fieldcat_lvc_popup[].
*
*
*
**
*
*
*
endmodule.
" USER_COMMAND_0450 INPUT
*&---------------------------------------------------------------------*
*&
Module STATUS_0450 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0450 output.
set pf-status 'STATUS450'.
set titlebar 'TITLE450'.
endmodule.
" STATUS_0450 OUTPUT
*&---------------------------------------------------------------------*
*&
Module umwkz_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module umwkz_text_lesen output.
perform umwkz_text_lesen.
endmodule.
" umwkz_text_lesen OUTPUT
*&---------------------------------------------------------------------*
*&
Module screen OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module screen_valori output.
****** Controllo 61
if wa_pos-ord41 = '61' and va_flag_61 is initial.
clear ztaa_fie113_wf_v.
select single * from ztaa_fie113_wf_v where bukrs = tb_testata-bukrs
and gjahr = va_gjahr
and ord41 = wa_pos-ord41
and ord42 = wa_pos-ord42
and ord43 = wa_pos-ord43
and ord44 = wa_pos-ord44.
if ztaa_fie113_wf_v-meins = 'VAL'.
va_flag_61 = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Controllo per tipologia 61'
textline1
= 'ATTENZIONE Per Tipologia 61, accettarsi'
textline2 = 'di avere inserito il valore nel campo Quantita'''
start_column = 25
start_row
= 6.
endif.
endif.
*** popup CI
if not wa_pos-zflag_ci is initial and va_flag_ci is initial.
va_flag_ci = 'X'.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
titel
= 'Includere "CI" Costi incrementativi'
textline1
= 'ATTENZIONE hai selezionato il FLAG "CI"'
textline2
= 'Saranno inclusi i costi incrementativi'
start_column = 25
start_row
= 6.
endif.
if tb_testata-ztipo = 'DI'.
if wa_pos-ord41 is initial.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-MEINS'
or screen-name = 'WA_POS-VALORE'.
screen-input = 0.
modify screen.
endif.
endloop.
else.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-MEINS'
or screen-name = 'WA_POS-VALORE'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
else.
if wa_pos-ord41 is initial.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-MEINS'
or screen-name = 'WA_POS-VALORE'.
screen-input = 0.
modify screen.
endif.
endloop.
else.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 0.
modify screen.
endif.
endloop.
endif.
endif.
if wa_pos-valore > 0.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-MEINS'.
screen-input = 0.
modify screen.
endif.
if screen-name = 'WA_POS-VALORE'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
if wa_pos-prozs > 0.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-VALORE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 0.
modify screen.
endif.
if screen-name = 'WA_POS-PROZS'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
if wa_pos-menge > 0.
loop at screen.
if screen-name = 'WA_POS-VALORE'
or screen-name = 'WA_POS-PROZS'.
screen-input = 0.
modify screen.
endif.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
if tb_testata-ztipo = 'DI'.
if not
not
not
not
wa_pos-ord41 is initial or
wa_pos-ord42 is initial or
wa_pos-ord43 is initial or
wa_pos-gdlgrp is initial.
bukrs = tb_testata-bukrs
gjahr = va_gjahr
ord41 = wa_pos-ord41
ord42 = wa_pos-ord42
ord43 = wa_pos-ord43
ord44 = wa_pos-ord44
gdlgrp = wa_pos-gdlgrp.
bukrs = tb_testata-bukrs
gjahr = va_gjahr
ord41 = wa_pos-ord41
ord42 = wa_pos-ord42
ord43 = wa_pos-ord43
ord44 = wa_pos-ord44
gdlgrp = space.
endif.
if sy-subrc = 0.
wa_pos-zflag_t4x = 'X'.
wa_pos-meins = ztaa_fie113_wf_v-meins.
if wa_pos-zujhr is initial .
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 1.
screen-required = 1.
modify screen.
endif.
if screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-VALORE'.
screen-input = 0.
modify screen.
endif.
endloop.
else.
clear: wa_pos-menge, wa_pos-meins.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 0.
modify screen.
endif.
if screen-name = 'WA_POS-PROZS'
or screen-name = 'WA_POS-VALORE'.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
else.
loop at screen.
if screen-name = 'WA_POS-MENGE'
or screen-name = 'WA_POS-MEINS'.
screen-input = 0.
modify screen.
endif.
endloop.
endif.
endif.
endif.
endmodule.
" screen OUTPUT
*&---------------------------------------------------------------------*
*&
Module screen_da OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module screen_da output.
perform invio_da.
endmodule.
" screen_da OUTPUT
*&---------------------------------------------------------------------*
*&
Module screen_a OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module screen_a output.
perform invio_a.
endmodule.
" screen_a OUTPUT
*&---------------------------------------------------------------------*
*&
Module status_0300 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0300 output.
set pf-status 'STATUS200'.
set titlebar 'TITLE300'.
endmodule.
" status_0300 OUTPUT
*&---------------------------------------------------------------------*
*&
Module controllo_300 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module controllo_300 output.
if tb_testata-ztipo = 'TR'.
if tb_testata-zmotivo = 8.
wa_pos-zflag = 'X'.
else.
wa_pos-zflag = space.
endif.
endif.
endmodule.
" controllo_300 OUTPUT
*&---------------------------------------------------------------------*
*&
Module help_zzrespbudg INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module help_zzrespbudg input.
data tb_ztpsrespbudg type ztpsrespbudg occurs 0 with header line.
data sel_ztpsrespbudg like tb_ztpsrespbudg occurs 0 with header line.
data htab type help_value occurs 0 with header line.
refresh: tb_ztpsrespbudg, sel_ztpsrespbudg.
select * into table tb_ztpsrespbudg from ztpsrespbudg.
sort tb_ztpsrespbudg by zzrespbudg.
delete adjacent duplicates from tb_ztpsrespbudg comparing zzrespbudg.
refresh htab.
clear htab.
htab-tabname = 'ZTPSRESPBUDG'.
htab-fieldname = 'ZZRESPBUDG'.
htab-selectflag = 'X'.
append htab.
clear htab.
htab-tabname = 'ZTPSRESPBUDG'.
htab-fieldname = 'ZZDESCR'.
htab-selectflag = ' '.
append htab.
* clear htab.
* htab-tabname = 'T024I'.
* htab-fieldname = 'INNAM'.
*
*
endmodule.
" help_zzrespbudg INPUT
*&---------------------------------------------------------------------*
*&
Module kostl_pruefen INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module kostl_pruefen input.
if wa_pos-kostl_a is initial.
exit.
endif.
clear csks.
select single bkzkp into csks-bkzkp from csks
where kokrs = tb_testata-bukrs
and kostl = wa_pos-kostl_a
and datbi => tb_testata-bldat.
if sy-subrc ne 0.
message e074(zcaa_wf) with wa_pos-kostl_a.
else.
if csks-bkzkp = 'X'.
message e074(zcaa_wf) with wa_pos-kostl_a.
endif.
endif.
endmodule.
" kostl_pruefen INPUT
*&---------------------------------------------------------------------*
*&
Module gsber_check_a INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module gsber_check_a input.
if wa_pos-gsber_a is initial.
exit.
endif.
select single * from tgsb where gsber = wa_pos-gsber_a.
if sy-subrc ne 0.
message e075(zcaa_wf) with wa_pos-gsber_a.
endif.
endmodule.
" gsber_check_a INPUT
*&---------------------------------------------------------------------*
*&
Module bldat_check INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module bldat_check input.
** controllo data evento > sy-datum
if tb_testata-bldat > sy-datum.
message w076(zcaa_wf) with tb_testata-bldat sy-datum .
endif.
endmodule.
" bldat_check
INPUT