*************CONSULTA TODO DE LA SBOOK
REPORT xxxxxxxx.
CLASS lcl_alv DEFINITION.
PUBLIC SECTION.
METHODS select_alv IMPORTING amount TYPE i.
METHODS display_alv.
PROTECTED SECTION.
DATA t_alv TYPE STANDARD TABLE OF sbook.
DATA: o_table TYPE REF TO cl_salv_table,
o_columns TYPE REF TO cl_salv_columns_table,
o_column TYPE REF TO cl_salv_column_table,
o_events TYPE REF TO cl_salv_events_table.
ENDCLASS. "lcl_alv DEFINITION
*- Class Implementation
*----------------------------------------------------------------------*
* CLASS lcl_alv IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.
METHOD select_alv.
SELECT *
FROM sbook
INTO TABLE t_alv
UP TO amount ROWS.
ENDMETHOD. "SELECT_ALV
METHOD display_alv.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = o_table
CHANGING
t_table = t_alv ).
CATCH cx_salv_msg. "#EC NO_HANDLER
ENDTRY.
o_columns = o_table->get_columns( ).
o_columns->set_optimize( abap_true ).
TRY.
o_column ?= o_columns->get_column( 'CARRID' ).
o_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
CATCH cx_salv_not_found.
ENDTRY.
o_events = o_table->get_event( ).
o_table->display( ).
ENDMETHOD. "display_alv
ENDCLASS. "lcl_alv IMPLEMENTATION
*- Defining Objects
DATA o_alv TYPE REF TO lcl_alv.
*- Instance Creation
START-OF-SELECTION.
CREATE OBJECT o_alv.
*- Calling Methods
o_alv->select_alv( 30 ).
o_alv->display_alv( ).
jueves, 12 de enero de 2012
alv funciones
***codigo en linea **********crear la estrucura
"+++++++++++++++modificar (ojo lineas a modificar)
DATA: GT_SALIDA TYPE STANDARD TABLE OF estructura_z WITH HEADER LINE. "+++++++++++++++modificar
DATA NAME TYPE USR21-BNAME.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: NOMBRE FOR NAME.
SELECTION-SCREEN END OF BLOCK B1.
* ALV
TYPE-POOLS: SLIS.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
CONSTANTS: FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: FIELD TYPE SLIS_T_FIELDCAT_ALV, "Catalogo
GS_LAYOUT TYPE SLIS_LAYOUT_ALV, "estructura de salida
GS_FILTER TYPE SLIS_T_FILTER_ALV WITH HEADER LINE, "Filtro
GS_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE, "Sort
G_REPID LIKE SY-REPID, "Nombre del Programa
HEADING TYPE SLIS_T_LISTHEADER, "Cabecera del Programa
EVENTS TYPE SLIS_T_EVENT. "Eventos
* ALV
INITIALIZATION.
START-OF-SELECTION.
PERFORM CONSULTAR_DATOS.
G_REPID = SY-REPID.
PERFORM INITIALIZE_FIELDCAT USING FIELD[].
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_LAYOUT USING GS_LAYOUT.
PERFORM BUILD_CATALOG.
PERFORM BUILD_COMMENT USING HEADING[].
PERFORM PRINT_REPORT.
END-OF-SELECTION.
******hacer consulta cualquiera "+++++++++++++++modificar
FORM CONSULTAR_DATOS.
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
SELECT A~NAME_FIRST A~NAME_LAST
INTO TABLE IT
FROM USR21 AS U
INNER JOIN ADRP AS A
ON U~PERSNUMBER = A~PERSNUMBER
WHERE U~BNAME IN NOMBRE.
LOOP AT IT .
MOVE-CORRESPONDING IT TO GT_SALIDA.
GT_SALIDA-NOMBRE = IT-NOMBRE.
GT_SALIDA-APELLIDO = IT-APELLIDO.
APPEND GT_SALIDA.
ENDLOOP.
ENDFORM. " SELECCIONAR_DATOS
**** ALV ****
*&--------------------------------------------------------------------*
*& Form initialize_fieldcat
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_FIELDTAB text
*---------------------------------------------------------------------*
FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: FIELD TYPE SLIS_FIELDCAT_ALV.
FIELD-TABNAME = 'GT_SALIDA'. "+++++++++++++++modificar (estructura)
FIELD-FIELDNAME = 'NOMBRE'. "+++++++++++++++modificar (campo)
* field-key = 'X'.
APPEND FIELD TO P_FIELDTAB.
CLEAR FIELD.
FIELD-TABNAME = 'GT_SALIDA'.
FIELD-FIELDNAME = 'APELLIDO'.
* field-key = 'X'.
APPEND FIELD TO P_FIELDTAB.
CLEAR FIELD.
ENDFORM. "initialize_fieldcat
*&--------------------------------------------------------------------*
*& Form build_eventtab
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_EVENTS text
*---------------------------------------------------------------------*
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. "build_eventtab
*&--------------------------------------------------------------------*
*& Form build_comment
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_HEADING text
*---------------------------------------------------------------------*
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER.
CLEAR: HLINE.
HLINE-TYP = 'H'.
MOVE 'ALV DE PRUEBA ' TO HLINE-INFO.
APPEND HLINE TO P_HEADING.
HLINE-TYP = 'S'.
HLINE-INFO = 'fabian o'.
APPEND HLINE TO P_HEADING.
HLINE-TYP = 'A'.
HLINE-INFO = 'OK'.
APPEND HLINE TO P_HEADING.
CLEAR HLINE.
ENDFORM. "build_comment
*&--------------------------------------------------------------------*
*& Form pf_status
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->LT_EXTAB text
*---------------------------------------------------------------------*
FORM PF_STATUS USING LT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD_FULLSCREEN'. " EXCLUDING t_exclude.
ENDFORM. "pf_status
*&--------------------------------------------------------------------*
*& Form build_layout
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_LAYOUT text
*---------------------------------------------------------------------*
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-F2CODE = '&ETA'.
P_LAYOUT-ZEBRA = 'X'.
P_LAYOUT-DETAIL_POPUP = 'X'.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " build_layout
*---------------------------------------------------------------------*
* FORM top_of_page *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEADING.
ENDFORM. "top_of_page
*&--------------------------------------------------------------------*
*& Form print_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM PRINT_REPORT .
* Arma el Reporte ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = FIELD
IT_SORT = GS_SORT[]
IT_FILTER = GS_FILTER[]
I_DEFAULT = 'X'
IT_EVENTS = EVENTS[]
TABLES
T_OUTTAB = GT_SALIDA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "print_report
*& Form build_catalog
*&---------------------------------------------------------------------*
* Construye Catálogo
*----------------------------------------------------------------------*
FORM BUILD_CATALOG.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'GT_SALIDA' "+++++++++++++++modificar (estrutura)
I_INCLNAME = G_REPID
I_STRUCTURE_NAME = 'estructura_z' "+++++++++++++++modificar (estructura)
CHANGING
CT_FIELDCAT = FIELD.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
ENDIF.
ENDFORM. "build_catalog

"+++++++++++++++modificar (ojo lineas a modificar)
DATA: GT_SALIDA TYPE STANDARD TABLE OF estructura_z WITH HEADER LINE. "+++++++++++++++modificar
DATA NAME TYPE USR21-BNAME.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: NOMBRE FOR NAME.
SELECTION-SCREEN END OF BLOCK B1.
* ALV
TYPE-POOLS: SLIS.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
CONSTANTS: FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: FIELD TYPE SLIS_T_FIELDCAT_ALV, "Catalogo
GS_LAYOUT TYPE SLIS_LAYOUT_ALV, "estructura de salida
GS_FILTER TYPE SLIS_T_FILTER_ALV WITH HEADER LINE, "Filtro
GS_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE, "Sort
G_REPID LIKE SY-REPID, "Nombre del Programa
HEADING TYPE SLIS_T_LISTHEADER, "Cabecera del Programa
EVENTS TYPE SLIS_T_EVENT. "Eventos
* ALV
INITIALIZATION.
START-OF-SELECTION.
PERFORM CONSULTAR_DATOS.
G_REPID = SY-REPID.
PERFORM INITIALIZE_FIELDCAT USING FIELD[].
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_LAYOUT USING GS_LAYOUT.
PERFORM BUILD_CATALOG.
PERFORM BUILD_COMMENT USING HEADING[].
PERFORM PRINT_REPORT.
END-OF-SELECTION.
******hacer consulta cualquiera "+++++++++++++++modificar
FORM CONSULTAR_DATOS.
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
SELECT A~NAME_FIRST A~NAME_LAST
INTO TABLE IT
FROM USR21 AS U
INNER JOIN ADRP AS A
ON U~PERSNUMBER = A~PERSNUMBER
WHERE U~BNAME IN NOMBRE.
LOOP AT IT .
MOVE-CORRESPONDING IT TO GT_SALIDA.
GT_SALIDA-NOMBRE = IT-NOMBRE.
GT_SALIDA-APELLIDO = IT-APELLIDO.
APPEND GT_SALIDA.
ENDLOOP.
ENDFORM. " SELECCIONAR_DATOS
**** ALV ****
*&--------------------------------------------------------------------*
*& Form initialize_fieldcat
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_FIELDTAB text
*---------------------------------------------------------------------*
FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: FIELD TYPE SLIS_FIELDCAT_ALV.
FIELD-TABNAME = 'GT_SALIDA'. "+++++++++++++++modificar (estructura)
FIELD-FIELDNAME = 'NOMBRE'. "+++++++++++++++modificar (campo)
* field-key = 'X'.
APPEND FIELD TO P_FIELDTAB.
CLEAR FIELD.
FIELD-TABNAME = 'GT_SALIDA'.
FIELD-FIELDNAME = 'APELLIDO'.
* field-key = 'X'.
APPEND FIELD TO P_FIELDTAB.
CLEAR FIELD.
ENDFORM. "initialize_fieldcat
*&--------------------------------------------------------------------*
*& Form build_eventtab
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_EVENTS text
*---------------------------------------------------------------------*
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. "build_eventtab
*&--------------------------------------------------------------------*
*& Form build_comment
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_HEADING text
*---------------------------------------------------------------------*
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER.
CLEAR: HLINE.
HLINE-TYP = 'H'.
MOVE 'ALV DE PRUEBA ' TO HLINE-INFO.
APPEND HLINE TO P_HEADING.
HLINE-TYP = 'S'.
HLINE-INFO = 'fabian o'.
APPEND HLINE TO P_HEADING.
HLINE-TYP = 'A'.
HLINE-INFO = 'OK'.
APPEND HLINE TO P_HEADING.
CLEAR HLINE.
ENDFORM. "build_comment
*&--------------------------------------------------------------------*
*& Form pf_status
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->LT_EXTAB text
*---------------------------------------------------------------------*
FORM PF_STATUS USING LT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD_FULLSCREEN'. " EXCLUDING t_exclude.
ENDFORM. "pf_status
*&--------------------------------------------------------------------*
*& Form build_layout
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->P_LAYOUT text
*---------------------------------------------------------------------*
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-F2CODE = '&ETA'.
P_LAYOUT-ZEBRA = 'X'.
P_LAYOUT-DETAIL_POPUP = 'X'.
P_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " build_layout
*---------------------------------------------------------------------*
* FORM top_of_page *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEADING.
ENDFORM. "top_of_page
*&--------------------------------------------------------------------*
*& Form print_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM PRINT_REPORT .
* Arma el Reporte ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = FIELD
IT_SORT = GS_SORT[]
IT_FILTER = GS_FILTER[]
I_DEFAULT = 'X'
IT_EVENTS = EVENTS[]
TABLES
T_OUTTAB = GT_SALIDA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "print_report
*& Form build_catalog
*&---------------------------------------------------------------------*
* Construye Catálogo
*----------------------------------------------------------------------*
FORM BUILD_CATALOG.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'GT_SALIDA' "+++++++++++++++modificar (estrutura)
I_INCLNAME = G_REPID
I_STRUCTURE_NAME = 'estructura_z' "+++++++++++++++modificar (estructura)
CHANGING
CT_FIELDCAT = FIELD.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
ENDIF.
ENDFORM. "build_catalog

lunes, 12 de diciembre de 2011
smartforms a pdf
* Internal table declaration
DATA:
W_CTRLOP TYPE SSFCTRLOP,
W_COMPOP TYPE SSFCOMPOP,
W_RETURN TYPE SSFCRESCL,
I_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE.
* Declaration of local variables.
DATA: ST_OUTPUT_OPTIONS TYPE SSFCOMPOP,
ST_CONTROL_PARAMETERS TYPE SSFCTRLOP,
V_LEN_IN TYPE SO_OBJ_LEN,
V_LANGUAGE TYPE SFLANGU VALUE 'E',
V_E_DEVTYPE TYPE RSPOPTYPE,
V_BIN_FILESIZE TYPE I,
BIN_FILESIZE TYPE D,
V_NAME TYPE STRING,
V_PATH TYPE STRING,
V_FULLPATH TYPE STRING,
V_FILTER TYPE STRING,
V_UACT TYPE I,
V_GUIOBJ TYPE REF TO CL_GUI_FRONTEND_SERVICES,
V_FILENAME TYPE STRING,
V_FM_NAME TYPE RS38L_FNAM,
W_NAMESF TYPE TNAPR-SFORM VALUE 'Yz_SF'. "SMARTFORM
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = V_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = V_E_DEVTYPE.
ST_OUTPUT_OPTIONS-TDPRINTER = V_E_DEVTYPE.
ST_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
ST_CONTROL_PARAMETERS-GETOTF = 'X'.
*.................OBTIENE MODULO DE FUNCIONES DEL SMATRFORMS.................*
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = W_NAMESF "LLEVA EL NOMBRE DEL SMARTFORM
IMPORTING
FM_NAME = V_FM_NAME " GUARDA LA RFC DEL SMARTFORM
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
*...........................CALL SMARTFORM............................*
W_CTRLOP-GETOTF = 'X'.
W_CTRLOP-NO_DIALOG = ' '.
W_COMPOP-TDNOPREV = ' '.
CALL FUNCTION V_FM_NAME
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = W_CTRLOP
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = W_COMPOP
USER_SETTINGS = 'X'
* D = '0'
IMPORTING
* document_output_info = st_document_output_info
JOB_OUTPUT_INFO = W_RETURN
* job_output_options = st_job_output_options
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
I_OTF[] = W_RETURN-OTFDATA[].
*.........................CONVERT TO OTF TO PDF.......................*
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
* PDF_USERNAME = ' '
IMPORTING
BIN_FILESIZE = V_LEN_IN
* BIN_FILE =
TABLES
OTF = I_OTF
LINES = I_TLINE
* EXCEPTIONS
* ERR_MAX_LINEWIDTH = 1
* ERR_FORMAT = 2
* ERR_CONV_NOT_POSSIBLE = 3
* ERR_BAD_OTF = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*........................MATCH CODE GUARDAR EL PDF...................*
CONCATENATE 'smrt' '.pdf' INTO V_NAME.
CREATE OBJECT V_GUIOBJ.
CALL METHOD V_GUIOBJ->FILE_SAVE_DIALOG
EXPORTING
DEFAULT_EXTENSION = 'pdf'
DEFAULT_FILE_NAME = V_NAME
FILE_FILTER = V_FILTER
CHANGING
FILENAME = V_NAME
PATH = V_PATH
FULLPATH = V_FULLPATH
USER_ACTION = V_UACT.
IF V_UACT = V_GUIOBJ->ACTION_CANCEL.
EXIT.
ENDIF.
*..................................DOWNLOAD AS FILE....................*
MOVE V_FULLPATH TO V_FILENAME.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = V_BIN_FILESIZE
FILENAME = V_FILENAME
FILETYPE = 'BIN'
TABLES
DATA_TAB = I_TLINE
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
Sapscript a PDF
nota: crear el sapscript con el elemento detalle en el main. que fue el caso de este codigo.
TABLES: itcpo."P.Q. FUNCIONE EL PDF (ojo)
**TABLA PARA EL PDF
DATA: otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,"P.Q. FUNCIONE EL PDF (ojo)
intab TYPE soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
objbin TYPE solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_intab TYPE LINE OF soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_objbin TYPE LINE OF solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
objpack LIKE sopcklsti1."P.Q. FUNCIONE EL PDF (ojo)
*DATA: receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
**********datos de consulta
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA NAME TYPE USR21-BNAME.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
DATA P TYPE I VALUE 10.
SELECT-OPTIONS NOMBRE FOR NAME.
select a~NAME_FIRST a~NAME_LAST
into TABLE IT
from USR21 as u
INNER JOIN ADRP as a
on u~PERSNUMBER = a~PERSNUMBER
where U~BNAME IN NOMBRE.
**********fin *datos de consulta
itcpo-tdgetotf = 'X'."P.Q. FUNCIONE EL PDF (ojo)
itcpo-tddest = 'LP01'."P.Q. FUNCIONE EL PDF (ojo)
CALL FUNCTION 'OPEN_FORM'
EXPORTING
* APPLICATION = 'TX'
* ARCHIVE_INDEX =
* ARCHIVE_PARAMS =
DEVICE = 'PRINTER'"P.Q. FUNCIONE EL PDF (ojo)
DIALOG = ''"P.Q. FUNCIONE EL PDF (ojo)
FORM = 'YSAPSCRIPT_SSCRIPT' "nombre del sapscript
LANGUAGE = SY-LANGU
OPTIONS = itcpo "P.Q. FUNCIONE EL PDF (ojo)
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJECT =
* RAW_DATA_INTERFACE = '*'
* SPONUMIV =
* IMPORTING
* LANGUAGE =
* NEW_ARCHIVE_PARAMS =
* RESULT =
* EXCEPTIONS
* CANCELED = 1
* DEVICE = 2
* FORM = 3
* OPTIONS = 4
* UNCLOSED = 5
* MAIL_OPTIONS = 6
* ARCHIVE_ERROR = 7
* INVALID_FAX_NUMBER = 8
* MORE_PARAMS_NEEDED_IN_BATCH = 9
* SPOOL_ERROR = 10
* CODEPAGE = 11
* OTHERS = 12
.
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 'START_FORM'
EXPORTING
* ARCHIVE_INDEX =
FORM = 'YSAPSCRIPT_SSCRIPT'
* LANGUAGE = ' '
* STARTPAGE = ' '
* PROGRAM = ' '
* MAIL_APPL_OBJECT =
* IMPORTING
* LANGUAGE =
* EXCEPTIONS
* FORM = 1
* FORMAT = 2
* UNENDED = 3
* UNOPENED = 4
* UNUSED = 5
* SPOOL_ERROR = 6
* CODEPAGE = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'DETALLE'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
* IMPORTING
* PENDING_LINES =
* EXCEPTIONS
* ELEMENT = 1
* FUNCTION = 2
* TYPE = 3
* UNOPENED = 4
* UNSTARTED = 5
* WINDOW = 6
* BAD_PAGEFORMAT_FOR_PRINT = 7
* SPOOL_ERROR = 8
* CODEPAGE = 9
* OTHERS = 10
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'END_FORM'
* IMPORTING
* RESULT =
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SPOOL_ERROR = 3
* CODEPAGE = 4
* OTHERS = 5
.
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 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = otfdata"P.Q. FUNCIONE EL PDF (ojo)
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SEND_ERROR = 3
* SPOOL_ERROR = 4
* CODEPAGE = 5
* OTHERS = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*********para bajar a pdf
LOOP AT otfdata.
wa_intab = otfdata.
APPEND wa_intab TO intab.
CLEAR wa_intab.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'LP01'
CHANGING
transfer_bin = objpack-transf_bin
content_txt = intab
content_bin = objbin
objhead = intab
len = objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:/PRUEBASS.PDF'
filetype = 'BIN'
TABLES
data_tab = objbin
EXCEPTIONS
file_write_error = 1
no_batch = 2.
IF sy-subrc <> 0.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*END PDF
TABLES: itcpo."P.Q. FUNCIONE EL PDF (ojo)
**TABLA PARA EL PDF
DATA: otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,"P.Q. FUNCIONE EL PDF (ojo)
intab TYPE soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
objbin TYPE solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_intab TYPE LINE OF soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_objbin TYPE LINE OF solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
objpack LIKE sopcklsti1."P.Q. FUNCIONE EL PDF (ojo)
*DATA: receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
**********datos de consulta
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA NAME TYPE USR21-BNAME.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
DATA P TYPE I VALUE 10.
SELECT-OPTIONS NOMBRE FOR NAME.
select a~NAME_FIRST a~NAME_LAST
into TABLE IT
from USR21 as u
INNER JOIN ADRP as a
on u~PERSNUMBER = a~PERSNUMBER
where U~BNAME IN NOMBRE.
**********fin *datos de consulta
itcpo-tdgetotf = 'X'."P.Q. FUNCIONE EL PDF (ojo)
itcpo-tddest = 'LP01'."P.Q. FUNCIONE EL PDF (ojo)
CALL FUNCTION 'OPEN_FORM'
EXPORTING
* APPLICATION = 'TX'
* ARCHIVE_INDEX =
* ARCHIVE_PARAMS =
DEVICE = 'PRINTER'"P.Q. FUNCIONE EL PDF (ojo)
DIALOG = ''"P.Q. FUNCIONE EL PDF (ojo)
FORM = 'YSAPSCRIPT_SSCRIPT' "nombre del sapscript
LANGUAGE = SY-LANGU
OPTIONS = itcpo "P.Q. FUNCIONE EL PDF (ojo)
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJECT =
* RAW_DATA_INTERFACE = '*'
* SPONUMIV =
* IMPORTING
* LANGUAGE =
* NEW_ARCHIVE_PARAMS =
* RESULT =
* EXCEPTIONS
* CANCELED = 1
* DEVICE = 2
* FORM = 3
* OPTIONS = 4
* UNCLOSED = 5
* MAIL_OPTIONS = 6
* ARCHIVE_ERROR = 7
* INVALID_FAX_NUMBER = 8
* MORE_PARAMS_NEEDED_IN_BATCH = 9
* SPOOL_ERROR = 10
* CODEPAGE = 11
* OTHERS = 12
.
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 'START_FORM'
EXPORTING
* ARCHIVE_INDEX =
FORM = 'YSAPSCRIPT_SSCRIPT'
* LANGUAGE = ' '
* STARTPAGE = ' '
* PROGRAM = ' '
* MAIL_APPL_OBJECT =
* IMPORTING
* LANGUAGE =
* EXCEPTIONS
* FORM = 1
* FORMAT = 2
* UNENDED = 3
* UNOPENED = 4
* UNUSED = 5
* SPOOL_ERROR = 6
* CODEPAGE = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'DETALLE'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
* IMPORTING
* PENDING_LINES =
* EXCEPTIONS
* ELEMENT = 1
* FUNCTION = 2
* TYPE = 3
* UNOPENED = 4
* UNSTARTED = 5
* WINDOW = 6
* BAD_PAGEFORMAT_FOR_PRINT = 7
* SPOOL_ERROR = 8
* CODEPAGE = 9
* OTHERS = 10
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'END_FORM'
* IMPORTING
* RESULT =
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SPOOL_ERROR = 3
* CODEPAGE = 4
* OTHERS = 5
.
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 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = otfdata"P.Q. FUNCIONE EL PDF (ojo)
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SEND_ERROR = 3
* SPOOL_ERROR = 4
* CODEPAGE = 5
* OTHERS = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*********para bajar a pdf
LOOP AT otfdata.
wa_intab = otfdata.
APPEND wa_intab TO intab.
CLEAR wa_intab.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'LP01'
CHANGING
transfer_bin = objpack-transf_bin
content_txt = intab
content_bin = objbin
objhead = intab
len = objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:/PRUEBASS.PDF'
filetype = 'BIN'
TABLES
data_tab = objbin
EXCEPTIONS
file_write_error = 1
no_batch = 2.
IF sy-subrc <> 0.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*END PDF
lunes, 5 de diciembre de 2011
SEPARATED BY ABAP
DATA: ONE(10) VALUE 'Ivan',
TWO(7) VALUE 'Rodrigo',
THREE(10) VALUE 'Baños',
NAME(30),
SEPARATOR VALUE ':'.
CONCATENATE ONE TWO THREE INTO NAME
SEPARATED BY separator.
write name.
TWO(7) VALUE 'Rodrigo',
THREE(10) VALUE 'Baños',
NAME(30),
SEPARATOR VALUE ':'.
CONCATENATE ONE TWO THREE INTO NAME
SEPARATED BY separator.
write name.
FETCH NEXT CURSOR C INTO WA
TABLES SBOOK.
DATA: C TYPE CURSOR,
WA LIKE SBOOK.
OPEN CURSOR C FOR SELECT * FROM SBOOK
WHERE
CARRID = 'AA' AND
CONNID = '017' AND
BOOKID = '00000053'
ORDER BY PRIMARY KEY.
DO.
FETCH NEXT CURSOR C INTO WA.
IF SY-SUBRC <> 0.
CLOSE CURSOR C. EXIT.
ENDIF.
WRITE: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,
WA-SMOKER, WA-LUGGWEIGHT, WA-WUNIT,
WA-INVOICE.
ENDDO.
TRAE DATOS UY LOS DEJA EN LA VARIABLE C Y DESPUES LOS PASA AL WA
DATA: C TYPE CURSOR,
WA LIKE SBOOK.
OPEN CURSOR C FOR SELECT * FROM SBOOK
WHERE
CARRID = 'AA' AND
CONNID = '017' AND
BOOKID = '00000053'
ORDER BY PRIMARY KEY.
DO.
FETCH NEXT CURSOR C INTO WA.
IF SY-SUBRC <> 0.
CLOSE CURSOR C. EXIT.
ENDIF.
WRITE: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,
WA-SMOKER, WA-LUGGWEIGHT, WA-WUNIT,
WA-INVOICE.
ENDDO.
TRAE DATOS UY LOS DEJA EN LA VARIABLE C Y DESPUES LOS PASA AL WA
SPLIT ABAP
data text1(255).
data text2(255).
data text3(255).
data text4(255).
data text5(255).
data text(18) value '3.000.000'.
SPLIT text AT '.' INTO text1 text2 text3 text4 text5.
CONCATENATE text1 text2 text3 text4 text4 into text.
*coje valor de la text 3.000.000 los separa y los deja en cada variable
*text1 = 3
*text2 = 000
*text3 = 000
*CONCATENATE queda 3000000 sin puntos
data text2(255).
data text3(255).
data text4(255).
data text5(255).
data text(18) value '3.000.000'.
SPLIT text AT '.' INTO text1 text2 text3 text4 text5.
CONCATENATE text1 text2 text3 text4 text4 into text.
*coje valor de la text 3.000.000 los separa y los deja en cada variable
*text1 = 3
*text2 = 000
*text3 = 000
*CONCATENATE queda 3000000 sin puntos
Suscribirse a:
Entradas (Atom)