Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Tabla de búsqueda (https://www.clubdelphi.com/foros/showthread.php?t=7664)

silviodp 23-02-2004 16:24:59

Tabla de búsqueda
 
Si yo tengo 2 tablas Paradox7, y defino mediante el Diseñador de Modulo de Datos en la solapa de Diagrama de datos un campo de búsqueda, entre las dos tablas, tal que para completar un campo de una busque en la otra los datos, siempre se debe usar (luego en mi programa) un DBLookUpComboBox para ver los datos de la tabla de búsqueda?, por que yo quiero poner un Speed Button tal que en el evento Onclick del mismo habra la tabla de búsqueda en un DBGrid y al hacer doble click sobre un registro de ésta me complete los datos en el campo de la otra.
Si alguien me puede dar una idea de como puedo hacerlo.
Son las típicas tablas de búsqueda que tiene cualquier aplicación.
Gracias.

marcoszorrilla 23-02-2004 23:05:22

Creo que lo que quieres, si interpreto bien tu mensaje quedaría mejor de la siguiente manera.

En la rejilla pulsas botón derecho y abres el editor de columnas añades los campos necesarios y sobre el que quieras que te abra el segundo formulario pones en su propiedad ButtonStyle : cbsEllipsis
Esto hará que al entrar en esta columna en modo edición aparezca un botón con tres puntos que al pulsarlo mediante el evento "ut infra" referenciado te abrirá el segundo formulario:
Código:

procedure TfrCompras.GrLineasEditButtonClick(Sender: TObject);
begin
Application.CreateForm(TfrDlgProducto, frDlgProducto);
frDlgProducto.ShowModal;
end;

Lo abrimos en forma modal y en el evento DobleClic de la rejilla que tendremos en este segundo formulario por ejemplo con los precios de los productos actualizaremos el DataSet del primero:

por ejemplo:

FacturaProducto.Value:=ProductoNombre.Value;
FacturaPrecio.Value:=ProductoPrecio.Value;
....

Un Saludo.

silviodp 24-02-2004 00:25:29

Tabla de búsqueda
 
Sí eso es más o menos lo quiero hacer, pero no quiero levantar la otra tabla desde el DBGrid de la primera, sino que de un botón que esté al lado de un DBEdit y que al hacer doble click sobre el DBGrid que se abre me guarde la información en el DBEdit y por lo tanto lo hará en el campo que está relacionado con éste.
Me explico?, espero me entiendan.
Gracias.

jachguate 24-02-2004 03:01:45

Pues la solución es exactamente la misma... solo cambian los eventos en los que se dispara el otro formulario... no?

silviodp 24-02-2004 04:06:37

Tabla de búsqueda
 
Es lo mismo?, pero si yo tengo la tabla de búsqueda: Producto con los campos CODIGO DESCRIPCION y quiero que se vea (cuando hago doble click en el DBGrid de la tabla de búsqueda) por ej. la Descripción del producto en el DBEdit pero quiero que guarde en la tabla el Código del mismo, como tengo que hacerlo de la forma que yo quiero??
Gracias.

jachguate 24-02-2004 06:07:07

Es que el valor lo almacenas en el Campo del dataset asociado al DBEdit, DBGrid, DBText o lo que querras... de manera que este (gracias a la VCL) se actualiza automáticamente (o mágicamente, como querras verlo).

Cita:

Empezado por MarcosZorrilla
FacturaProducto.Value:=ProductoNombre.Value;
FacturaPrecio.Value:=ProductoPrecio.Value;
....

Hasta luego.

;)

silviodp 24-02-2004 13:00:09

Tabla de Búsqueda
 
Entonces en definitiva no tengo que usar el el Diagrama de datos para relacionar las tablas??, pero el ejemplo que Ud. me dan en realidad no almacena el código en la tabla sino el nombre, como escribí antes quiero relacionar las tablas de tal forma que me guarde el Código en el campo de la tabla pero que me deje ver en el componente el Nombre o Descripción.
Esto yo sé que se puede hacer con un DBLookUpComboBox pero si la tabla de búsqueda es muy grande sería muy lento encontrar lo que estoy buscando por lo tanto lo que quiero es abrir la tabla de búsqueda con un DBGrid, hacer doble click...,etc. (lo que ya expliqué antes).
No sé si me entienden...
Saludos, gracias.

__cadetill 24-02-2004 13:09:46

Si quieres, precisamente para este menester en mi web tienes el TDBSearchDialog que te encapsula todo el tema y puedes usar BDE, IBX, DBX o ADO. Con código fuente, of course. Hechale una ojeada por si puede interesarte (eso sí, utiliza las RX)

Espero dentro de poco suber la versión 2 de dicho componente, a ver si voy bien de tiempo y la termino :o

silviodp 24-02-2004 19:48:42

Tabla de Búsqueda
 
Cadetill:
en Delphi 5 anda ese componente?, las RX son gratiutas y de donde las bajo?
O sea que otra forma de hacer lo que quiero no hay más que instalando este componente. La verdad es que mucho no me gusta hacerlo ya que he instalado otros pero me los instala mal y he tenido problemas con Delphi.
En realidad no se bien como se instalan los componentes.
Gracias.

jachguate 24-02-2004 21:13:28

Claro que hay otras formas... pero de esta te ahorrarás el trabajo de hacerlo todo vos solito... ya que aprovecharás lo hecho (y bien hecho) por el amigo cadetill, que gentilmente (y gratuitamente) está compartiendo su código con vos.

Las rx son gratuitas. La url de donde las podes descargar es http://sourceforge.net/projects/rxlib.

Hasta luego.

;)

jrcosta75 24-02-2004 22:01:42

Tabla de busqueda
 
Jachguate:
En la pagina que me pasate estan las RX pero para Delphi 6 yo estoy usando el 5, sirve tambien o esta en otra pagina, o donde?
Se instalan igual que cualquier componente las RX?

__cadetill 25-02-2004 01:13:36

En mi web encontrarás las Rx desde la versión 3 hasta la 7 de Delphi ;)

silviodp 25-02-2004 16:08:52

Tabla de Búsqueda
 
Cadetill: en que parte de tu pagina ya que lo que encuentro es el RXDBGrid, nada más.
Perdón y gracias.

Nuria 25-02-2004 16:19:22

En el Menú ----> Delphi ----> Componentes ----> Comp. Utilizados.

Yo también me las baje de su página ;) . Gracias Cadetill!

__cadetill 25-02-2004 16:32:45

Cita:

Empezado por Nuria
Gracias Cadetill!

Gracias a todos vosotros por las visitas ;)

silviodp 25-02-2004 20:18:59

Tabla de busqueda
 
Cadetill:
baje la lib. RX de tu pagina, pero no pude instalarla, no se si tengo que utilizar New Component o New Package, o como, la verdad es que no sé como se hace.
Disculpas y gracias.

__cadetill 25-02-2004 20:31:58

Veamos, has de abrir los 6 *.dpk para delphi 5 (los que son xxxxx5.dpk). Los compilas todos. Esto te generará unos archivos *.bpl, copialos al directorio windows/system32 (winnt/system32 según SO). Luego has de darle al botón de instalar.

Y eso es todo ;)

silviodp 26-02-2004 02:24:56

Tabla de búsqueda
 
Donde los genera a los archivos *.bpl, uso win98 también los copio en C:\Windows\System32.

__cadetill 26-02-2004 09:55:08

Si no has tocado nada de las opciones de los dpk, en principio en el mismo directorio donde tienes los dpk

En Win98 creo que el directorio tendría que ser el System (pero no lo aseguro)

silviodp 26-02-2004 14:29:33

Tabla de busqueda
 
Cadetill:
lo que hice fué: Abri Delphi, de ahí abri las *.dpk, luego click en Compilar, me generó los *.bpl, en un directorio de delphi, C:\Archivos de programa\Borland\..., de ahí las copié en el directorio Windows\System32, y click en botón instalar, y que ocurrió...nada se me colgó la PC.
Como hay que hacerlo entonces?
Perdón y gracias como siempre.


La franja horaria es GMT +2. Ahora son las 04:27:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi