Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2017
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Relacion entre los dataset y los objetos

Tengo un grilla para agrar productos y hacer una factura. Cuando se hace click en Agregar del formulario producto tengo:

Código Delphi [-]
procedure TFProductos.SpeedButton1Click(Sender: TObject);
var
detalle:TDetalle;
idproducto:integer;
descripcion:string;
precioa,subtotal,cant,cantidad,iva,totalouble;
begin
if (Ecantidad.Text<>'') then
    cant:=StrToFloat(Ecantidad.Text);
    if Form1.dblcbtc.KeyValue=1 then

    detalle:=TDetalleA.NuevoDetalleA(
     precioa,subtotal,iva,total,cantidad,descripcion,idproducto);

    else
        ShowMessage('ingrese cantidad');



end

Pero como debo llenar el dataset? Debo poner el codigo aparte, osea un append como se ve en otros post? o hay una manera mas adecuada?
Responder Con Cita
  #2  
Antiguo 05-06-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No tiene mucho sentido mezclar DataSets y objetos. Si usas objetos, estos deben esconder el hecho de que tras los bastidores, se usan DataSets. Sino, estas haciendo doble trabajo
Responder Con Cita
  #3  
Antiguo 05-06-2017
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Y bueno pero si quiero hacer un programa con OOP los datasets no se utilizan.
Por otro lado un dbgrid esta asociado a un dataset. Debo utilizar un stringgrid?

Osea mi clase factura tiene una lista de detalles, debo programar un evento en alguna parte, ya sea al agregar el detalle este se muestra en la grilla. Podria ser un stringgrid y que se agregue manualmente?. o bien un metodo listar de la clase factura pero deberia refrescarse.

Ademas con los dataset yo puedo filtrar datos exportarlos etc..todo esto deberia hacerlo por codigo?

Última edición por giulichajari fecha: 05-06-2017 a las 20:12:20.
Responder Con Cita
  #4  
Antiguo 06-06-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En realidad depende de que tantas ganas tengas de desacoplar y de abstraer.; no se trata de que no se pueden usar dataset en programas OOP. Si los podes usar pero como se trata de un detalle de implementacion, eso queda oculto, es decir, no deberia haber metodos publicos en tus clases abstractas que hablen de TDataSet
Responder Con Cita
  #5  
Antiguo 06-06-2017
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
En realidad depende de que tantas ganas tengas de desacoplar y de abstraer.; no se trata de que no se pueden usar dataset en programas OOP. Si los podes usar pero como se trata de un detalle de implementacion, eso queda oculto, es decir, no deberia haber metodos publicos en tus clases abstractas que hablen de TDataSet
Osea el codigo de las clases no tiene que contener nada de datasets, entonces podria escribir el codigo del dataset fuera del codigo anterior dentro del evento on click del boton, osea en algun lado tiene que estar, pero como decis vos no dentro de las clases...
No se vos o los demas como hacen..

Última edición por giulichajari fecha: 06-06-2017 a las 14:11:24.
Responder Con Cita
  #6  
Antiguo 07-06-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No tiene que estar en las clases abstractas. Deberia estar en la implementacion, en clases concretas, a eso me refiero
Responder Con Cita
  #7  
Antiguo 07-06-2017
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
No tiene que estar en las clases abstractas. Deberia estar en la implementacion, en clases concretas, a eso me refiero
Ah te entiendo..de hecho las clases abstractas no implementan los metodos solo los declaran.

Muchas gracias amigo agustin!
Responder Con Cita
  #8  
Antiguo 07-06-2017
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Porque tengo el siguiente codigo en una unidad:

Código Delphi [-]
unit UDetalle;

interface
uses UProducto;
type
TDetalle = class
  private
    Fproducto: TProducto;
    Fcantidad: Double;
    FbaseImp: Double;
    Fsubtotal: Double;
    Ftotal: Double;
    procedure Setcantidad(const Value: Double);
    procedure Setproducto(const Value: Double);
    procedure SetbaseImp(const Value: Double);
    procedure Setsubtotal(const Value: Double);
    procedure Settotal(const Value: Double);

  public
    property baseImpouble read FbaseImp write SetbaseImp;
    property subtotalouble read Fsubtotal write Setsubtotal;
    property totalouble read Ftotal write Settotal;
    property cantidadouble read Fcantidad write Setcantidad;
    constructor NuevoDetalle();
    function calcularBaseImp(precioouble;alicouble)ouble;
    destructor destroy;
end;

Y lo mismo que ocurre para agregar el detalle ocurre con el objeto de la clase producto que agrega un detalle. En el momento que el user selecciona un producto de la grilla, que esta provista de un dataset, debo construir un objeto producto y pasarselo al detalle.Es correcto esto?
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
Relación entre objetos y bases de datos relacionales Lechu OOP 14 20-07-2015 00:46:08
Relacion entre tablas sql server 2000 compualarma SQL 2 23-03-2009 19:38:01
Relacion entre tablas sql server 2000 compualarma Conexión con bases de datos 0 23-03-2009 05:26:02
maestro/detalle con relacion entre 3 tablas FDB Conexión con bases de datos 4 13-05-2007 16:03:51
Problema relacion maestro-detalle (Nested Dataset) Toni Conexión con bases de datos 10 19-05-2004 17:38:56


La franja horaria es GMT +2. Ahora son las 11:54:34.


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