Clarion - consultar uno o varios registros

 
Vista:

consultar uno o varios registros

Publicado por GIRALDO BRAVO (21 intervenciones) el 06/11/2010 23:51:10
saludos a todos,

Les pido el favor que me orienten como puedo hacer para crear un procedimiento para consultas key virtuales osea que a travez de codigo pueda hacer los mismo como si ubiera creado un campo Key en el diccionario de datos.

Lo necesito para ancontrar registros duplicados en una tabla y con ese mismo proposito hacer comparaciones entre dos tablas, por nombres, apellidos, fechas de nacimiento, identificacion.

no se si se pueda

gracias por todo

Tengo Clarion 5
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
sin imagen de perfil

RE:consultar uno o varios registros

Publicado por Marcelo Madelon (572 intervenciones) el 07/11/2010 12:51:23
GIRALDO BRAVO

Yo uso un alias. Te paso el código que uso para no permitir que se ingresen registros con numeros de ingresos brutos repetidos excepto cuando tienen valor cero. Es para el caso de los consumidores finales que no estan incriptos.

IF Self:Request = InsertRecord ! Si es un Alta de un registro. Si no haces esta validación, cuando modifiques te va a decir que encontro un duplicado....
IF AC1:IngresoBruto > 0
AAC:IngresoBruto = AC1:IngresoBruto ! Cargo el campo del Alias,
IF Not Access:AAccte01.Fetch(AAC:KeyIngresoBruto) ! como es clave puedo leer desde esta clave. Fijate que la preguta es IF NOT ACCESS
MESSAGE('Ya Ingresó una Cuenta Con Ese Número de Ingreso Brutos... ! Corresponde a: '&AAC:CodCliente&' '&AAC:ApellidoNombre,'Mensaje del Sistema',ICON:Exclamation)
END
END
END

! en el message le aviso que ya esta ingresado y le muestro el codigo y el apellido del alias para que el operador se ubique.

Cualquier cosa estoy a tu disposición. Saludos
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
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 04/05/2022 17:46:21
Buen día Marcelo.
Cómo estás!?
Buscado la manera de que desde un Form de Alta no ingresen datos ya exitentes me encontré con tu ejemplo.
Per mi caso es distinto, paso a explicarte.
Qué sucede cuando el control de duplicación de datos lo efectuás en un capo de una tabla que no es PK, clave o parte de ella!!?
Digo tengo la Tabla Provincias y ya tengo cargado el registro: 1 - NEUQUEN
Pero como controlo en el form si quiero ingresar NEUQUEN nuevamente no tendría que pasar.
Lo podría hacer desde el DCT cambiando la PK y hacerla compuesta (UNIQUE) ; pero estoy tratando agarrarle la mano al código embebido siguiendo el material que me habiliste.
Esta parte del código me trae error: "if not Access:PROVINCIAS.Fetch(PRO:PRODescripcion)" puesto que el metodo, propiedad o como se llame "Fetch" solo aplica a PKs o Clave. Pero que reemplaza al "Fetch" cuándo el campo a evaluar no es parte de la PK!!?
No lo postee en el foro puesto que ya puse varios temas y no tengo respuesta. Por eso te lo conulto en este post.
Un cordial saludo
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
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:consultar uno o varios registros

Publicado por Marcelo Madelón (292 intervenciones) el 04/05/2022 19:04:54
Te Adjunto un ejemplo (C6)

Solo sirve para el caso que tengas pocos registros como pueden ser las provincias

Las funciones POINTER y DUPLICATE solo sirven sobre campos claves

Avisame se te sirvió


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 05/05/2022 13:49:03
Buen día Marcelo
Esto es lo que buscaba anda de 10+iva.
Una consulta más, hay en alguna parte un manual o ayuda donde pueda ver o leer qué hace cada método, propiedad, control o cómo se diga en Clarion!!!?
Pregunto porque en el manual no hace referencia a nada de eso!!? Como el caso del código que me enviaste "PROP:Touched"
Te comento Marcelo lo mismo me ha pasado con Genenxus, por cada metodo o propiedad para saber que hacen en realidad tenés que recorrerte foros, wiki, el sitio de Genexus, etc. Por que no tenés un manual que haga referencia ... pero bueno es cuestión de probar
Lo que me vas tirando realmente me va habriendo la cabeza.
Estamos en contacto
Muchas gracias y saludos
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
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:consultar uno o varios registros

Publicado por Marcelo Madelón (292 intervenciones) el 05/05/2022 15:10:43
Si tenes instalado el help ahí encontrás todo muy claro y con ejemplos

No tengo un listado como el que me pedís.

Me fijo si tengo algún pdf y te lo envío

También podes fijarte en los ejemplos que trae Clarion.

C:\Clarion6\Examples

Si encuentro otro manual lo posteo que seguro a alguien le va a servir.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 05/05/2022 16:36:23
Hola Marcelo
Gracias por el material y los Tips para ir conociendo más del IDE.
Te hago una consulta respecto al Ejemplo.zip; ya miré el código y como se define un Alias en mi proyecto.
Definí en el Embebido del Form de Provincias en los eventos correspondientes, o sea todo igual a como está el ejemplo. En eso no tuve problemas solo tenía que investigar algunas cuestiones.
Pero el ejecutar el Alta o Insert y repetir una Provincia no me controla nada sino que la grava, no es el caso del Ejemplo que me mandaste que si funciona "al pelo".
Hay que definir algo más para que tenga efecto la ejecución o el control en este caso!? porque no me "ataja el control" o sea lo grava en la tabla.

Te comento; (no sé si ya te lo dije antes, no recuerdo); yo tengo la versión 8 de la herramienta. Igual para lo que yo estoy haciendo debe servir. Imaginate que estoy con material de la Vers. 5 y 6 (que es lo que me pasaste hasta ahora) y un manual de la 7 también

Saludos
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
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 05/05/2022 17:27:33
Marcelo por favor desestimá correo anterior.
Ya encontré el problema. El Alias estaba mal asignado en el código. Lo que sucede es que no me gusta copiar y pegar así bueno cometí un error y descubrí cual era.
Ahora ese control en particular funciona.

El "Alias" que definiste en la Tabla Provincias del Ejemplo, actua de la misma forma que se utiliza en un Scrip de SQL!!? Digo hace una especie de "Join" de comparación en la misma Tabla!!?


Voy con la parte del Prompt para que desde Localidades acceda a las Provincias para seleccionarlas.

Saludos y gracias.
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
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:consultar uno o varios registros

Publicado por Marcelo Madelón (292 intervenciones) el 05/05/2022 18:27:26
El alias es una copia / duplicado y que puede ser tratado de la misma forma que el archivo.
Lo podes leer, agregar, modificar, borrar, etc

La ventaja es que si tenes tomado el registro 12 por ejemplo del archivo, podes leer el registro 12 el alias o cualquier otro registro y no te va afectar los datos que estarías cargando en un form, etc
Ejemplo
Si cargas los datos del cliente y cargas el cuit que es clave si hace la lectura del archivo (no del alias) y no lo encuentra en el form se te va a inicializar todos los campos perdiendo los que cargaste, en cambio si lees el alias por la clave cuit y si no da error la lectura quiere decir que existe.
Este manejo tiene un problema cuando das modificar, ya encuentra un cuit y te dice que existe pero en realidad se refiere al mismo registro.
Para solucionar eso yo uso este código:
Archivo= Cliente Prefijo CLI:
Alias= ACliente Prefijo ACL:

CLEAR (ACL:RECORD)
ACL:Cuit = CLI:Cuit
SET (ACL:KeyCUIT,ACL:KeyCUIT) ! lo ordeno por la clave KeyCUIT y me posiciono en el mas cercano al cuit ingresado
LOOP UNTIL Access:ACliente .Next() or ACL:Cuit <> CLI:Cuit ! Leo mientras sea el mismo cuit
IF ACL:ID_Cliente <> CLI:ID_Cliente
Message ('Ya Ingresó un Cliente con ese CUIT ' & '|Corresponde a: ' & ACL:ApellidoNombre,'Mensaje del Sistema',ICON:Exclamation)
Select(?CLI:CUIT) ! (el caracter "|" en el Texto produce un salto de línea)
Cycle
END
END

El usuario vería así:
Ya Ingresó un Cliente con ese CUIT
Corresponde a: Quevedo Marcos Antonio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 06/05/2022 13:29:48
Hola Marcelo buen día
Ahora entiendo, no era lo que pensaba.
Es muy clara tu explicación.
Sigo adelante ... ya te voy a molestar con algo más seguramente.
Buen fin de semana
Saludos
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
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:consultar uno o varios registros

Publicado por Marcelo Madelón (292 intervenciones) el 06/05/2022 13:48:54
Es un placer poder ayudar.

En un post anterior me comentas que tenes la versión 8.
Es mejor y tiene un IDE mucho mejor. Te recomendaría que comiences a investigar el C8.
Las APP y DCT las podes abrir con C8 y te la convertirá sin mayores problemas.
La precaución que debes tener es pasar la app y dct a otra carpeta por que cuando la convertís a C8 no podes abrirla con C6 nunca más.
Otra consideración son los templates. Tenes que ver si C8 los soporta.
Para eso incorporal los templates, corrobora si dan error al incorporarlo, luego hace una app de cero y fijate si podes usar los templates que usas en C6.

En C8, fijate en "Herramientas" ---- "Opciones" podes hacer las configuraciones como mas te guste.


Buen fin de semana.
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
Imágen de perfil de Pablo Dante

RE:consultar uno o varios registros

Publicado por Pablo Dante (45 intervenciones) el 06/05/2022 14:38:04
Hola Marcelo
Si efectivamente los ejemplo que me pasaste los habrí con la 8 y no tuve ningún inconveniente.
Buen finde...
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