do while
Publicado por eduardo (1 intervención) el 18/01/2011 00:35:47
Hola programadores, tengo un problema espero me puedan ayudar.
creo una pantalla donde se introduce x informacion, cuando realizo un programa en el boton de guardar tengo lo siguiente, pero cuando entra al do while lo salta como si la condicion no se cumpliera, espero me puedan ayudar
WITH thisformset.adecuaciones
If EMPTY(.xfolio1.value) .or. EMPTY(.xprograma1.value) .or. EMPTY(.xsubprog1.value) .or. EMPTY(.xpartida1.value) .or. EMPTY(.xreduccion1.value) .or. EMPTY(.xmes1.value)
wait wind "Faltan Datos, no puede Guardarse el Registro...." timeout 2
.xfecha1.SetFocus()
Return
ELSE
SELECT 3
xfolio=.xfolio1.value
xprograma=.xprograma1.value
xsubprograma=.xsubprog1.value
xmes=.xmes1.value
xreduccion=.xreduccion1.value
xampliacion=xreduccion-xreduccion
xampliaciona=xreduccion-xreduccion
APPEND BLANK
DO CASE
CASE .xmes1.value="1"
replace ene1 WITH VAL(xreduccion)
CASE .xmes1.value="2"
replace feb1 WITH VAL(xreduccion)
CASE .xmes1.value="3"
replace mar1 WITH VAL(xreduccion)
CASE .xmes1.value="4"
replace abr1 WITH VAL(xreduccion)
CASE .xmes1.value="5"
replace may1 WITH VAL(xreduccion)
CASE .xmes1.value="6"
replace jun1 WITH VAL(xreduccion)
CASE .xmes1.value="7"
replace jul1 WITH VAL(xreduccion)
CASE .xmes1.value="8"
replace ago1 WITH VAL(xreduccion)
CASE .xmes1.value="9"
replace sep1 WITH VAL(xreduccion)
CASE .xmes1.value="10"
replace oct1 WITH VAL(xreduccion)
CASE .xmes1.value="11"
replace nov1 WITH VAL(xreduccion)
CASE .xmes1.value="12"
replace dic1 WITH VAL(xreduccion)
ENDCASE
REPLACE fecha1 WITH .xfecha1.VALUE, folio WITH .xfolio1.value, programa1 WITH .xprograma1.value, subprog1 WITH .xsubprog1.value
replace partida1 WITH .xpartida1.value, reduccion WITH .xmes1.value
ENDIF
*xampliacion=0
*xampliaciona=0
DO WHILE xampliacion<xreduccion
ThisFormSet.ampliacion.show()
* regresa de la ventana de captura
If EMPTY(.xprograma1.VALUE) .or. EMPTY(.xsubprog1.VALUE) .or. EMPTY(xpartida1.VALUE) .or. EMPTY(.xampliacion1.VALUE)
wait wind "Faltan Datos, no puede Guardarse el Registro...." timeout 2
*.xprograma2.SetFocus()
ThisFormSet.ampliacion.HIDE()
Return
ELSE
SELECT 3
*xfolio=xfolio1
*xprograma=xprograma1
*xsubprograma=xsubprograma1
*xmes=xmes1
*xreduccion=xreduccion1
APPEND BLANK
DO CASE
CASE .xmes1.value="1"
replace ene1 WITH VAL(xampliacion)
CASE .xmes1.value="2"
replace feb1 WITH VAL(xampliacion)
CASE .xmes1.value="3"
replace mar1 WITH VAL(xampliacion)
CASE .xmes1.value="4"
replace abr1 WITH VAL(xampliacion)
CASE .xmes1.value="5"
replace may1 WITH VAL(xampliacion)
CASE .xmes1.value="6"
replace jun1 WITH VAL(xampliacion)
CASE .xmes1.value="7"
replace jul1 WITH VAL(xampliacion)
CASE .xmes1.value="8"
replace ago1 WITH VAL(xampliacion)
CASE .xmes1.value="9"
replace sep1 WITH VAL(xampliacion)
CASE .xmes1.value="10"
replace oct1 WITH VAL(xampliacion)
CASE .xmes1.value="11"
replace nov1 WITH VAL(xampliacion)
CASE .xmes1.value="12"
replace dic1 WITH VAL(xampliacion)
ENDCASE
REPLACE fecha1 WITH .xfecha1.VALUE, folio WITH .xfolio1.value, programa1 WITH .xprograma2.value, subprograma1 WITH .xsubprograma2.value
replace partida1 WITH .xpartida2.value, ampliacion WITH .xmes1.value
xampliacion=.xampliacion.value+.xampliacion1.value
xampliaciona=.xampliaciona.value+.xampliacion1.value
IF .xampliacion.value=.xreduccion.value
wait wind "Se ha registrado correctamente la adecuación" timeout 2
ELSE
wait wind "Existe una diferencia entre la reducción y la ampliación, continúe el registro" timeout 2
ThisFormSet.ampliacion.HIDE()
ENDIF
ENDIF
ENDDO
ThisFormSet.adecuaciones.hide()
ThisFormSet.principal.show()
ENDWITH
creo una pantalla donde se introduce x informacion, cuando realizo un programa en el boton de guardar tengo lo siguiente, pero cuando entra al do while lo salta como si la condicion no se cumpliera, espero me puedan ayudar
WITH thisformset.adecuaciones
If EMPTY(.xfolio1.value) .or. EMPTY(.xprograma1.value) .or. EMPTY(.xsubprog1.value) .or. EMPTY(.xpartida1.value) .or. EMPTY(.xreduccion1.value) .or. EMPTY(.xmes1.value)
wait wind "Faltan Datos, no puede Guardarse el Registro...." timeout 2
.xfecha1.SetFocus()
Return
ELSE
SELECT 3
xfolio=.xfolio1.value
xprograma=.xprograma1.value
xsubprograma=.xsubprog1.value
xmes=.xmes1.value
xreduccion=.xreduccion1.value
xampliacion=xreduccion-xreduccion
xampliaciona=xreduccion-xreduccion
APPEND BLANK
DO CASE
CASE .xmes1.value="1"
replace ene1 WITH VAL(xreduccion)
CASE .xmes1.value="2"
replace feb1 WITH VAL(xreduccion)
CASE .xmes1.value="3"
replace mar1 WITH VAL(xreduccion)
CASE .xmes1.value="4"
replace abr1 WITH VAL(xreduccion)
CASE .xmes1.value="5"
replace may1 WITH VAL(xreduccion)
CASE .xmes1.value="6"
replace jun1 WITH VAL(xreduccion)
CASE .xmes1.value="7"
replace jul1 WITH VAL(xreduccion)
CASE .xmes1.value="8"
replace ago1 WITH VAL(xreduccion)
CASE .xmes1.value="9"
replace sep1 WITH VAL(xreduccion)
CASE .xmes1.value="10"
replace oct1 WITH VAL(xreduccion)
CASE .xmes1.value="11"
replace nov1 WITH VAL(xreduccion)
CASE .xmes1.value="12"
replace dic1 WITH VAL(xreduccion)
ENDCASE
REPLACE fecha1 WITH .xfecha1.VALUE, folio WITH .xfolio1.value, programa1 WITH .xprograma1.value, subprog1 WITH .xsubprog1.value
replace partida1 WITH .xpartida1.value, reduccion WITH .xmes1.value
ENDIF
*xampliacion=0
*xampliaciona=0
DO WHILE xampliacion<xreduccion
ThisFormSet.ampliacion.show()
* regresa de la ventana de captura
If EMPTY(.xprograma1.VALUE) .or. EMPTY(.xsubprog1.VALUE) .or. EMPTY(xpartida1.VALUE) .or. EMPTY(.xampliacion1.VALUE)
wait wind "Faltan Datos, no puede Guardarse el Registro...." timeout 2
*.xprograma2.SetFocus()
ThisFormSet.ampliacion.HIDE()
Return
ELSE
SELECT 3
*xfolio=xfolio1
*xprograma=xprograma1
*xsubprograma=xsubprograma1
*xmes=xmes1
*xreduccion=xreduccion1
APPEND BLANK
DO CASE
CASE .xmes1.value="1"
replace ene1 WITH VAL(xampliacion)
CASE .xmes1.value="2"
replace feb1 WITH VAL(xampliacion)
CASE .xmes1.value="3"
replace mar1 WITH VAL(xampliacion)
CASE .xmes1.value="4"
replace abr1 WITH VAL(xampliacion)
CASE .xmes1.value="5"
replace may1 WITH VAL(xampliacion)
CASE .xmes1.value="6"
replace jun1 WITH VAL(xampliacion)
CASE .xmes1.value="7"
replace jul1 WITH VAL(xampliacion)
CASE .xmes1.value="8"
replace ago1 WITH VAL(xampliacion)
CASE .xmes1.value="9"
replace sep1 WITH VAL(xampliacion)
CASE .xmes1.value="10"
replace oct1 WITH VAL(xampliacion)
CASE .xmes1.value="11"
replace nov1 WITH VAL(xampliacion)
CASE .xmes1.value="12"
replace dic1 WITH VAL(xampliacion)
ENDCASE
REPLACE fecha1 WITH .xfecha1.VALUE, folio WITH .xfolio1.value, programa1 WITH .xprograma2.value, subprograma1 WITH .xsubprograma2.value
replace partida1 WITH .xpartida2.value, ampliacion WITH .xmes1.value
xampliacion=.xampliacion.value+.xampliacion1.value
xampliaciona=.xampliaciona.value+.xampliacion1.value
IF .xampliacion.value=.xreduccion.value
wait wind "Se ha registrado correctamente la adecuación" timeout 2
ELSE
wait wind "Existe una diferencia entre la reducción y la ampliación, continúe el registro" timeout 2
ThisFormSet.ampliacion.HIDE()
ENDIF
ENDIF
ENDDO
ThisFormSet.adecuaciones.hide()
ThisFormSet.principal.show()
ENDWITH
Valora esta pregunta


0