Diferencias de SELECT - SQL Command de Vfp7 y Vfp9

Tengo un ComboBox en un formulario hecho en VFP7, se compila bien el exe con VFP9 per al ejecutarlo arroja error.


En Init del combo tengo:

#DEFINE ALLCOUNTRY_LOC "Año"
this.clear
this.additem(ALLCOUNTRY_LOC)
Local aCountries,cCountry
Dimension aCountries[1]

Select Distinct mes From MESES Order By mesnu Into array aCountries   && selecciona los meses  - ok en vfp7

For Each m.cCountry IN aCountries
    IF !EMPTY(m.cCountry)
        this.additem(m.cCountry)   && ok en VFP7
    ENDIF
ENDFOR
THIS.VALUE = ALLCOUNTRY_LOC
mmes = THIS.VALUE
CLOSE DATA


Comentarios sobre Init del Combo:

En VFP9 cambio el SELECT:

SELECT distinct MESES.mes, MESES.mesnu FROM MESES ORDER BY mesnu INTO array aCountries   && para VFP9 OK

pero me da error en:

        this.additem(m.cCountry)


En InteractiveChange del Combo tengo:

* MESES.DBF tabla de número y nombres de meses

LOCAL cDisplayValue
THISFORM.LockScreen = .T.
IF THIS.Value = "Año"
     SELECT  MESES.mesnu, MESES.mes,* FROM MESES ORDER BY MESES.mesnu INTO CURSOR Custs
ELSE
    SELECT MESES.mesnu, MESES.mes,* FROM MESES ;
         ORDER BY MESES.mesnu ;
         WHERE UPPER(ALLTRIM(MESES.mes)) = UPPER(ALLTRIM(THIS.Value));
         INTO CURSOR Custs
ENDIF
THISFORM.LockScreen = .F.
mmes = This.Value
IF mmes <> "Año"
   mnums = 0
   DO demesanu
   IF mnums > MONTH(DATE()) AND YEAR(DATE()) = VAL(myearn)
      USE cuentas.dbf
      SET ORDER TO TAG ferepoven OF cuentas.cdx DESCENDING
      GO TOP
      LOCATE FOR YEAR(ferepoven) = VAL(myearn) AND MONTH(ferepoven) <= MONTH(DATE())
      IF FOUND()
         mnums = MONTH(ferepoven)
         DO denuames
      ELSE
         IF ThisForm.temporal.value = 1
            USE regispre.dbf
            SET ORDER TO TAG fcharepo OF cuentas.cdx DESCENDING
            GO TOP
            LOCATE FOR YEAR(fcharepo) = VAL(myearn) AND MONTH(fcharepo) <= MONTH(DATE())
            IF FOUND()
               mnums = MONTH(fcharepo)
               DO denuames
            ENDIF
         ENDIF
      ENDIF
      CLOSE DATA
      mavisa = "EL MES DEBE SER IGUAL O ANTERIOR A "+ALLTRIM(mmes)
      DO FORM avisarno
   ENDIF
Endif
IF mmes = "Año"
   mnums = 0
ENDIF

CLOSE DATA
ThisForm. Refresh()


Añade tu respuesta

Haz clic para o