Refrescar los datos de un formulario sin cerrarlo
Refrescar los datos de un formulario o consulta sin estar cerrándolo y abriendo el mismo que debo hacer.
1 respuesta
Respuesta de ikz0f7
1
1
ikz0f7, * Programación - C# - Visual Basic
¿Qué tipos de objetos son los que necesitas actualizar, que es lo que necesitas que se actualize y en que momento?
Existe un método para actualizar los valores de algunos objetos, se llama [Refresh]. Aquí un ejemplo de como lo podrías usar:
** Aqui modificas los valores que necesites
...
ThisForm. Refresh()
Existe un método para actualizar los valores de algunos objetos, se llama [Refresh]. Aquí un ejemplo de como lo podrías usar:
** Aqui modificas los valores que necesites
...
ThisForm. Refresh()
Necesito por lo menos yo he hecho un filtro en ese formulario que me muestre los casos asignado y en otro formulario que tiene la opción de abrirlo por el formulario principal le cambio la condición ha ejecutado yo lo que quiero que como ya paso ha ejecutado se quite automáticamente de la pantalla que yo he filtrado porasignado.
Pues creo que depende de el Objeto que estés usando para mostrar los datos, si es un [Lits Box] o un [Grid] o un [Text Box]. Puedes hacer lo siguiente:
Suponiendo que tienes un formulario llamado Form1 en el cual tienes un Cuadro de Lista (List1) y un Cuadro de Texto (Text1), después de que utilizas un filtro, los datos se deben actualizar.
** Aquí pones el filtro...
Form1.List1.ReQuery() && Para el "List Box"
Form1. Refresh() && Para el "Text Box" o un "Grid"
La verdad todavía no entiendo muy bien tu situación pero espero que esto sea lo que necesitas..
Suponiendo que tienes un formulario llamado Form1 en el cual tienes un Cuadro de Lista (List1) y un Cuadro de Texto (Text1), después de que utilizas un filtro, los datos se deben actualizar.
** Aquí pones el filtro...
Form1.List1.ReQuery() && Para el "List Box"
Form1. Refresh() && Para el "Text Box" o un "Grid"
La verdad todavía no entiendo muy bien tu situación pero espero que esto sea lo que necesitas..
No me hace nada yo lo que quiero es refrescar la consulta automáticamente que si en otro computador están cerrando casos en el mio automáticamente sin yo hacer nada la información se vaya refrescando.
Saludos. Necesito convertir un Reporte de Fox que incluye datos de varias tablas y enviarlo a Formato Excel respetando el Diseño o Forma del Reporte.
Oh, pues ahí depende de como estés mostrando la información y también cual sea la fuente. Si estas mostrando los datos directamente de la tabla física, puedes utilizar la instrucción [SET REFRESH] para indicarle a tu programa con que frecuencia quieres que se actualize, ahora que si estas usando un cursor temporal tendrías que hacer una nueva consulta para que la información cambie, ésto último lo podrías hacer con un control [Timer], aunque puede ser que afecte el rendimiento de tu aplicación. Checa el siguiente enlace acerca del comando [SET REFRESH]:
http://msdn.microsoft.com/es-es/library/cc467347(VS.71).aspx
En tu otra pregunta, para pasar un reporte de Fox tal cual a Excel, la verdad yo no se como hacerlo, he leído que si es posible usando un programa externo, algo como "FRXAny", pero no estoy muy enterado. Ahora que si tu quieres pasar los datos de tu tabla a Excel, lo puedes hacer mediante el comando [COPY TO ... TYPE XLS]
SELECT Tabla1
COPY TO Archivo FIELDS Campo1, Campo2 FOR Campo1 > 0 TYPE XLS
http://msdn.microsoft.com/es-es/library/cc467347(VS.71).aspx
En tu otra pregunta, para pasar un reporte de Fox tal cual a Excel, la verdad yo no se como hacerlo, he leído que si es posible usando un programa externo, algo como "FRXAny", pero no estoy muy enterado. Ahora que si tu quieres pasar los datos de tu tabla a Excel, lo puedes hacer mediante el comando [COPY TO ... TYPE XLS]
SELECT Tabla1
COPY TO Archivo FIELDS Campo1, Campo2 FOR Campo1 > 0 TYPE XLS
Gracias pero ninguna de las dos repspuestas me sirvió ahora con respecto al copy to como hago para que ese archivo que se genera de excel se gurde en un acarpeta que yo quiera y se ejecute luego de ser exportado
cRuta = "C:\Programa\Reportes\"
SELECT Tabla1
COPY TO (cRuta + "Rep1") TYPE XLS
oEje = CREATEOBJECT("Shell.Application")
OEje. ShellExecute(cRuta + "Rep1.xls")
RELEASE oEje
SELECT Tabla1
COPY TO (cRuta + "Rep1") TYPE XLS
oEje = CREATEOBJECT("Shell.Application")
OEje. ShellExecute(cRuta + "Rep1.xls")
RELEASE oEje
Lo coloco exectamente igual por lo menos si yo quiero exportar la abla solicitud y el archivo se llame solicitudes y quiero filtrarlo por fecha.
Deme un Ejemplo.
Ah yo he visto en otras personas que el archivo de exel al cual se exporta ya tené un encebezado una imagen es como si el achivo ya estuvise hecho el encabezado y cuándo se exporta la información esta debajpo. Como se hace.
Deme un Ejemplo.
Ah yo he visto en otras personas que el archivo de exel al cual se exporta ya tené un encebezado una imagen es como si el achivo ya estuvise hecho el encabezado y cuándo se exporta la información esta debajpo. Como se hace.
SELECT Solicitud
COPY TO Solicitudes FOR BETWEEN(Fecha, {^2008-08-01}, {^2008-08-31}) TYPE XLS
"En tu otra pregunta, para pasar un reporte de Fox tal cual a Excel, la verdad yo no se como hacerlo, he leído que si es posible usando un programa externo, algo como "FRXAny", pero no estoy muy enterado."
COPY TO Solicitudes FOR BETWEEN(Fecha, {^2008-08-01}, {^2008-08-31}) TYPE XLS
"En tu otra pregunta, para pasar un reporte de Fox tal cual a Excel, la verdad yo no se como hacerlo, he leído que si es posible usando un programa externo, algo como "FRXAny", pero no estoy muy enterado."
Por Favor me podrías ayudar como hago para combinar dos formularios de manera tal que si yo toco en un grid del formulario principal un campo este se me refleje en una caja de texto que esta en el otro formulario.
Te mando un ejemplo de lo que me parece quieres hacer, funciona con Visual FoxPro 9, este es el enlace:
http://rapidshare.com/files/148014993/ActDatos.rar.html
Y si, me puedes mandar el ejemplo de lo que quieres hacer, lo puedes subir a una página y me mandas el enlace.
http://rapidshare.com/files/148014993/ActDatos.rar.html
Y si, me puedes mandar el ejemplo de lo que quieres hacer, lo puedes subir a una página y me mandas el enlace.
Tienes que descargar el archivo "ActDatos.rar", solo coloca el enlace que te mandé en la barra de dirección de tu navegador y dale Click en "Ir" o "Enter". Una vez que estés en la página de "RapidShare" tienes que seguir las instrucciones para poder bajarlo. Ya que lo hayas bajado, necesitarás un programa llamado WinRAR para poder abrirlo, debes descomprimirlo en cualquier carpeta y abrir el formulario "ActDatos1.scx" con Visual FoxPro.
¿O cuál es tu duda?
¿O cuál es tu duda?
Disculpa la molestia mandame el ejemplo a [email protected] es que en la página no pude bajarlo
Ya lo envié. Toma en cuenta que esa es solo una, de muchas formas de hacer lo que tu necesitas, pero espero que te sirva..
El Formulario solo ocupa una tabla, se llama "Customer.dbf" y viene incluida con Visual FoxPro, es una de las tablas de ejemplo, la puedes encontrar en la carpeta "\Samples\Data\" del programa. Si el formulario no la encontró, puedes editarlo para que la abra de otro lado (del directorio donde este esa tabla).
Seguro que es por que es visual 9 y yo tengo visual 6.
Necesito una ayuda yo en mi sistema tengo un modulo de entrada donde el login es el nombre del usuario pero esa entrada no la guardo en ningún lado. Por lo menos yo puedo crear una tabla para que me guarde esa información. Y luego cuando habré el sistema con mi clave me abra utomatico un formulario que me va mostrar las solucitudes que tiene registrada esa persona.
Me explico este es el proceso.
Coloco mi nombre y mi clave luego se habré la pantalla del sistema allí que se habrá el formulario automático que contiene un grid con los casos asignados de esa persona.
Que debo hacer por favor.
Necesito una ayuda yo en mi sistema tengo un modulo de entrada donde el login es el nombre del usuario pero esa entrada no la guardo en ningún lado. Por lo menos yo puedo crear una tabla para que me guarde esa información. Y luego cuando habré el sistema con mi clave me abra utomatico un formulario que me va mostrar las solucitudes que tiene registrada esa persona.
Me explico este es el proceso.
Coloco mi nombre y mi clave luego se habré la pantalla del sistema allí que se habrá el formulario automático que contiene un grid con los casos asignados de esa persona.
Que debo hacer por favor.
Pues no entiendo muy bien tu pregunta, pero te explico.
Supongo que tu vas a crear la tabla de registro de entradas. Si lo que quieres es que esa tabla se muestre con las entradas del usuario que acceda al programa, te digo como lo podrías hacer.
Suponiendo que tu tabla se llama "Entradas" y tiene un campo que se llama "IdUsuario", para mostrarlo vas a usar un formulario (FormEnt) con un [Grid] llamado "Grid1", lo que debes hacer es un filtro para que solo se muestre la información que te interesa, o puedes hacer una consulta, como en este ejemplo.
cUsuario = "Prueba" && Aquí el usuario que vaya a entrar
USE Entradas IN 0
SELECT * FROM Entradas WHERE IdUsuario == cUsuario INTO CURSOR CurEnt
USE IN Entradas
DO FORM FormEnt
** Evento Init del formulario FormEnt
WITH This.Grid1
.RecordSource = "CurEnt"
.ReadOnly = .T.
ENDWITH
** Evento Destroy del formulario FormEnt
IF USED("CurEnt")
USE IN CurEnt
Endif
Supongo que tu vas a crear la tabla de registro de entradas. Si lo que quieres es que esa tabla se muestre con las entradas del usuario que acceda al programa, te digo como lo podrías hacer.
Suponiendo que tu tabla se llama "Entradas" y tiene un campo que se llama "IdUsuario", para mostrarlo vas a usar un formulario (FormEnt) con un [Grid] llamado "Grid1", lo que debes hacer es un filtro para que solo se muestre la información que te interesa, o puedes hacer una consulta, como en este ejemplo.
cUsuario = "Prueba" && Aquí el usuario que vaya a entrar
USE Entradas IN 0
SELECT * FROM Entradas WHERE IdUsuario == cUsuario INTO CURSOR CurEnt
USE IN Entradas
DO FORM FormEnt
** Evento Init del formulario FormEnt
WITH This.Grid1
.RecordSource = "CurEnt"
.ReadOnly = .T.
ENDWITH
** Evento Destroy del formulario FormEnt
IF USED("CurEnt")
USE IN CurEnt
Endif
No.lo que quiero que me filtre es otra tabla llamada solicitud por el encargado. A partit del dato que voy a registrar el tabla de entrada.
Ejemplo entro con el nombre andres que el formulario que se habrá automático muestre las solicitudes que tiene andres en la tabla solicitud.
Ejemplo entro con el nombre andres que el formulario que se habrá automático muestre las solicitudes que tiene andres en la tabla solicitud.
Pues es igual, solo que en vez de la tabla de Entradas vas a mostrar la tabla Solicitudes, la cual supongo que tiene un campo con la clave del usuario.
SELECT * FROM Solicitud WHERE Usuario == "Andres" INTO CURSOR CurSol
o
SELECT Solicitud
SET FILTER TO Usuario == "Andres"
SELECT * FROM Solicitud WHERE Usuario == "Andres" INTO CURSOR CurSol
o
SELECT Solicitud
SET FILTER TO Usuario == "Andres"
Si pero ese andres como tu dices va a ser escrito en otro formulario el de entrada en un campo text1 al que le das aceptar para entrar en la pantalla principal donde te va abrir automático el otro formulario y va buscar ese andrea en la tabla solicitud y va filtrar como hago esa conexión y como abro el formulario automáticamente de antemano gracias
En el evento [Click] del formulario de Inicio de Sesión (Form1) debes poner el código para abrir el formulario de las Solicitudes (Form2).
** Evento Click del formulario Form1
USE Solicitud IN 0
SET FILTER TO Usuario == ThisForm.Text1.Value
DO FORM Form2
ThisForm. Release()
** Evento Click del formulario Form1
USE Solicitud IN 0
SET FILTER TO Usuario == ThisForm.Text1.Value
DO FORM Form2
ThisForm. Release()
Corazón el formulario se abre antes que yo introduzca la clave y sala la pantalla principal inclusive antes que escriba algo en el text uno
Pues entonces sería algo así:
** Evento Click del boton Aceptar del formulario Form1
SELECT Solicitud
SET FILTER TO Usuario == ThisForm.Text1.Value
Form2.Refresh()
** Para quitar el filtro
SET FILTER TO
Si no, trata de explicarme más ampliamente donde es que tienes dificultades, o si puedes sube un ejemplo y mandame el enlace.
** Evento Click del boton Aceptar del formulario Form1
SELECT Solicitud
SET FILTER TO Usuario == ThisForm.Text1.Value
Form2.Refresh()
** Para quitar el filtro
SET FILTER TO
Si no, trata de explicarme más ampliamente donde es que tienes dificultades, o si puedes sube un ejemplo y mandame el enlace.
Corazón ahora si funciona hbre el formulario pero el grid que debería mostrar el filtro con respecto a la información del text 1. se coloca totalmente en blanco y el formulatio no funciona da un error que no hay ninguna tabla abierta en el puesto de trabajo
No pues ahí si necesitaría que me mandes un ejemplo o que me expliques muy detalladamente como es que etas haciendo tu programa..
Ese error debe ser porque, la tabla de "Solicitud" no esta abierta mientras el formulario con el [Grid] están activos.
Ese error debe ser porque, la tabla de "Solicitud" no esta abierta mientras el formulario con el [Grid] están activos.
Bueno como te dije lo primero es colocar en un formulario el nombre y la clave para poder accesar, según tu nivel se abrirá un formulario de nivel superior que contiene todos los accesos a los otros formularios, abriendo así y yo haciéndole clic an el menu para abrir el formulario no tengo problema todo funciona muy bien hace sus filtros en el grid por fecha por área por todo.
Pero de la manera que tu me enseñaste que es la que necesito ahora que uno meta la clave y el login abra el formulario de nivel suparior y automático el otro formulario con el grid eso todo lo hace pero no muestra la información ni sirve el grid para hacer los filtros porque dice que no hay ninguna tabla abierta y que no se encuentra el alias de la tabla
Pero de la manera que tu me enseñaste que es la que necesito ahora que uno meta la clave y el login abra el formulario de nivel suparior y automático el otro formulario con el grid eso todo lo hace pero no muestra la información ni sirve el grid para hacer los filtros porque dice que no hay ninguna tabla abierta y que no se encuentra el alias de la tabla
Si pero necesito saber acerca de la configuración que estas usando, como configuras tu [Grid], de que tabla o cursor sacas la información, en que momento abres las tablas y cuáles abres, ¿qué tablas se supone que necesita el programa al momento en que te manda el error? Detalles como esos, muchos detalles o un ejemplo ..
Hago el grid partiendo de los datos de la vista por asistente.
La vista es producto de dos tablas que tengo en la bases de datos una llamada solicitud y otra data1. Como producto se genera la vista llamada principal.
En el código que me diste colocolo se le principal
La vista es producto de dos tablas que tengo en la bases de datos una llamada solicitud y otra data1. Como producto se genera la vista llamada principal.
En el código que me diste colocolo se le principal
Pues mira, con la poca información que tengo, me parece que el problema esta más o menos así:
Tu abres las tablas en el evento [Init] o [Load] de el formulario principal, de tal forma que cuando quieres hacer cualquier otra operación, ya las tablas están listas y no tienes problemas, como cuando lo haces manualmente. La diferencia ahora es que tu madas abrir el formulario de Solicitudes (Formulario Secundario) antes de abrir el principal y como hasta este punto, las tablas aún no han sido abiertas, el programa te devuelve un error.
Si vas a trabajar así, yo te recomiendo que abras todas las tablas antes de cargar el formulario de Inicio de Sesión para que ya no tengas problemas.
Eso es lo que entiendo..
Tu abres las tablas en el evento [Init] o [Load] de el formulario principal, de tal forma que cuando quieres hacer cualquier otra operación, ya las tablas están listas y no tienes problemas, como cuando lo haces manualmente. La diferencia ahora es que tu madas abrir el formulario de Solicitudes (Formulario Secundario) antes de abrir el principal y como hasta este punto, las tablas aún no han sido abiertas, el programa te devuelve un error.
Si vas a trabajar así, yo te recomiendo que abras todas las tablas antes de cargar el formulario de Inicio de Sesión para que ya no tengas problemas.
Eso es lo que entiendo..
Ok, voy a intentar muchas gracias por tu ayuda, mira como te explico como puedo hacer que al dar clic en un campo de un registro de un grid que esta en un formulario la información de ese registro se mereflrje en los campos que tengo abajo. Te explico este es el grid
num fecha ci usuario estructura falla encargado status observación
1 26/09/2006 18638555 maría sistemas red pedro asignado ninguna
este es el grid. Y tengo unas cajas de texto debajo
text1 text2 text3 tex4 text 5 combo1
que al yo dar clic en el campo del grid donde dice 1, se refleje automático la fecha en el text1, la cedula en el text2, así susecesivamente al igual que el status en el combo. Como lo hago es pasar el registro del grid a la caja de texto con solo dar clic en el num de caso.
num fecha ci usuario estructura falla encargado status observación
1 26/09/2006 18638555 maría sistemas red pedro asignado ninguna
este es el grid. Y tengo unas cajas de texto debajo
text1 text2 text3 tex4 text 5 combo1
que al yo dar clic en el campo del grid donde dice 1, se refleje automático la fecha en el text1, la cedula en el text2, así susecesivamente al igual que el status en el combo. Como lo hago es pasar el registro del grid a la caja de texto con solo dar clic en el num de caso.
Pues mira, dado que estas usando Visual FoxPro 6, es un poco más de trabajo, pero te explico.
Los Controles [Grid] son contenedores de objetos, contienen Columnas y éstas a su vez contienen normalmente Cuadros de Texto (Text Box), tu necesitarías modificar el método [GotFocus] de cada [Text Box] que este en el [Grid], es decir, uno por cada Columna. Para acceder a ellos debes seleccionarlos desde la ventana de Propiedades, en la parte de arriba hay un [Combo] que al darle "Click" se despliega la lista de todos los objetos de tu formulario actual, algo así:
Form1
Grid1
Column1
Header1
Text1
Column2
Header1
Text1
...
...
Una vez que selecciones el que dice "Text1", desde la misma ventana de Propiedades tienes que abrir el método [GotFocus], ahí debes incluir el código que se ejecutará cuando el usuario se mueva entre las celdas del [Grid]. Suponiendo que tu otro formulario se llame "Form2":
Form2.Text1.Value = Fecha
Form2.Text2.Value = Ci
Form2.Text3.Value = Usuario
Form2.Text4.Value = Estructura
Form2.Text5.Value = Falla
Form2.Combo1.Value = Status
Así por cada "Text" que quieras de cada columna del [Grid].
Los Controles [Grid] son contenedores de objetos, contienen Columnas y éstas a su vez contienen normalmente Cuadros de Texto (Text Box), tu necesitarías modificar el método [GotFocus] de cada [Text Box] que este en el [Grid], es decir, uno por cada Columna. Para acceder a ellos debes seleccionarlos desde la ventana de Propiedades, en la parte de arriba hay un [Combo] que al darle "Click" se despliega la lista de todos los objetos de tu formulario actual, algo así:
Form1
Grid1
Column1
Header1
Text1
Column2
Header1
Text1
...
...
Una vez que selecciones el que dice "Text1", desde la misma ventana de Propiedades tienes que abrir el método [GotFocus], ahí debes incluir el código que se ejecutará cuando el usuario se mueva entre las celdas del [Grid]. Suponiendo que tu otro formulario se llame "Form2":
Form2.Text1.Value = Fecha
Form2.Text2.Value = Ci
Form2.Text3.Value = Usuario
Form2.Text4.Value = Estructura
Form2.Text5.Value = Falla
Form2.Combo1.Value = Status
Así por cada "Text" que quieras de cada columna del [Grid].
laa caja de texto a la que quiero pasar la información del grid están en al mismo formulario todo tanto el grid como las cajas de texto están en al form1 entonces si hago todo esto debería al dar clic en el num automático se me va reflejar en las cajas de texto.
Lo coloque como me dijiste y funciono lo único que me esos cambios donde esta parado el sistema en ese momoneto y meduplica los registros que hago
- Compartir respuesta
- Anónimo
ahora mismo