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 21-12-2005
Anabel Anabel is offline
Miembro
 
Registrado: may 2003
Ubicación: D.F. México
Posts: 63
Poder: 22
Anabel Va por buen camino
Gracias OSKR!!

Cuando habló de partidas, me refiero, en una Factura se tiene la Cabeza, los datos principales (No. Factura, Cliente, Descripción, dirección, etc.), las partidas son el cuerpo de la factura (Cant, Producto, PU, Importe x Partida, etc), mi duda es:

¿Que componente me recomiendan para la captura de los datos que van en el cuerpo de la factura?

Sobre lo que me comentas me parece bien, pero pienso que para el usuario
es engorroso tener que abrir una ventana de captura para cada partida de la factura, por ello yo pensaba en capturar directamente en el DBGrid, pero si no es recomendable, que me sugieren??

Míl Gracias
__________________
Ana
Responder Con Cita
  #2  
Antiguo 22-12-2005
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
yo suponete lo que hago es que la persona le da doble click al elemento de la grilla que quiere modificar y cargo todo en una pequeña ventana para su modificación o para una mejor visualizacion. Es por eso que no tuve tantos problemas con los dbgrid pero yo uso mas los wwDBGrid que son unos componentes que me dieron y estan buenos. Si los queres avisame que te los envio o me fijo donde estas

Saludos
Responder Con Cita
  #3  
Antiguo 22-12-2005
Anabel Anabel is offline
Miembro
 
Registrado: may 2003
Ubicación: D.F. México
Posts: 63
Poder: 22
Anabel Va por buen camino
Patricio,

Muchas gracias, enviame los componentes a sonrie_a@yahoo.com y veo si me sirven.

Nuevamente Gracias
__________________
Ana
Responder Con Cita
  #4  
Antiguo 23-12-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
No hay ningun problema en usar el DBGrid, el DBGrid es un contenedor de datos virtual, significa q los datos no los contiene el sino otro contenedor, en este caso el Dataset, el problema entonces es con la manera de usar el Dataset, yo uso el JvDBGrid y nunca hay problema..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #5  
Antiguo 29-12-2005
Anabel Anabel is offline
Miembro
 
Registrado: may 2003
Ubicación: D.F. México
Posts: 63
Poder: 22
Anabel Va por buen camino
Delfino,

Hola! Tienes toda la razón cuando me dices que no hay problema si se configura bien el DataSet, pero me surgio un detalle al final al momento de insertar datos en el DBGrid:

Al Insertar un renglón en el DBGrid y pasar al siguiente renglón (ya sea con la tecla TAB o con la barra el botón Inserta de la barra TDBNavegator) el DBGrid se presenta en blanco, es decir, no visulizo los renglones que voy capturando. No sé si tenga que ver que La tabla a la que está conectada el DBGrid tiene la Opción "CacheUpdate = True". Y al hacer el Database.ApplyUpdates, se graban todos los renglones que capture.
Tu me pdrías dar alguna piesta de que podría estar pasando.

Gracias.
__________________
Ana
Responder Con Cita
  #6  
Antiguo 30-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Quizás se podría hacer de otra forma la creación de una factura, ahí van varias ideas:

- Crear un asistente de facturación, pide las fechas, y muestra todos los clientes que tienen algún albaran, y propone una factura con todos los albaranes de cada cliente. Se dá la posibilidad de eliminar un albaran de la factura, añadir, etc.

- Lo más fácil, pones en la ventana de la factura dos botones para añadir / eliminar albaranes, al pulsarlo pide el nº de albaran ( un combobox en el que se añade los ids de albaranes), y al aceptar esa ventana, el programa se encarga de buscar el albaran y meterlo en la factura.

- Tendrás por algún sitio una ventana de listados de albaranes, pues permites que el usuario seleccione varios albaranes, y despues con un boton, se crea la factura de esos albaranes.

Como ves, se trata de que el usuario escriba lo menos posible, para cometer menos fallos, y que además vea que es una mejora usar tu programa.

La primera opción puede ser la más compleja, pero tambien será la más cómoda para el usuario.

Un detalle más: El grid se usa para mostrar el cuerpo de la factura, y se permite, por ejemplo, modificar el concepto, pero no los importes. (poner a la columna de los importes, ReadONly := true)

saludos y espero te sirva alguna de estas ideas.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 02-01-2006
Anabel Anabel is offline
Miembro
 
Registrado: may 2003
Ubicación: D.F. México
Posts: 63
Poder: 22
Anabel Va por buen camino
Hola Lepe!!

Muchas gracias por las sugerencias, sólo que etngo un problemilla, no las entiendo, quizas el problema radique en que usamos diferentes nombres para los conceptos de una factura, es decir, no sé a que te refieres con un "albaran"

Te platico como es mi ventana de captura de la factura, para los datos Generales de la factura (Nombre del cliente, dirección, etc) utilizo componenetes TDBEdit, los cuales están conectados a la Base de Datos Padre, para los datosdel cuerpo de la Factura (cantidad, unidad, producto, etc) uilizo un DBGrid para capturarlos, el cual esta conectado a la Base de Datos Hija, Tal como me aconsejo Delfino configure el DataSet de ambas tablas, para que al dar clic en el botón de guardar, se guarde la información y lo hace bien, Guarda lo que debe en cada tabla, respetas mis llaves, asigna el consecutivo, etc. todo bien.

Mi problema radica que cuando estas en el DBGrid directamente capturando la cantida, unidad, etc, al pasar al siguiente renglón ya no visualizo el anterior que capture en el DBGrid, más sin embargo en memoria si se queda, ya que al guardar los datos, guarda todos los renglones capturados.

Quiza, lo mejor no fue usar el DBGRID para está función, pero ya me bloquie y no sé porque cambiarlo o como capturar el cuerpo de la partida

Gracias.
__________________
Ana
Responder Con Cita
  #8  
Antiguo 11-01-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Las filas que desaparecen

Cita:
Empezado por Anabel
Delfino,

Hola! Tienes toda la razón cuando me dices que no hay problema si se configura bien el DataSet, pero me surgio un detalle al final al momento de insertar datos en el DBGrid:

Al Insertar un renglón en el DBGrid y pasar al siguiente renglón (ya sea con la tecla TAB o con la barra el botón Inserta de la barra TDBNavegator) el DBGrid se presenta en blanco, es decir, no visulizo los renglones que voy capturando. No sé si tenga que ver que La tabla a la que está conectada el DBGrid tiene la Opción "CacheUpdate = True". Y al hacer el Database.ApplyUpdates, se graban todos los renglones que capture.
Tu me pdrías dar alguna piesta de que podría estar pasando.

Gracias.

Lo que pasa es que cuando insertas una fila en la tabla detalle y no le capturas el valor que la enlaza a la tabla maestra, la fila si se inserta, pero como está "filtrada" para que solo muestre el detalle del registro correspondiente en la maestra no la muestra. Normalmente te va a pasar cuando estás dando de alta una nueva fila en la tabla maestra, pues en ese momento probablemente aun no tengas el valor del campo que las enlaza.

Para evitar esto tienes que colocar el valor correcto en el campo ligado de la tabla detalle antes de postear el valor para que la grilla te la muestre.
Por ejemplo:
Estas dando de alta la factura con folio 100, el usuario obviamente ya no necesita capturar el valor 100 en el campo factura en cada fila de la grilla de detalle. Entonces, debes de asignar el valor 100 al campo que se enlaza la tabla maestra. En esta caso se enlazarian por el campo folio.

En otras palabras, antes de postear cualquier fila en el detalle, antes deberas de colocar el mismo valor (en el ejemplo 100) en el campo ligado.

A mi me paso, que utilice un campo autoincrementado para el numero de folio y como este campo la DB no le asigna valor hasta que lo posteas pues era imposible saber que valor darle al detalle para postearlo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 13-01-2006
Anabel Anabel is offline
Miembro
 
Registrado: may 2003
Ubicación: D.F. México
Posts: 63
Poder: 22
Anabel Va por buen camino
Smile

Lepe y AzidRain,

Muchas gracias por sus ideas. Efectivamente Azid, mi error, no error, era que usaba un campo Autoincremental para asignar el ID de la tabla Padre, lo cambie, ahora yo lo voy asignando y asunto arreglado.

Lepe, me quede con tu idea de no usar el DBGRID para capturar o modificar información, uso una ventana aparte para hacerlo y se ve bien

Muchas gracias a ambos!!!

Saludos!!!
__________________
Ana
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


La franja horaria es GMT +2. Ahora son las 11:22:57.


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