Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Comando e Funções em ABAP/4 - Apostilas - Informática Part2, Notas de estudo de Informática

Apostilas de Informática sobre Comando e Funções em ABAP/4, Descrição.

Tipologia: Notas de estudo

2013

Compartilhado em 28/08/2013

Garoto
Garoto 🇪🇸

4.6

(121)

3 documentos

1 / 45

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Comando e Funções em ABAP/4
____________________________________________________________________________________
Elaborado Por : Amantino Freitas Soares
46
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_CABECA .
DATA novo(60) TYPE C.
WRITE 5 sy-datum.
WRITE 50 'CHEMYUNION QUIMICA LTDA'.
WRITE 120 sy-pagno.
WRITE AT /40 text-002.
WRITE AT /5 'Material'.
WRITE 18 'Descrição'.
WRITE 60 'Centro'.
WRITE 80 'Descrição'.
WRITE 120 'DEPOSTIO'.
WRITE 140 'ANO '.
WRITE 150 'MES '.
WRITE 180 'QTD '.
ULINE.
ENDFORM. " F_CABECA
*&---------------------------------------------------------------------*
*& Form F_BUSCAR_MATERIAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_BUSCAR_MATERIAL .
SELECT * FROM marc UP TO 1 ROWS WHERE matnr IN s_materi.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE W001.
ENDIF.
SELECT * FROM t001L UP TO 1 ROWS WHERE lgort IN s_deposi.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE W002.
ENDIF.
ENDFORM. " F_BUSCAR_MATERIAL
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d

Pré-visualização parcial do texto

Baixe Comando e Funções em ABAP/4 - Apostilas - Informática Part2 e outras Notas de estudo em PDF para Informática, somente na Docsity!

____________________________________________________________________________________

  • <-- p2 text ---------------------------------------------------------------------- FORM F_CABECA.

DATA novo(60) TYPE C.

WRITE 5 sy-datum. WRITE 50 'CHEMYUNION QUIMICA LTDA'. WRITE 120 sy-pagno. WRITE AT /40 text-002. WRITE AT /5 'Material'. WRITE 18 'Descrição'. WRITE 60 'Centro'. WRITE 80 'Descrição'. WRITE 120 'DEPOSTIO'. WRITE 140 'ANO '. WRITE 150 'MES '. WRITE 180 'QTD '. ULINE. ENDFORM. " F_CABECA &--------------------------------------------------------------------- *& Form F_BUSCAR_MATERIAL &---------------------------------------------------------------------

  • text ----------------------------------------------------------------------
  • --> p1 text
  • <-- p2 text ---------------------------------------------------------------------- FORM F_BUSCAR_MATERIAL.

SELECT * FROM marc UP TO 1 ROWS WHERE matnr IN s_materi. ENDSELECT.

IF SY-SUBRC <> 0. MESSAGE W001. ENDIF.

SELECT * FROM t001L UP TO 1 ROWS WHERE lgort IN s_deposi. ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE W002.

ENDIF.

ENDFORM. " F_BUSCAR_MATERIAL

____________________________________________________________________________________

Programa 6

*& Report ZC00109 * *& * &--------------------------------------------------------------------- *& PROGRAMA PARA LER ARQUIVO EXTERNO E IMPORTAR PARA TABELA * *& * &---------------------------------------------------------------------

REPORT ZC.

* TABELA QUE IRA CONTER OS DADOS IMPORTADOS

TABLES : ZTAB1_01.

* TABELA INTERNA PARA MANIPULAR OS DADOS

DATA : BEGIN OF t_tabela OCCURS 0, texto01(100) TYPE C, END OF t_tabela.

* COMO CRIAR UMA TABELA INTERNA COPIANDO A ESTRUTURA DA TABELA INTERNA.

DATA : BEGIN OF t_tempo OCCURS 0. INCLUDE STRUCTURE ztab1_01. DATA : END OF t_tempo.

  • CRIA UMA CONSTANTE caractere com o valor ';' CONSTANTS c_tipo TYPE C VALUE ';'.

SELECTION-SCREEN BEGIN OF BLOCK b_janela WITH FRAME TITLE text-001.

  • nome do parametro para importar o arquivo -> RLGRAP-FILENAME PARAMETERS P_ARQ LIKE RLGRAP-FILENAME. SELECTION-SCREEN END OF BLOCK b_janela.

START-OF-SELECTION.

PERFORM F_CARREGAR_DADOS.

PERFORM F_DADOS_P_TAB_INTERNA.

PERFORM F_ATUALIZAR_DADOS.

*& Form F_CARREGAR_DADOS &---------------------------------------------------------------------

  • text ----------------------------------------------------------------------

  • --> p1 text

  • <-- p2 text ---------------------------------------------------------------------- FORM F_CARREGAR_DADOS.

  • limpar a tabela de entrada e o read line da tabela REFRESH t_tabela. CLEAR t_tabela.

* FUNÇÃO PARA IMPORTAR ARQUIVO

  • chamar a função usar o botão MODELO CALL FUNCTION 'WS_UPLOAD' EXPORTING
  • CODEPAGE = ' ' FILENAME = P_ARQ " COLOCAR O NOME DA VARIAVEL " IRA CONTER O NOME DO ARQUIVO FILETYPE = 'ASC' " TIPO DE ARQUIVO
  • HEADLEN = ' '
  • LINE_EXIT = ' '
  • TRUNCLEN = ' '
  • USER_FORM = ' '

____________________________________________________________________________________

  • --> p1 text
  • <-- p2 text ---------------------------------------------------------------------- FORM F_ATUALIZAR_DADOS.

LOOP AT t_tempo.

  • move o conteúdo de uma tabela para outra tabela

  • apenas os campos com o mesmo nome ( variáveis ) MOVE-CORRESPONDING t_tempo TO ztab1_01.

  • INSERE O CONTEUDO DA VARIAVEL PARA A TABELA ( GRAVAR ) INSERT ztab1_01.

  • UPDATE tabela interna

  • DELETE tabela interna

ENDLOOP.

* EFETIVA AS ALTERAÇÕES NO BANCO

COMMIT WORK.

ENDFORM. " F_ATUALIZAR_DADOS

____________________________________________________________________________________

Programa 7

*& Report ZC00110 * &--------------------------------------------------------------------- *& PROGRAMA PARA BATCH IMPUT * &---------------------------------------------------------------------

REPORT ZC00110.

  • Tabela interna para receber dados importados DATA : BEGIN OF t_tabela OCCURS 0, texto01(1000) TYPE C, END OF t_tabela.

DATA: BEGIN OF T_TEMPO OCCURS 0,

BUKRS TYPE RF02K-BUKRS,

EKORG TYPE RF02K-EKORG,

KTOKK TYPE RF02K-KTOKK,

NAME1 TYPE LFA1-NAME1,

SORTL TYPE LFA1-SORTL,

ORT01 TYPE LFA1-ORT01,

PSTLZ TYPE LFA1-PSTLZ,

LAND1 TYPE LFA1-LAND1,

REGIO TYPE LFA1-REGIO,

SPRAS TYPE LFA1-SPRAS,

STCD1 TYPE LFA1-STCD1,

TXJCD TYPE LFA1-TXJCD,

BANKS TYPE LFBK-BANKS,

BANKL TYPE LFBK-BANKL,

BANKN TYPE LFBK-BANKN,

KOINH TYPE LFBK-KOINH,

AKONT TYPE LFB1-AKONT,

FDGRV TYPE LFB1-FDGRV,

REPRF TYPE LFB1-REPRF,

ZWELS TYPE LFB1-ZWELS,

WAERS TYPE LFM1-WAERS,

ZTERM TYPE LFM1-ZTERM,

WEBRE TYPE LFM1-WEBRE,

END OF T_TEMPO.

* COMO CRIAR UMA TABELA INTERNA COPIANDO A ESTRUTURA DA TABELA INTERNA.

  • para BATCH IMPUT devemos usar a tabela BDCDATA DATA : BEGIN OF t_bdc OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA : END OF t_bdc.

  • para BATCH IMPUT devemos usar a tabela BDCMSGCOLL para

  • guardar as mensagens de erro DATA : BEGIN OF t_msg OCCURS 0. INCLUDE STRUCTURE BDCMSGCOLL. DATA : END OF t_msg.

  • delimitador do arquivo txt CONSTANTS c_tipo TYPE C VALUE ';'. . SELECTION-SCREEN BEGIN OF BLOCK b_janela WITH FRAME TITLE text-001.

  • nome do parametro para importar o arquivo -> RLGRAP-FILENAME PARAMETERS P_ARQ LIKE RLGRAP-FILENAME. SELECTION-SCREEN END OF BLOCK b_janela.

START-OF-SELECTION.

PERFORM F_IMPORTAR_DADOS.

PERFORM F_CARREGAR_DADOS.

PERFORM F_BATCH_IMPUT.

____________________________________________________________________________________

  • limpar o header line da tabela CLEAR t_tempo.

  • SPLIT tabela_interna AT delimitador_do_arquivo INTO

  • campos que irão receber os dados na seqüência do

  • arquivo SPLIT t_tabela-texto01 AT c_tipo INTO T_TEMPO-BUKRS T_TEMPO-EKORG T_TEMPO-KTOKK T_TEMPO-NAME T_TEMPO-SORTL T_TEMPO-ORT T_TEMPO-PSTLZ T_TEMPO-LAND T_TEMPO-REGIO T_TEMPO-SPRAS T_TEMPO-STCD T_TEMPO-TXJCD T_TEMPO-BANKS T_TEMPO-BANKL T_TEMPO-BANKN T_TEMPO-KOINH T_TEMPO-AKONT T_TEMPO-FDGRV T_TEMPO-REPRF T_TEMPO-ZWELS T_TEMPO-WAERS T_TEMPO-ZTERM T_TEMPO-WEBRE.

  • APPEND nome da tabela que ira guardar os dados importados gravar na tabela

APPEND t_tempo.

ENDLOOP.

ENDFORM. " F_CARREGAR_DADOS

*& Form F_BATCH_IMPUT &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_BATCH_IMPUT.

LOOP AT t_tempo.

  • PERFORM PARA PREENCHER A tabela BDC
  • PERFORM F_BDC_TELA USING programa tela.
  • PERFORM F_BDC_CAMPO USING campo valor.
  • devemos passar os parâmetros obtidos na transação SHDB

PERFORM F_BDC_TELA USING 'SAPMF02K' '100'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'RF02K-REF_LIFNR'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'RF02K-BUKRS' T_TEMPO-BUKRS.

PERFORM F_BDC_CAMPO USING 'RF02K-EKORG' T_TEMPO-EKORG.

PERFORM F_BDC_CAMPO USING 'RF02K-KTOKK' T_TEMPO-KTOKK.

PERFORM F_BDC_TELA USING 'SAPMF02K' '110'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFA1-TELX1'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFA1-NAME1' T_TEMPO-NAME1.

PERFORM F_BDC_CAMPO USING 'LFA1-SORTL' T_TEMPO-SORTL.

PERFORM F_BDC_CAMPO USING 'LFA1-ORT01' T_TEMPO-ORT01.

PERFORM F_BDC_CAMPO USING 'LFA1-PSTLZ' T_TEMPO-PSTLZ.

PERFORM F_BDC_CAMPO USING 'LFA1-LAND1' T_TEMPO-LAND1.

PERFORM F_BDC_CAMPO USING 'LFA1-REGIO' T_TEMPO-REGIO.

____________________________________________________________________________________

PERFORM F_BDC_CAMPO USING 'LFA1-SPRAS' T_TEMPO-SPRAS.

PERFORM F_BDC_TELA USING 'SAPMF02K' '120'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFA1-STCD3'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFA1-STCD1' T_TEMPO-STCD1.

PERFORM F_BDC_CAMPO USING 'LFA1-TXJCD' T_TEMPO-TXJCD.

PERFORM F_BDC_TELA USING 'SAPMF02K' '130'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFBK-KOINH(01)'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFBK-BANKS(01)' T_TEMPO-BANKS.

PERFORM F_BDC_CAMPO USING 'LFBK-BANKL(01)' T_TEMPO-BANKL.

PERFORM F_BDC_CAMPO USING 'LFBK-BANKN(01)' T_TEMPO-BANKN.

PERFORM F_BDC_CAMPO USING 'LFBK-KOINH(01)' T_TEMPO-KOINH.

PERFORM F_BDC_TELA USING 'SAPMF02K' '130'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFBK-BANKS(01)'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '=ENTR'.

PERFORM F_BDC_TELA USING 'SAPMF02K' '210'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFB1-FDGRV'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFB1-AKONT' T_TEMPO-AKONT.

PERFORM F_BDC_CAMPO USING 'LFB1-FDGRV' T_TEMPO-FDGRV.

PERFORM F_BDC_TELA USING 'SAPMF02K' '215'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFB1-REPRF'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFB1-REPRF' T_TEMPO-REPRF.

PERFORM F_BDC_CAMPO USING 'LFB1-ZWELS' T_TEMPO-ZWELS.

PERFORM F_BDC_TELA USING 'SAPMF02K' '220'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFB5-LFRMA'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_TELA USING 'SAPMF02K' '610'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'RF02K-LIFNR'.

PERFORM F_BDC_TELA USING 'SAPMF02K' '310'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'LFM1-WEBRE'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '/00'.

PERFORM F_BDC_CAMPO USING 'LFM1-WAERS' T_TEMPO-WAERS.

PERFORM F_BDC_CAMPO USING 'LFM1-ZTERM' T_TEMPO-ZTERM.

PERFORM F_BDC_CAMPO USING 'LFM1-WEBRE' T_TEMPO-WEBRE.

PERFORM F_BDC_TELA USING 'SAPMF02K' '320'.

PERFORM F_BDC_CAMPO USING 'BDC_CURSOR' 'RF02K-LIFNR'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '=ENTR'.

PERFORM F_BDC_TELA USING 'SAPLSP01' '300'.

PERFORM F_BDC_CAMPO USING 'BDC_OKCODE' '=YES'.

ENDLOOP.

* EFETIVA AS ALTERAÇÕES NO BANCO

COMMIT WORK.

ENDFORM. " F_BATCH_IMPUT

*& Form F_BDC_TELA &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_BDC_TELA USING P_PROGRAMA P_TELA.

____________________________________________________________________________________

Programa 8

*& Report ZC00111 * *& * &--------------------------------------------------------------------- *& programa para fazer download de tabelas para arquivo txt * *& * &---------------------------------------------------------------------

REPORT ZC00111 LINE-SIZE 200 LINE-COUNT 65 NO STANDARD PAGE HEADING MESSAGE-ID Z01.

TABLES : MARD, MAKT, T001W, T001L.

DATA : BEGIN OF T_MARD OCCURS 0,

MATNR LIKE MARD-MATNR,

WERKS LIKE MARD-WERKS,

NAME1 LIKE T001W-NAME1,

MAKTX LIKE MAKT-MAKTX,

LGORT LIKE MARD-LGORT,

LGOBE LIKE T001L-LGOBE,

LABST LIKE MARD-LABST,

SPEME LIKE MARD-SPEME,

END OF T_MARD.

DATA : BEGIN OF T_001 OCCURS 0,

WERKS LIKE T001W-WERKS,

END OF T_001.

* PARA COLOCARMOS UM DELIMITAR TIPO (;) DEVEMOS CRIAR UMA TABELA INTERNA

* COM OS CAMPOS QUE IREMOS EXPORTAR ( TODOS TXT ) E MOVER O CONTEUDO DA

* TABELA INTERNA PARA A TABELA DE EXPORTAÇÃO

  • VARIAVEL PARA CONVERTER O PARAMETRO p_arq EM string
  • para passarmos na função gui_download. DATA v_arquivo TYPE STRING.

REFRESH : T_MARD, T_001.

CLEAR : T_MARD, T_001.

SELECTION-SCREEN BEGIN OF BLOCK b_janela WITH FRAME TITLE text-001. SELECT-OPTIONS S_MATERI FOR T_MARD-MATNR. SELECT-OPTIONS S_CENTRO FOR T_MARD-WERKS. SELECT-OPTIONS S_DEPOSI FOR T_MARD-LGORT. SELECTION-SCREEN END OF BLOCK b_janela.

* PARA CRIAR BOTÕES DE SELEÇÃO

SELECTION-SCREEN BEGIN OF BLOCK b_janela3 WITH FRAME TITLE text-003. PARAMETERS P_BOT1 RADIOBUTTON GROUP b1. PARAMETERS P_BOT2 RADIOBUTTON GROUP b1. SELECTION-SCREEN END OF BLOCK b_janela3.

SELECTION-SCREEN BEGIN OF BLOCK b_janela2 WITH FRAME TITLE text-002.

  • OBLIGATORY faz com que o parametro seja obRigatório PARAMETERS P_ARQ LIKE RLGRAP-FILENAME. " OBLIGATORY. SELECTION-SCREEN END OF BLOCK b_janela2.

INITIALIZATION.

PERFORM F_SELECIONAR.

AT SELECTION-SCREEN ON s_materi.

AT SELECTION-SCREEN ON s_deposi.

____________________________________________________________________________________

PERFORM F_BUSCAR_MATERIAL.

TOP-OF-PAGE.

PERFORM F_CABECA.

END-OF-PAGE.

START-OF-SELECTION.

PERFORM F_BUSCAR_DADOS.

END-OF-SELECTION.

* VERIFICA SE A VRIAVEL P_ARQ ESTA LIMPA, SE SIM MOSTRA NA TELA SE NÃO GERA ARQUIVO

IF P_ARQ IS NOT INITIAL.

v_arquivo = p_arq.

IF p_bot1 = 'X'.

PERFORM F_DOWNLOAD_ARQ. ELSE.

  • somente para UNIX NÃO FUNCIONA EM WINDOWS PERFORM F_DOWN_UNIX. ENDIF. ELSE.

PERFORM F_MOSTRAR_DADOS.

ENDIF.

  • o comando AT LINE-SELECTION é um evento que serve para
  • quando clicarmos em uma linha de relatório abrir uma outra
  • janela e mostrarmos outros dados AT LINE-SELECTION.
  • IF NOT var IS INITIAL -> verifica se o header liner esta vazio
  • se não for vazio imprime a tela de detalhes IF NOT T_MARD IS INITIAL.
  • SET TITLEBAR 'var' mostra o titulo da nova tela SET TITLEBAR 'DET'.
  • SY-ULINE -> imprime linha com comprimento fixo WRITE SY-ULINE(83).
  • SY-VLINE -> serve para fazer fechamento de bordas WRITE / SY-VLINE. WRITE :'Material : '. WRITE : T_MARD-MATNR,' - ', t_marc-maktx,' '. WRITE 83 SY-VLINE. WRITE / SY-VLINE. WRITE :'Centro : '. WRITE : t_marc-werks, ' - ', t_mard-name1,' '. WRITE 83 SY-VLINE. WRITE /:SY-VLINE. WRITE :'Deposito : '. WRITE : T_MARD-lgort. WRITE 83 SY-VLINE. WRITE /:SY-VLINE. WRITE :'Disponível : '. WRITE : T_MARD-labst. WRITE 83 SY-VLINE. WRITE /:SY-VLINE. WRITE : 'Bloqueado : '. WRITE : T_MARD-SPEME. WRITE 83 SY-VLINE. WRITE / SY-ULINE(83). ENDIF.
  • depois de listar a nova informação devemos limpar o header liner da tabela CLEAR T_MARD.

____________________________________________________________________________________

  • centro ( no caso werks ) o programa entre e execute as instruções
  • contidas dentro dele. AT END OF werks.
  • o comando SUM totaliza os campos numéricos SUM. WRITE : / 'TOTAL DO MATERIAL '. WRITE '........................................................:'. WRITE 105 T_MARD-LABST. WRITE 122 T_MARD-SPEME. ENDAT.

ENDLOOP.

ENDFORM. " F_MOSTRAR_DADOS

*& Form F_CABECA &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_CABECA.

DATA novo(60) TYPE C. WRITE 5 sy-datum. WRITE 50 'CHEMYUNION QUIMICA LTDA'. WRITE 120 sy-pagno. WRITE AT / 'Material'. WRITE 13 'Descrição'. WRITE 55 'Centro'. WRITE 65 'Descrição'. WRITE 89 'DEPOSITO.'. WRITE 115 'Estoque'. WRITE 130 'Bloqueado'. ULINE. ENDFORM. " F_CABECA &--------------------------------------------------------------------- *& Form F_BUSCAR_MATERIAL &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_BUSCAR_MATERIAL.

SELECT * FROM mard UP TO 1 ROWS WHERE matnr IN s_materi. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE W001. ENDIF. SELECT * FROM t001L UP TO 1 ROWS WHERE lgort IN s_deposi. ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE W002.

ENDIF.

ENDFORM. " F_BUSCAR_MATERIAL

*& Form F_DOWNLOAD_ARQ &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_DOWNLOAD_ARQ.
  • FUNÇAO USADO PARA EXPORTAR ARQUIVOS CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING
  • BIN_FILESIZE = FILENAME = V_ARQUIVO FILETYPE = 'ASC'

____________________________________________________________________________________

* APPEND = ' '

* WRITE_FIELD_SEPARATOR = ' '

* HEADER = '00'

* TRUNC_TRAILING_BLANKS = ' '

* WRITE_LF = 'X'

* COL_SELECT = ' '

* COL_SELECT_MASK = ' '

* DAT_MODE = ' '

* CONFIRM_OVERWRITE = ' '

* NO_AUTH_CHECK = ' '

* IMPORTING

* FILELENGTH =

TABLES

DATA_TAB = T_MARD

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

IF SY-SUBRC <> 0.

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

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

ELSE.

  • MESSAGE xxx WITH yyy
  • xxx numero da mensagem
  • yyy parametro que será mostrado na mensagem
  • na criação da mensagem devemos colocar o símbolo & para
  • indicar que será passado um parametro.
  • EXEMPLO : Arquivo & criado com sucesso. MESSAGE S003 WITH P_ARQ. ENDIF.

ENDFORM. " F_DOWNLOAD_ARQ

*& Form F_DOWN_UNIX &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_DOWN_UNIX.
  • abre o arquivo para gravar em txt
  • OPEN DATASET parametro FOR OUTPUT IN TEXT MODE.
  • ou INPUT para ler o arquivo ( importar ) OPEN DATASET p_arq FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF sy-subrc = 0. MESSAGE S004. ELSE. MESSAGE W005.

____________________________________________________________________________________

Programa 9

*& Report ZC00114 * &--------------------------------------------------------------------- *& PROGRAMA PARA EXECUTAR COMANDOS EXTERNOS * *& EXECUTA O COMANDO NO SERVIDOR * &--------------------------------------------------------------------- REPORT ZC.

  • DEFINIR TABELA INTERNA COM A STRUCTURA DA TABELA BTCXPM DATA : BEGIN OF t_btc OCCURS 0. INCLUDE STRUCTURE BTCXPM. DATA : END OF t_btc.
  • DECLARAR UMA VARIAVEL COM O TIPO SXPGCOLIST-NAME DATA wvar LIKE SXPGCOLIST-NAME.
  • IGUALAR ESTA VARIAVEL AO COMANDO CRIADO NA SM69 PASSAR COMO PARAMETRO wvar = 'ZCOMPLEX'. INITIALIZATION. START-OF-SELECTION. PERFORM F_COMANDO_EXTERNO. PERFORM F_MOSTRAR_TABELA. END-OF-SELECTION. &--------------------------------------------------------------------- *& Form F_COMANDO_EXTERNO &--------------------------------------------------------------------- FORM F_COMANDO_EXTERNO.
  • FUNÇÃO QUE IRA EXECUTAR O PARAMETRO CALL FUNCTION 'SXPG_CALL_SYSTEM' EXPORTING COMMANDNAME = wvar
  • ADDITIONAL_PARAMETERS = ' '
  • IMPORTING
  • STATUS =
  • EXITCODE = TABLES EXEC_PROTOCOL = t_btc EXCEPTIONS NO_PERMISSION = 1 COMMAND_NOT_FOUND = 2 PARAMETERS_TOO_LONG = 3 SECURITY_RISK = 4 WRONG_CHECK_CALL_INTERFACE = 5 PROGRAM_START_ERROR = 6 PROGRAM_TERMINATION_ERROR = 7 X_ERROR = 8 PARAMETER_EXPECTED = 9 TOO_MANY_PARAMETERS = 10 ILLEGAL_COMMAND = 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. ENDFORM. " F_COMANDO_EXTERNO &--------------------------------------------------------------------- *& Form F_MOSTRAR_TABELA &--------------------------------------------------------------------- FORM F_MOSTRAR_TABELA. CLEAR T_BTC. LOOP AT T_BTC. WRITE / T_BTC. ENDLOOP. ENDFORM. " F_MOSTRAR_TABELA

____________________________________________________________________________________

Programa 10

*& Include ZC00115 * &---------------------------------------------------------------------

REPORT ZC00115.

DATA : BEGIN OF T_tabela OCCURS 0, campo(20) TYPE C, END OF T_tabela. DATA : BEGIN OF T_vendedor OCCURS 0, nome(10) TYPE C, tv TYPE I, vídeo TYPE I, radio TYPE I, dvd TYPE I, END OF T_vendedor.

INItialization.

PERFORM F_CARREGA_DADOS.

START-OF-SELECTION.

PERFORM F_GRAFICO.

END-OF-SELECTION.

*& Form F_CARREGA_DADOS &---------------------------------------------------------------------

  • text ---------------------------------------------------------------------- FORM F_CARREGA_DADOS. REFRESH t_tabela. CLEAR t_tabela.

t_tabela-campo = 'FIFRST=3D'. APPEND t_tabela. t_tabela-campo = 'P3TYPE=TO'. APPEND t_tabela. t_tabela-campo = 'P3CTYP=RO'. APPEND t_tabela. t_tabela-campo = 'TISIZE=2'. APPEND t_tabela. t_tabela-campo = 'CLBACK=X'. APPEND t_tabela. COMMIT WORK.

REFRESH t_vendedor. CLEAR t_vendedor.

t_vendedor-nome = 'ZE'. t_vendedor-tv = 98. t_vendedor-VIDEO = 83. t_vendedor-radio = 45. t_vendedor-dvd = 65. APPEND t_vendedor. t_vendedor-nome = 'MANE'. t_vendedor-tv = 52. t_vendedor-VIDEO = 38. t_vendedor-radio = 23. t_vendedor-dvd = 5. APPEND t_vendedor. t_vendedor-nome = 'JOAO'. t_vendedor-tv = 73. t_vendedor-VIDEO = 54. t_vendedor-radio = 35.

____________________________________________________________________________________

Programa 11

*& Report ZC00116 * *& * &---------------------------------------------------------------------

REPORT ZC00116 LINE-SIZE 80 LINE-COUNT 65 NO STANDARD PAGE HEADING.

TABLES T001L.

DATA: BEGIN OF T_001L OCCURS 0,

WERKS TYPE T001L-WERKS,

LGORT TYPE T001L-LGORT,

LGOBE TYPE T001L-LGOBE,

END OF T_001L.

REFRESH t_001l. CLEAR t_001l.

SELECT werks lgort lgobe INTO TABLE t_001l FROM T001L.

* COMANDO PARA CRIAR BOTAO NO RELATORIO

  • SET PF-STATUS 'nome_botao'
  • DAR DUPLO CLICK NO nome_do_botão PARA CRIAR O OBJETO

SET PF-STATUS 'BOTAO'.

INITIALIZATION.

TOP-OF-PAGE.

PERFORM F_CABECALHO.

END-OF-PAGE.

START-OF-SELECTION.

PERFORM f_imprimir_dados.

END-OF-SELECTION.

* EVENTO PARA O BOTAO

AT USER-COMMAND.

  • variável de sistema. retorna o nome do botão (DOWNLOAD) IF sy-ucomm = 'DOWNLOAD'. PERFORM F_DOW_NOVO.

ENDIF.

*& Form F_CABECALHO &--------------------------------------------------------------------- FORM F_CABECALHO. WRITE 5 sy-datum. WRITE 30 'CHEMYUNION QUIMICA LTDA'. WRITE 75 sy-pagno. WRITE /2 'Centro'. WRITE 10 'Deposito'. WRITE 20 'Descrição'.

ULINE.

ENDFORM. " F_CABECALHO

*& Form f_imprimir_dados &--------------------------------------------------------------------- FORM f_imprimir_dados.

  • O FORM QUE VAI SER CHAMADO POR OUTRO PROGRAMA deve ter todas as infor
  • mações para gerar o form ( ou seja neste caso montar a tabela )

____________________________________________________________________________________

LOOP AT t_001l. WRITE /2 t_001l-werks. WRITE 10 t_001l-lgort. WRITE 20 t_001l-lgobe. ENDLOOP. ENDFORM. " f_imprimir_dados &--------------------------------------------------------------------- *& Form F_DOW_NOVO &---------------------------------------------------------------------

  • --> p1 text

  • <-- p2 text ---------------------------------------------------------------------- FORM F_DOW_NOVO.

  • tambem temos a função UPLOAD

  • ESTA FUNÇÃO VEM COM TELA DE ESCOLHAR ( MENU ABRIR )

  • podemos escolher o formato de arquivo. CALL FUNCTION 'DOWNLOAD'

  • EXPORTING

  • BIN_FILESIZE = ' '

  • CODEPAGE = ' '

  • FILENAME = ' '

  • FILETYPE = ' '

  • ITEM = ' '

  • MODE = ' '

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • FILEMASK_MASK = ' '

  • FILEMASK_TEXT = ' '

  • FILETYPE_NO_CHANGE = ' '

  • FILEMASK_ALL = ' '

  • FILETYPE_NO_SHOW = ' '

  • SILENT = 'S'

  • COL_SELECT = ' '

  • COL_SELECTMASK = ' '

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • ACT_FILENAME =

  • ACT_FILETYPE =

  • FILESIZE =

  • CANCEL = TABLES DATA_TAB = T_001L

  • FIELDNAMES = EXCEPTIONS INVALID_FILESIZE = 1 INVALID_TABLE_WIDTH = 2 INVALID_TYPE = 3 NO_BATCH = 4 UNKNOWN_ERROR = 5 GUI_REFUSE_FILETRANSFER = 6 OTHERS = 7 . 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. " F_DOW_NOVO