Sumar columna de un grid

Pues yo nuevamente. Como hago para sumar toda la columna de un grid
Ejemplo
Grid:
Cantidad      Precio       Total
   100             10           1,000
   50                10            500
Total                             1,500
2

2 respuestas

Respuesta
1
Sabes... esa consulta yo la hice hace años... y me tomo meses para que alguien me comprendiera. Nadie lo hizo jajaja! Así que me las tuve que arreglar! Para poder ayudarte, necesito saber algo si primero... ¿tienes la tabla del grid relacionada a alguna otra tabla por medio de un campo común? Por ejemplo... para el facturador, relacionastes la tabla de datos generales con la de detalle...! ¿Lo tienes así..? Avisame!
Je je. Así tuve leyendo una consulta que hiciste el año pasado.
Bueno en este caso tengo solamente una tabla al grid sin relaciones, ahora que lo mencionas tengo el otro caso de las tablas relacionadas las que trabajamos juntos.
Disculpa por la demora en contestar... pero tuve una semana horrorosa! Vamos al caso! Sumar los datos que ves en pantalla de una columna grid a un text es fácil. No obstante, te aconsejo mejor que trabajes con las 2 tablas relacionadas. Lo que pasa es que, si trabajas solo con una, la suma podría caer en una especie de referencia cíclica...! Y ademas, no podrías desplazar correctamente los registros del grid con su suma respectiva, puesto que los vas a ver todos al mismo tiempo. Avisame si quieres que trabajemos así (con la relación de tablas, es super fácil)... para empezar a orientarte como proceder!
A tus ordenes!
Ravenn! :) :) :)
Ok. Esta bien a como tu digas. Tu eres el experto je je. o:)
Ok! Empecemos: la estructura básica de las 2 tablas debe ser así: la primera tabla (Tabla1) almacenara los datos generales de la factura (numero de factura, cliente, tipo de venta |contado-crédito| fecha, y así mismo, los datos de Subtotal, IVA, DESCUENTO Y TOTAL). La segunda tabla almacenara el detalle de la factura, es decir, los productos y su detalle (código de producto, descripción, precio unitario, unidad de medida, precio total).
Importante: ambas tablas deben contener un campo de relación... que sera el designado para el "numero de factura"... esto es muy importante... es la base de la suma! La estructura de las tablas seria entonces así:
Nombre | Tabla1
Campos | numerofactura (indice primario), fecha, cliente, tipodeventa, subtotal, iva, descuento, total.
Nombre | tabla2
Campos |numerofactura, codigoprod, descripcion, unidadmed, preciounit, cantidad, preciototal
Relaciona las tablas por el campo "numerofactura". La tabla parent debe ser la tabla1 y la child la tabla2!
La tabla1 sera "alimentada" con los DATOS GENERALES a través de controles "TextBox" (o también combos... como keiras). Coloca los texts necesarios en tu form y enlazalos. La tabla2 sera "alimentada" por el grid. Coloca las columnas y enlazalas a los campos con el detalle de factura.
La lógica de esto es así: cuando ingreses el numero de factura (para un nuevo registro) en la parte de datos generales, ese mismo numero debes repetirlo "en cada uno de los registros que pongas luego en el grid", es decir, en cada linea, alimentado en ambas tablas el campo "numero de factura". Por ejemplo... si pones nueva factura "100" en la parte de datos grales., en cada linea del grid que agregues de esa factura, debe ir ese mismo numero "100". Así podes enlazar "cada producto" a un numero único de factura! ¿Comprendes? [email protected] Espero que si! :D :D :D 
Imagino que el orden de tu grid debe ser algo así:
Factura | Codigo | Descripcion| UM| Precio Unit|Cantidad| Precio total|
Imagino también que, cuando escribís la cantidad, te debe arrojar el precio total (multiplicando el precio unitario por la cantidad) en su respctiva columna. ¿Es asiii? Bueno... de no ser así, te explico completo: ve al VALID del text1 de la columna "cantidad" para sacar el total, pone un código así:
THISFORM.Grid1.Column7.Text1.Value = (THISFORM.Grid1.Column5.Text1.Value) * (THISFORM.Grid1.Column6.Text1.Value)
Ahora... inmediatamente después, llamas a la sumaa de todos los "precios totales" de la columna de tu grid a un control text (el text debe estar enlazado al campo "subtotal" de la tabla1) con este código:
Thisform.LockScreen=.t.
SELECT tabla2
SET FILTER TO tabla2.numerofactura = (THISFORM.Grid1.Column1.Text1.Value) &&Columna factura del grid&&
 InRecno=Recno()
  Sum(preciototal) to Thisform.Txtsubtotal.value
 Locate Record InRecno
  Thisform.LockScreen=.F.
Con esto, colocas un filtro a aquellos registros del gridd que coincidan exactamente con tu número de factura! Y luego toma el valor del campo "preciototal" (tabla2) y lo suma en el txtsubtotal "UNICAMENTE PARA LOS REGISTROS DE ESA FACTURA! Ves por que es importante que el numero de factura este en las 2 tablas y en cada linea del gridd??? Así sumas el "percio total" de todos los productos de la factura "100", de la factura "200" y así sucesivamente!!!
Despues, si keres calcular el iva, en ese mismo evento del control, mas abajo, podes colocar algo como: THISFORM.TxtIva.Value = (THISFORM.TxtSubtotal.Value) * 0.15
Estoy a tus ordenes para aclararte las dudas o problemas que te aparezcan! Avisameee!
Muchisimas gracias. Revenn. la verdaf que tengo muchas dudas, pero ya algunas las he ido resolviendo, probando una cosa, provando otra. pero de todos modos siempre te preguntare algo. saludos. jejeje :)
Respuesta

Tengo una tabla grid. Y quiero sumar un campo con otro por ejemplo.

totalcomision = precioimten * comision / 100

columna5 = columna3 * columna4 /100 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas