SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Demo: Pushbutton Graphics / 2



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Dialog Programming -> Graphics
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Mon Nov 05, 2007 1:24 pm    Post subject: Demo: Pushbutton Graphics / 2 Reply with quote

Code:
*----------------------------------------------------------------------*
* Beispiel fьr die graphische Darstellung einer Matrix als Push-Button *
* mit 2-Dimensionalen POPUP-Menu, ebenfalls als Push-Button-Matrix     *
*
* Verhalten des Dialogs
*
* GL 24.09.91
*
* GL 15.09.1992 BUSG-3D-MAIL
*----------------------------------------------------------------------*

REPORT GRBMAT_2.

DATA: BEGIN OF MATRIX OCCURS 1,
        COL1(20),
        COL2 TYPE P,
        COL3 TYPE P,
        COL4 TYPE P,
        COL5 TYPE P,
      END OF MATRIX.
DATA: BEGIN OF ATTR OCCURS 1,
        COL1(20),
        COL2 TYPE P,
        COL3 TYPE P,
        COL4 TYPE P,
        COL5 TYPE P,
      END OF ATTR.
DATA: BEGIN OF SDATA OCCURS 1,
        X TYPE P,
        Y TYPE P,
      END OF SDATA.
DATA: BEGIN OF SIZE OCCURS 1,
         C(10) TYPE C,
      END OF SIZE.
DATA: BEGIN OF MTEXT OCCURS 1,
      TEXT(40),
      END OF MTEXT.
DATA: BEGIN OF MENUE OCCURS 1,
      TEXT(40),
      TEXT2(20),
      END OF MENUE.
DATA: BEGIN OF OPTS OCCURS 1,
         C(80) TYPE C,
      END OF OPTS.
DATA: BEGIN OF TCOL OCCURS 1,
         C(20) TYPE C,
      END OF TCOL.
DATA TEXT(64).
DATA WINID(10).
DATA INDEX LIKE SY-INDEX.
DATA BUSG_STAT.
DATA STAT_STAT.
DATA STAT_ART(3).
DATA BMAT_STAT.
DATA IND LIKE SY-INDEX.
DATA: NROW(2),
      NCOL(1).                         "// chanced to ONE character
DATA: MENROW(2).
DATA: MENCOL(2).                       "// changed to ONE character
DATA: ANZAHL(8).
FIELD-SYMBOLS: <F>.
DATA: M_TYP(1), RBUF(40).


SET PF-STATUS 'GRAF'.

MENUE-TEXT = TEXT-GBU.
MENUE-TEXT2 = TEXT-GBU.
APPEND MENUE.
MENUE-TEXT = TEXT-GST.
MENUE-TEXT2 = TEXT-LOG.
APPEND MENUE.                          "// stat doesnt work yet here

MATRIX-COL1 = TEXT-Z01.
MATRIX-COL2 = 11.
MATRIX-COL3 = 12.
MATRIX-COL4 = 13.
MATRIX-COL5 = 14.
APPEND MATRIX.
MOVE-CORRESPONDING MATRIX TO ATTR.
ATTR-COL1 = 0.
APPEND ATTR.
MATRIX-COL1 = TEXT-Z02.
MATRIX-COL2 = 21.
MATRIX-COL3 = 22.
MATRIX-COL4 = 23.
MATRIX-COL5 = 24.
APPEND MATRIX.
MOVE-CORRESPONDING MATRIX TO ATTR.
ATTR-COL1 = 0.
APPEND ATTR.
MATRIX-COL1 = TEXT-Z03.
MATRIX-COL2 = 32.
MATRIX-COL3 = 34.
MATRIX-COL4 = 36.
MATRIX-COL5 = 38.
APPEND MATRIX.
MOVE-CORRESPONDING MATRIX TO ATTR.
ATTR-COL1 = 0.
APPEND ATTR.
MATRIX-COL1 = TEXT-Z04.
MATRIX-COL2 = 41.
MATRIX-COL3 = 42.
MATRIX-COL4 = 43.
MATRIX-COL5 = 44.
APPEND MATRIX.
MOVE-CORRESPONDING MATRIX TO ATTR.
ATTR-COL1 = 0.
APPEND ATTR.
MATRIX-COL1 = TEXT-Z05.
MATRIX-COL2 = 73.
MATRIX-COL3 = 76.
MATRIX-COL4 = 79.
MATRIX-COL5 = 82.
APPEND MATRIX.
MOVE-CORRESPONDING MATRIX TO ATTR.
ATTR-COL1 = 0.
APPEND ATTR.

WRITE: /,/ TEXT-S00,22 TEXT-S01,37 TEXT-S02,
                       52 TEXT-S03,67 TEXT-S04,/.
LOOP AT MATRIX.
  WRITE: /(15) MATRIX-COL1,
  (14) MATRIX-COL2,(14) MATRIX-COL3,(14) MATRIX-COL4,(14) MATRIX-COL5.
ENDLOOP.
TCOL = TEXT-S01. APPEND TCOL.
TCOL = TEXT-S02. APPEND TCOL.
TCOL = TEXT-S03. APPEND TCOL.
TCOL = TEXT-S04. APPEND TCOL.
SIZE = 'C  1  30'. APPEND SIZE.
SIZE = 'R  1  2 '. APPEND SIZE.

AT PF08.
  BUSG_STAT = '2'.
  STAT_STAT = '2'.
  CLEAR BMAT_STAT.
  DO.
    CALL FUNCTION 'GRAPH_BUTTON_MENUE' " Button Graphik
         EXPORTING
              TTEXT = SY-TITLE
              CTXT1 = TEXT-S00
              CTXT2 = TEXT-S01
              CTXT3 = TEXT-S02
              CTXT4 = TEXT-S03
              CTXT5 = TEXT-S04
              VTXT1 = TEXT-KEN
              VALD1 = 1
              VAL11 = 10
              VAL12 = 30
              VAL13 = 40
              VAL14 = 50
              COL11 = 'CYAN'
              COL12 = 'GRAY'
              COL13 = 'YELLOW'
              COL14 = 'GRAY'
              COL15 = 'RED'
              STAT = BMAT_STAT
              MTITL = TEXT-MEN
              SUPER = 'X'
         IMPORTING
              ROWNR = NROW
              COLNR = NCOL
              RWNID = WINID
              MROWN = MENROW
              MCOLN = MENCOL
              M_TYP = M_TYP
              RBUFF = RBUF
         TABLES
              DATA  = MATRIX
              MENU  = MENUE
              ATTR  = ATTR
              SIZE  = SIZE.

    BMAT_STAT = '4'.                   "// BMAT auf Nachlesen stellen

    CASE M_TYP.
      WHEN 'D'.
        EXIT.
      WHEN ' '.
      WHEN '0'.                        "// from non-BMAT-Window
        IF WINID(4) = 'BUSG'.
          BUSG_STAT = '2'.             "// restart next time
        ENDIF.
        IF WINID(4) = 'STAT'.
          STAT_STAT = '2'.             "// restart next time
        ENDIF.
      WHEN 'Q'.                        "// should not happen (SUPER)
      WHEN 'I'.
        CASE MENROW.
          WHEN 1.
            REFRESH OPTS.
*           keine Auswertung von MENCOL bei BUSG
            IF NROW(1) EQ '1' AND NCOL(1) EQ '0'.    " 3-D Graphik
              CALL FUNCTION 'GRAPH_3D'
                   EXPORTING
                        TITL       = TEXT
                        DIM1       = TEXT-SXX
                        DIM2       = TEXT-ZXX
                        STAT       = BUSG_STAT
                        MAIL_ALLOW = 'X'
                   TABLES
                        DATA       = MATRIX.
              BUSG_STAT = '5'.         " Daten nachlesen
            ENDIF.
            IF NROW(1) EQ '1' AND NCOL(1) NE '0'." 2-D Gr. Spalte
              READ TABLE TCOL INDEX NCOL.
              CALL FUNCTION 'GRAPH_MATRIX_2D'
                   EXPORTING
                        TITL = TCOL
                        NCOL = NCOL
                        STAT = BUSG_STAT
                   TABLES
                        DATA = MATRIX
                        OPTS = OPTS
                        TCOL = TCOL.
              BUSG_STAT = '5'.         " Daten nachlesen
            ENDIF.
            IF NROW(1) NE '1' AND NCOL(1) EQ '0'.    " 2-D Gr. Zeile
              NROW = NROW - 1.
              READ TABLE MATRIX INDEX NROW.
              CALL FUNCTION 'GRAPH_MATRIX_2D'
                   EXPORTING
                        TITL = MATRIX-COL1
                        NROW = NROW
                        STAT = BUSG_STAT
                   TABLES
                        DATA = MATRIX
                        OPTS = OPTS
                        TCOL = TCOL.
              BUSG_STAT = '5'.         " Daten nachlesen
            ENDIF.
          WHEN 2.
            IF MENCOL(1) EQ '1'.
              STAT_ART = 'LOG'.
            ELSE.
              STAT_ART = 'LIN'.
            ENDIF.

*       Fuer MENCOL = 1 gilt logarithmische Darstellung bei STAT
            REFRESH SDATA.
            REFRESH OPTS.

            IF NROW(1) EQ '1' AND NCOL(1) EQ '0'.    " 3-D Graphik
              DO 4 TIMES.
                IND = SY-INDEX.
                DO 5 TIMES.
                  READ TABLE MATRIX INDEX SY-INDEX.
                  SDATA-X = SY-INDEX.
                  CASE IND.
                    WHEN 1.
                      SDATA-Y = MATRIX-COL2.
                    WHEN 2.
                      SDATA-Y = MATRIX-COL3.
                    WHEN 3.
                      SDATA-Y = MATRIX-COL4.
                    WHEN 4.
                      SDATA-Y = MATRIX-COL5.
                  ENDCASE.
                  APPEND SDATA.
                ENDDO.

                OPTS = '$5'.
                APPEND OPTS.
                OPTS = 'COLOR=7'.
                APPEND OPTS.
                OPTS = 'THICK=1'.
                APPEND OPTS.
              ENDDO.

              CALL FUNCTION 'STAT_GRAPH'
                   EXPORTING
                        TTEXT = TEXT
                        STAT  = STAT_STAT
                        Y_ART = STAT_ART
                   TABLES
                        OPTS  = OPTS
                        DATA  = SDATA.

              STAT_STAT = '5'.         " Daten nachlesen
            ENDIF.

            IF NROW(1) EQ '1' AND NCOL(1) NE '0'." 2-D Gr. Spalte
              DO 5 TIMES.
                READ TABLE MATRIX INDEX SY-INDEX.
                SDATA-X = SY-INDEX.
                CASE NCOL.
                  WHEN 1.
                    SDATA-Y = MATRIX-COL2.
                  WHEN 2.
                    SDATA-Y = MATRIX-COL3.
                  WHEN 3.
                    SDATA-Y = MATRIX-COL4.
                  WHEN 4.
                    SDATA-Y = MATRIX-COL5.
                ENDCASE.
                APPEND SDATA.
              ENDDO.
              OPTS = '$5'.
              APPEND OPTS.
              OPTS = 'COLOR=7'.
              APPEND OPTS.
              OPTS = 'THICK=1'.
              APPEND OPTS.

              READ TABLE TCOL INDEX NCOL.
              CALL FUNCTION 'STAT_GRAPH'
                   EXPORTING
                        TTEXT = TCOL
                        STAT  = STAT_STAT
                        Y_ART = STAT_ART
                   TABLES
                        OPTS  = OPTS
                        DATA  = SDATA.
              STAT_STAT = '5'.         " Daten nachlesen
            ENDIF.

            IF NROW(1) NE '1' AND NCOL(1) EQ '0'.    " 2-D Gr. Zeile
              NROW = NROW - 1.
              READ TABLE MATRIX INDEX NROW.
              SDATA-X = 1.
              SDATA-Y = MATRIX-COL2.
              APPEND SDATA.
              SDATA-X = 2.
              SDATA-Y = MATRIX-COL3.
              APPEND SDATA.
              SDATA-X = 3.
              SDATA-Y = MATRIX-COL4.
              APPEND SDATA.
              SDATA-X = 4.
              SDATA-Y = MATRIX-COL5.
              APPEND SDATA.

              OPTS = '$4'.
              APPEND OPTS.
              OPTS = 'COLOR=7'.
              APPEND OPTS.
              OPTS = 'THICK=1'.
              APPEND OPTS.

              CALL FUNCTION 'STAT_GRAPH'
                   EXPORTING
                        TTEXT = MATRIX-COL1
                        STAT  = STAT_STAT
                        Y_ART = STAT_ART
                   TABLES
                        OPTS  = OPTS
                        DATA  = SDATA.

              STAT_STAT = '5'.         " Daten nachlesen
            ENDIF.
        ENDCASE.
    ENDCASE.
  ENDDO.

*---------------------------------------------------------------------*
*       FORM GET_TEXT                                                 *
*---------------------------------------------------------------------*
*       text                                                          *
*---------------------------------------------------------------------*
*       NROW                                                          *
*       NCOL                                                          *
*---------------------------------------------------------------------*
FORM GET_TEXT TABLES MTEXT USING NROW NCOL.
  REFRESH MTEXT.
  READ TABLE MATRIX INDEX NROW.
  DO.
    ASSIGN COMPONENT SY-INDEX OF STRUCTURE MATRIX TO <F>.
    IF SY-SUBRC NE 0. EXIT. ENDIF.
    IF SY-INDEX EQ NCOL. EXIT. ENDIF.
  ENDDO.
  CLEAR MTEXT.
  APPEND MTEXT.
  MOVE TEXT-J01 TO MTEXT.
  <F> = <F> - 1.
  WRITE <F> TO MTEXT+12(5).
  APPEND MTEXT.
  MOVE TEXT-J02 TO MTEXT.
  <F> = <F> + 1.
  WRITE <F> TO MTEXT+12(5).
  APPEND MTEXT.
  MOVE TEXT-J03 TO MTEXT.
  <F> = <F> + 1.
  WRITE <F> TO MTEXT+12(5).
  APPEND MTEXT.
ENDFORM.

*Text elements
*----------------------------------------------------------
* GBU Presentation graphics
* GST Statistics Graphics
* J01 Previous year:
* J02 Current year:
* J03 Next year:
* KEN Ratio 1
* LOG (logarithmic)
* MEN Menu
* S00 Name
* S01 Column 1
* S02 Column 2
* S03 Column 3
* S04 Column 4
* SXX Columns
* Z01 Line 1
* Z02 Line 2
* Z03 Subtotal
* Z04 Line 4
* Z05 Total
* ZXX Lines
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Dialog Programming -> Graphics All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.