Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   seleccionar columna de un TstringGrid (https://www.clubdelphi.com/foros/showthread.php?t=70080)

microbiano 28-09-2010 20:00:07

seleccionar columna de un TstringGrid
 
bueno resulta que hasta hoy no habia tenido necesidad de hacer sistemas de factuacion ;-), sin embargo el dia de hoy estoy iniciando uno para facturacion, gracias al ejemplo del amigo Caral ha sido algo facil jejeje, bueno pues resulta que cargo los datos en el StringGrid y hasta ahi no hay ningun problema el problema surge cuando quiero hacerle cambios a un producto que ya esta en el detalle de facturion explico los pasos que me gustanrian:

1.- haciendo doble click sobre un registro del TstringGrid me muestre otro form con los datos p/e:

cantidad=1
descuento=1.15%


2.- hacer mas modificaciones que necesito p/e.

cantidad=500
descuento=20%

3.- una vez hechas esas modificaciones, reflejarlas en el registro que se selecciono del TstringGRid.

pongo el codigo con el que agrego las filas al TstringGrid

Código Delphi [-]
procedure TFfactura.txtcodigoExit(Sender: TObject);
var wcodigobarras: string;
    wprecio_total:Double;
    wcantidad_venta:Integer;
begin
 wcodigobarras:=Trim(Ffactura.txtcodigo.Text);
 if wcodigobarras<>EmptyStr then
  begin
   If Cuenta > 1 then SGFact.RowCount := SGFact.RowCount + 1;
    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
             wprecioventa:=StrToFloat(FieldByname('precioventa').AsVariant);
             Ffactura.SGFact.Cells[0,cuenta] := Ffactura.txtcodigo.Text;
             Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);
             Ffactura.SGFact.Cells[2,Cuenta]:='1';
             Ffactura.SGFact.Cells[3,Cuenta]:=(FieldByname('precioventa').AsVariant);
             wcantidad_venta:=StrToInt(SGFact.Cells[2,cuenta]);
             wprecio_total:=wcantidad_venta*wprecioventa;
             SGFact.Cells[4,Cuenta]:='0.00';
             SGFact.Cells[5,Cuenta]:=FloatToStr(wprecio_total);//Format('%n',[wprecio_total]);
             Cuenta:=cuenta+1;
             calcula_totales;
             Next;
             Ffactura.txtcodigo.Text:='';
           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;


espero me hay explicado, de antemano muchas gracias por el apoyo recibido

Caral 29-09-2010 02:40:40

Hola
Veo la cantidad de venta, que me imagino sera la cantidad:
wcantidad_venta:=StrToInt(SGFact.Cells[2,cuenta]);
pero no veo el descuento, donde esta?.
Lo digo para asignarle el dato al TstringGRid.
Saludos

microbiano 29-09-2010 13:57:22

hola amigo caral la verdad estaba esperando tu respuesta canijo mira el descuento lo inicializo en cero como puedes ver en esta linea:

SGFact.Cells[4,Cuenta]:='0.00';

y conforme seleccione el vendedor esto cambiara.

Caral 29-09-2010 19:17:44

Hola
Quiero contestarte para que veas que vi el post.
No he tenido tiempo para pensar en esto, disculpa pero tengo algunos asuntos que resolver y me estan quitando algo de tiempo, en cuanto pueda te trato de ayudar.
Saludos

Caral 01-10-2010 02:05:49

Hola
Sigues con el problema?.
Saludos

microbiano 01-10-2010 08:16:52

la verdad si.


aunque lo resolvi agregando una venta de multiples productos ejeje a donde seleccionar el producto y la cantidad desde el inicio, aunque si me gustaria saber como se ahce

microbiano 13-10-2010 01:09:44

Seleccionar columna de un TstringGrid
 
reviviendo este hilo alguien me podria decir como selecciono el registro e un TstringGrid , una vez seleccionado, que me muestre los datos en un nuevo form en el cual pueda hacer cambios y una vez realizados esos cambios que se reflejen en la misma columna que seleccione del TstringGrid.

ya saben como es el cliente jejeje de antemano muchas gracias por su ayuda.

Caral 13-10-2010 04:01:55

Hola
Piensa en string amigo.
El string grid es simplemente un depositario de datos.
Piensa amigo, se que puedes hacer algo tan sencillo como esto que pides.
Si se puede, si se puede.
microbiano, microbiano, microbiano, ra, ra ra......
A ver si dandote animos logramos esto...:D
Saludos

microbiano 13-10-2010 14:19:40

Gracias amigo Caral eres ley canijo, aveces necesitamos animos, intentare en el trascurso del dia por hoy en mexico con las 07:01 am.

gracias amigo

Caral 13-10-2010 18:20:14

Hola
Ya sabes que si no puedes hacer algo o tienes alguna duda con gusto trataremos de ayudarte pero siempre he pensado que lo que nos falta es entender ciertos detalles nada mas.
Saludos

Caro 13-10-2010 19:39:06

Cita:

Empezado por Caral (Mensaje 379172)
Ya sabes que si no puedes hacer algo o tienes alguna duda con gusto trataremos de ayudarte pero siempre he pensado que lo que nos falta es entender ciertos detalles nada mas.

Opino lo mismo ;).

Microbiano la propiedad que necesitas del StringGrid es Row, que hace referencia a la fila actual, por lo tanto ya puedes acceder a los valores de esa fila y le asignas a donde tu quieras un edit u otro edit de otro formulario.

Ej:
Código Delphi [-]
  Edit1.Text := StringGrid1.Cells[4,StringGrid1.Row];

y ahora para cambiar el valor de esa misma celda:

Código Delphi [-]
 StringGrid1.Cells[4,StringGrid1.Row] := 'otro valor';

Y como te dice Caral si tienes dudas o te trancas en algo pregunta ;).

Saluditos

jejo1984 02-08-2011 22:25:55

Buena me ayudo
 
Hola que tal amigos mil gracias la verdad estaba loco por saber como poder seleccionar un dato de una celda con el StringGrid y la verdad me ayudo mucho esto:

Edit1.Text := StringGrid1.Cells[4,StringGrid1.Row];

Muchas gracias a todos en especial a Caro =)


La franja horaria es GMT +2. Ahora son las 23:24:20.

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