Captura de Imagen Via Camara Web en Vfp9
Hola Jesús, cómo estás?
Espero estés bien.
Veo que seguiste la recomendación, eso me gusta, gracias, tienes interés en resolver y eso es lo importante, seguro que verás la solución.
He intervenido muy poco en este foro, mi intención es ayudar a otros a mejorar como profesionales dándoles tips de lo que por experiencia parece funcionar, sin embargo, tal vez lo indicado no sea la mejor lógica, pero sí, una posible solución.
Como te comente anteriormente, es bien interesante lo que deseas hacer.
Cuando hago este comentario, es porqué lo que requieres hacer te adentrará a utilizar las bondades y fortalezas del sistema operativo, siendo estás funciones más allá de las que ya tiene Visual FoxPro, el cual es muy rico y dinámico a la hora de manejar información, pero no se limita, porqué sigue siendo parte integral del Microsoft y Windows.
El programa que bajaste y probaste muestra claramente la programación orientada a objetos utilizando como clase base un Form (Objeto Contenedor) de VFP a través del cual puedes monitorear la activación del dispositivo y la captura de la imagen, es más, si será efectivo, que si buscas en la parte inferior de ese link los comentarios, encontrarás uno de Luis Maria Guayan de Argentina, quien es considerado como uno de los Gurús en VFP de habla hispana .
Estudia el código y prueba cada una de sus partes (Procedimientos/Métodos/Eventos y Componentes), usa el Debugger de VFP con puntos de interrupción y mide y analiza lo que hace y como sucede, desglózalo lo más que puedas y entiéndelo, no es complicado, son solo seiscientas y tanto (611) líneas incluyendo comentarios y líneas en blanco. Luego de comprender su funcionamiento, podrás recopilar el código necesario y encapsularlo en una clase base custom o container de VFP y lograr tu objetivo.
Bueno, siguiendo tus tres preguntas u observaciones, de momento te sugiero lo siguiente.
Recomendaciones:
1era. Observación:
Crear tu propia clase basado en el código ya probado para que logres la automatización. Así cómo lo imaginaste, que al introducir el DNI/Código sea cual sea la vía y esté Validado como existente, aparezca la captura/foto al lado o en cualquier parte del formulario, reflejando el momento presente, una realidad, sin escapatoria.
Crea un archivo include tipo lenguaje C con extensión .H y guarda allí todas las instrucciones que comienzan con #DEFINE y no olvides de indicarlo en la clase que vas a crear.
Analiza y estudia todos los procedure, que allí está la solución.
Lee los comentarios al inicio de la clase y ve como aplican los parámetros que se encuentran en el procedure Init.
2da. Observación.
Dices que no sabes dónde guardó la imagen?
R.- Fíjate en el primer parámetro de la clase: tcPath, el cual tiene por defecto la ruta: C:\Temp. Puedes cambiar la ruta por defecto en el programa o puedes indicarle el parámetro del camino o path al momento de crear o invocar la clase.
3ra. Observación
¿Cómo armar o hacer el nombre del archivo de la captura?
R- Si el objetivo es tener la identificación de la persona, la fecha y la hora de registro sea de entrada o salida, debemos tener presente lo siguiente:
¿Formato de la hora: Militar o No?
Si no es militar se requiere manejar Antes Meridiem y Post Meridiem basado en doce (12) horas de los contrario son veinticuatro (24) horas.
¿Las Fechas deben indicar el mes en letras o números?
¿Cuál será la diferencia?
R- Las fechas indicadas en números son internacionales y más fáciles de interpretar, solo cambia la posición del día y el mes dependiendo el lenguaje utilizado.
En mi opinión lo haría así, ya que utilizo menos tiempo de máquina y tengo la información necesaria y entendible que puede ser interpretada por la mayoría:
PROCEURE VALID && (TextBoxDNI)
LOCAL lcNombreArchivoCaptura as Character
SET DATE BRITISH
IF SEEK(THIS.Value,”Tab_Personal_Asistencia”,”Indice_DN”)
*---- Determinar nombre del Archivo
lcNombreArchivoCaptura=THHIS.Value+ CHRTRAN(TTOC(DATETIME())," ","")+”.JPG”
*---- Invocar Clase encargada de capturar, mostrar imagen en formulario y guardar en campo de registro de la BD la captura de la asistencia. THISFORM.ClaseCapturaWebCam(“CaminoSistemaFotos”,lcNombreArchivoCaptura,640,480,"Imagen_Del_Form_Para_Miuestra","Nombre_del_Campo_de_la_BD_que_guarda_la_iamgen_y_el_camino")
ENDIF
------------------------------------------------
Bueno en fin, amigo Jesús, te invito a vencer los obstáculos de la programación, como todo en la vida, sólo enfrentalo, solo así vencerás, la mayoría de las veces, nuestros miedos, son nuestros límites.
Yo pienso que si puedes crear la clase para la automatización de la captura y así tendrás todo el control de tu código y programa.
Si te das por vencido, igual estoy a tu orden, yo puedo hacerla, solo que será mi lógica, mi creación abstracta y siempre dependerás de mi o de otro que la entienda para cualquier cambio.
No pensé que aceptará tanta palabras este foro.
Amigo, buenas noches, voy a dormir, Mañana es otro nuevo comienzo, siempre que respiremos y estemos en este plano, ¡Podemos!