Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Entonces mi idea del principio + la aportación de incluir un campo texto con las partes (aportacion coso) es correcta no??

a que te refieres cuando dices...
Cita:
Empezado por Roman
aunque podrías hacerles un prototipo mostrándoles un maestro-detalle en forma, quien quita y los convences.
Os dejo un link a una imagen del diseño fijaros en las tablas Contratos, PartesContrato y empresas ahi es donde esta el problema
Bueno realmente me pasa lo mismo con escrituras y apoderados, con lo cual tanto en contratos como en escrituras he añadido un campo, que será memo, para las partes y los apoderados.


Última edición por tcp_ip_es fecha: 18-09-2008 a las 16:45:50.
Responder Con Cita
  #2  
Antiguo 18-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por tcp_ip_es Ver Mensaje
a que te refieres cuando dices...
Pues a poner un segundo dbgrid que muestre las distintas partes conforme nos movemos por el dbgrid de los contratos.

Cita:
Empezado por tcp_ip_es Ver Mensaje
Os dejo un link a una imagen del diseño fijaros en las tablas Contratos, PartesContrato y empresas ahi es donde esta el problema
Has puesto el enlace a la vista en miniatura. Comprenderás que de ahí no es posible hacerse ninguna idea

// Saludos
Responder Con Cita
  #3  
Antiguo 18-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Hola

Cita:
Quien quita = Puede ser, Tal vez, a lo mejor


Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 18-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah vaya! Ni siquiera me había fijado en la pregunta exacta de Tony . Gracias por la aclaración Eliseo, quien quita y se acostumbran a nuestras expresiones .

// Saludos
Responder Con Cita
  #5  
Antiguo 18-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
¡Ah vaya! Ni siquiera me había fijado en la pregunta exacta de Tony . Gracias por la aclaración Eliseo, quien quita y se acostumbran a nuestras expresiones .

// Saludos
Chance y si

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 19-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Edite la url del link, espero que ahora se vea correctamente.

Efectivamente quien quita que no entendiese la frase hecha "quien quita" . Aqui vamos entendiendo ya toda vuestra jerga, somos minoría

Lo que dices sobre el maestro detalle con los dos dbgrid ya estaba en mi cabeza, si lo que pasa es a la hora de los informes, pero bueno como bien dices...

Cita:
Empezado por Roman
Yo comenzaría preguntándole al cliente qué espera ver en todos los recuadros en blanco que quedarán. Porque donde un contrato esté asociado a diez empresas y los restantes sólo a dos o tres, va a haber muchos huecos sin sentido.
Responder Con Cita
  #7  
Antiguo 19-09-2008
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Ahí va una idea:

Antes de presentar el dbgrid o el informe podrias calcular el máximo número de partes que vas a obtener.

Una vez obtenido el número de columnas que vas a necesitar solo tendrías que montar una query añadiendo las columnas necesarias.

Por ejemplo, esto funcionaria en sqlserver. En mysql creo que es parecido,

Código SQL [-]
SELECT COUNT(ID_PARTES) FROM PARTES_CONTRATO WHERE ID_CONTRATO IN("LISTA DE CONTRATOS")

Código SQL [-]
select id_contrato, 
case when id_parte=1 then ID_EMPRESA else "" end,
case when id_parte=2 then ID_EMPRESA else "" end,
.....
case when id_parte=numeropartes then ID_EMPRESA else "" end,
FechaFirma, FechaEntradaVigor, Objeto, IdTipoContrato
from contratos a 
inner join PartesContrato b on
a.id_contrato=b.id_contrato
where a.id_contrato in(..lista de contratos..)

Esto lo puedes ir formando en un query y así obtener de forma dinamica las columnas que necesites. De esta forma el contrato con el máximo numero de partes tendría todas las columnas rellenas y los restantes columnas en blanco donde no existiese el id_parte.

Todo esto se puede hacer siempre y cuando el ID_PARTE sea secuencial.

Espero haberte ayudado en algo.
__________________
_____________________________________
And follow me to where the real fun is

Última edición por Nelet fecha: 19-09-2008 a las 11:54:04.
Responder Con Cita
  #8  
Antiguo 22-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Muchas gracias Nelet, es buena idea pero compleja para implementar, veo más conveniente crear un memo con las partes implicadas en el contrato como dijo coso, es más práctivo a la hora de mostrar un dbgrid o exportarlo a un excel... pero repito muchas gracias por la solución....
Responder Con Cita
  #9  
Antiguo 23-09-2008
hach hach is offline
Miembro
 
Registrado: mar 2007
Ubicación: Bariloche, Argentina
Posts: 44
Poder: 0
hach Va por buen camino
Me parece que las tablas como las planteas al comienzo estan correctas, eso te permite agregar mas partes e independizar tu codigo de la cantidad de partes que sean..
En cuanto al campo memo no me parece una buena solución ya que tendrás que ocuparte de mantenerlo actualizado, y tendrás datos redundantes. La idea de coso me parece buena: ver todas las partes en una columna (string separado por algun delimitador)
No es necesario que agregues un campo memo que luegos vas a tener que actualizar y mantener....
Simplemente puedes hacer un store procedure que te retorne todos los row de los contartos, y en una columna extra el string con las partes (y como dice coso, en otro string puedes retornar las id de las partes tambien con delimitadores, por si las necesitas)
Desde un store procedure es muy facil realizar esto.
Por cada contrato buscas todas sus partes y armas el string, y retornas los datos cada vez que cambia el contrato

El SP lo puedes utilizar tanto para llenar una grilla como para los listados

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
¿Mision imposible? Alvarobc Conexión con bases de datos 8 26-04-2007 05:40:34
Es imposible un lector de DVD???? gandalf_27 Varios 2 15-06-2006 16:07:40
Es Esto imposible? jam888 Varios 1 28-04-2005 01:02:35
imposible con interbase jomaho Firebird e Interbase 1 10-05-2003 11:44:14


La franja horaria es GMT +2. Ahora son las 01:14:45.


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