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 22-08-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!

Otra vez molestando...

Quiero armar un procedimiento para no acceder directamente a Modulo.Consulta_Int y a diferencia de otro hilo que abrí, se me presenta la dificultad de que voy cambiando el valor del parámetro en el loop y no tengo la menor idea de como solucionarlo.
El código es el siguiente:

Código Delphi [-]
Grid.Perform(WM_SETREDRAW, 0, 0);

Try
  Modulo.Consulta_Int.Active := FALSE;
  Modulo.Consulta_Int.SQL.Clear;
  Modulo.Consulta_Int.SQL.Add('SELECT Cod_Producto, Desc_Producto, Precio FROM Productos');
  Modulo.Consulta_Int.SQL.Add('WHERE Cod_Producto = : pCod_Producto');

  Repeat
    ParseRecord(Datos[i],Delimitador, Codigo_Articulo, Precio_Articulo);

    Modulo.Consulta_Int.Active := FALSE;
    Modulo.Consulta_Int.Parameters.ParamByName('pCod_Producto').Value := Codigo_Articulo;
    Modulo.Consulta_Int.Active := TRUE;

    If not Modulo.Consulta_Int.IsEmpty then //Si el artículo existe en la base de datos

    //Y si el precio anterior y el nuevo son diferentes
    If Modulo.Consulta_Int.FieldByName('Precio').AsString <> Precio_Articulo then
      begin
        //Rellena el StringGrid con los datos de los artículos a modificar
        Grid.Cells[0, Grid.RowCount -1] := Modulo.Consulta_Int.FieldByName('Cod_Producto').AsString;
        Grid.Cells[1, Grid.RowCount -1] := Modulo.Consulta_Int.FieldByName('Desc_Producto').AsString;
        Grid.Cells[2, Grid.RowCount -1] := Modulo.Consulta_Int.FieldByName('Precio').AsString;
        Grid.Cells[3, Grid.RowCount -1] := Precio_Articulo;
        //Si el precio nuevo es un número válido
        If (TryStrToFloat(Grid.Cells[3, Grid.RowCount -1], temp) = TRUE) then
          Grid.Cells[4, Grid.RowCount -1] := Format('%.2n',[((StrToFloat(Precio_Articulo) / Modulo.Consulta_Int.FieldByName('Precio').AsFloat) - 1) * 100]);
        Grid.RowCount := Grid.RowCount + 1;
     end
    Else
      Omitidos := Omitidos + 1;

    i := i + 1;

  Until i > Datos.Count -1;

Finally
  Grid.Perform(WM_SETREDRAW, 1, 0);
  Grid.Invalidate;
end; {try}

Cualquier consejo será bienvenido.

Saludos!!!
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 con refactorización Dexter182 OOP 6 29-07-2021 14:27:27
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


La franja horaria es GMT +2. Ahora son las 12:47:27.


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