FoxPro/Visual FoxPro - ayuda para mejorar codigo

   
Vista:

ayuda para mejorar codigo

Publicado por gustavo (34 intervenciones) el 02/06/2008 14:33:51
buenas
quiero mejorar un form donde tngo los datos personales de los alumnos
tngo un textbox en donde capturo el dni y otro textox en donde calcula el cuil
la programacion funciona el problema es que ademas de ingresar los 8 digitos del dni
tambien tnia q ingresar 2 digitos mas
eje: 2028662010
el nº 20 es para hombres y el 27 si se es mujer
para mejorar qiero agregar un grupo de opciones con valores VARON Y MUJER
cuando selecciono VARON O MUJERO solo quiero ingresar en el textboxDNI los 8 digitos y q el algorimo q m calcula el cuil me agrege el 20(hombres) o el 27 (mujeres)
este es el algoritmo q calcula el cuil
******
Parameters m.cDni
Local m.nSuma, m.cDigitos, m.nContador, m.nVerifica, m.nValor
m.cDigitos = "5432765432"
&& Validación de parámetros
If pCount() < 1 && Si no se le pasa un parámetro
Return .F.
EndIf
m.cDni = StrTran( StrTran( m.cDni, "-", "" ), " ", "" ) && Eliminamos espacios y guiones
If Len( m.cDni ) <> 10
Message( "El DNI debe de ser de 10 números" )
Return .F.
EndIf
m.nSuma = 0
For m.nContador = 1 to 10
m.nSuma = m.nSuma + ( Val( SubStr( m.cDni, m.nContador, 1 ) ) * Val( SubStr( m.cDigitos, m.nContador, 1 ) ) )
Next
m.nValor = 11 - ( m.nSuma % 11 )
Do Case
Case m.nValor = 11
m.nVerifica = 0
Case m.nValor = 10
m.nVerifica = 9
OtherWise
m.nVerifica = m.nValor
EndCase
Return Transform( cDni + AllTrim( Str( m.nVerifica ) ), "@R 99-99999999-9" )
******
y coloco esto en el lost focus del txetboxDNI
***
ThisForm.txtCuil.Value = calccuil(this.Value)
****
calcuil.prg es el algoritmo q calcula el cuil
***
disculpen q es un poco larga mi pregunta
chau y hasta pronto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda para mejorar codigo

Publicado por Arturo Garcia Casas (156 intervenciones) el 02/06/2008 16:49:12
pues la verdad es muy sencillo....solo es concatenacion de cadenas

ejempo:

agrega un grupo de opciones de 2 botones, uno para HOMBRE y el otro para MUJER....por deault que option1.. tenga el valor de 1

en el cuadro de texto(Text1) donde escribiras los 8 digitos programa lo siguiente en el evento KEYPRESS..que detecte cuando des enter

IF NKEYPRESS=13 && enter
WITH THISFORM
IF .GRUPO1.OPTION1.VALUE=1
CODIGO="20"
ELSE
CODIGO="27"
ENDIF
.TEXT1.VALUE=CODIGO+ALLT(STR(.TEXT1.VALUE))
ENDWITH
ENDIF

NOTA: SI TU CAMPO ES ENTERO, CONVIERTE EL VALOR DE TEXT1 A NUMERICO CON LA INSTRUCCION VAL. EXISTE MUCHAS OPCIONES PARA SOLUCIONAR ESO...POR EJEMPLO LAS VARIABLES PUBLICAS....EN FIN.

CUALQUIER DUDA MANDAME UN CORREO.
SALUDOS DESDE EL BELLO PUERTO DE VERACRUZ, VER. ,MEXICO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda para mejorar codigo

Publicado por Arturo Garcia Casas (156 intervenciones) el 02/06/2008 16:54:44
FE DE ERRATAS...

PUSE EL EVENTO KEYPRESS PERO EL PARAMETRO ES NKEYCODE
NO KEYPRESS

UNA DISCULPA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar