Foros del Web » Programación para mayores de 30 ;) » .NET »

Realizar Operacion dentro de un DataGridView

Estas en el tema de Realizar Operacion dentro de un DataGridView en el foro de .NET en Foros del Web. hola a todos, soy nuevo en este foro y quisiera que me ayuden con un problemita que lo tengo hace un par de dias...lo que ...
  #1 (permalink)  
Antiguo 03/01/2009, 16:55
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Realizar Operacion dentro de un DataGridView

hola a todos, soy nuevo en este foro y quisiera que me ayuden con un problemita que lo tengo hace un par de dias...lo que sucede es que yo cree un datagrid con 2 columnas autogeneradas, que la extraen de la base de datos. Y aparte, manualmente cree 3 columnas mas pero mediante las propiedades del datagrid que son:

Cantidad, Precio y SubTotal (Los 3 textboxcolumn estan vacios, pero yo voy a ingresar la CANTIDAD y el PRECIO)

Lo que yo quiero es que al presionar el boton GENERAR realice la operacion de SubTotal=Cantidad * Precio

Pero que NO lo guarde en la base de datos...

Le estare muy agradecido x la ayuda....
  #2 (permalink)  
Antiguo 04/01/2009, 00:10
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Podes pegar el codigo que ya tengas hecho ingresndo la CANTIDAD y el PRECIO?
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #3 (permalink)  
Antiguo 04/01/2009, 16:03
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Bueno aqui subi una foto para ilustrar mejor, pero lo que yo decia es que cree los textboxcolumn mediante propiedad del datagrid al cual llame : Cantidad, Precio y SubTotal

http://www.freeimagehosting.net/image.php?7b929475a1.jpg
Esta es sin generarla...

Luego al generar me va a aparecer esta pantalla donde jala los datos del SQL.

http://www.freeimagehosting.net/image.php?04b38e9dc5.jpg
Aqui luego de generar...

El problema es cuando quiero realizar la operacion de cada :

SubTotal[i] = Precio[i] * Cantidad[i]...

Pero no encuentro que comandos poner...te agradecere mucho que me puedas ayudar

=D
  #4 (permalink)  
Antiguo 04/01/2009, 21:30
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Te podre ayudar con todo gusto cuando me pegues aqui el codigo de como llenas tu listado.
Saludos
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #5 (permalink)  
Antiguo 05/01/2009, 07:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Lo normal es que ese campo se complete sin necesidad de un boton, agregando el codigo al evento CellValueChanged de tu datagridview, algo asi

Código PHP:
       If DataGridView1.Rows.Count 1 Then
            
If e.ColumnIndex 0 Then 'index del campo cantidad
                DataGridView1.Rows(e.RowIndex).Cells("SubTotal").Value = DataGridView1.Rows(e.RowIndex).Cells("Cantidad").Value * DataGridView1.Rows(e.RowIndex).Cells("Precio").Value
            ElseIf e.ColumnIndex = 1 Then '
index del campo precio
                DataGridView1
.Rows(e.RowIndex).Cells("SubTotal").Value DataGridView1.Rows(e.RowIndex).Cells("Cantidad").Value DataGridView1.Rows(e.RowIndex).Cells("Precio").Value
            End 
If
        
End If 
Pero si lo que quieres es hacerlo por un boton, agregas esto al evento click del boton

Código PHP:
 For As Integer 0 To DataGridView1.Rows.Count 2
            DataGridView1
.Rows(i).Cells("SubTotal").Value DataGridView1.Rows(i).Cells("Cantidad").Value DataGridView1.Rows(i).Cells("Precio").Value
        Next 
  #6 (permalink)  
Antiguo 05/01/2009, 09:39
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

public partial class Frm_Pedido : Form
{//Objero de la clase cPedido
cPedidos sima;
public Frm_Pedido()
{
InitializeComponent();
}
private void Frm_Pedido_Load(object sender, EventArgs e)
{
//El metodo "GenerarClientesParaPedido" llama a la tabla clientes y muestra todos los nombres de los clientes de la base de datos, para luego //los textbox se generan automaticamente

sima = new cPedidos();
dataGridView1.DataSource = sima.GenerarClientesParaPedido().Tables[0];
}
private void button4_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count-2; i++)
{
if (int.Parse(Cantidad.ToString()) > 0)
{
//this.SubTotal.DataGridView.Rows[i].Cells[2] = Cantidad.DataGridView.Rows[i].Cells[2] * Precio.DataGridView.Rows[i].Cells[2];
//double SubTotal = double.Parse(Cantidad.ToString()) * double.Parse(Precio.ToString());
dataGridView1.Rows[i].Cells[SubTotal].Value = dataGridView1.Rows[i].Cells[Cantidad].Value * dataGridView1.Rows[i].Cells[Precio].Value;
}

}


}


}

Última edición por fernandeitor; 05/01/2009 a las 09:46
  #7 (permalink)  
Antiguo 05/01/2009, 09:51
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

public partial class Frm_Pedido : Form
{//Objero de la clase cPedido
cPedidos sima;
public Frm_Pedido()
{
InitializeComponent();
}
private void Frm_Pedido_Load(object sender, EventArgs e)
{
El metodo "GenerarClientesParaPedido" llama a la tabla clientes y muestra todos los nombres de los clientes de la base de datos, para luego //los textbox se generan automaticamente

sima = new cPedidos();
dataGridView1.DataSource = sima.GenerarClientesParaPedido().Tables[0];
}


private void button4_Click(object sender, EventArgs e)
{

for (int i = 0; i < dataGridView1.Rows.Count-2; i++)
{
if (int.Parse(Cantidad.ToString()) > 0)
{

dataGridView1.Rows[i].Cells[SubTotal].Value = dataGridView1.Rows[i].Cells[Cantidad].Value * dataGridView1.Rows[i].Cells[Precio].Value;

//Me dice que el DataGridViewTextBoxColumn NO se puede convertir a int.
}

}
}
  #8 (permalink)  
Antiguo 05/01/2009, 16:39
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Si manejas valores con decimales supongo que el valor int no te va a servir. Para que no te diera errores deberías hacer un casting a Double o Decimal (creo que estás usando ¿java?) bueno en cada valor harias algo así:


Ctype((dataGridView1.Rows[i].Cells[SubTotal].Value), Decimal) = Ctype((dataGridView1.Rows[i].Cells[Cantidad].Value), Decimal) * Ctype((dataGridView1.Rows[i].Cells[Precio].Value), Decimal) ;
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #9 (permalink)  
Antiguo 07/01/2009, 21:22
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Bueno yo estoy haciendo este trabajo en C# pero estaba intentando una forma y creo q se puede hacer mediante una variable y asignarle a cada textboxcolum.

Aqui les mando un codigo a ver si me pueden ayudar ...gracias



privatevoid Generar()
{
DataTable dt = newDataTable();
string CODCLIENTE, NOMCLIENTE, CANTIDAD, PRECIO, SUBTOTAL;
CODCLIENTE = (dataGridView1.Rows[i].Cells[0].Value).ToString();
NOMCLIENTE = dataGridView1.Rows[i].Cells[1].ToString();
PRECIO = dataGridView1.Rows[i].Cells[2].ToString();
CANTIDAD = (dataGridView1.Rows[i].Cells[3].Value).ToString();
SUBTOTAL = dataGridView1.Rows[i].Cells[4].ToString();
DataRow dr = dt.Rows.Find(CODCLIENTE);
if (int.Parse(CANTIDAD) > 0)
{
if (dr != null) //Ya esta en el carrito
{
//dr["DESCRIPCION"] = DESCRIPCION;
dr["Precio"] = PRECIO;
dr["Cantidad"] = CANTIDAD;
double dSUBTOTAL = double.Parse(PRECIO) * double.Parse(CANTIDAD);
dr["SubTotal"] = dSUBTOTAL.ToString("##0.00;(##0.00);0");
}
}
}

  #10 (permalink)  
Antiguo 08/01/2009, 12:34
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

no entiendo por que tanta vuelta...primero pasas los datos a string...luego a double,.... proba lo que te dije, pasalas a decimal o double haciendole un casting de una. Saludos
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #11 (permalink)  
Antiguo 08/01/2009, 22:39
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Bueno si me ayudo lo que dijiste, muchas gracias de verdad a Normandos y a javiercapi los comentarios aqui mando lo que programe en C# para que pueda realizar la operacion:


for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{

dataGridView1.Rows[i].Cells["SubTotal"].Value = double.Parse(dataGridView1.Rows[i].Cells["Cantidad"].Value.ToString()) * double.Parse(dataGridView1.Rows[i].Cells["Precio"].Value.ToString());
  #12 (permalink)  
Antiguo 09/01/2009, 11:17
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Realizar Operacion dentro de un DataGridView

Los dos tostring luego del value siguen sobrando.... =)
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.