Club Delphi  
    Paypal   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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 17-10-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
problema resuelto

pues bien despues de unas horas de desvelo y de unas cuantas llamadas de mi linda esposa a dormir he resuelto el problema, pongo el codigo por si algun dia le sirve.... gracias esposita por aguantarme jejejeje.


Código Delphi [-]
procedure TFfactura.txtcodigoExit(Sender: TObject);
var wcodigobarras: string;
    wprecio_totalouble;
    wprecio_ventaouble;
    i:Integer;
    {variables para modificaciones}
   wcodigomodificar,wdescripcionmodificar:string;
   wcantidadmodificar,wventa_totalmodificada:Integer;
   wdescuentomodificar,wpreciomodificarouble;
   wtotalmodificarouble;
 begin
 wcodigobarras:=Trim(Ffactura.txtcodigo.Text);
 Ffactura.txtcodigo.Text:='';
 if wcodigobarras<>'' then
    begin
     //recorro todos los registros del Tstring grig
     For i:=1 to Ffactura.SGFact.RowCount-1 do
      begin
        if Ffactura.SGFact.Cells[0,i]= Trim(wcodigobarras) then
         begin
         {tomo los registros que existen en el flexgrid de acuerdo al registro que introdujeron}
          wcodigomodificar:=Ffactura.SGFact.Cells[0,i]; //codigo barras
          wdescripcionmodificar:=Ffactura.SGFact.Cells[1,i]; //descripcion
          wcantidadmodificar:=StrToInt(Ffactura.SGFact.Cells[2,i]); //cantidad venta
          wpreciomodificar:=wprecioventa;
          wdescuentomodificar:=StrToFloat(Ffactura.SGFact.Cells[4,i]);//descuento
          {valido la variable de cantidad para ver si es mayor a uno}
            if wcantidad_venta<>0 then
             begin
              Ffactura.SGFact.Cells[0,i]:=wcodigobarras;//codigobarras
              Ffactura.SGFact.Cells[1,i]:=wdescripcionmodificar;//descripcion
              wventa_totalmodificada:=wcantidadmodificar+wcantidad_venta;//suma cantidad
              Ffactura.SGFact.Cells[2,i]:=IntToStr(wventa_totalmodificada);//asigno cantidad a celda
              wprecio_total:=(wventa_totalmodificada*wprecioventa);//multiplico la cantidad por precio
              Ffactura.SGFact.Cells[5,i] := Format('%8.2f',[wprecio_total]);
              calcula_totales;
              wcantidad_venta:=0;
              Ffactura.txtcodigo.SetFocus;
              wcodigobarras:='';
              Exit;
             end
            else
             begin
              Ffactura.SGFact.Cells[0,i]:=wcodigobarras;//codigobarras
              Ffactura.SGFact.Cells[1,i]:=wdescripcionmodificar;//descripcion
              wventa_totalmodificada:=wcantidadmodificar+1;//suma cantidad
              Ffactura.SGFact.Cells[2,i]:=IntToStr(wventa_totalmodificada);//asigno cantidad a celda
              wprecio_total:=(wventa_totalmodificada*wprecioventa);//multiplico la cantidad por precio
              Ffactura.SGFact.Cells[5,i] := Format('%8.2f',[wprecio_total]);
              calcula_totales;
              wcantidad_venta:=0;
              Ffactura.txtcodigo.SetFocus;
              wcodigobarras:='';
              Exit;
             end;
          {termino la informacion proporcionada}
        end;
      end;
    end;
   {si no encuentra el registro en el TStringGrid lo agrego}
  if wcodigobarras<>'' then
   begin
    with fmodulo.Qry_Temp2 do
     begin
      Close;
      sql.clear;
      SQL.Add('select * from articulo');
      SQL.Add('where codigobarras=:Pcodigobarras');
      Parameters.ParamByName('pcodigobarras').Value:=Trim(wcodigobarras);
       try
        Open;
         if not Fmodulo.Qry_Temp2.IsEmpty then
          begin
           while not Fmodulo.Qry_Temp2.Eof do
            begin
             If Cuenta > 1 then SGFact.RowCount := SGFact.RowCount + 1;
              wprecioventa:=StrToFloat(FieldByname('precioventa').AsVariant);
              Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;
              Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);
              {verifico cuantos productos asigno para la venta
                 y determino el importe total}
              if wcantidad_venta<>0 then
               begin
                Ffactura.SGFact.Cells[2,Cuenta]:=IntToStr(wcantidad_venta);
                wprecio_total:=(wcantidad_venta*wprecioventa);
               end
              else
               begin
                Ffactura.SGFact.Cells[2,Cuenta]:='1';
                wcantidad_venta:=StrToInt(SGFact.Cells[2,cuenta]);
                wprecio_total:=(wcantidad_venta*wprecioventa);
               end;
               wprecio_venta:=FieldByname('precioventa').AsFloat;
               Ffactura.SGFact.Cells[3,Cuenta]:=Format('%8.2n',[wprecio_venta]);
               wcantidad_venta:=StrToInt(SGFact.Cells[2,cuenta]);
               SGFact.Cells[4,Cuenta]:='0.00';
               //SGFact.Cells[5,Cuenta]:=Format('%8.2f',[wprecio_total]);
               Ffactura.SGFact.Cells[5,Cuenta] := Format('%8.2f',[wprecio_total]);
               Cuenta:=cuenta+1;
               calcula_totales;
               Next;
               Ffactura.txtcodigo.SetFocus;
               {limpio la variable de venta}
               wcodigobarras:='';
               wcantidad_venta:=0;
               Exit;
            end;
          end
         else
          begin
           MessageDlg('Registro'+chr(13)+'No localizado', mtError, [MBOK], 0);
           Ffactura.txtcodigo.Text:='';
           Ffactura.txtcodigo.SetFocus;
           Exit;
          end;
       except
        on E:EOleException do
         begin
          MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
         end;
       end;
     end;
   end;
 end;

Aveces creo que mi esposa tiene razon, jejeje prefiero a mi amante(PC) que a ella, segun ella esta viendo quien se queda conmigo pero creo que ya elegi jajajaja
Responder Con Cita
 


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
error en ciclo!!! MARLON1 PHP 7 08-04-2010 17:18:45
Repite los datos al guardar gsilvei Varios 1 19-01-2008 17:20:02
crear label por codigo en un ciclo for.. las beses de el ciclo sakuragi .NET 3 29-09-2005 05:04:29
DBlookupcombobox...repite nombres? alt126 Conexión con bases de datos 1 04-01-2005 12:25:56
buton en ciclo for rolando_s Varios 1 18-12-2004 12:38:49


La franja horaria es GMT +2. Ahora son las 12:29:19.


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