Page 1 of 1

A ver si paro de dar vueltas

Posted: Tue Apr 28, 2015 10:09 am
by JavierCantarero
Buenas, ahora mismo tengo una duda que es más de principiantes, pero acostumbrado a hacerlo en clipper de una manera, no encuentro el sitio exacto donde realizarlo, me refiero a dónde abrir las bases de datos, utilizo DBF's, y no tengo nada claro donde se abre con harbour-xailer.

Yo, generalmente, abro y cierro en cada opción del programa.

Si estoy en mantenimiento de facturas y llamo al módulo de mantenimiento de artículos, en el segundo controlo si está abierto el dbf para no volver a abrirlo, pero me da errores de que el área de trabajo no está en uso. Si hago en mantenimiento de facturas:

WITH OJBECT MainArt()
:oDbfArt := ::oDbfArt

esto no funciona.

Por favor, ¿cómo lo haceis?

¿Acaso abren ustedes todas las tablas en el módulo principal?
¿Abren ustedes dos veces la tabla, una en mantenimiento de facturas y cuando llamáis a mantenimiento de artículos dejáis que también lo abra?
O desde mantenimiento de facturas sólo hacéis consultas de la tabla de artículos, pero ¿no dejáis dar de alta artículos desde mantenimiento de facturas?

Bueno, a ver si un alma caritativa me ayuda con este tema, creo que es lo que me falta para decidirme por xailer.

Muchas gracias
Saludos
Javi Cantero

Re: A ver si paro de dar vueltas

Posted: Tue Apr 28, 2015 10:30 am
by pacoelche
Javier, supongo que eso te pasa porque no cierras la tabla cuando sales del módulo.

Paco Martínez

Re: A ver si paro de dar vueltas

Posted: Tue Apr 28, 2015 12:08 pm
by JavierCantarero
Hola Paco, si cierro. Mi consulta es donde abren ustedes.

Cuando llamais a un modulo que abre y ya esta abierto, dejais que abra de nuevo o controlais de alguna manera que no abra. Y si es asi, que haceis con los datacontrol, cambiais en ejecución los nombres de los dataset?

Muchas gracias
Saludos
Jabi cantero

Re: A ver si paro de dar vueltas

Posted: Wed Apr 29, 2015 1:30 pm
by JavierCantarero
no es tan dificil, o ¿ es secreto de estado ?

¿en qué parte del modulo abren ustedes los ficheros de datos?, ¿o es en el módulo principal?

Muchas gracias a todos por vuestra paciencia conmigo.
Saludos cordiales
Javier Cantero

Re: A ver si paro de dar vueltas

Posted: Wed Apr 29, 2015 3:10 pm
by jrcpoli
Saludos:
Vero que sigues repitiendo la pregunta, pero es que la respuesta puede ser múltiple, dependiendo del tipo de formularios que emplees en tu aplicación.
Yo uso dos DataSet para toda la aplicación que apuntan a las dos carpetas que contienen los ficheros y luego los empleo en todos los formularios en los que tengo que abrir una base de datos usando el evento OnCreate del DataSet así:
METHOD DbfPlanCreate( oSender ) CLASS TFormPlanConcursos

** Abrir la base de datos de Plan de concursos
WITH OBJECT oSender
:oDataSource := Application:oMainForm:oCdxDSReloj
:lOpen := .F. // Cerramos la Tabla
:lShared := .F. // La ponemos en modo exlusivo
:lOpen := .T. // Abrimos la Tabla
:Pack( .T. ) // La Empaquetamos
:Reindex( .T.) // Reorganizamos indices
:lOpen := .F. // Cerramos la tabla
:lShared := .T. // La ponemos en modo compartido
IF :lOpen:= .T. // Abrimos la Tabla
:OrdSetFocus("NUMERO")
ENDIF
*
END

RETURN Nil

Y en otras aplicaciones abro todas los DataSet en el Formulario del Menú cuando empleo formularios que pueden estar abiertos sin ser nodales, esto es que no se pueda abrir uno sino esta cerrado el anterior.

También compruebo el estado de todas las bases de datos desde un formulario que se ejecuta y se cierra cuando termina, que se llama desde el fichero que llama al programa y después de estar en pantalla en formulario principal de esta forma:
* Comprobar bases de datos y sus indices
oComprobar := TFormCompdbf():New( Application )
oComprobar:ShowModal()

o me da tiempo a ser mas exacto.

Re: A ver si paro de dar vueltas

Posted: Wed Apr 29, 2015 10:41 pm
by JavierCantarero
Hola Jose Ramón, muchísimas gracias por tu tiempo y por tus explicaciones.

Saludos cordiales
Javier Cantero