miércoles, 9 de julio de 2014

Notas para rejilla, grid, tabla en un SapScript

Para hacer una tabla (grid, rejilla) con el BOX pero que pueda ir variando de alturas.

Declaramos variables en el programa de control:

DATAwnx TYPE p LENGTH DECIMALS 2,
      wny LIKE wnx,
      wx0(5),
      wy0 LIKE wx0 .


Contamos líneas.

En la parte que vamos pintando la línea vamos sumando.
Por una parte inicializamos
    CLEARwx0wy0.
    wnx '0.9'.
    wny '2.2'.
*
    CALL FUNCTION 'WRITE_FORM'                              
         EXPORTING
           element   'LINEA_TITLE'    
           window    'MAIN'.

*
Y vamos sumando dentro del loop a la tabla que pintamos.

    LOOP AT i_tabla.
*
      IF sy-tabix 1.
        ADD '0.5' TO wny.
      ELSE.
        ADD '0.8' TO wny.
      ENDIF.

*
      wx0 wnx.
      wy0 wny.
*
      " when oper not marked for print
      CALL FUNCTION 'WRITE_FORM'                              "
           EXPORTING
             element   'LINEA'  
             window    'MAIN'.

*
    ENDLOOP.


En sapscript tenemos elementos en ventana MAIN.

/E LINEA_TITLE
/: BOX XPOS '0.90' CM YPOS '2.2' CM WIDTH '18.5' CM HEIGHT '0.5' CM FRAME 10 TW INTENSITY 20
TT <B2>Título1:</>,,&VLINE&<B2> Título2:</>

/E LINEA
BOX XPOS &WX0& CM YPOS &WY0& CM WIDTH '18.5' CM HEIGHT '0.8' CM FRAME 10 TW
TT <I0><H2>& i_tabla-columna1&</></>,,&VLINE&& i_tabla-columna2&