Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2021
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 19
Dexter182 Va por buen camino
Ayuda con refactorización

Hola a todos!


Gracias a los sabios consejos que me dieron en este post: https://www.clubdelphi.com/foros/showthread.php?t=94720 comencé con mucho éxito la migración y refactorización de mi humilde sistema.
He avanzado mucho y el código está quedando mucho más legible y ordenado que antes.
Sin embargo, en algunas ocasiones me está costando bastante separar las consultas SQL de los forms.
Por ejemplo, un código como este:



Código Delphi [-]
Modulo.ADOCommand.CommandText := 'DELETE FROM Productos WHERE Cod_Producto = :pCodigo';
Modulo.ADOCommand.Parameters.ParamByName('pCodigo').Value := Edit_Codigo.Text;
Modulo.ADOCommand.Execute


Fue sencillo de separar con un simple procedimiento:

Código Delphi [-]
Modulo.EliminarArticulo(Edit_Codigo.Text);


Ahora bien, cuando necesito volcar los datos recibidos de la consulta en el form no se muy bien como hacerlo.
Por ejemplo, un código como este ¿cómo lo refactorizarían?
Código Delphi [-]
Modulo.Consulta.Active := FALSE;
Modulo.Consulta.SQL.Clear;
Modulo.Consulta.SQL.Add('SELECT Productos.*, Proveedores.Denominacion, Secciones.Desc_Seccion, '+
                               'Categorias.Desc_Categoria, IVA.Valor AS Valor_IVA '+
                        'FROM Productos, Proveedores, Categorias, Secciones, IVA '+
                        'WHERE (Cod_Producto = :pCodigo) AND '+
                              '(Productos.Cod_Proveedor = Proveedores.Cod_Proveedor) AND '+
                              '(Productos.Cod_Categoria = Categorias.Cod_Categoria) AND '+
                              '(Categorias.Cod_Seccion = Secciones.Cod_Seccion) AND '+
                              '(Productos.Porcentaje_IVA = IVA.Codigo)');
Modulo.Consulta.Parameters.ParamByName('pCodigo').Value := Edit_Codigo.Text;
Modulo.Consulta.Active := TRUE;

//Carga los campos con los datos de la tabla
With Modulo.Consulta do
  begin
    Edit_Descripcion.Text      := FieldByName('Desc_Producto').AsString;
    Edit_PreUnitario.Text      := FieldByName('Precio').AsString;
    ComboBox_IVA.Text          := FieldByName('Valor_IVA').AsString;
    Edit_Ganancia.Text         := FieldByName('Porcentaje_Ganancia').AsString;
    SpinEdit_Stock.Text        := FieldByName('Cant_Existente').AsString;
    SpinEdit_StockMinimo.Text  := FieldByName('Cant_Minima').AsString;
    SpinEdit_CantRep.Text      := FieldByName('Cant_Reposicion').AsString;
    ComboBox_Seccion.Text      := FieldByName('Desc_Seccion').AsString;
    ComboBox_Categoria.Text    := FieldByName('Desc_Categoria').AsString;
    ComboBox_Proveedor.Text    := FieldByName('Denominacion').AsString;
    Edit_CodProveedor.Text     := FieldByName('Cod_Producto_Proveedor').AsString;
    SpinEdit_UniProveedor.Text := FieldByName('Unidad_Proveedor').AsString;
    Edit_CodBarras.Text        := FieldByName('Cod_Barras').AsString;
  end;


Saludos!

Última edición por ecfisa fecha: 28-07-2021 a las 05:50:09. Razón: Quitar emoticones del código
Responder Con Cita
 



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
Ayuda BD Access? Ayuda al modificar!! DarkArias Conexión con bases de datos 4 24-08-2013 23:47:41
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 12:26:50.


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