Apoyo en aplicación

Buenos dias Nestor:
Hare las correcciones que me sugieres, y las probare, espero terminar de solucionar este problema que me ha dado dolores de cabeza a como no tienes una idea, pero ayer, que lo tenia asi, si me funciono, pero sera mejor que te explique toda la historia para que la entiendas un poco mejor:
Existe un programa comercial que solo es el puro programa ejecutable (no existen los fuentes) que esta hecho en Visual foxpro (desconozco la version) y que maneja tablas independientes (puras dbf) y con el cual realizan el proceso de facturación, la aplicación que hice toma la información de dichas tablas y genera un archivo texto para enviar la información vía remota.
Ese programa ya lo hice y salieron diferentes peticiones a raíz de eso:
1.- Que se creara un trigger para que automáticamente ejecutara la aplicación al momento de que se agregara una nueva factura por el sistema.
R= Intente hacer el trigger y me obligo para ello a que generara una DBC con las tablas que van a participar en el proceso, así lo hice, pero no sabia como enlazarla hasta que tu amablemente me explicaste como.
El resultado me lo da, y me funciona bajo el ambiente de VFP9, pero al llevarlo a la maquina donde esta la aplicación (es una maquina de prueba) hice lo siguiente:
a.- Tuve que entrar a VFP9 y crear la DBC para poder creearle el trigger y pasarle el código del procedimiento que tu me comentas.
b.- cerre VFP9 y abri la aplicacion, y no tuve problemas, pude dar de alta una factura, y ahi es donde se presenta el problema en si, la factura la realiza y si almacena la informacion, solo que no me genera el archivo texto (lo que significa que no tomo en cuenta la aplicacion, aunque me quedo con ciertas dudas, porque despues de que supuestamente manda imprimir la "factura" empieza a mandar una serie de errores, pero no cierra la aplicacion, se mantiene adentro y cuando reviso la informacion me doy cuenta que si almaceno la factura, pero no me genero ningun archivo texto).
2.- Hice una segunda solución a esta situación: Cree un formulario, al cual le puse un temporalizador (timer) y que cada 5 segundos (por así decir algo) fuera a revisar a la tabla de encabezados de facturas si existe una factura nueva y si así lo es, que ejecute la aplicación y genere el archivo texto.
Esto si lo hace en ambiente VFP9, mi idea era hacerlo ejecutable, y dejarlo como servicio, hice un proyecto, le agregue el formulario, lo definí como aplicación principal, genere el ejecutable, lo probé pero pasa varios detallitos:
a.- Corre la aplicación super rapido, que no se, si realizo o no la tarea. (Porque se cierra, sola y eso que no tengo ningún quit, this.release, o return, así que supongo que se debería de quedar abierta la aplicación).
b.- Debe de activarse la aplicación al momento en el que el usuario entre a su sistema de facturación, para que trabajen a la par.
Si pudieras aconsejarme con esto te lo agradecería un chorro, ya que tengo que entregar este trabajo a más tardar el lunes (con todo y pruebas).
De antemano muchas gracias.
Carlos Muñoz
Monterrey, Nuevo León, Mexico.
Respuesta
1
Bueno si todavía tienes problemas, creo que ya solucionamos ese problema de lo contrario comenta nuevamente
Hola hermano como estas:
Espero que bien, cambie el giro de la aplicación, ya que no pude hacer que funcionara la aplicación con el trigger, ya que no cuento con el programa fuente de la aplicación por ser comercial, ahora lo que hice es que tomo la información de las facturas que hagan en un determinado tiempo y las mando una por una, la desventaja que tengo es que:
Lo manejo por medio de un grid y no se como hacesar a los datos, así como no se la manera de como recorrer el grid para tomar la información de ahí.
Ademas de que nunca me imagine que tuvieran tanta información almacenada, ademas de que la capturan las facturas en varias maquinas al mismo tiempo, con riesgo de estas batallando con la duplicidad en los folios, demás de que mi programa ejecutable, al momento de ejecutarlo, se abre y se cierra, y no me deja ver nada al respecto ni hacer nada, lo raro es que si funciona cuando lo tengo dentro del vfp9 eso si que esta raro, si en lago me puede ayudar te lo agradecería mucho.
Cuidate y espero tu respuesta, lo más pronto posible.
Bueno para recorrer el grid, lo que tienes que hacer es un scan
select nombre_de_cursor
scan
    campo1 = nombre_de_cursor.campo1
    campo2 = nombre_de_cursor.campo2
Endscan
Ahí recorriste todo el cursor o tabla y campo1 y campo2 son variables que tienen los valores todos los valores del campo1 y del campo 2
Hola:
Me sorprende que me digas que con un scan (que igual pudo haber sido un do while) para recorrer la tabla, pero la pregunta es como recorrer el GRID ose la cuadriculada que contiene la información de las facturas (los únicos datos que maneja son Num de Factura, Fecha e Importe) pero no se como recorrerala para poder leerla, ¿no tendrás un ejemplo de su uso?
Ademas de lo que te comentaba con el problema del ejecutable, al momento de ejecutarlo, se abre y se cierra, y no me deja ver nada al respecto ni hacer nada, lo raro es que si funciona cuando lo tengo dentro del vfp9
Gracias y que tengas un excelente día.
Buenos días:
Ya vi cual es el problema que te platicaba con la aplicación, pero no se como arreglarlo, y es por el grid, lo único que necesito es que me despliegue los datos de la tabla de conse2 campos (num_fac, fecha e importe) y resulta que me esta marcando una serie de errores, en el grid (al cual no lo tengo veinculado en el objeto, pero si por medio de código:
&& propiedades del grid
thisform.gridEnvia.allowheadersizing = .f.
thisform.gridEnvia.allowrowsizing = .f.
thisform.gridEnvia.columncount = 3 && cantidad de columnas
thisform.gridEnvia.deletemark = .f.
thisform.gridEnvia.fontname = "ms sans serif"
thisform.gridEnvia.headerheight = 22
thisform.gridEnvia.recordmark = .t.
thisform.gridEnvia.scrollbars = 2
**thisform.gridEnvia.recordsourcetype = 1 && tipo de datos para llenar el grid
**thisform.gridEnvia.recordsource = "conse2" && nombre de la tabla a abrir en el grid
&& propiedades de la primer columna
thisform.gridEnvia.column1.width = 70
thisform.gridEnvia.column1.movable = .f.
thisform.gridEnvia.column1.readonly = .t.
thisform.gridEnvia.column1.resizable = .f.
thisform.gridEnvia.column1.header1.alignment = 2
thisform.gridEnvia.column1.header1.backcolor = rgb(192,192,192)
thisform.gridEnvia.column1.header1.caption = "No.Factura"
thisform.gridEnvia.column1.header1.fontbold = .t.
thisform.gridEnvia.column1.text1.readonly = .t.
thisform.gridEnvia.column1.text1.enabled = .f.
thisform.gridEnvia.column1.text1.alignment = 2
&& propiedades de la segunda columna
thisform.gridEnvia.column2.width = 70
thisform.gridEnvia.column2.movable = .f.
thisform.gridEnvia.column2.readonly = .t.
thisform.gridEnvia.column2.resizable = .f.
*thisform.gridEnvia.column2.alignment = 2
thisform.gridEnvia.column2.header1.alignment = 2
thisform.gridEnvia.column2.header1.backcolor = rgb(192,192,192)
thisform.gridEnvia.column2.header1.caption = "Fecha"
thisform.gridEnvia.column2.header1.fontbold = .t.
thisform.gridEnvia.column2.text1.readonly = .t.
thisform.gridEnvia.column2.text1.enabled = .f.
thisform.gridEnvia.column2.text1.alignment = 2
&& propiedades de la tercer columna
thisform.gridEnvia.column3.width = 70
thisform.gridEnvia.column3.movable = .f.
thisform.gridEnvia.column3.readonly = .t.
thisform.gridEnvia.column3.resizable = .f.
*thisform.gridEnvia.column3.alignment = 2
thisform.gridEnvia.column3.header1.alignment = 2
thisform.gridEnvia.column3.header1.backcolor = rgb(192,192,192)
thisform.gridEnvia.column3.header1.caption = "Importe"
thisform.gridEnvia.column3.header1.fontbold = .t.
thisform.gridEnvia.column3.text1.readonly = .t.
thisform.gridEnvia.column3.text1.enabled = .f.
thisform.gridEnvia.column3.text1.alignment = 2
&& refresco el grid y le doy el foco
*thisform.gridEnvia.refresh
*thisform.gridEnvia.setfocus
thisform.txtcan.Value =""
MESSAGEBOX("Estoy Aqui")
*thisform.gridEnvia.recordsource = null
Este código se encuentra en el formulario FrmEnvia en el evento Activate, (es la ultima parte del código de ese evento.
Una vez terminado de ejecutarse se cierra la aplicación. ¿POR QUÉ?
Ademas de que me saca de onda, porque si observas, las únicas lineas que hacen referencia a una tabla, están como comentario, y aun así, me muestra el contenido de una tabla, así que no se sinceramente que es lo que esta pasando, ya me tiene loco esta aplicación y es por el hecho de que no se como realmente se debe de manejar el GRID, para mi solución seria un BROWSE pero se vería bien super chafa.
Por favor ayudame, plis que ya lo tengo que entregar.
PD. Como le quito el fondo de VISUAL FOXPRO a la aplicación, ¿para qué solo se vea el formulario?.
De antemano muchas gracias.
Mmm bueno eso es por que te falta un read events
en el final de la aplicación, es decir en el init de tu formulario,
y bueno la verdad es que deberías de hacer un tu prg, que se llame como quieras, y ahí debes de poner
_screen.visible = .F.
do form formulario_principal
read events
Eso seria todo, y recuerda que el formulario formulario_principal, debe de ser en showwindows = 2
Saludos, espero que te sirva, y recuerda que el prg debe de ser el main, para esto le das click derecho sobre el prg y lo pones como set main
y lo compilas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas