Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Question Agregando articulos a un StringGrid

Saludos, gracias por haber colaborando conmigo en uno que otro punto y por siempre estar dispuestos a ayudarme a aprender cosas nuevas de ustedes que saben mucho de esto.

Tengo un string grid, al cual quiero agregar artículos y quitar según sea el caso, ya en este foro he preguntado sobre quitar y me han dado formas eficientes de hacerlo, pero un inconveniente al agregar.

Mi string grid consta de 7 columnas:
1- Referencia -------------------- Para que aquí valla el código del articulo
2- Cantidad -------------------- Obviamente la cantidad de cuantos artículos se van a facturar
3- Concepto -------------------- La descripción del articulo
4- Precio --------------------- El precio individual de cada articulo
5- Neto --------------------- Aquí el total de cantidad x Precio
6- ITBIS ---------------------- Aquí si aplica ITBIS, Neto * 18/100
7- Total ---------------------- Neto + ITBIS

Como saben, para que no pierda el formato de las cabeceras, un strind Grid debe al menos contener 1 fila adicional aparte de la fila del encabezado. Aquí comienza mi inconveniente.

Para agregar articulos hago esto:
Código Delphi [-]
Var
Precios, Neto, Impuesto  : Real;
Begin
SG.Row := SG.Rowcount - 1;
SG.Cells[0, SG.Row] := IntToStr(CodProd);
SG.Cells[1, SG.Row] := FaddProducto.Ecantidad.Text;
SG.Cells[2, SG.Row] := FaddProducto.Qtemp.FieldByName('Descripcion').AsString;
// Precio 1 -----------------------------------------------
if FaddProducto.RB1.Checked = true then
Precios:= StrtoFloat(FaddProducto.EPrecio.Text);
// Precio 2 -----------------------------------------------
if FaddProducto.RB2.Checked = true then
Precios:= StrtoFloat(FaddProducto.EPrecio2.Text);
// Precio 3 -----------------------------------------------
if FaddProducto.RB3.Checked = true then
Precios:= StrtoFloat(FaddProducto.EPrecio3.Text);
// Precio 4 -----------------------------------------------
if FaddProducto.RB4.Checked = true then
Precios:= StrtoFloat(FaddProducto.EPrecio4.Text);
//----------------------------------------------------------
SG.Cells[3, SG.Row] := FloattoStr(Precios);
SG.Cells[4, SG.Row] := FloatToStr(Precios * Strtofloat(FaddProducto.Ecantidad.Text));
Neto:= Precios * Strtofloat(FaddProducto.Ecantidad.Text);
// Impuesto ------------------------------------------------
if Faddproducto.AplicaITBIS.Checked = true then
Begin
SG.Cells[5, SG.Row] := FaddProducto.Qtemp.FieldByName('ITBIS').AsVariant/100 * Precios;
Impuesto:= FaddProducto.Qtemp.FieldByName('ITBIS').AsVariant/100 * PrecioS;
SG.Cells[6, SG.Row] :=  Floattostr(neto+Impuesto);
end
else
Begin
SG.Cells[5, SG.Row] := '0';
SG.Cells[6, SG.Row] :=  Floattostr(neto);
end;
//----------------------------------------------------------
SG.RowCount := SG.RowCount + 1;
end;

Que pasa con esto, que siempre al final, tengo que dejar el "SG.RowCount := SG.RowCount + 1;" Para que la siguiente linea este lista para introducir el nuevo articulo.

¿Que Necesito?
Quiero una forma eficiente de ignorar si es el primer articulo que se va a agregar (ya que hay una fila vacía en el string grid) o si es otro (2do, 3ro, Etc), para no tener que dejar una fila vacia al final de cada ves que agrego un articulo, es decir que la fila se cree en el momento que se va a insertar el articulo. Ya que si pongo "SG.RowCount := SG.RowCount + 1;" al inicio del código, la primera ves que se inserta, deja un espacio vació, obviamente porque ya había uno ahí.

Gracias!
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
tabla articulos josi Varios 28 02-04-2008 10:30:55
Reinstalación W2K3 Server, agregando equipos al dominio... MaGNa Redes 0 06-06-2005 11:40:55
problema agregando formularios al proyecto Maga84 Varios 8 28-04-2005 22:13:22
Artículos en cd nugame Conexión con bases de datos 0 01-12-2004 13:03:45
Agregando campos en tiempo de ejecucion Markoz Firebird e Interbase 3 31-10-2003 02:32:23


La franja horaria es GMT +2. Ahora son las 21:15:53.


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