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