Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZMATRIX PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
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
Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

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 )
 
home search