Obtener el valor de un datawindows para validarlo

Lo que pasa es que quiero obtener el valor de un campo que ingreso que esta en un data windows para validar una cedula a través de un boton mi tabla se llama cse_estudiante y el campo se llama est_cedula

Como vez en esta programación la dirige a una caja de texto que se llama cad.text pero no se como dirigirla al valor que ingreso del datawindows por favor ayudame

Tengo esta programación

if dwo.name="b_cli" then
Integer li_par1, li_par2, li_par3, li_par4
integer li_imp1, li_imp2, li_imp3, li_imp4, li_imp5
// Variables para almacenar la suma de los dígitos de intentar par, impar, etc
Integer li_sp, li_si, li_st, li_verificador, li_ds
// Almacenamos el código verificador, que es el ultimo dígito de la cedula
li_verificador = Integer( Right( cad.text, 1))
// almacenamos los dígitos de intentar par
li_par1 = Integer( Right( Left( cad.text, 2), 1))
li_par2 = Integer( Right( Left( cad.text, 4), 1))
li_par3 = Integer( Right( Left( cad.text, 6), 1))
li_par4 = Integer( Right( Left( cad.text, 8), 1))
// almacenamos los dígitos de intentar impar
li_imp1 = Integer( Left( cad.text, 1))
li_imp2 = Integer( Right( Left( cad.text, 3), 1))
li_imp3 = Integer( Right( Left( cad.text, 5), 1))
li_imp4 = Integer( Right( Left( cad.text, 7), 1))
li_imp5 = Integer( Right( Left( cad.text, 9), 1))
// Los dígitos de intentar par, se suman
li_sp = li_par1 + li_par2 + li_par3 + li_par4
// los dígitos de intentar impar se multiplican por 2
If li_imp1 * 2 > 9 Then
// si el resultado es mayor que 9, se le resta 9
li_imp1 = (li_imp1 * 2) - 9
Else
// de caso contrario se almacena el dígito impar multiplicado por 2
li_imp1 = li_imp1 * 2
End If
If li_imp2 * 2 > 9 Then
li_imp2 = (li_imp2 * 2) - 9
Else
li_imp2 = li_imp2 * 2
End If
If li_imp3 * 2 > 9 Then
li_imp3 = (li_imp3 * 2) - 9
Else
li_imp3 = li_imp3 * 2
End If
If li_imp4 * 2 > 9 Then
li_imp4 = (li_imp4 * 2) - 9
Else
li_imp4 = li_imp4 * 2
End If
If li_imp5 * 2 > 9 Then
li_imp5 = (li_imp5 * 2) - 9
Else
li_imp5 = li_imp5 * 2
End If
// suma de todos los dígitos de intentar impar
li_si = li_imp1 + li_imp2 + li_imp3 + li_imp4 + li_imp5
// suma tota, suma de pares + suma de impares
li_st = li_sp + li_si
// se calcula la decena superior
li_ds = (Integer( Left( String( li_st), 1)) + 1) * 10
// si el código verificador es igual a la resta de la decena superio menos la suma total
If li_verificador = (li_ds - li_st) Then
// si es igual, entonces la cedula es correcta
MessageBox("Resultado", "La cedula es verdadera")
Else
// de caso contrario, es incorrecta
MessageBox("Resultado", "La cedula es incorrecta")
End If
end if

1 respuesta

Respuesta
1

Disculpa el tiempo me encuentro trabajando en un proyecto y estoy full, no se si te entiendo bien pero lo que quise es que con el botón que tiene valide la cedula del datawindows; buen en esta parte de tu programación:

// Almacenamos el código verificador, que es el ultimo dígito de la cedula
li_verificador = Integer( Right( cad.text, 1))

Deberías sustituirla por:

// Almacenamos el código verificador, que es el ultimo dígito de la cedula

string cedula

cedula=dw_datawindows.GetItemString(dw_datawindows.GetRow(),"campocedula") //Captura el valor de cedula y lo sustituyes por cad.text

Esto capturá el valor cédula de tu datawindows y realizará la verificación.

a lo que le remplazo no hace la validación tenia 'cad.text' y le puse cedula con la programación que me dijiste pero no valida me sale cedula incorrecta

bueno soy novato

pero tengo una idea de mis posibles fallas que creo por eso quiero que me ayudes

1.-el campo 'est_cedula' lo tengo en la tabla como varchar

2.- cuando utilizaba la caja de texto utilizaba '.tex' para las posiciones

3.- también creo que es por el tipo de dato en las variables utiliadas

por favor ayudame corrigiendo estoy haciendo mi tesis y debo validar los datos de los datawindows que tengo

ya lo probé con una caja de texto como anteriormente te dije y si funciono

A ver primero verifica que esté cargando el valor de cedula ... con un botón aparte pon el siguiente código:

string cedula

cedula=dw_queutilizas.GetItemString(dw_queutilizas.GetRow(),"est_cedula")

Messagebox("", cedula)

Corre el programa haz click en el botón ahí te tiene que mostrar la cedula, con eso verificas que estas capturando el valor, caso contrario siempre te saldrá cedula invalida ... hazlo y me avisas ...

no me sale ningún valor es mas no me sale el mensaje box

ya que primero yo tengo un botón nuevo le doy click empiezo a ingresar

tengo esto en nuevo no creo que influya esto a validar los datawindows

integer Filas
string ls_cod
dw_1.modify( "datawindow.readonly=no")
dw_1.insertrow( 1)
dw_1.setfocus( )
cb_grabar.enabled=true

disculpa que te moleste no se si es posible que me ayudes en hacer mi proyecto yo soy de quito

mi correo es [email protected]

me puedes dar tu correo para contactarnos

para que me ayudes con clases o vía skype

te lo agradeceré

Bueno no ocupo skype, escríbeme a [email protected] y conversamos la manera de comunicarnos vale ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas