Warning: include_once(http://erpgenie.com/_borders/topabap.htm) [function.include-once]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/templates/rhuk_solarflare_ii/index.php on line 52

Warning: include_once() [function.include]: Failed opening 'http://erpgenie.com/_borders/topabap.htm' for inclusion (include_path='.:') in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/templates/rhuk_solarflare_ii/index.php on line 52
Home arrow Sample Code arrow Games arrow Connect 4
Connect 4 PDF Print E-mail
User Rating: / 1
PoorBest 
Written by Antonio Silva Huertas   
Sunday, 21 January 2007
REPORT ZCONECTA NO STANDARD PAGE HEADING
                 MESSAGE-ID BD
                 LINE-SIZE 132
                 LINE-COUNT 65.
 
 
* Autor: Silva Huertas, Antonio Miguel
 
* E-mail: This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
 
 INCLUDE <ICON>.
 
* Tablas
 
* Variables globales
 DATA: C1(8),                           
"Columnas
       C2(8),
       C3(8),
       C4(8),
       C5(8),
       C6(8),
       C7(8),
       C8(8).
 
 DATA: TFS(20).
 
 DATA: D_RET LIKE SY-SUBRC.
 
 DATA: MAQUINA,
       TURNO,
       LINEA TYPE I,
       OFFS  TYPE I VALUE 20,
       GANA_MAQUINA,
       GANA_USUARIO.
 
 
* Constantes
 CONSTANTS: C_O VALUE 
'O',
            C_X VALUE 
'X'.
 
 
* Tablas internas
 DATABEGIN OF TAB OCCURS 10,
         COL TYPE I,
         LIN TYPE I,
         X   TYPE I,
         O   TYPE I,
         B   TYPE I,
         XA  TYPE I,
         OA  TYPE I,
         BA  TYPE I,
       END   OF TAB.
 
 
 
* Parámetros
 PARAMETER: USUARIO OBLIGATORY DEFAULT C_X,
            ICONOS  AS CHECKBOX DEFAULT C_X.
 
 
*----------------------------------------------------------------------*
 
* AT SELECTION-SCREEN *
 
*----------------------------------------------------------------------*
 AT SELECTION-SCREEN.
   IF USUARIO = C_O.
     MAQUINA = C_X.
   ELSEIF USUARIO = C_X.
     MAQUINA = C_O.
   ELSE.
     MESSAGE E899 WITH 
'Permitted values O y X'.
   ENDIF.
 
 
*----------------------------------------------------------------------*
 
* AT LINE-SELECTION *
 
*----------------------------------------------------------------------*
 AT LINE-SELECTION.
   PERFORM DECIDE_TURNO.
 
 
*----------------------------------------------------------------------*
 
* START-OF-SELECTION *
 
*----------------------------------------------------------------------*
 START-OF-SELECTION.
 
   TURNO = C_O.
   PERFORM DECIDE_TURNO_INICIO.
 
 
*----------------------------------------------------------------------*
 
* TOP-OF-PAGE.
 
*----------------------------------------------------------------------*
 TOP-OF-PAGE.
 
 
*----------------------------------------------------------------------*
 
* FORM DIBUJA_TABLA *
 
*----------------------------------------------------------------------*
 FORM DIBUJA_TABLA.
   DATA
DCOL   TYPE   I.
   WRITE
'TABLA'.
 
   DO 8 TIMES.
     DCOL = 9 - SY-INDEX.
     PERFORM DIBUJA_LINEA USING DCOL.
     PERFORM DIBUJA_INTER.
   ENDDO.
   PERFORM DIBUJA_RAYA.
 
   SY-LSIND = SY-LSIND - 1.
 
   IF GANA_USUARIO = 
'X'.
     WRITE: / 
'HAS GANADO'.
   ELSEIF GANA_MAQUINA = 
'X'.
     WRITE: / 
'GANO YO'.
   ENDIF.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM DIBUJA_RAYA *
 
*----------------------------------------------------------------------*
 FORM DIBUJA_RAYA.
   WRITEAT /OFFS SY-ULINE(41).
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM DIBUJA_INTER *
 
*----------------------------------------------------------------------*
 FORM DIBUJA_INTER.
   WRITEAT /OFFS SY-VLINE.
   DO 8 TIMES.
     WRITE
' ' HOTSPOT ON, SY-VLINE.
   ENDDO.
 ENDFORM.
 
 
 
*----------------------------------------------------------------------*
 
* FORM DIBUJA_LINEA *
 
*----------------------------------------------------------------------*
 FORM DIBUJA_LINEA USING VALUE(P_LIN) 
TYPE   I.
   FIELD-SYMBOLS <FS1>.
 
   DATA: TMP_COL(2).
 
   P_LIN = P_LIN - 1.
 
   WRITEAT /OFFS SY-VLINE.
   DO 8 TIMES.
     TMP_COL+0(1) = 
'C'.
     TMP_COL+1(1) = SY-INDEX.
     ASSIGN (TMP_COL) TO <FS1>.
     PERFORM FSOFFSET USING <FS1> P_LIN 1 CHANGING TFS.
     IF TFS IS INITIAL.
       WRITE
' ' HOTSPOT ON.
     ELSE.
       IF ICONOS = C_X.
         IF TFS = C_O.                  
"C_O
           WRITE ICON_LED_GREEN AS ICON HOTSPOT OFF.
         ELSE.                          
"C_X
           WRITE ICON_CANCEL    AS ICON HOTSPOT OFF.
         ENDIF.
       ELSE.                            
"ICONOS = BLANCO
         IF TFS = C_O.                  
"C_O
           WRITE
'O ' HOTSPOT OFF.
         ELSE.                          
"C_X
           WRITE
'X ' HOTSPOT OFF.
         ENDIF.
       ENDIF.
     ENDIF.
     WRITE: SY-VLINE.
   ENDDO.
 
   LINEA = 1.
   HIDE: LINEA.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM DECIDE_TURNO *
 
*----------------------------------------------------------------------*
 FORM DECIDE_TURNO.
   IF TURNO = MAQUINA.
     PERFORM PIENSA_CASILLA.
     TURNO = USUARIO.
     PERFORM DIBUJA_TABLA.
   ELSE.
     PERFORM COMPRUEBA_SELECCION.
     TURNO = MAQUINA.
     PERFORM DECIDE_TURNO.
   ENDIF.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM DECIDE_TURNO_INICIO *
 
*----------------------------------------------------------------------*
 FORM DECIDE_TURNO_INICIO.
   CLEAR GANA_USUARIO.
   CLEAR GANA_MAQUINA.
   IF TURNO = MAQUINA.
     PERFORM PIENSA_CASILLA.
     TURNO = USUARIO.
   ENDIF.
   PERFORM DIBUJA_TABLA.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM PIENSA_CASILLA *
 
*----------------------------------------------------------------------*
 FORM PIENSA_CASILLA.
   FIELD-SYMBOLS <FS1>.
   DATA: TMP_COL(2),
         TMP_O TYPE I,
         TMP_X TYPE I,
         TMP_N TYPE I.
 
   REFRESH TAB.
   DO 8 TIMES.
     TMP_COL+0(1) = 
'C'.
     TMP_COL+1(1) = SY-INDEX.
     ASSIGN (TMP_COL) TO <FS1>.
 
     CLEAR TAB.
     TAB-COL = SY-INDEX.
     IF <FS1> CA 
' '.
       TAB-LIN = SY-FDPOS.
     ELSE.
       CONTINUE.
     ENDIF.
     PERFORM CUENTA_POSIB CHANGING TAB.
     APPEND TAB.
   ENDDO.
 
 
* IF MAQUINA = C_O.
 
* SORT TAB BY O DESCENDING
 
* B DESCENDING
 
* BA DESCENDING
 
* OA DESCENDING
 
* XA X.
 
* ELSE.
 
* SORT TAB BY X DESCENDING
 
* B DESCENDING
 
* BA DESCENDING
 
* XA DESCENDING
 
* OA O.
 
* ENDIF.
 
   SORT TAB BY O DESCENDING
               B DESCENDING
               BA DESCENDING
               OA DESCENDING
               XA X.
   READ TABLE TAB INDEX 1.
   TMP_O = TAB-O.
   SORT TAB BY X DESCENDING
               B DESCENDING
               BA DESCENDING
               XA DESCENDING
               OA O.
   READ TABLE TAB INDEX 1.
   TMP_X = TAB-X.
   DELETE TAB WHERE O < TMP_O AND X < TMP_X.
 
   IF ( TMP_O = 4 AND USUARIO = C_O ) OR
      ( TMP_X = 4 AND USUARIO = C_X ).
     GANA_USUARIO = 
'X'.
   ELSEIF TMP_O <> 3 AND TMP_X <> 3.    
"TOMA UNA DE LAS POSIB. AL AZAR
     DESCRIBE TABLE TAB LINES TMP_N.
     GET TIME.
     TMP_N = ( SY-UZEIT MOD TMP_N ) + 1.
     READ TABLE TAB INDEX TMP_N.
   ELSEIF MAQUINA = C_O.
     IF TMP_O = 3.                      
"GANA MAQUINA
       SORT TAB BY O DESCENDING
                   B DESCENDING
                   BA DESCENDING
                   OA DESCENDING
                   XA X.
       GANA_MAQUINA = 
'X'.
     ELSEIF TMP_X = 3.                  
"PA QUE NO GANE USUARIO
       SORT TAB BY X DESCENDING
                   B DESCENDING
                   BA DESCENDING
                   XA DESCENDING
                   OA O.
     ENDIF.
     READ TABLE TAB INDEX 1.
   ELSE.                                
"C_X
     IF TMP_X = 3.                      
"GANA MAQUINA
       SORT TAB BY X DESCENDING
                   B DESCENDING
                   BA DESCENDING
                   XA DESCENDING
                   OA O.
       GANA_MAQUINA = 
'X'.
     ELSEIF TMP_O = 3.                  
"PA QUE NO GANE USUARIO
       SORT TAB BY O DESCENDING
                   B DESCENDING
                   BA DESCENDING
                   OA DESCENDING
                   XA X.
     ENDIF.
     READ TABLE TAB INDEX 1.
   ENDIF.
 
   CHECK SY-SUBRC = 0.
   CHECK GANA_USUARIO IS INITIAL.
   TMP_COL+0(1) = 
'C'.
   TMP_COL+1(1) = TAB-COL.
   ASSIGN (TMP_COL) TO <FS1>.
   PERFORM FSOFFSET_CAMBIO USING TAB-LIN 1 MAQUINA CHANGING <FS1>.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM COMPRUEBA_SELECCION *
 
*----------------------------------------------------------------------*
 FORM COMPRUEBA_SELECCION.
   DATA: TMP_LIN TYPE I,
         TMP_COL TYPE I,
         TMP_I   TYPE I,
         TMP_CAR(80).
 
   FIELD-SYMBOLS <FS1>.
 
   TMP_LIN = LINEA.
   CLEAR LINEA.
 
   CHECK SY-UCOMM = 
'PICK'.
   TMP_COL = ( SY-CUCOL - OFFS + 3 ).
   TMP_I   = TMP_COL MOD 5.
   IF    TMP_LIN <> 1
      OR TMP_COL < 5 OR TMP_COL > 43
      OR TMP_I > 3.
     MESSAGE E899 WITH 
'Invalid selection'.
   ENDIF.
   TMP_COL = TMP_COL DIV 5.
 
   TMP_CAR(1) = 
'C'. TMP_CAR+1(1) = TMP_COL.
   ASSIGN (TMP_CAR) TO <FS1>.
   PERFORM FSOFFSET USING <FS1> 7 1 CHANGING TFS.
   IF NOT TFS IS INITIAL.
     MESSAGE E899 WITH 
'Selection is not valid'.
   ENDIF.
 
   IF <FS1> CA 
' '.
     PERFORM FSOFFSET_CAMBIO USING SY-FDPOS 1 USUARIO CHANGING <FS1>.
   ELSE.
     PERFORM FSOFFSET_CAMBIO USING 0 1 USUARIO CHANGING <FS1>.
   ENDIF.
 
*** Comprueba 4
   CLEAR TAB.
   TAB-COL = TMP_COL.
   IF <FS1> CA 
' '.
     TAB-LIN = SY-FDPOS - 1.
   ELSE.
     TAB-LIN = 8.
   ENDIF.
   PERFORM CUENTA_POSIB CHANGING TAB.
 
   IF ( TAB-O = 4 AND USUARIO = C_O ) OR
      ( TAB-X = 4 AND USUARIO = C_X ).
     GANA_USUARIO = 
'X'.
   ENDIF.
 
***
   TURNO = MAQUINA.
 ENDFORM.
 
 
*----------------------------------------------------------------------*
 
* FORM CUENTA_POSIB *
 
*----------------------------------------------------------------------*
 FORM CUENTA_POSIB CHANGING PTAB STRUCTURE TAB.
   DATA: TMP_COL  TYPE I,
         TMP_LIN  TYPE I.
 
*
 
*1 2 3
 
*4 5
 
*6 7 8
 
*
 
* Casilla 1
   TMP_COL = TAB-COL - 1.
   TMP_LIN = TAB-LIN + 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 2
   TMP_COL = TAB-COL.
   TMP_LIN = TAB-LIN + 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 3
   TMP_COL = TAB-COL + 1.
   TMP_LIN = TAB-LIN + 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 4
   TMP_COL = TAB-COL - 1.
   TMP_LIN = TAB-LIN.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 5
   TMP_COL = TAB-COL + 1.
   TMP_LIN = TAB-LIN.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 6
   TMP_COL = TAB-COL - 1.
   TMP_LIN = TAB-LIN - 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 7
   TMP_COL = TAB-COL.
   TMP_LIN = TAB-LIN - 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
* Casilla 8
   TMP_COL = TAB-COL + 1.
   TMP_LIN = TAB-LIN - 1.
   PERFORM SUMA_CASILLA USING TMP_COL TMP_LIN CHANGING PTAB.
 
*
 
* Horizontal
 
* perform suma_horizontal using tab-col tab-lin changing ptab.
   PERFORM SUMA_LINEA USING TAB-COL TAB-LIN 1 0 CHANGING PTAB.
 
* Vertical
 
* perform suma_vertical using tab-col tab-lin changing ptab.
   PERFORM SUMA_LINEA USING TAB-COL TAB-LIN 0 1 CHANGING PTAB.
 
* Diagonal 1
 
* perform suma_diagonal1 using tab-col tab-lin changing ptab.
   PERFORM SUMA_LINEA USING TAB-COL TAB-LIN 1 1 CHANGING PTAB.
 
* Diagonal 2
 
* perform suma_diagonal2 using tab-col tab-lin changing ptab.
   PERFORM SUMA_LINEA USING TAB-COL TAB-LIN 1 -1 CHANGING PTAB.
 
 
 ENDFORM.
 
 
 
*----------------------------------------------------------------------*
 
* FORM SUMA_CASILLA *
 
*----------------------------------------------------------------------*
 FORM SUMA_CASILLA USING
             VALUE(PCOL)  TYPE I
             VALUE(PLIN)  TYPE I
    CHANGING TAB STRUCTURE TAB.
 
*ORM SUMA_CASILLA USING VALUE(PCOL) VALUE(PLIN)
 
* CHANGING TAB STRUCTURE TAB.
   FIELD-SYMBOLS <FS>.
   DATA: TMP_C(2) TYPE C.
 
*
   TMP_C = 
'C '.
 
   CHECK PCOL >= 1 AND PCOL <= 8 AND PLIN >= 0 AND PLIN <= 7.
 
   TMP_C+1(1) = PCOL.
   ASSIGN (TMP_C) TO <FS>.
   PERFORM FSOFFSET USING <FS> PLIN 1 CHANGING TFS.
   CASE TFS.
     WHEN C_O.
       ADD 1 TO TAB-OA.
     WHEN C_X.
       ADD 1 TO TAB-XA.
     WHEN 
' '.
       ADD 1 TO TAB-BA.
   ENDCASE.
 ENDFORM.
 
 
*---------------------------------------------------------------------*
 
* FORM FSOFFSET *
 
*---------------------------------------------------------------------*
 
* ........ *
 
*---------------------------------------------------------------------*
 
* --> VALUE(P_CHAR) *
 
* --> VALUE(P_OFF) *
 
* --> VALUE(P_TAM) *
 
* --> VALUE(P_RESULT) *
 
*---------------------------------------------------------------------*
 FORM FSOFFSET USING VALUE(P_CHAR)   TYPE C
                     VALUE(P_OFF)    TYPE I
                     VALUE(P_TAM)    TYPE I
            CHANGING VALUE(P_RESULT) TYPE C.
   FIELD-SYMBOLS: <MIFS>.
   DATA:  TMPCAR(80).
   TMPCAR(10)    = 
'p_char+'.
   TMPCAR+10(10) = P_OFF.
   TMPCAR+20(1)  = 
'('.
   TMPCAR+21(10) = P_TAM.
   TMPCAR+31(1)  = 
')'.
   CONDENSE TMPCAR NO-GAPS.
   ASSIGN (TMPCAR) TO <MIFS>.
 
   P_RESULT = <MIFS>.
 ENDFORM.
 
 
*---------------------------------------------------------------------*
 
* FORM FSOFFSET_CAMBIO *
 
*---------------------------------------------------------------------*
 
* ........ *
 
*---------------------------------------------------------------------*
 
* --> VALUE(P_OFF) *
 
* --> VALUE(P_TAM) *
 
* --> VALUE(P_VALOR) *
 
* --> VALUE(P_CHAR) *
 
*---------------------------------------------------------------------*
 FORM FSOFFSET_CAMBIO USING VALUE(P_OFF)    TYPE I
                     VALUE(P_TAM)    TYPE I
                     VALUE(P_VALOR) TYPE C
            CHANGING VALUE(P_CHAR)   TYPE C.
   FIELD-SYMBOLS: <MIFS>.
   DATA:  TMPCAR(80).
   TMPCAR(10)    = 
'p_char+'.
   TMPCAR+10(10) = P_OFF.
   TMPCAR+20(1)  = 
'('.
   TMPCAR+21(10) = P_TAM.
   TMPCAR+31(1)  = 
')'.
   CONDENSE TMPCAR NO-GAPS.
   ASSIGN (TMPCAR) TO <MIFS>.
 
   <MIFS> = P_VALOR.
 ENDFORM.
 
 
*****
 
*----------------------------------------------------------------------*
 
* FORM SUMA_LINEA *
 
*----------------------------------------------------------------------*
 FORM SUMA_LINEA USING VALUE(PCOL)  VALUE(PLIN)
                       VALUE(PINCC) VALUE(PINCL)
                CHANGING TAB STRUCTURE TAB.
   FIELD-SYMBOLS <FS>.
   DATA: TMP_CINI  TYPE I,
         TMP_CFIN  TYPE I,
         TMP_LINI  TYPE I,
         TMP_LFIN  TYPE I,
         TMP_I    TYPE I,
         TMP_N    TYPE I,
         TMP_C(2) TYPE C,
         TMP_LIN(4).
 
*
   TMP_C = 
'C '.
 
   DO 3 TIMES.
     TMP_I = SY-INDEX + 1.
     TMP_CINI = PCOL - PINCC * ( TMP_I - 1 ).
     TMP_CFIN = PCOL.
     TMP_LINI = PLIN - PINCL * ( TMP_I - 1 ).
     TMP_LFIN = PLIN.
     DO TMP_I TIMES.
       IF    TMP_CINI < 1 OR TMP_CINI > 8
          OR TMP_CFIN < 1 OR TMP_CFIN > 8
          OR TMP_LINI > 7 OR TMP_LINI < 0
          OR TMP_LFIN > 7 OR TMP_LFIN < 0.
         TMP_CINI = TMP_CINI + PINCC.
         TMP_CFIN = TMP_CFIN + PINCC.
         TMP_LINI = TMP_LINI + PINCL.
         TMP_LFIN = TMP_LFIN + PINCL.
         CONTINUE.
       ENDIF.
       CLEAR TMP_LIN.
 
       TMP_C+1(1) = TMP_CINI.
       ASSIGN (TMP_C) TO <FS>.
       PERFORM FSOFFSET USING <FS> TMP_LINI 1 CHANGING TMP_LIN+0(1).
 
       TMP_C+1(1) = TMP_CINI + 1 * PINCC.
       ASSIGN (TMP_C) TO <FS>.
       TMP_N = TMP_LINI + 1 * PINCL.
       PERFORM FSOFFSET USING <FS> TMP_N 1 CHANGING TMP_LIN+1(1).
 
       IF TMP_I > 2.
         TMP_C+1(1) = TMP_CINI + 2 * PINCC.
         ASSIGN (TMP_C) TO <FS>.
         TMP_N = TMP_LINI + 2 * PINCL.
         PERFORM FSOFFSET USING <FS> TMP_N 1 CHANGING TMP_LIN+2(1).
       ENDIF.
 
       IF TMP_I > 3.
         TMP_C+1(1) = TMP_CINI + 3 * PINCC.
         ASSIGN (TMP_C) TO <FS>.
         TMP_N = TMP_LINI + 3 * PINCL.
         PERFORM FSOFFSET USING <FS> TMP_N 1 CHANGING TMP_LIN+3(1).
       ENDIF.
 
       IF TMP_LIN CO 
'O '.
         IF TMP_LIN = 
'OOOO'.
           TMP_N = 4.
         ELSEIF TMP_LIN CP 
'*O*O*O*'.
           TMP_N = 3.
         ELSEIF TMP_LIN CP 
'*O*O*'.
           TMP_N = 2.
         ELSEIF TMP_LIN CP 
'*O*'.
           TMP_N = 1.
         ELSE.                          
"BLANCO.
           TMP_N = 0.
         ENDIF.
 
         IF TMP_N > TAB-O.
           TAB-O = TMP_N.
         ELSEIF TMP_N = 0.
           IF TAB-B < TMP_I.
             TAB-B = TMP_I.
           ENDIF.
         ENDIF.
       ELSEIF TMP_LIN CO 
'X '.
         IF TMP_LIN = 
'XXXX'.
           TMP_N = 4.
         ELSEIF TMP_LIN CP 
'*X*X*X*'.
           TMP_N = 3.
         ELSEIF TMP_LIN CP 
'*X*X*'.
           TMP_N = 2.
         ELSEIF TMP_LIN CP 
'*X*'.
           TMP_N = 1.
         ELSE.                          
"BLANCO.
           TMP_N = 0.
         ENDIF.
 
         IF TMP_N > TAB-X.
           TAB-X = TMP_N.
         ELSEIF TMP_N = 0.
           IF TAB-B < TMP_I.
             TAB-B = TMP_I.
           ENDIF.
         ENDIF.
       ELSEIF TMP_LIN CO 
' '.
         IF TAB-B < TMP_I.
           TAB-B = TMP_I.
         ENDIF.
       ENDIF.
 
 
* *****************
       TMP_CINI = TMP_CINI + PINCC.
       TMP_CFIN = TMP_CFIN + PINCC.
       TMP_LINI = TMP_LINI + PINCL.
       TMP_LFIN = TMP_LFIN + PINCL.
     ENDDO.
   ENDDO.
 ENDFORM.

 
< Prev   Next >

Google Search

Google Ads


Warning: include(http://erpgenie.com/_borders/bottom.htm) [function.include]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/includes/footer.php on line 22

Warning: include() [function.include]: Failed opening 'http://erpgenie.com/_borders/bottom.htm' for inclusion (include_path='.:') in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/includes/footer.php on line 22