primeiro commit
This commit is contained in:
10
.abapgit.xml
Normal file
10
.abapgit.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<DATA>
|
||||||
|
<MASTER_LANGUAGE>E</MASTER_LANGUAGE>
|
||||||
|
<STARTING_FOLDER>/src/</STARTING_FOLDER>
|
||||||
|
<FOLDER_LOGIC>PREFIX</FOLDER_LOGIC>
|
||||||
|
</DATA>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
10
src/package.devc.xml
Normal file
10
src/package.devc.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<DEVC>
|
||||||
|
<CTEXT>Pacote Bruno O. Santos</CTEXT>
|
||||||
|
</DEVC>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
||||||
590
src/zbos_alv_iva.prog.abap
Normal file
590
src/zbos_alv_iva.prog.abap
Normal file
@@ -0,0 +1,590 @@
|
|||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*& Report ZBOS_ALV_IVA
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*&
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
REPORT zbos_alv_iva.
|
||||||
|
|
||||||
|
***CLASS lcl_event_receiver DEFINITION.
|
||||||
|
***CLASS lcl_event_receiver IMPLEMENTATION.
|
||||||
|
*** METHOD handle_double_click.
|
||||||
|
*** DATA: l_lines TYPE i.
|
||||||
|
*** DATA: lt_fieldcat_baixo TYPE lvc_t_fcat.
|
||||||
|
***
|
||||||
|
*** DESCRIBE TABLE gt_dados_cima LINES l_lines.
|
||||||
|
***
|
||||||
|
***
|
||||||
|
*** ENDMETHOD. "handle_double_click
|
||||||
|
***ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_event_handler DEFINITION.
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
METHODS handle_hotspot_click
|
||||||
|
FOR EVENT hotspot_click OF cl_gui_alv_grid
|
||||||
|
IMPORTING e_column_id
|
||||||
|
es_row_no.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_event_handler IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD handle_hotspot_click.
|
||||||
|
PERFORM handle_hotspot_click
|
||||||
|
USING es_row_no-row_id
|
||||||
|
e_column_id-fieldname.
|
||||||
|
ENDMETHOD. "handle_hotspot_click
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
|
||||||
|
BEGIN OF wy_alv_cima,
|
||||||
|
regra(15) TYPE c,
|
||||||
|
campos TYPE string,
|
||||||
|
tabela(30) TYPE c,
|
||||||
|
icon(4) TYPE c,
|
||||||
|
END OF wy_alv_cima,
|
||||||
|
|
||||||
|
BEGIN OF wy_alv_baixo,
|
||||||
|
campo TYPE string,
|
||||||
|
elemento TYPE string,
|
||||||
|
END OF wy_alv_baixo,
|
||||||
|
ty_alv_baixo TYPE TABLE OF wy_alv_baixo,
|
||||||
|
ty_alv_cima TYPE TABLE OF wy_alv_cima.
|
||||||
|
|
||||||
|
DATA: gt_dados_baixo TYPE ty_alv_baixo.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_dd03l,
|
||||||
|
tabname(30) TYPE c,
|
||||||
|
fieldname(30) TYPE c,
|
||||||
|
END OF ty_dd03l,
|
||||||
|
|
||||||
|
BEGIN OF wy_dados,
|
||||||
|
regra(15) TYPE c,
|
||||||
|
campos TYPE string,
|
||||||
|
tabela(90) TYPE c,
|
||||||
|
alv_campos LIKE gt_dados_baixo,
|
||||||
|
END OF wy_dados.
|
||||||
|
|
||||||
|
DATA: event_receiver TYPE REF TO lcl_event_handler.
|
||||||
|
|
||||||
|
DATA: it_tab TYPE filetable,
|
||||||
|
wa_tab TYPE LINE OF filetable,
|
||||||
|
gt_tab TYPE TABLE OF string,
|
||||||
|
gt_fieldcat TYPE lvc_t_fcat,
|
||||||
|
ls_tab TYPE string,
|
||||||
|
lv_pesquisa TYPE string,
|
||||||
|
ctl_alv_moni_hi TYPE REF TO cl_gui_alv_grid,
|
||||||
|
ctl_alv_moni_po TYPE REF TO cl_gui_alv_grid.
|
||||||
|
|
||||||
|
|
||||||
|
*DATA:it_tab TYPE filetable,
|
||||||
|
* wa_tab TYPE LINE OF filetable,
|
||||||
|
* gt_tab TYPE TABLE OF string,
|
||||||
|
* ls_tab TYPE string,
|
||||||
|
* lv_pesquisa TYPE string.
|
||||||
|
DATA: o_splitter TYPE REF TO cl_gui_splitter_container,
|
||||||
|
o_parent_cima TYPE REF TO cl_gui_container,
|
||||||
|
o_parent_baixo TYPE REF TO cl_gui_container.
|
||||||
|
|
||||||
|
DATA: gd_subrc TYPE i,
|
||||||
|
gt_dados TYPE TABLE OF wy_dados, """tabela todos os dados
|
||||||
|
gt_dados_cima TYPE TABLE OF wy_alv_cima . """tabela alv de cima os dados
|
||||||
|
|
||||||
|
*DATA gt_alv.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
|
||||||
|
*PARAMETERS: p_tab(13) TYPE c NO-DISPLAY. " Nome da tabela
|
||||||
|
PARAMETERS: p_l_ini TYPE i DEFAULT '1'. " Número de linhas que vai ser ignoradas
|
||||||
|
PARAMETERS: p_file TYPE string. " File Name DEFAULT 'c:\test.csv',
|
||||||
|
SELECTION-SCREEN END OF BLOCK b1.
|
||||||
|
|
||||||
|
|
||||||
|
AT SELECTION-SCREEN.
|
||||||
|
* IF p_tab IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o numero da condição' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* IF p_l_ini IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o numero de linhas de cabeçalho' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* ELSEIF p_file IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o arquivo' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* Localizar o diretório com os arquivos XLS
|
||||||
|
|
||||||
|
PERFORM f_busca_arquivo CHANGING p_file.
|
||||||
|
|
||||||
|
START-OF-SELECTION.
|
||||||
|
|
||||||
|
*Busca arquivos excel.
|
||||||
|
|
||||||
|
CALL SCREEN 100.
|
||||||
|
|
||||||
|
* PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
|
||||||
|
END-OF-SELECTION.
|
||||||
|
|
||||||
|
* CHECK NOT gt_msg IS INITIAL.
|
||||||
|
|
||||||
|
* PERFORM f_alv_msg.
|
||||||
|
|
||||||
|
REFRESH gt_tab.
|
||||||
|
|
||||||
|
FORM f_busca_arquivo CHANGING p_p_file.
|
||||||
|
|
||||||
|
REFRESH: it_tab.
|
||||||
|
CALL METHOD cl_gui_frontend_services=>file_open_dialog
|
||||||
|
EXPORTING
|
||||||
|
window_title = 'Select File'
|
||||||
|
default_filename = '*.csv'
|
||||||
|
multiselection = ' '
|
||||||
|
CHANGING
|
||||||
|
file_table = it_tab
|
||||||
|
rc = gd_subrc.
|
||||||
|
READ TABLE it_tab INTO wa_tab INDEX 1.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
p_file = wa_tab-filename.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM f_upload_excel_file.
|
||||||
|
|
||||||
|
REFRESH gt_tab.
|
||||||
|
|
||||||
|
DATA:ls_linha TYPE wy_dados,
|
||||||
|
ls_dados_cima TYPE wy_alv_cima,
|
||||||
|
ls_dados_baixo TYPE wy_alv_baixo.
|
||||||
|
|
||||||
|
CALL METHOD cl_gui_frontend_services=>gui_upload
|
||||||
|
EXPORTING
|
||||||
|
filename = p_file
|
||||||
|
filetype = 'ASC'
|
||||||
|
read_by_line = 'X'
|
||||||
|
codepage = space
|
||||||
|
CHANGING
|
||||||
|
data_tab = gt_tab
|
||||||
|
EXCEPTIONS
|
||||||
|
file_open_error = 1
|
||||||
|
file_read_error = 2
|
||||||
|
no_batch = 3
|
||||||
|
gui_refuse_filetransfer = 4
|
||||||
|
invalid_type = 5
|
||||||
|
no_authority = 6
|
||||||
|
unknown_error = 7
|
||||||
|
bad_data_format = 8
|
||||||
|
header_not_allowed = 9
|
||||||
|
separator_not_allowed = 10
|
||||||
|
header_too_long = 11
|
||||||
|
unknown_dp_error = 12
|
||||||
|
access_denied = 13
|
||||||
|
dp_out_of_memory = 14
|
||||||
|
disk_full = 15
|
||||||
|
dp_timeout = 16
|
||||||
|
not_supported_by_gui = 17
|
||||||
|
error_no_gui = 18
|
||||||
|
OTHERS = 19.
|
||||||
|
|
||||||
|
IF NOT p_l_ini IS INITIAL.
|
||||||
|
DO p_l_ini TIMES.
|
||||||
|
DELETE gt_tab INDEX 1.
|
||||||
|
ENDDO.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
LOOP AT gt_tab INTO ls_tab.
|
||||||
|
|
||||||
|
CLEAR ls_linha.
|
||||||
|
|
||||||
|
SPLIT ls_tab AT ';' INTO ls_linha-regra
|
||||||
|
ls_linha-campos.
|
||||||
|
|
||||||
|
PERFORM valida_tabela USING ls_linha.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND ls_linha TO gt_dados.
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING ls_linha TO ls_dados_cima.
|
||||||
|
ls_dados_cima-icon = '@90@'.
|
||||||
|
APPEND ls_dados_cima TO gt_dados_cima.
|
||||||
|
|
||||||
|
|
||||||
|
CLEAR: ls_linha,
|
||||||
|
ls_dados_cima.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
PERFORM monta_alv.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM valida_tabela USING p_linha TYPE wy_dados.
|
||||||
|
|
||||||
|
DATA:lt_campos TYPE TABLE OF string,
|
||||||
|
lv_campo TYPE string,
|
||||||
|
lt_campos_tab TYPE TABLE OF string,
|
||||||
|
lv_campos_tab TYPE wy_alv_baixo,
|
||||||
|
lt_colunas TYPE TABLE OF string,
|
||||||
|
lv_coluna TYPE string.
|
||||||
|
|
||||||
|
SPLIT p_linha-campos AT '/' INTO TABLE lt_campos.
|
||||||
|
|
||||||
|
"converter
|
||||||
|
LOOP AT lt_campos INTO lv_campo.
|
||||||
|
|
||||||
|
*** de/para dos campos
|
||||||
|
*** Form com case entra nome sai prefixo, campo e elemento
|
||||||
|
CONDENSE lv_campo NO-GAPS.
|
||||||
|
PERFORM busca_campo CHANGING lv_campo
|
||||||
|
lv_campos_tab.
|
||||||
|
|
||||||
|
IF lv_campo IS NOT INITIAL.
|
||||||
|
APPEND lv_campo TO lt_colunas.
|
||||||
|
APPEND lv_campos_tab TO p_linha-alv_campos.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DATA: lt_dd03l TYPE TABLE OF ty_dd03l,
|
||||||
|
ls_dd03l TYPE ty_dd03l,
|
||||||
|
lt_cond TYPE TABLE OF fieldname,
|
||||||
|
lt_fields TYPE TABLE OF string,
|
||||||
|
lt_table_unique TYPE TABLE OF ty_dd03l,
|
||||||
|
ls_unique TYPE ty_dd03l,
|
||||||
|
lv_table_name(25) TYPE c. ""tablename.
|
||||||
|
|
||||||
|
** CHECK lv_pesquisa IS NOT INITIAL.
|
||||||
|
|
||||||
|
* PARAMETERS campos TYPE string DEFAULT 'Exemplo: MATNR,LIFNR,WERKS'.
|
||||||
|
** SPLIT lv_pesquisa AT ',' INTO TABLE lt_fields.
|
||||||
|
|
||||||
|
SELECT tabname fieldname
|
||||||
|
FROM dd03l
|
||||||
|
INTO TABLE lt_dd03l
|
||||||
|
WHERE keyflag = 'X'
|
||||||
|
AND tabname LIKE '/VTIVA/COND%'
|
||||||
|
AND fieldname NOT IN ('MANDT', '.INCLUDE', 'VTIVA_DET').
|
||||||
|
|
||||||
|
SORT lt_dd03l BY tabname.
|
||||||
|
lt_table_unique = lt_dd03l.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM lt_table_unique COMPARING tabname.
|
||||||
|
SORT lt_table_unique BY tabname.
|
||||||
|
|
||||||
|
LOOP AT lt_table_unique INTO ls_unique.
|
||||||
|
|
||||||
|
LOOP AT lt_dd03l INTO ls_dd03l WHERE tabname = ls_unique-tabname.
|
||||||
|
|
||||||
|
IF ls_dd03l-fieldname+2(1) = '_'.
|
||||||
|
APPEND ls_dd03l-fieldname+3 TO lt_cond.
|
||||||
|
ELSE.
|
||||||
|
APPEND ls_dd03l-fieldname TO lt_cond.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
SORT lt_cond.
|
||||||
|
SORT lt_colunas. "lt_fields.
|
||||||
|
**comparar tabelas
|
||||||
|
IF lt_cond = lt_colunas. "lt_fields.
|
||||||
|
lv_table_name = ls_unique-tabname.
|
||||||
|
IF p_linha-tabela IS INITIAL.
|
||||||
|
p_linha-tabela = lv_table_name.
|
||||||
|
ELSE.
|
||||||
|
p_linha-tabela = p_linha-tabela && ` - ` && lv_table_name.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
CLEAR lt_cond.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
*** IF lv_table_name IS INITIAL.
|
||||||
|
** "Sugestao de tabela
|
||||||
|
|
||||||
|
*** WRITE: / 'Nenhuma tabela encontrada com todos os campos necessários.REGRA: ', p_linha-regra .
|
||||||
|
*** LOOP AT p_linha-alv_campos INTO lv_campos_tab.
|
||||||
|
*** WRITE: / lv_campos_tab-campo, ' ', lv_campos_tab-elemento.
|
||||||
|
***
|
||||||
|
*** ENDLOOP.
|
||||||
|
*** WRITE: /.
|
||||||
|
*** WRITE: /.
|
||||||
|
*** ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
|
||||||
|
FORM monta_alv.
|
||||||
|
|
||||||
|
DATA: lt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
DATA: lt_exit_events TYPE slis_t_event_exit.
|
||||||
|
DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
* DATA: event_receiver TYPE REF TO lcl_event_handler.
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OBJECT o_splitter
|
||||||
|
EXPORTING
|
||||||
|
parent = cl_gui_container=>default_screen
|
||||||
|
rows = 2
|
||||||
|
columns = 1.
|
||||||
|
|
||||||
|
|
||||||
|
CALL METHOD o_splitter->get_container
|
||||||
|
EXPORTING
|
||||||
|
row = 1
|
||||||
|
column = 1
|
||||||
|
RECEIVING
|
||||||
|
container = o_parent_cima.
|
||||||
|
|
||||||
|
CALL METHOD o_splitter->get_container
|
||||||
|
EXPORTING
|
||||||
|
row = 1
|
||||||
|
column = 2
|
||||||
|
RECEIVING
|
||||||
|
container = o_parent_baixo.
|
||||||
|
|
||||||
|
CALL METHOD o_splitter->set_row_height
|
||||||
|
EXPORTING
|
||||||
|
id = 1
|
||||||
|
height = 70.
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OBJECT ctl_alv_moni_hi
|
||||||
|
EXPORTING
|
||||||
|
i_parent = o_parent_cima.
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OBJECT ctl_alv_moni_po
|
||||||
|
EXPORTING
|
||||||
|
i_parent = o_parent_baixo.
|
||||||
|
|
||||||
|
|
||||||
|
PERFORM get_layout CHANGING lt_fieldcat.
|
||||||
|
|
||||||
|
ls_layout-zebra = abap_true.
|
||||||
|
ls_layout-cwidth_opt = abap_true.
|
||||||
|
|
||||||
|
CREATE OBJECT event_receiver.
|
||||||
|
SET HANDLER event_receiver->handle_hotspot_click FOR ctl_alv_moni_hi.
|
||||||
|
|
||||||
|
* Send data to ALV grid
|
||||||
|
CALL METHOD ctl_alv_moni_hi->set_table_for_first_display
|
||||||
|
EXPORTING
|
||||||
|
is_layout = ls_layout ""wa_layout
|
||||||
|
i_structure_name = 'WY_ALV_CIMA'
|
||||||
|
* is_variant = wa_variant
|
||||||
|
* i_save = 'A'
|
||||||
|
* it_toolbar_excluding = t_exclude_fcode
|
||||||
|
CHANGING
|
||||||
|
it_fieldcatalog = lt_fieldcat
|
||||||
|
it_outtab = gt_dados_cima. "'t_nfe.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM get_layout CHANGING pt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
|
||||||
|
|
||||||
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'REGRA'.
|
||||||
|
ls_fcat-scrtext_m = 'Regra'.
|
||||||
|
ls_fcat-col_pos = 1.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'CAMPOS'.
|
||||||
|
ls_fcat-scrtext_m = 'Campos'.
|
||||||
|
ls_fcat-col_pos = 2.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'TABELA'.
|
||||||
|
ls_fcat-scrtext_m = 'Tabela'.
|
||||||
|
ls_fcat-col_pos = 3.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'ICON'.
|
||||||
|
ls_fcat-scrtext_m = 'det.'.
|
||||||
|
ls_fcat-hotspot = 'X'.
|
||||||
|
ls_fcat-just = 'C'.
|
||||||
|
ls_fcat-col_pos = 4.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
*** APPEND INITIAL LINE TO pt_fieldcat ASSIGNING <fs_fcat>.
|
||||||
|
*** <fs_fcat>-fieldname = 'ICON'.
|
||||||
|
*** ls_fcat-scrtext_m = 'Tabela'.
|
||||||
|
*** ls_fcat-col_pos = 3.
|
||||||
|
*** <fs_fcat>-icon = 'X'.
|
||||||
|
*** <fs_fcat>-outputlen = 3.
|
||||||
|
*** <fs_fcat>-hotspot = 'X'.
|
||||||
|
*** <fs_fcat>-just = 'C'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM handle_hotspot_click USING p_row_id TYPE lvc_s_roid-row_id
|
||||||
|
p_fieldname TYPE lvc_s_col-fieldname.
|
||||||
|
|
||||||
|
|
||||||
|
* DATA: lt_dados TYPE ty_alv_baixo.
|
||||||
|
DATA: lt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
DATA: ls_dados TYPE wy_dados.
|
||||||
|
|
||||||
|
IF p_fieldname = 'ICON' .
|
||||||
|
|
||||||
|
READ TABLE gt_dados INTO ls_dados INDEX p_row_id.
|
||||||
|
|
||||||
|
* ls_dados-alv_campos
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'CAMPO'.
|
||||||
|
ls_fcat-scrtext_m = 'Campo'.
|
||||||
|
|
||||||
|
ls_fcat-col_pos = 1.
|
||||||
|
APPEND ls_fcat TO lt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'ELEMENTO'.
|
||||||
|
ls_fcat-scrtext_m = 'Elemento de dados'.
|
||||||
|
ls_fcat-col_pos = 2.
|
||||||
|
APPEND ls_fcat TO lt_fieldcat.
|
||||||
|
|
||||||
|
ls_layout-zebra = abap_true.
|
||||||
|
ls_layout-cwidth_opt = abap_true.
|
||||||
|
|
||||||
|
CALL METHOD ctl_alv_moni_po->set_table_for_first_display
|
||||||
|
EXPORTING
|
||||||
|
is_layout = ls_layout ""wa_layout
|
||||||
|
i_structure_name = 'WY_ALV_BAIXO'
|
||||||
|
* is_variant = wa_variant
|
||||||
|
* i_save = 'A'
|
||||||
|
* it_toolbar_excluding = t_exclude_fcode
|
||||||
|
CHANGING
|
||||||
|
it_fieldcatalog = lt_fieldcat
|
||||||
|
it_outtab = ls_dados-alv_campos. "'t_nfe.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
|
||||||
|
MODULE status_0100 OUTPUT.
|
||||||
|
SET PF-STATUS 'S0100'.
|
||||||
|
SET TITLEBAR 'ALV_EXAMPLES'.
|
||||||
|
PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
MODULE display_grid OUTPUT.
|
||||||
|
* PERFORM read_data.
|
||||||
|
PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
**MODULE exit_command INPUT.
|
||||||
|
**
|
||||||
|
** CASE sy-ucomm.
|
||||||
|
** WHEN 'BACK'.
|
||||||
|
** CLEAR sy-ucomm.
|
||||||
|
** LEAVE TO SCREEN 0.
|
||||||
|
** WHEN 'EXIT'.
|
||||||
|
** LEAVE PROGRAM.
|
||||||
|
** WHEN 'CANCEL'.
|
||||||
|
** CLEAR sy-ucomm.
|
||||||
|
** LEAVE TO SCREEN 0.
|
||||||
|
** ENDCASE.
|
||||||
|
**
|
||||||
|
**ENDMODULE.
|
||||||
|
|
||||||
|
MODULE user_command_0100 INPUT.
|
||||||
|
* to react on oi_custom_events:
|
||||||
|
CALL METHOD cl_gui_cfw=>dispatch.
|
||||||
|
CASE sy-ucomm.
|
||||||
|
WHEN 'BACK'.
|
||||||
|
CLEAR sy-ucomm.
|
||||||
|
LEAVE TO SCREEN 0.
|
||||||
|
WHEN 'EXIT'.
|
||||||
|
LEAVE PROGRAM.
|
||||||
|
WHEN 'CANCEL'.
|
||||||
|
CLEAR sy-ucomm.
|
||||||
|
LEAVE TO SCREEN 0.
|
||||||
|
ENDCASE.
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
FORM busca_campo CHANGING p_campo TYPE string
|
||||||
|
p_campo_tab TYPE wy_alv_baixo.
|
||||||
|
|
||||||
|
CASE p_campo.
|
||||||
|
WHEN 'Util.Material'.
|
||||||
|
p_campo = 'J_1BMATUSE'.
|
||||||
|
p_campo_tab-campo = 'IT_J_1BMATUSE'.
|
||||||
|
p_campo_tab-elemento = 'J_1BMATUSE '.
|
||||||
|
|
||||||
|
WHEN 'Material'.
|
||||||
|
p_campo = 'MATNR'.
|
||||||
|
p_campo_tab-campo = 'IT_MATNR'.
|
||||||
|
p_campo_tab-elemento = 'MATNR'.
|
||||||
|
WHEN 'Fornecedor'.
|
||||||
|
p_campo = 'LIFNR'.
|
||||||
|
p_campo_tab-campo = 'LF_LIFNR'.
|
||||||
|
p_campo_tab-elemento = 'LIFNR'.
|
||||||
|
WHEN OTHERS.
|
||||||
|
""COLOCAR MSG de ERRO
|
||||||
|
CLEAR p_campo.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*** CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
|
||||||
|
*** EXPORTING
|
||||||
|
*** i_program_name = sy-repid
|
||||||
|
*** i_internal_tabname = 'TY_LINHA'
|
||||||
|
**** i_inclname = 'ZVTIVA_BUSCA_TAB'
|
||||||
|
*** I_INCLNAME = sy-repid
|
||||||
|
*** CHANGING
|
||||||
|
*** ct_fieldcat = lt_fieldcat
|
||||||
|
*** EXCEPTIONS
|
||||||
|
*** inconsistent_interface = 1
|
||||||
|
*** program_error = 2
|
||||||
|
*** OTHERS = 3.
|
||||||
|
*** IF sy-subrc <> 0.
|
||||||
|
*** MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||||
|
*** WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
||||||
|
*** ENDIF.
|
||||||
|
***
|
||||||
|
***
|
||||||
|
*** CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
|
||||||
|
*** EXPORTING
|
||||||
|
*** i_callback_program = sy-cprog
|
||||||
|
*** i_callback_user_command = 'F_USER_COMMAND'
|
||||||
|
*** is_layout = lt_fieldcat
|
||||||
|
*** it_fieldcat = lt_fieldcat
|
||||||
|
*** i_save = 'A'
|
||||||
|
*** TABLES
|
||||||
|
*** t_outtab = gt_alv
|
||||||
|
*** EXCEPTIONS
|
||||||
|
*** program_error = 1
|
||||||
|
*** OTHERS = 2.
|
||||||
165
src/zbos_alv_iva.prog.xml
Normal file
165
src/zbos_alv_iva.prog.xml
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<PROGDIR>
|
||||||
|
<NAME>ZBOS_ALV_IVA</NAME>
|
||||||
|
<SUBC>1</SUBC>
|
||||||
|
<RLOAD>E</RLOAD>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UCCHECK>X</UCCHECK>
|
||||||
|
</PROGDIR>
|
||||||
|
<DYNPROS>
|
||||||
|
<item>
|
||||||
|
<HEADER>
|
||||||
|
<PROGRAM>ZBOS_ALV_IVA</PROGRAM>
|
||||||
|
<SCREEN>0100</SCREEN>
|
||||||
|
<LANGUAGE>E</LANGUAGE>
|
||||||
|
<DESCRIPT>tela 100</DESCRIPT>
|
||||||
|
<TYPE>N</TYPE>
|
||||||
|
<NEXTSCREEN>0100</NEXTSCREEN>
|
||||||
|
<LINES>027</LINES>
|
||||||
|
<COLUMNS>120</COLUMNS>
|
||||||
|
</HEADER>
|
||||||
|
<CONTAINERS>
|
||||||
|
<RPY_DYCATT>
|
||||||
|
<TYPE>SCREEN</TYPE>
|
||||||
|
<NAME>SCREEN</NAME>
|
||||||
|
</RPY_DYCATT>
|
||||||
|
</CONTAINERS>
|
||||||
|
<FIELDS>
|
||||||
|
<RPY_DYFATC>
|
||||||
|
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||||
|
<CONT_NAME>SCREEN</CONT_NAME>
|
||||||
|
<TYPE>OKCODE</TYPE>
|
||||||
|
<TEXT>____________________</TEXT>
|
||||||
|
<LENGTH>020</LENGTH>
|
||||||
|
<VISLENGTH>020</VISLENGTH>
|
||||||
|
<HEIGHT>001</HEIGHT>
|
||||||
|
<FORMAT>CHAR</FORMAT>
|
||||||
|
<INPUT_FLD>X</INPUT_FLD>
|
||||||
|
</RPY_DYFATC>
|
||||||
|
</FIELDS>
|
||||||
|
<FLOW_LOGIC>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE> MODULE STATUS_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW/>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>*MODULE exit_command AT EXIT-COMMAND.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>MODULE USER_COMMAND_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
</FLOW_LOGIC>
|
||||||
|
</item>
|
||||||
|
</DYNPROS>
|
||||||
|
<CUA>
|
||||||
|
<ADM>
|
||||||
|
<ACTCODE>000001</ACTCODE>
|
||||||
|
<PFKCODE>000001</PFKCODE>
|
||||||
|
</ADM>
|
||||||
|
<STA>
|
||||||
|
<RSMPE_STAT>
|
||||||
|
<CODE>S0100</CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<ACTCODE>000001</ACTCODE>
|
||||||
|
<PFKCODE>000001</PFKCODE>
|
||||||
|
<BUTCODE>0001</BUTCODE>
|
||||||
|
<INT_NOTE>status</INT_NOTE>
|
||||||
|
</RSMPE_STAT>
|
||||||
|
</STA>
|
||||||
|
<FUN>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>BACK</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<FUN_TEXT>Back</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>CANCEL</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<TEXT_NAME>ICON_CANCEL</TEXT_NAME>
|
||||||
|
<ICON_ID>@0W@</ICON_ID>
|
||||||
|
<FUN_TEXT>Cancel</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>EXIT</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<FUN_TEXT>Exit</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
</FUN>
|
||||||
|
<PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>03</PFNO>
|
||||||
|
<FUNCODE>BACK</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>12</PFNO>
|
||||||
|
<FUNCODE>CANCEL</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>15</PFNO>
|
||||||
|
<FUNCODE>EXIT</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
</PFK>
|
||||||
|
<SET>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>BACK</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>CANCEL</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>EXIT</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
</SET>
|
||||||
|
<DOC>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>A</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>P</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>B</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<SUB_CODE>0001</SUB_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
</DOC>
|
||||||
|
</CUA>
|
||||||
|
<TPOOL>
|
||||||
|
<item>
|
||||||
|
<ID>R</ID>
|
||||||
|
<ENTRY>Programa de Alv usado no VTIVA</ENTRY>
|
||||||
|
<LENGTH>30</LENGTH>
|
||||||
|
</item>
|
||||||
|
</TPOOL>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
||||||
825
src/zbos_alv_iva_v2.prog.abap
Normal file
825
src/zbos_alv_iva_v2.prog.abap
Normal file
@@ -0,0 +1,825 @@
|
|||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*& Report ZBOS_ALV_IVA
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*&
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
REPORT zbos_alv_iva_v2.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS lcl_event_handler DEFINITION.
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
METHODS handle_hotspot_click
|
||||||
|
FOR EVENT hotspot_click OF cl_gui_alv_grid
|
||||||
|
IMPORTING e_column_id
|
||||||
|
es_row_no.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_event_handler IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD handle_hotspot_click.
|
||||||
|
PERFORM handle_hotspot_click
|
||||||
|
USING es_row_no-row_id
|
||||||
|
e_column_id-fieldname.
|
||||||
|
ENDMETHOD. "handle_hotspot_click
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
|
||||||
|
BEGIN OF wy_alv_cima,
|
||||||
|
regra(15) TYPE c,
|
||||||
|
campos TYPE string,
|
||||||
|
tabela(30) TYPE c,
|
||||||
|
icon_det(4) TYPE c,
|
||||||
|
END OF wy_alv_cima,
|
||||||
|
|
||||||
|
BEGIN OF wy_alv_baixo,
|
||||||
|
campo TYPE string,
|
||||||
|
elemento TYPE string,
|
||||||
|
END OF wy_alv_baixo,
|
||||||
|
|
||||||
|
BEGIN OF wy_alv_componente,
|
||||||
|
tipo(30) TYPE c, ""tipo do objeto
|
||||||
|
nome(30) TYPE c, ""Nome do objeto
|
||||||
|
existe(4) TYPE c, ""Se existe no ambiente
|
||||||
|
icon_criar(4) TYPE c, ""icone de criar
|
||||||
|
END OF wy_alv_componente,
|
||||||
|
|
||||||
|
BEGIN OF wy_tadir,
|
||||||
|
object TYPE trobjtype,
|
||||||
|
obj_name TYPE sobj_name,
|
||||||
|
END OF wy_tadir,
|
||||||
|
|
||||||
|
ty_tadir TYPE TABLE OF wy_tadir,
|
||||||
|
ty_alv_componente TYPE TABLE OF wy_alv_componente,
|
||||||
|
ty_alv_baixo TYPE TABLE OF wy_alv_baixo,
|
||||||
|
ty_alv_cima TYPE TABLE OF wy_alv_cima.
|
||||||
|
|
||||||
|
DATA: gt_dados_baixo TYPE ty_alv_baixo.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_dd03l,
|
||||||
|
tabname(30) TYPE c,
|
||||||
|
fieldname(30) TYPE c,
|
||||||
|
END OF ty_dd03l,
|
||||||
|
|
||||||
|
BEGIN OF wy_dados,
|
||||||
|
regra(15) TYPE c,
|
||||||
|
campos TYPE string,
|
||||||
|
tabela(90) TYPE c,
|
||||||
|
alv_campos LIKE gt_dados_baixo,
|
||||||
|
END OF wy_dados.
|
||||||
|
|
||||||
|
DATA: event_receiver TYPE REF TO lcl_event_handler.
|
||||||
|
|
||||||
|
DATA: it_tab TYPE filetable,
|
||||||
|
wa_tab TYPE LINE OF filetable,
|
||||||
|
gt_tab TYPE TABLE OF string,
|
||||||
|
gt_fieldcat TYPE lvc_t_fcat,
|
||||||
|
ls_tab TYPE string,
|
||||||
|
lv_pesquisa TYPE string,
|
||||||
|
ctl_alv_moni_hi TYPE REF TO cl_gui_alv_grid,
|
||||||
|
ctl_alv_moni_po_eq TYPE REF TO cl_gui_alv_grid,
|
||||||
|
ctl_alv_moni_po_dr TYPE REF TO cl_gui_alv_grid.
|
||||||
|
|
||||||
|
|
||||||
|
DATA: o_splitter_1 TYPE REF TO cl_gui_splitter_container,
|
||||||
|
o_splitter_2 TYPE REF TO cl_gui_splitter_container,
|
||||||
|
attach_container TYPE REF TO cl_gui_container,
|
||||||
|
o_parent_cima TYPE REF TO cl_gui_container,
|
||||||
|
o_parent_baixo_dir TYPE REF TO cl_gui_container,
|
||||||
|
o_parent_baixo_esq TYPE REF TO cl_gui_container.
|
||||||
|
|
||||||
|
DATA: gd_subrc TYPE i,
|
||||||
|
gt_dados TYPE TABLE OF wy_dados, """tabela todos os dados
|
||||||
|
gt_dados_cima TYPE TABLE OF wy_alv_cima . """tabela alv de cima os dados
|
||||||
|
|
||||||
|
DATA: gr_object TYPE RANGE OF tadir-object,
|
||||||
|
gs_object LIKE LINE OF gr_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
|
||||||
|
*PARAMETERS: p_tab(13) TYPE c NO-DISPLAY. " Nome da tabela
|
||||||
|
PARAMETERS: p_l_ini TYPE i DEFAULT '1'. " Número de linhas que vai ser ignoradas
|
||||||
|
PARAMETERS: p_file TYPE string. " File Name DEFAULT 'c:\test.csv',
|
||||||
|
SELECTION-SCREEN END OF BLOCK b1.
|
||||||
|
|
||||||
|
|
||||||
|
AT SELECTION-SCREEN.
|
||||||
|
* IF p_tab IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o numero da condição' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* IF p_l_ini IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o numero de linhas de cabeçalho' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* ELSEIF p_file IS INITIAL.
|
||||||
|
* MESSAGE 'Favor informar o arquivo' TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
* LEAVE SCREEN .
|
||||||
|
* ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* Localizar o diretório com os arquivos XLS
|
||||||
|
|
||||||
|
PERFORM f_busca_arquivo CHANGING p_file.
|
||||||
|
|
||||||
|
START-OF-SELECTION.
|
||||||
|
|
||||||
|
*Busca arquivos excel.
|
||||||
|
PERFORM cria_range_tadir.
|
||||||
|
CALL SCREEN 100.
|
||||||
|
|
||||||
|
* PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
|
||||||
|
END-OF-SELECTION.
|
||||||
|
|
||||||
|
* CHECK NOT gt_msg IS INITIAL.
|
||||||
|
|
||||||
|
* PERFORM f_alv_msg.
|
||||||
|
|
||||||
|
REFRESH gt_tab.
|
||||||
|
|
||||||
|
FORM f_busca_arquivo CHANGING p_p_file.
|
||||||
|
|
||||||
|
REFRESH: it_tab.
|
||||||
|
CALL METHOD cl_gui_frontend_services=>file_open_dialog
|
||||||
|
EXPORTING
|
||||||
|
window_title = 'Select File'
|
||||||
|
default_filename = '*.csv'
|
||||||
|
multiselection = ' '
|
||||||
|
CHANGING
|
||||||
|
file_table = it_tab
|
||||||
|
rc = gd_subrc.
|
||||||
|
READ TABLE it_tab INTO wa_tab INDEX 1.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
p_file = wa_tab-filename.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM f_upload_excel_file.
|
||||||
|
|
||||||
|
REFRESH gt_tab.
|
||||||
|
|
||||||
|
DATA:ls_linha TYPE wy_dados,
|
||||||
|
ls_dados_cima TYPE wy_alv_cima,
|
||||||
|
ls_dados_baixo TYPE wy_alv_baixo.
|
||||||
|
|
||||||
|
CALL METHOD cl_gui_frontend_services=>gui_upload
|
||||||
|
EXPORTING
|
||||||
|
filename = p_file
|
||||||
|
filetype = 'ASC'
|
||||||
|
read_by_line = 'X'
|
||||||
|
codepage = space
|
||||||
|
CHANGING
|
||||||
|
data_tab = gt_tab
|
||||||
|
EXCEPTIONS
|
||||||
|
file_open_error = 1
|
||||||
|
file_read_error = 2
|
||||||
|
no_batch = 3
|
||||||
|
gui_refuse_filetransfer = 4
|
||||||
|
invalid_type = 5
|
||||||
|
no_authority = 6
|
||||||
|
unknown_error = 7
|
||||||
|
bad_data_format = 8
|
||||||
|
header_not_allowed = 9
|
||||||
|
separator_not_allowed = 10
|
||||||
|
header_too_long = 11
|
||||||
|
unknown_dp_error = 12
|
||||||
|
access_denied = 13
|
||||||
|
dp_out_of_memory = 14
|
||||||
|
disk_full = 15
|
||||||
|
dp_timeout = 16
|
||||||
|
not_supported_by_gui = 17
|
||||||
|
error_no_gui = 18
|
||||||
|
OTHERS = 19.
|
||||||
|
|
||||||
|
IF NOT p_l_ini IS INITIAL.
|
||||||
|
DO p_l_ini TIMES.
|
||||||
|
DELETE gt_tab INDEX 1.
|
||||||
|
ENDDO.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
LOOP AT gt_tab INTO ls_tab.
|
||||||
|
|
||||||
|
CLEAR ls_linha.
|
||||||
|
|
||||||
|
SPLIT ls_tab AT ';' INTO ls_linha-regra
|
||||||
|
ls_linha-campos.
|
||||||
|
|
||||||
|
PERFORM valida_tabela USING ls_linha.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND ls_linha TO gt_dados.
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING ls_linha TO ls_dados_cima.
|
||||||
|
ls_dados_cima-icon_det = '@90@'.
|
||||||
|
APPEND ls_dados_cima TO gt_dados_cima.
|
||||||
|
|
||||||
|
|
||||||
|
CLEAR: ls_linha,
|
||||||
|
ls_dados_cima.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
PERFORM monta_alv.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM valida_tabela USING p_linha TYPE wy_dados.
|
||||||
|
|
||||||
|
DATA:lt_campos TYPE TABLE OF string,
|
||||||
|
lv_campo TYPE string,
|
||||||
|
lt_campos_tab TYPE TABLE OF string,
|
||||||
|
lv_campos_tab TYPE wy_alv_baixo,
|
||||||
|
lt_colunas TYPE TABLE OF string,
|
||||||
|
lv_coluna TYPE string.
|
||||||
|
|
||||||
|
SPLIT p_linha-campos AT '/' INTO TABLE lt_campos.
|
||||||
|
|
||||||
|
"converter
|
||||||
|
LOOP AT lt_campos INTO lv_campo.
|
||||||
|
|
||||||
|
*** de/para dos campos
|
||||||
|
*** Form com case entra nome sai prefixo, campo e elemento
|
||||||
|
CONDENSE lv_campo NO-GAPS.
|
||||||
|
PERFORM busca_campo CHANGING lv_campo
|
||||||
|
lv_campos_tab.
|
||||||
|
|
||||||
|
IF lv_campo IS NOT INITIAL.
|
||||||
|
APPEND lv_campo TO lt_colunas.
|
||||||
|
APPEND lv_campos_tab TO p_linha-alv_campos.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DATA: lt_dd03l TYPE TABLE OF ty_dd03l,
|
||||||
|
ls_dd03l TYPE ty_dd03l,
|
||||||
|
lt_cond TYPE TABLE OF fieldname,
|
||||||
|
lt_fields TYPE TABLE OF string,
|
||||||
|
lt_table_unique TYPE TABLE OF ty_dd03l,
|
||||||
|
ls_unique TYPE ty_dd03l,
|
||||||
|
lv_table_name(25) TYPE c. ""tablename.
|
||||||
|
|
||||||
|
** CHECK lv_pesquisa IS NOT INITIAL.
|
||||||
|
|
||||||
|
* PARAMETERS campos TYPE string DEFAULT 'Exemplo: MATNR,LIFNR,WERKS'.
|
||||||
|
** SPLIT lv_pesquisa AT ',' INTO TABLE lt_fields.
|
||||||
|
|
||||||
|
SELECT tabname fieldname
|
||||||
|
FROM dd03l
|
||||||
|
INTO TABLE lt_dd03l
|
||||||
|
WHERE keyflag = 'X'
|
||||||
|
AND tabname LIKE '/VTIVA/COND%'
|
||||||
|
AND fieldname NOT IN ('MANDT', '.INCLUDE', 'VTIVA_DET').
|
||||||
|
|
||||||
|
SORT lt_dd03l BY tabname.
|
||||||
|
lt_table_unique = lt_dd03l.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM lt_table_unique COMPARING tabname.
|
||||||
|
SORT lt_table_unique BY tabname.
|
||||||
|
|
||||||
|
LOOP AT lt_table_unique INTO ls_unique.
|
||||||
|
|
||||||
|
LOOP AT lt_dd03l INTO ls_dd03l WHERE tabname = ls_unique-tabname.
|
||||||
|
|
||||||
|
IF ls_dd03l-fieldname+2(1) = '_'.
|
||||||
|
APPEND ls_dd03l-fieldname+3 TO lt_cond.
|
||||||
|
ELSE.
|
||||||
|
APPEND ls_dd03l-fieldname TO lt_cond.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
SORT lt_cond.
|
||||||
|
SORT lt_colunas. "lt_fields.
|
||||||
|
**comparar tabelas
|
||||||
|
IF lt_cond = lt_colunas. "lt_fields.
|
||||||
|
lv_table_name = ls_unique-tabname.
|
||||||
|
IF p_linha-tabela IS INITIAL.
|
||||||
|
p_linha-tabela = lv_table_name.
|
||||||
|
ELSE.
|
||||||
|
p_linha-tabela = p_linha-tabela && ` - ` && lv_table_name.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
CLEAR lt_cond.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
*** IF lv_table_name IS INITIAL.
|
||||||
|
** "Sugestao de tabela
|
||||||
|
|
||||||
|
*** WRITE: / 'Nenhuma tabela encontrada com todos os campos necessários.REGRA: ', p_linha-regra .
|
||||||
|
*** LOOP AT p_linha-alv_campos INTO lv_campos_tab.
|
||||||
|
*** WRITE: / lv_campos_tab-campo, ' ', lv_campos_tab-elemento.
|
||||||
|
***
|
||||||
|
*** ENDLOOP.
|
||||||
|
*** WRITE: /.
|
||||||
|
*** WRITE: /.
|
||||||
|
*** ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
|
||||||
|
FORM monta_alv.
|
||||||
|
|
||||||
|
DATA: lt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
DATA: lt_exit_events TYPE slis_t_event_exit.
|
||||||
|
DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
* DATA: event_receiver TYPE REF TO lcl_event_handler.
|
||||||
|
|
||||||
|
"Geral dividido ao meio cima e baixo
|
||||||
|
CREATE OBJECT o_splitter_1
|
||||||
|
EXPORTING
|
||||||
|
parent = cl_gui_container=>default_screen
|
||||||
|
rows = 2
|
||||||
|
columns = 1.
|
||||||
|
|
||||||
|
|
||||||
|
"Cria o conteiner de cima
|
||||||
|
CALL METHOD o_splitter_1->get_container
|
||||||
|
EXPORTING
|
||||||
|
row = 1
|
||||||
|
column = 1
|
||||||
|
RECEIVING
|
||||||
|
container = o_parent_cima.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Conteiner de Baixo
|
||||||
|
attach_container = o_splitter_1->get_container( row = 2 column = 1 ). "pega a segunda linha
|
||||||
|
|
||||||
|
"Splitar o conteiner de baixo.
|
||||||
|
CREATE OBJECT o_splitter_2
|
||||||
|
EXPORTING
|
||||||
|
parent = attach_container "cl_gui_container=>default_screen conteiner de baixo
|
||||||
|
rows = 1
|
||||||
|
columns = 2.
|
||||||
|
|
||||||
|
|
||||||
|
CALL METHOD o_splitter_2->get_container
|
||||||
|
EXPORTING
|
||||||
|
row = 1
|
||||||
|
column = 1
|
||||||
|
RECEIVING
|
||||||
|
container = o_parent_baixo_esq.
|
||||||
|
|
||||||
|
CALL METHOD o_splitter_2->get_container
|
||||||
|
EXPORTING
|
||||||
|
row = 1
|
||||||
|
column = 2
|
||||||
|
RECEIVING
|
||||||
|
container = o_parent_baixo_dir.
|
||||||
|
|
||||||
|
* "mesma coisa de cima
|
||||||
|
* o_parent_baixo_dir = o_splitter_2->get_container( row = 1 column = 2 )
|
||||||
|
|
||||||
|
|
||||||
|
CALL METHOD o_splitter_1->set_row_height
|
||||||
|
EXPORTING
|
||||||
|
id = 1
|
||||||
|
height = 50.
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OBJECT ctl_alv_moni_hi
|
||||||
|
EXPORTING
|
||||||
|
i_parent = o_parent_cima.
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OBJECT ctl_alv_moni_po_eq
|
||||||
|
EXPORTING
|
||||||
|
i_parent = o_parent_baixo_esq.
|
||||||
|
|
||||||
|
CREATE OBJECT ctl_alv_moni_po_dr
|
||||||
|
EXPORTING
|
||||||
|
i_parent = o_parent_baixo_dir.
|
||||||
|
|
||||||
|
|
||||||
|
PERFORM get_layout CHANGING lt_fieldcat.
|
||||||
|
|
||||||
|
ls_layout-zebra = abap_true.
|
||||||
|
ls_layout-cwidth_opt = abap_true.
|
||||||
|
|
||||||
|
CREATE OBJECT event_receiver.
|
||||||
|
SET HANDLER event_receiver->handle_hotspot_click FOR ctl_alv_moni_hi.
|
||||||
|
|
||||||
|
* Send data to ALV grid
|
||||||
|
CALL METHOD ctl_alv_moni_hi->set_table_for_first_display
|
||||||
|
EXPORTING
|
||||||
|
is_layout = ls_layout ""wa_layout
|
||||||
|
i_structure_name = 'WY_ALV_CIMA'
|
||||||
|
* is_variant = wa_variant
|
||||||
|
* i_save = 'A'
|
||||||
|
* it_toolbar_excluding = t_exclude_fcode
|
||||||
|
CHANGING
|
||||||
|
it_fieldcatalog = lt_fieldcat
|
||||||
|
it_outtab = gt_dados_cima. "'t_nfe.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM get_layout CHANGING pt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
|
||||||
|
|
||||||
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'REGRA'.
|
||||||
|
ls_fcat-scrtext_m = 'Regra'.
|
||||||
|
ls_fcat-col_pos = 1.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'CAMPOS'.
|
||||||
|
ls_fcat-scrtext_m = 'Campos'.
|
||||||
|
ls_fcat-col_pos = 2.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'TABELA'.
|
||||||
|
ls_fcat-scrtext_m = 'Tabela'.
|
||||||
|
ls_fcat-col_pos = 3.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'ICON_DET'.
|
||||||
|
ls_fcat-scrtext_m = 'det.'.
|
||||||
|
ls_fcat-hotspot = 'X'.
|
||||||
|
ls_fcat-just = 'C'.
|
||||||
|
ls_fcat-col_pos = 4.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
|
||||||
|
*** APPEND INITIAL LINE TO pt_fieldcat ASSIGNING <fs_fcat>.
|
||||||
|
*** <fs_fcat>-fieldname = 'ICON'.
|
||||||
|
*** ls_fcat-scrtext_m = 'Tabela'.
|
||||||
|
*** ls_fcat-col_pos = 3.
|
||||||
|
*** <fs_fcat>-icon = 'X'.
|
||||||
|
*** <fs_fcat>-outputlen = 3.
|
||||||
|
*** <fs_fcat>-hotspot = 'X'.
|
||||||
|
*** <fs_fcat>-just = 'C'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM handle_hotspot_click USING p_row_id TYPE lvc_s_roid-row_id
|
||||||
|
p_fieldname TYPE lvc_s_col-fieldname.
|
||||||
|
|
||||||
|
|
||||||
|
* DATA: lt_dados TYPE ty_alv_baixo.
|
||||||
|
* DATA: lt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
* DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
* DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
* DATA: ls_dados TYPE wy_dados.
|
||||||
|
CASE p_fieldname .
|
||||||
|
WHEN 'ICON_DET'.
|
||||||
|
PERFORM display_esquerdo USING p_row_id.
|
||||||
|
PERFORM display_direito USING p_row_id.
|
||||||
|
WHEN 'ICON_CRIAR'.
|
||||||
|
PERFORM criar_objetos USING p_row_id.
|
||||||
|
WHEN OTHERS.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM display_esquerdo USING p_row_id TYPE lvc_s_roid-row_id.
|
||||||
|
|
||||||
|
DATA: lt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
DATA: ls_dados TYPE wy_dados.
|
||||||
|
|
||||||
|
|
||||||
|
READ TABLE gt_dados INTO ls_dados INDEX p_row_id.
|
||||||
|
|
||||||
|
* ls_dados-alv_campos
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'CAMPO'.
|
||||||
|
ls_fcat-scrtext_m = 'Campo'.
|
||||||
|
|
||||||
|
ls_fcat-col_pos = 1.
|
||||||
|
APPEND ls_fcat TO lt_fieldcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'ELEMENTO'.
|
||||||
|
ls_fcat-scrtext_m = 'Elemento de dados'.
|
||||||
|
ls_fcat-col_pos = 2.
|
||||||
|
APPEND ls_fcat TO lt_fieldcat.
|
||||||
|
|
||||||
|
ls_layout-zebra = abap_true.
|
||||||
|
ls_layout-cwidth_opt = abap_true.
|
||||||
|
|
||||||
|
CALL METHOD ctl_alv_moni_po_eq->set_table_for_first_display
|
||||||
|
EXPORTING
|
||||||
|
is_layout = ls_layout ""wa_layout
|
||||||
|
i_structure_name = 'WY_ALV_BAIXO'
|
||||||
|
* is_variant = wa_variant
|
||||||
|
* i_save = 'A'
|
||||||
|
* it_toolbar_excluding = t_exclude_fcode
|
||||||
|
CHANGING
|
||||||
|
it_fieldcatalog = lt_fieldcat
|
||||||
|
it_outtab = ls_dados-alv_campos. "'t_nfe.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MODULE status_0100 OUTPUT.
|
||||||
|
|
||||||
|
SET PF-STATUS 'S0100'.
|
||||||
|
SET TITLEBAR 'ALV_EXAMPLES'.
|
||||||
|
PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
MODULE display_grid OUTPUT.
|
||||||
|
|
||||||
|
PERFORM f_upload_excel_file.
|
||||||
|
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
MODULE user_command_0100 INPUT.
|
||||||
|
* to react on oi_custom_events:
|
||||||
|
CALL METHOD cl_gui_cfw=>dispatch.
|
||||||
|
CASE sy-ucomm.
|
||||||
|
WHEN 'BACK'.
|
||||||
|
CLEAR sy-ucomm.
|
||||||
|
LEAVE TO SCREEN 0.
|
||||||
|
WHEN 'EXIT'.
|
||||||
|
LEAVE PROGRAM.
|
||||||
|
WHEN 'CANCEL'.
|
||||||
|
CLEAR sy-ucomm.
|
||||||
|
LEAVE TO SCREEN 0.
|
||||||
|
ENDCASE.
|
||||||
|
ENDMODULE.
|
||||||
|
|
||||||
|
FORM busca_campo CHANGING p_campo TYPE string
|
||||||
|
p_campo_tab TYPE wy_alv_baixo.
|
||||||
|
|
||||||
|
CASE p_campo.
|
||||||
|
WHEN 'Util.Material'.
|
||||||
|
p_campo = 'J_1BMATUSE'.
|
||||||
|
p_campo_tab-campo = 'IT_J_1BMATUSE'.
|
||||||
|
p_campo_tab-elemento = 'J_1BMATUSE '.
|
||||||
|
|
||||||
|
WHEN 'Material'.
|
||||||
|
p_campo = 'MATNR'.
|
||||||
|
p_campo_tab-campo = 'IT_MATNR'.
|
||||||
|
p_campo_tab-elemento = 'MATNR'.
|
||||||
|
WHEN 'Fornecedor'.
|
||||||
|
p_campo = 'LIFNR'.
|
||||||
|
p_campo_tab-campo = 'LF_LIFNR'.
|
||||||
|
p_campo_tab-elemento = 'LIFNR'.
|
||||||
|
WHEN OTHERS.
|
||||||
|
""COLOCAR MSG de ERRO
|
||||||
|
CLEAR p_campo.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM display_direito USING p_row_id TYPE lvc_s_roid-row_id.
|
||||||
|
|
||||||
|
** BEGIN OF wy_alv_componentes,
|
||||||
|
** tipo(30) TYPE c, ""tipo do objeto
|
||||||
|
** nome(30) TYPE c, ""Nome do objeto
|
||||||
|
** existe(4) TYPE c, ""Se existe no ambiente
|
||||||
|
** icon(4) TYPE c, ""icone de criar
|
||||||
|
** END OF wy_alv_componentes,
|
||||||
|
**ty_alv_componente TYPE TABLE OF wy_alv_componentes,
|
||||||
|
|
||||||
|
|
||||||
|
DATA: lt_fieldcat TYPE lvc_t_fcat,
|
||||||
|
lt_componentes TYPE ty_alv_componente.
|
||||||
|
|
||||||
|
DATA: ls_layout TYPE lvc_s_layo.
|
||||||
|
DATA: ls_dados TYPE wy_dados.
|
||||||
|
|
||||||
|
READ TABLE gt_dados INTO ls_dados INDEX p_row_id.
|
||||||
|
|
||||||
|
PERFORM cria_fieldcat_componentes CHANGING lt_fieldcat.
|
||||||
|
|
||||||
|
PERFORM preenche_tab_componentes USING ls_dados-tabela
|
||||||
|
CHANGING lt_componentes.
|
||||||
|
|
||||||
|
ls_layout-zebra = abap_true.
|
||||||
|
ls_layout-no_toolbar = abap_true.
|
||||||
|
ls_layout-grid_title = 'Componentes'.
|
||||||
|
* ls_layout-cwidth_opt = abap_true.
|
||||||
|
|
||||||
|
READ TABLE gt_dados INTO ls_dados INDEX p_row_id.
|
||||||
|
|
||||||
|
SET HANDLER event_receiver->handle_hotspot_click FOR ctl_alv_moni_po_dr.
|
||||||
|
|
||||||
|
CALL METHOD ctl_alv_moni_po_dr->set_table_for_first_display
|
||||||
|
EXPORTING
|
||||||
|
is_layout = ls_layout ""wa_layout
|
||||||
|
i_structure_name = 'WY_ALV_BAIXO'
|
||||||
|
* is_variant = wa_variant
|
||||||
|
* i_save = 'A'
|
||||||
|
* it_toolbar_excluding = t_exclude_fcode
|
||||||
|
CHANGING
|
||||||
|
it_fieldcatalog = lt_fieldcat
|
||||||
|
it_outtab = lt_componentes. "'t_nfe.
|
||||||
|
|
||||||
|
|
||||||
|
* CALL METHOD ctl_alv_moni_po_dr->set_too
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM preenche_tab_componentes USING p_tab TYPE wy_dados-tabela
|
||||||
|
CHANGING pt_componentes TYPE ty_alv_componente.
|
||||||
|
|
||||||
|
DATA: ls_componentes TYPE wy_alv_componente.
|
||||||
|
DATA: lt_tadir TYPE ty_tadir.
|
||||||
|
DATA: ls_tadir TYPE wy_tadir.
|
||||||
|
DATA: lv_objeto(11) TYPE c.
|
||||||
|
DATA: lv_nuntab(3) TYPE c. "Numero da tabela encontrado
|
||||||
|
|
||||||
|
IF p_tab IS NOT INITIAL.
|
||||||
|
|
||||||
|
* FIND REGEX '\d{3}' IN p_tab MATCH OFFSET lv_nuntab.
|
||||||
|
lv_nuntab = p_tab+12.
|
||||||
|
lv_objeto = '/VTIVA/%' && lv_nuntab.
|
||||||
|
|
||||||
|
SELECT object obj_name
|
||||||
|
FROM tadir
|
||||||
|
INTO TABLE lt_tadir
|
||||||
|
WHERE object IN gr_object
|
||||||
|
AND obj_name LIKE lv_objeto.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
* '@0V@'." OK; Continue; Choose <va
|
||||||
|
* '@0W@'." Cancel
|
||||||
|
* '@3J@'." Set status tabela criada
|
||||||
|
* '@1T@'." Time criar
|
||||||
|
|
||||||
|
ls_componentes-tipo = 'Tabela'.
|
||||||
|
READ TABLE lt_tadir INTO ls_tadir WITH KEY object = 'TABL'.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
ls_componentes-nome = ls_tadir-obj_name. CLEAR ls_tadir.
|
||||||
|
ls_componentes-existe = '@0V@'.
|
||||||
|
ls_componentes-icon_criar = '@3J@'.
|
||||||
|
ELSE.
|
||||||
|
ls_componentes-existe = '@0W@'.
|
||||||
|
ls_componentes-icon_criar = '@1T@'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND ls_componentes TO pt_componentes.
|
||||||
|
CLEAR ls_componentes.
|
||||||
|
|
||||||
|
|
||||||
|
ls_componentes-tipo = 'Transação'.
|
||||||
|
READ TABLE lt_tadir INTO ls_tadir WITH KEY object = 'TRAN'.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
ls_componentes-nome = ls_tadir-obj_name. CLEAR ls_tadir.
|
||||||
|
ls_componentes-existe = '@0V@'.
|
||||||
|
ls_componentes-icon_criar = '@3J@'.
|
||||||
|
ELSE.
|
||||||
|
ls_componentes-existe = '@0W@'.
|
||||||
|
ls_componentes-icon_criar = '@1T@'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND ls_componentes TO pt_componentes.
|
||||||
|
CLEAR ls_componentes.
|
||||||
|
|
||||||
|
|
||||||
|
ls_componentes-tipo = 'Programa'.
|
||||||
|
READ TABLE lt_tadir INTO ls_tadir WITH KEY object = 'PROG'.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
ls_componentes-nome = ls_tadir-obj_name. CLEAR ls_tadir.
|
||||||
|
ls_componentes-existe = '@0V@'.
|
||||||
|
ls_componentes-icon_criar = '@3J@'.
|
||||||
|
ELSE.
|
||||||
|
ls_componentes-existe = '@0W@'.
|
||||||
|
ls_componentes-icon_criar = '@1T@'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND ls_componentes TO pt_componentes.
|
||||||
|
CLEAR ls_componentes.
|
||||||
|
|
||||||
|
|
||||||
|
ls_componentes-tipo = 'Classe'.
|
||||||
|
READ TABLE lt_tadir INTO ls_tadir WITH KEY object = 'CLAS'.
|
||||||
|
IF sy-subrc IS INITIAL.
|
||||||
|
ls_componentes-nome = ls_tadir-obj_name. CLEAR ls_tadir.
|
||||||
|
ls_componentes-existe = '@0V@'.
|
||||||
|
ls_componentes-icon_criar = '@3J@'.
|
||||||
|
ELSE.
|
||||||
|
ls_componentes-existe = '@0W@'.
|
||||||
|
ls_componentes-icon_criar = '@1T@'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND ls_componentes TO pt_componentes.
|
||||||
|
CLEAR ls_componentes.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM cria_fieldcat_componentes CHANGING pt_fieldcat TYPE lvc_t_fcat.
|
||||||
|
|
||||||
|
|
||||||
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'TIPO'.
|
||||||
|
ls_fcat-scrtext_m = 'Tipo'.
|
||||||
|
ls_fcat-col_pos = 1.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
CLEAR ls_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'NOME'.
|
||||||
|
ls_fcat-scrtext_m = 'Nome'.
|
||||||
|
ls_fcat-edit = abap_true.
|
||||||
|
ls_fcat-outputlen = 40.
|
||||||
|
ls_fcat-col_pos = 2.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
CLEAR ls_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'EXISTE'.
|
||||||
|
ls_fcat-scrtext_m = 'Existe'.
|
||||||
|
ls_fcat-col_pos = 3.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
CLEAR ls_fcat.
|
||||||
|
|
||||||
|
ls_fcat-fieldname = 'ICON_CRIAR'.
|
||||||
|
ls_fcat-scrtext_m = 'Criar'.
|
||||||
|
ls_fcat-hotspot = 'X'.
|
||||||
|
ls_fcat-just = 'C'.
|
||||||
|
ls_fcat-col_pos = 4.
|
||||||
|
APPEND ls_fcat TO pt_fieldcat.
|
||||||
|
CLEAR ls_fcat.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM cria_range_tadir.
|
||||||
|
|
||||||
|
gs_object-sign = 'I'.
|
||||||
|
gs_object-option = 'EQ'.
|
||||||
|
|
||||||
|
"Tabela
|
||||||
|
gs_object-low = 'TABL'.
|
||||||
|
APPEND gs_object TO gr_object.
|
||||||
|
|
||||||
|
"Transação
|
||||||
|
gs_object-low = 'TRAN'.
|
||||||
|
APPEND gs_object TO gr_object.
|
||||||
|
|
||||||
|
"Programa
|
||||||
|
gs_object-low = 'PROG'.
|
||||||
|
APPEND gs_object TO gr_object.
|
||||||
|
|
||||||
|
"Classe
|
||||||
|
gs_object-low = 'CLAS'.
|
||||||
|
APPEND gs_object TO gr_object.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM criar_objetos USING p_row_id TYPE lvc_s_roid-row_id.
|
||||||
|
|
||||||
|
CASE p_row_id .
|
||||||
|
WHEN 1. "Tabela
|
||||||
|
PERFORM gera_tabl.
|
||||||
|
WHEN 2. "Transaçao
|
||||||
|
PERFORM gera_tran.
|
||||||
|
WHEN 3. "Programa
|
||||||
|
PERFORM gera_prog.
|
||||||
|
WHEN 4. "Classe
|
||||||
|
PERFORM gera_clas.
|
||||||
|
WHEN OTHERS.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM gera_tabl.
|
||||||
|
|
||||||
|
* DDIF_TABL_PUT
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM gera_tran.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM gera_prog.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
|
FORM gera_clas.
|
||||||
|
|
||||||
|
ENDFORM.
|
||||||
165
src/zbos_alv_iva_v2.prog.xml
Normal file
165
src/zbos_alv_iva_v2.prog.xml
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<PROGDIR>
|
||||||
|
<NAME>ZBOS_ALV_IVA_V2</NAME>
|
||||||
|
<SUBC>1</SUBC>
|
||||||
|
<RLOAD>E</RLOAD>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UCCHECK>X</UCCHECK>
|
||||||
|
</PROGDIR>
|
||||||
|
<DYNPROS>
|
||||||
|
<item>
|
||||||
|
<HEADER>
|
||||||
|
<PROGRAM>ZBOS_ALV_IVA_V2</PROGRAM>
|
||||||
|
<SCREEN>0100</SCREEN>
|
||||||
|
<LANGUAGE>E</LANGUAGE>
|
||||||
|
<DESCRIPT>tela</DESCRIPT>
|
||||||
|
<TYPE>N</TYPE>
|
||||||
|
<NEXTSCREEN>0100</NEXTSCREEN>
|
||||||
|
<LINES>027</LINES>
|
||||||
|
<COLUMNS>120</COLUMNS>
|
||||||
|
</HEADER>
|
||||||
|
<CONTAINERS>
|
||||||
|
<RPY_DYCATT>
|
||||||
|
<TYPE>SCREEN</TYPE>
|
||||||
|
<NAME>SCREEN</NAME>
|
||||||
|
</RPY_DYCATT>
|
||||||
|
</CONTAINERS>
|
||||||
|
<FIELDS>
|
||||||
|
<RPY_DYFATC>
|
||||||
|
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||||
|
<CONT_NAME>SCREEN</CONT_NAME>
|
||||||
|
<TYPE>OKCODE</TYPE>
|
||||||
|
<TEXT>____________________</TEXT>
|
||||||
|
<LENGTH>020</LENGTH>
|
||||||
|
<VISLENGTH>020</VISLENGTH>
|
||||||
|
<HEIGHT>001</HEIGHT>
|
||||||
|
<FORMAT>CHAR</FORMAT>
|
||||||
|
<INPUT_FLD>X</INPUT_FLD>
|
||||||
|
</RPY_DYFATC>
|
||||||
|
</FIELDS>
|
||||||
|
<FLOW_LOGIC>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE> MODULE STATUS_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW/>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>*MODULE exit_command AT EXIT-COMMAND.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>MODULE USER_COMMAND_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
</FLOW_LOGIC>
|
||||||
|
</item>
|
||||||
|
</DYNPROS>
|
||||||
|
<CUA>
|
||||||
|
<ADM>
|
||||||
|
<ACTCODE>000001</ACTCODE>
|
||||||
|
<PFKCODE>000001</PFKCODE>
|
||||||
|
</ADM>
|
||||||
|
<STA>
|
||||||
|
<RSMPE_STAT>
|
||||||
|
<CODE>S0100</CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<ACTCODE>000001</ACTCODE>
|
||||||
|
<PFKCODE>000001</PFKCODE>
|
||||||
|
<BUTCODE>0001</BUTCODE>
|
||||||
|
<INT_NOTE>status gui</INT_NOTE>
|
||||||
|
</RSMPE_STAT>
|
||||||
|
</STA>
|
||||||
|
<FUN>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>BACK</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<FUN_TEXT>Back</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>CANCEL</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<TEXT_NAME>ICON_CANCEL</TEXT_NAME>
|
||||||
|
<ICON_ID>@0W@</ICON_ID>
|
||||||
|
<FUN_TEXT>Cancel</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
<RSMPE_FUNT>
|
||||||
|
<CODE>EXIT</CODE>
|
||||||
|
<TEXTNO>001</TEXTNO>
|
||||||
|
<TEXT_TYPE>S</TEXT_TYPE>
|
||||||
|
<FUN_TEXT>Exit</FUN_TEXT>
|
||||||
|
</RSMPE_FUNT>
|
||||||
|
</FUN>
|
||||||
|
<PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>03</PFNO>
|
||||||
|
<FUNCODE>BACK</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>12</PFNO>
|
||||||
|
<FUNCODE>CANCEL</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
<RSMPE_PFK>
|
||||||
|
<CODE>000001</CODE>
|
||||||
|
<PFNO>15</PFNO>
|
||||||
|
<FUNCODE>EXIT</FUNCODE>
|
||||||
|
<FUNNO>001</FUNNO>
|
||||||
|
</RSMPE_PFK>
|
||||||
|
</PFK>
|
||||||
|
<SET>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>BACK</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>CANCEL</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
<RSMPE_STAF>
|
||||||
|
<STATUS>S0100</STATUS>
|
||||||
|
<FUNCTION>EXIT</FUNCTION>
|
||||||
|
</RSMPE_STAF>
|
||||||
|
</SET>
|
||||||
|
<DOC>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>A</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status gui</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>P</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status gui</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
<RSMPE_ATRT>
|
||||||
|
<OBJ_TYPE>B</OBJ_TYPE>
|
||||||
|
<OBJ_CODE>000001</OBJ_CODE>
|
||||||
|
<SUB_CODE>0001</SUB_CODE>
|
||||||
|
<MODAL>D</MODAL>
|
||||||
|
<INT_NOTE>status gui</INT_NOTE>
|
||||||
|
</RSMPE_ATRT>
|
||||||
|
</DOC>
|
||||||
|
</CUA>
|
||||||
|
<TPOOL>
|
||||||
|
<item>
|
||||||
|
<ID>R</ID>
|
||||||
|
<ENTRY>Programa de Alv usado no VTIVA</ENTRY>
|
||||||
|
<LENGTH>30</LENGTH>
|
||||||
|
</item>
|
||||||
|
</TPOOL>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
||||||
79
src/zbos_teste.prog.abap
Normal file
79
src/zbos_teste.prog.abap
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*& Report ZBOS_TESTE
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*&
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
REPORT zbos_teste.
|
||||||
|
|
||||||
|
|
||||||
|
DATA :op(1) TYPE c,
|
||||||
|
valor1 TYPE f,
|
||||||
|
valor2 TYPE f,
|
||||||
|
resultado TYPE f.
|
||||||
|
|
||||||
|
|
||||||
|
op = '*'.
|
||||||
|
|
||||||
|
valor1 = 12.
|
||||||
|
valor2 = ( '2' ) .
|
||||||
|
|
||||||
|
|
||||||
|
resultado = valor1 * valor2.
|
||||||
|
|
||||||
|
BREAK-POINT.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*
|
||||||
|
*DATA:
|
||||||
|
* gt_data TYPE TABLE OF sflight,
|
||||||
|
* g_grid TYPE REF TO cl_gui_alv_grid.
|
||||||
|
*
|
||||||
|
*CONSTANTS:
|
||||||
|
* c_max_rows TYPE i VALUE 100.
|
||||||
|
*
|
||||||
|
*CALL SCREEN 100.
|
||||||
|
*
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
**& Form read_data
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
*FORM read_data.
|
||||||
|
* SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_data
|
||||||
|
* FROM sflight
|
||||||
|
* UP TO c_max_rows ROWS.
|
||||||
|
*ENDFORM.
|
||||||
|
*
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
**& Form display_grid
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
*FORM display_grid.
|
||||||
|
* CREATE OBJECT g_grid
|
||||||
|
* EXPORTING
|
||||||
|
* i_parent = cl_gui_container=>default_screen.
|
||||||
|
*
|
||||||
|
* CALL METHOD g_grid->set_table_for_first_display
|
||||||
|
* EXPORTING
|
||||||
|
* i_structure_name = 'SFLIGHT'
|
||||||
|
* CHANGING
|
||||||
|
* it_outtab = gt_data
|
||||||
|
* EXCEPTIONS
|
||||||
|
* invalid_parameter_combination = 1
|
||||||
|
* program_error = 2
|
||||||
|
* too_many_lines = 3
|
||||||
|
* OTHERS = 4.
|
||||||
|
* IF sy-subrc <> 0.
|
||||||
|
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||||
|
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
||||||
|
* ENDIF.
|
||||||
|
*ENDFORM.
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
**& Module STATUS_0100 OUTPUT
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
**&
|
||||||
|
**&---------------------------------------------------------------------*
|
||||||
|
*MODULE status_0100 OUTPUT.
|
||||||
|
* PERFORM read_data.
|
||||||
|
* PERFORM display_grid.
|
||||||
|
*ENDMODULE.
|
||||||
69
src/zbos_teste.prog.xml
Normal file
69
src/zbos_teste.prog.xml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<PROGDIR>
|
||||||
|
<NAME>ZBOS_TESTE</NAME>
|
||||||
|
<SUBC>1</SUBC>
|
||||||
|
<RLOAD>E</RLOAD>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UCCHECK>X</UCCHECK>
|
||||||
|
</PROGDIR>
|
||||||
|
<DYNPROS>
|
||||||
|
<item>
|
||||||
|
<HEADER>
|
||||||
|
<PROGRAM>ZBOS_TESTE</PROGRAM>
|
||||||
|
<SCREEN>0100</SCREEN>
|
||||||
|
<LANGUAGE>E</LANGUAGE>
|
||||||
|
<DESCRIPT>tela 100</DESCRIPT>
|
||||||
|
<TYPE>N</TYPE>
|
||||||
|
<NEXTSCREEN>0100</NEXTSCREEN>
|
||||||
|
<LINES>027</LINES>
|
||||||
|
<COLUMNS>120</COLUMNS>
|
||||||
|
</HEADER>
|
||||||
|
<CONTAINERS>
|
||||||
|
<RPY_DYCATT>
|
||||||
|
<TYPE>SCREEN</TYPE>
|
||||||
|
<NAME>SCREEN</NAME>
|
||||||
|
</RPY_DYCATT>
|
||||||
|
</CONTAINERS>
|
||||||
|
<FIELDS>
|
||||||
|
<RPY_DYFATC>
|
||||||
|
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||||
|
<CONT_NAME>SCREEN</CONT_NAME>
|
||||||
|
<TYPE>OKCODE</TYPE>
|
||||||
|
<TEXT>____________________</TEXT>
|
||||||
|
<LENGTH>020</LENGTH>
|
||||||
|
<VISLENGTH>020</VISLENGTH>
|
||||||
|
<HEIGHT>001</HEIGHT>
|
||||||
|
<FORMAT>CHAR</FORMAT>
|
||||||
|
<INPUT_FLD>X</INPUT_FLD>
|
||||||
|
</RPY_DYFATC>
|
||||||
|
</FIELDS>
|
||||||
|
<FLOW_LOGIC>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE> MODULE STATUS_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW/>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
<RPY_DYFLOW>
|
||||||
|
<LINE>* MODULE USER_COMMAND_0100.</LINE>
|
||||||
|
</RPY_DYFLOW>
|
||||||
|
</FLOW_LOGIC>
|
||||||
|
</item>
|
||||||
|
</DYNPROS>
|
||||||
|
<TPOOL>
|
||||||
|
<item>
|
||||||
|
<ID>R</ID>
|
||||||
|
<ENTRY>teste</ENTRY>
|
||||||
|
<LENGTH>5</LENGTH>
|
||||||
|
</item>
|
||||||
|
</TPOOL>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
||||||
Reference in New Issue
Block a user