| ZMATRIX |
|
|
|
| Código fuente - Juegos | ||||||||
| Escrito por Administrator | ||||||||
| Miércoles, 08 de Junio de 2005 16:41 | ||||||||
|
Efecto matrix en abap
**---- **---- Jose Antonio Moreno **---- Efecto Matrix **---- REPORT zmatrix NO STANDARD PAGE HEADING. DATA: BEGIN OF ti_matrix OCCURS 32, linea(140), END OF ti_matrix, BEGIN OF ti_colcolor OCCURS 10, col TYPE I, END OF ti_colcolor, BEGIN OF ti_colblancos OCCURS 10, col TYPE I, END OF ti_colblancos . DATA: ccar TYPE C, ncar TYPE P, ccars(140) TYPE C, linea TYPE P, numfils TYPE P, numcols TYPE P, i TYPE P. CONSTANTS: FILS TYPE P VALUE 20, ""25, COLS TYPE P VALUE 80, ""100, BLANCOS TYPE P VALUE 40, ""60, COLOR TYPE P VALUE 10. ""15. INITIALIZATION. PERFORM gencolcolor. Perform CrearMatrix. START-OF-SELECTION. WRITE: ncar. SET USER-COMMAND 'NEWRND'. END-OF-SELECTION. AT USER-COMMAND. IF SY-UCOMM = 'NEWRND'. SY-LSIND = SY-LSIND - 1. PERFORM mostrarmatrix. PERFORM movermatrix. * PERFORM gennum USING ncar. * SKIP 2. * WRITE: ncar, linea. CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001' PERFORMING REFRESH ON END OF TASK EXPORTING seconds = 0 busy_waiting = SPACE EXCEPTIONS RESOURCE_FAILURE = 1 communication_failure = 2 system_failure = 3 OTHERS = 4. ENDIF. *&---------------------------- -----------------------------------------*
*& Form REFRESH *----------------------------------------------------------------------* FORM REFRESH USING TASKNAME. SET USER-COMMAND 'NEWRND'. ENDFORM. " REFRESH *&---------------------------------------------------------------------* *& Form GenNum *----------------------------------------------------------------------* FORM GenNum CHANGING valor. DATA: rnd TYPE i, numcols TYPE i. numcols = COLS - 1. CALL FUNCTION 'QF05_RANDOM_INTEGER' EXPORTING ran_int_max = numcols ran_int_min = 1 IMPORTING ran_int = rnd. valor = rnd. ENDFORM. " GenNum *&---------------------------------------------------------------------* *& Form CrearMatrix *----------------------------------------------------------------------* FORM CrearMatrix. DATA: fil TYPE P, col TYPE P, ccars1(35). REFRESH ti_matrix. numfils = FILS - 1. numcols = COLS - 1. ccars = '!"#$%&/()=?¡Qq@WwEeRrTtYyUuIiOoPp+*'. ccars1 = 'AaSadDfFgGhHjJkKLñÑ> CONCATENATE ccars ccars1 INTO ccars. PERFORM genespaciosblancos. DO FILS TIMES. fil = SY-INDEX. DO numcols TIMES. col = SY-INDEX. PERFORM gennum USING ncar. ccar = ccars+ncar(1). PERFORM colblancas USING col CHANGING ccar. MOVE ccar TO ti_matrix-Linea+col(1). ENDDO. APPEND ti_matrix. ENDDO. ENDFORM. " CrearMatrix *&---------------------------------------------------------------------* *& Form mostrarmatrix *----------------------------------------------------------------------* FORM mostrarmatrix. DATA: fil TYPE P, col TYPE P, ncolor TYPE I VALUE 5, ccar. LOOP AT ti_matrix. FORMAT COLOR = ncolor. fil = SY-TABIX. DO numcols TIMES. col = SY-INDEX. POSITION col. READ TABLE ti_colcolor WITH KEY col = col BINARY SEARCH. IF SY-SUBRC EQ 0. ccar = ti_matrix-linea+col(1). IF ccar = SPACE. WRITE: ti_matrix-linea+col(1). ELSE. WRITE: ti_matrix-linea+col(1) INTENSIFIED OFF. ENDIF. ELSE. WRITE: ti_matrix-linea+col(1). ENDIF. SKIP TO LINE fil. ENDDO. IF SY-TABIX EQ numfils. EXIT. ENDIF. * write: / ti_matrix. ENDLOOP. ENDFORM. " mostrarmatrix *&---------------------------------------------------------------------* *& Form movermatrix *----------------------------------------------------------------------* FORM movermatrix. DATA: ti_matrix0 LIKE ti_matrix OCCURS 10, wa_ultimo LIKE ti_matrix, wa_aux LIKE ti_matrix, wa_aux2 LIKE ti_matrix, max TYPE P, lin TYPE P. FIELD-SYMBOLS: LIKE ti_matrix. max = numfils * 8. ADD 1 TO linea. lin = linea * 8. * IF linea EQ numfils. IF lin GE max. PERFORM gencolcolor. Perform CrearMatrix. CLEAR linea. ENDIF. **---- Mover el ultimo al 1ero READ TABLE ti_matrix INDEX FILS. MOVE-CORRESPONDING ti_matrix TO wa_ultimo. **---- desplazar hacia abajo desde el 1er registro LOOP AT ti_matrix ASSIGNING . IF SY-TABIX EQ 1. MOVE-CORRESPONDING TO wa_aux. MOVE-CORRESPONDING wa_ultimo TO . ELSE. MOVE-CORRESPONDING TO wa_aux2. MOVE-CORRESPONDING wa_aux TO . MOVE-CORRESPONDING wa_aux2 TO wa_aux. ENDIF. ENDLOOP. ENDFORM. " movermatrix *&---------------------------------------------------------------------* *& Form genespaciosblancos *----------------------------------------------------------------------* FORM genespaciosblancos. DATA: numcol TYPE P. REFRESH ti_colblancos. **---- 12 numeros de columnas a resaltar DO BLANCOS TIMES. PERFORM gennum USING numcol. MOVE numcol TO ti_colblancos-col. APPEND ti_colblancos. ENDDO. ENDFORM. " genespaciosblancos *&---------------------------------------------------------------------* *& Form colblancas *----------------------------------------------------------------------* FORM colblancas USING P_COL CHANGING P_CCAR. READ TABLE ti_colblancos WITH KEY col = p_col. IF SY-SUBRC EQ 0. p_ccar = SPACE. ENDIF. ENDFORM. " colblancas *&---------------------------------------------------------------------* *& Form gencolor *----------------------------------------------------------------------* FORM gencolcolor. DATA: numcol TYPE P. REFRESH ti_colcolor. **---- 12 numeros de columnas a resaltar DO COLOR TIMES. PERFORM gennum USING numcol. MOVE numcol TO ti_colcolor-col. APPEND ti_colcolor. ENDDO. ENDFORM. " gencolor
¡Sólo los usuarios registrados pueden escribir comentarios!
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|
||||||||
| Actualizado ( Jueves, 17 de Julio de 2008 10:42 ) |




