Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2014
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
Ordenar registros de una tabla con mastersource

Buenas señor@s y gracias de antemano.
Delphi 5, paradox 7

tengo una tabla facturas y otra lineas de facturas, para visualizar los registros correspondientes a cada factura de lineas de facturas tengo puesto en lineas de factura como mastersource el datasource de la tabla facturas con el campo NFactura (asi consigo que cuando voy pasando de factura me muestra las lineas de factura que la corresponden).

mi problema:
Necesito poder ordenar el dbgrid (Tabla) por otros campos de lineas de facturas por ejemplo por Cantidad, utilizo indexfieldnames o indexfield y no da error pero claro pierdo el mastersource que me hace corresponder cada linea de factura con la factura que le corresponde.

alguna solución por favor.
Responder Con Cita
  #2  
Antiguo 23-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DavidSG4.

Si es sólo a fin de visualizar, la propuesta que te hago es que en lugar de un TTable, utilices un TQuery para mostrar los datos de la tabla detail.

Ejemplo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with Query1 do
  begin
    DataSource := DataSource1;  // DataSource del TTable (asignable desde el Object Inspector)
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM TBDETALLE TD');
    SQL.Add('WHERE TD.REF_FACTURA  = :NFACTURA');
    SQL.Add('ORDER BY TD.CAMPO1, TD.CAMPO2,...');
    Open;
  end;
end;
A continuación de la cláusula SELECT, podes decidir que campos se mostraran poniendo sus nombres separados por una coma. Al usar un asterisco como en el ejemplo, se muestran todos los campos de la tabla detalle.

El código:
Código SQL [-]
TD.REF_FACTURA  = :NFACTURA
Establece la relación mediante los nombres de los campos involucrados (master/detail). Para que funcione deberás cambiarlos por los nombres reales que dichos campos tienen en sus respectivas tablas.

Luego de la cláusula ORDER BY podes enumerar los campos por los que se establecerá el órden (separados por comas) de la tabla detalle.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 23-01-2014
DavidSG4 DavidSG4 is offline
Miembro
 
Registrado: oct 2007
Posts: 92
Poder: 17
DavidSG4 Va por buen camino
respuesta solucion

buenas y gracias por vuestras respuestas.

lo he conseguido solucionar de la siguiente manera. He definido un indice secundario con el campo que vinculo y el campo con el que quiero ordenar.
"NFactura;campo de la columna" y mediante el dbgrid.column.fieldname veo que campos tengo que definir en la tabla como indexfieldsname.

Gracias de todos modos

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ordenar registros en dbgrid edgar_prospero Varios 3 14-08-2013 02:02:36
Ordenar registros en una Tabla por la fecha que contiene un Registro feliz-58 Varios 4 15-06-2013 02:03:44
Ordenar Lista de Registros Carmelo Cash OOP 9 10-05-2013 23:34:23
Ordenar registros con ClientDataSet Jose Roman Conexión con bases de datos 2 15-01-2010 23:11:27
ordenar registros davidgaldo SQL 2 20-04-2005 16:47:23


La franja horaria es GMT +2. Ahora son las 17:40: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
Copyright 1996-2007 Club Delphi