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
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


0