Cambio en un Optiongroup

Tengo un formulario que me muestra los datos de la ficha de los clientes y tengo definidos los botones de avance de registros,(Primero, Anterior, siguiente y ultimo), en el formulario hago uso de un OptionGroup con dos opciones
1.Natural, 2. Juridica que define el tipo de persona, en el event init del formulario asigno a los texbos del mismo los datos del archivo clientes en la parte de para asiganar el tipo de persona tengo el siguente codigo
IF clientes.tipocli='NN' .or. Clientes.tipocli='NR' 
    thisform.optiongroup1.option1.value= 1
    thisform.optiongroup1.option2.value = 0  
     else
    thisform.optiongroup1.option1.value= 0
    thisform.optiongroup1.option2.value = 1
endif
cuando le doy registro siguiente o anterior si la persona cambia de Personal a juridica el optiongroup no cambia se queda solo en natural, es decir no ejecuta la opcion else del if podrian ayudarme  gracias

1 respuesta

Respuesta
Cuando cambias a personal natural que valor tiene el campo clientes. ¿Tipocli? ¿Y cuándo cambias a jurídica que valor tiene tipocli? Porque quizás tienes mal formulada la condición más aun si estas usando OR porque una de las condiciones se te cumple siempre y por eso nunca te cambia de valor
Ok en el campo tipocli según el tipo de cliente tengo JN, JD, NR, NN, anteriormente lo tenia solo con analizar la primera letra del campo J o N el el operador .or. lo agregue después igualmente no funcionaba por eso use después el operador or y seguí sin funcionar
letra = substr(clientes.tipocli,1,1)
if letra='N'
 * campio para persona natural
else
 * cambio para juridica
Endif
Igual no fucncionaba al darle siguiente o anterior
De pronto el problema puede ser la longitud del campo tipocli, podrías sustituir la condición por la siguiente :
IF ALLTRIM(CLIENTES.TIPOCLI) == "NR" OR ALLTRIM(CLIENTES.TIPOCLI) == "NN"
Ahora el segundo código que pusiste el de extraer la primera letra esta bien hecho, la otra opción es que tengas el código puesto en un lugar donde no se ejecuta para salir de la duda al inicio de ese bloque de instrucciones pon un messagebox para ver si entra a esa parte del código

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas