Hola, tengo un formulario en el cual hay un grid el cual tiene las columnas: Producto, Cantidad, Precio, Activo (es una Casilla de Verificación) y Total (cantidad*precio). Lo que deseo es... En un cuadro de texto (Subtotal) poner la sumatoria de todos los productos que tengan el visto en la Casilla de Verificación en la columna Activo. En otro cuadro de texto (Noactivos), sumar los que no estén activos. Y un ultimo cuadro de texto que haga la resta. Subtotal-Noactivos.
Desde ya muchas gracias por su ayuda
Espero poder ayudarte Para mi, lo mejor es no sumar directamente los valores de los registros de la tabla que esta debajo del grid, porque se mueve el puntero.. ¿entendés? Yo haria asi.. Suponete que la tabla o cursor que esta debajo del grid se llama miTabla: Dimen mTotales(1,2) mTotales=0 Sele sum(iif(activo, round(cantidad*precio, 2), 0)), sum(iif(activo, 0, round(cantidad*precio, 2))) from miTabla into array mTotales Ahora, veo que hay un error.. En realidad vos decís que en el tercer textbox debería ser subtotal-noactivos.. Y a mi me parece que no debería ser así.. fíjate Cantidad por precio de los activos=1000 Cantidad por precio de lo no activos: 300 Tercer textBox=700 A mi me parece que es: Tercer textBox=1300 (porque creo que vos quieres discriminar los activos, los no activos del total) O puede ser también.. Total de todo: 1300 Total no activo: 300 Tercer textbox=1000 (ahí si resta) pero en la primera son todos, no los activos.. Por las dudas yo en el select hice todos los activos y por otro lado los no activos, vos con esos dos datos haces como quieras en los textBox.. Entonces dijimos: Dimen mTotales(1,2) mTotales=0 sele sum(iif(activo,round(cantidad*precio,2),0)), sum(iif(activo,0,round(cantidad*precio,2))) from miTabla into array mTotales thisform.textBox1=mTotales(1,1) thisform.textBox2=mTotales(1,2) thisform.textBox3=mTotales(1,2)+mTotales(1,2) Este codigo lo podes poner en un procedimiento "calcula" por ejemplo y llamarlo desde los valid de los controles dentro de las columnas.. Bueno, espero que te haya sido de utilidad la respuesta y cualquier cosa estoy a tu disposición.. Si te parece bien, cerra y califica la respuesta.. muchas gracias Keystone - Christian www.keystone.com.ar
Perdon. me falto el value en todos los textbox.. thisform.textBox1.VALUE=mTotales(1,1)
Gracias keystonesys por tu ayuda, y disculpa mi ignorancia, pero soy muy novato y quiero preguntarte lo siguiente: 1.- ¿En el evento valid de las columnas creo un procedure calcula y pongo todo el código que me diste?. 2.- Si es así... yo puse esto en el evento Valid. DO calcula PROCEDURE calcula dimen mTotales(1,2) mTotales=0 sele sum(iif(activo,round(cantidad*precio,2),0)), sum(iif(activo,0,round(cantidad*precio,2))) from miTabla into array mTotales thisform.txtSubtotal.Value = mTotales(1,1) thisform.txtTcero.Value = mTotales(1,2) thisform.txtTotal.Value = mTotales(1,2)+ mTotales(1,2) ENDPROC y me sale este error: Methods and events cannot contain nested procedures or class definitions. A que se debe eso, ¿o qué es lo que estoy haciendo mal?
No En el formulario, crear un método (se hace en el menu form, new metod) y le pones de nombre "calcula" y el código que te pasé, fíjate que el método ese esta al final de los métodos del formulario.. En el valid de los controles de la columna, no en la columna porque no tiene.. Grid Column TextBox o CheckBox (aca) Pones thisform. Calcula() Eso es.. Keystone - Christian www.keystone.com.ar