• Domingo 22 de Diciembre de 2024, 15:14

Autor Tema:  Sumar valores de distinas ventanas (Form1, Form2 etc..)  (Leído 3367 veces)

richystrikis

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Sumar valores de distinas ventanas (Form1, Form2 etc..)
« en: Lunes 23 de Mayo de 2011, 04:37 »
0
Hola
Necesito ayuda, hice un programa para mi clase, y ya lo tengo casi todo listo.
Este es un programa donde esta incluido un menú de restaurante, donde está divido en diferentes secciones (Forms,2,3,4,5)  que serian desayunos, comida, bebidas, postres, están cada una en sus ventanas, y cada producto tiene precio y suma las cantidades que el usuario quiere pedir, todo va bien, y cuando termina de sumar crea un ''Subtotal'' de cada seccion ahora quiero sumar todos los subtotales (desayunos comidas bebidas postres) y ponerlos en la ventana principal el resultado para tener un ''total'' o lo que se podría decir ''la cuenta total'' pero mi problema es que cada uno esta en diferentes ventanas o Forms y no se como sumarlas si cada una esta en la ventana y no puedo incluir las diferentes en una sola ¿Como le hago necesito ayuda!?


Gracias :)

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #1 en: Lunes 23 de Mayo de 2011, 17:13 »
0
Una manera sencilla de hacerlo sería la siguiente:
Formulario principal, desde donde habrimos todos los formularios
Código: C#
  1. public partial class Form1 : Form
  2.     {
  3.         public Form1()
  4.         {
  5.             InitializeComponent();
  6.         }
  7.  
  8.         Form2 f2 = new Form2(); //declaramos los nuevos formularios GLOBALMENTE
  9.  
  10.         private void Form1_Load(object sender, EventArgs e)
  11.         {
  12.             f2.Show();  //En el load o donde sea, abrimos los formularios
  13.  
  14.         }
  15.  
  16.         private void button1_Click(object sender, EventArgs e)
  17.         {
  18.  
  19.             textBox1.Text = f2.Variable; //en este caso, desde el boton cogemos la variable PUBLICA
  20.                                          //del primer formulario
  21.         }
  22.  
  23.     }
  24.  

Aqui uno de los formularios:
Código: C#
  1. public partial class Form2 : Form
  2.     {
  3.         public Form2()
  4.         {
  5.             InitializeComponent();
  6.         }
  7.  
  8.         public string Variable= "tannke";
  9.        
  10.     }
  11.  

Espero quede claro con estas lineas. hay maneras mas bonitas de hacerlo, con delegados y eventos, pero para este caso puede servirte.
Si no entiendes algo avisa. Un saludo

richystrikis

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #2 en: Martes 24 de Mayo de 2011, 04:30 »
0
Mira lo tengo así pero me dice que el contexto ''variable no existe''
es la principal (Form1)

Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9.  
  10. namespace WindowsApplication1
  11. {
  12.     public partial class Form1 : Form
  13.     {
  14.         public Form1()
  15.         {
  16.             InitializeComponent();
  17.         }
  18.  
  19.         Form2 f2 = new Form2();
  20.  
  21.         private void Form1_Load(object sender, EventArgs e)
  22.         {
  23.             f2.Show();
  24.         }
  25.  
  26.  
  27.  
  28.         private void button1_Click(object sender, EventArgs e)
  29.         {
  30.             Console.Beep(350, 100);
  31.  
  32.             //Definir la apertura de la nueva ventana
  33.             Form2 UnaHija = new Form2();
  34.             UnaHija.Show();
  35.             this.Hide();
  36.            
  37.         }
  38.  
  39.         private void button2_Click(object sender, EventArgs e)
  40.         {
  41.             Console.Beep(350, 100);
  42.  
  43.             //Definir la apertura de la nueva ventana
  44.             Form3 UnaHija = new Form3();
  45.             UnaHija.Show();
  46.             this.Hide();
  47.         }
  48.  
  49.         private void button3_Click(object sender, EventArgs e)
  50.         {
  51.             Console.Beep(350, 100);
  52.  
  53.             //Definir la apertura de la nueva ventana
  54.             Form4 UnaHija = new Form4();
  55.             UnaHija.Show();
  56.             this.Hide();
  57.         }
  58.  
  59.         private void button4_Click(object sender, EventArgs e)
  60.         {
  61.             Console.Beep(350, 100);
  62.  
  63.             //Definir la apertura de la nueva ventana
  64.             Form5 UnaHija = new Form5();
  65.             UnaHija.Show();
  66.             this.Hide();
  67.         }
  68.  
  69.         private void button5_Click(object sender, EventArgs e)
  70.         {
  71.  
  72.             textBox1.Text = f2.Variable;
  73.            
  74.            
  75.  
  76.         }
  77.  
  78.     }
  79. }
  80.  


En donde dice '' private void button5_Click(object sender, EventArgs e'' es el botón donde quiero que al darle click me calcule el subtotal dela Form2, Form3, Fomr4, Form5, y me la ponga en una caja de texto (Textbox1.text) que está en la Form1 que es esa que te presento

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #3 en: Martes 24 de Mayo de 2011, 16:39 »
0
en tu form2 tienes una variable tipo "string" declarada con el nombre "Variable" y publica?

richystrikis

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #4 en: Miércoles 25 de Mayo de 2011, 05:10 »
0
Listo ya la puse la variable string publica ahora quiero poner el resultado de una MaskedTextBox1.Text de cada Form para que lo sume como le hago?

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #5 en: Miércoles 25 de Mayo de 2011, 20:14 »
0
Bueno, me imagino que los MaskedTextBox los tienes en los Forms 2, 3 ,4 y 5. Bueno, pues sería crear en estos una variable tipo "int" o "float" de momento publica para no complicarte y en esta almacenar el valor del MaskedTextBox ya sea a traves de un botón o de cualquier evento (tipo textchanged).

Lo siguiente, viendo tu codigo en el form principal, en los botones donde abres el resto de forms, lo que tienes que hacer es declarar esos forms globalmente algo asi:
Código: C#
  1.  
  2. Form2 UnaHija2;
  3. Form3 UnaHija3;
  4. Form4 UnaHija4;
  5. Form5 UnaHija5;
  6.  
  7. private void button1_Click(object sender, EventArgs e)
  8.         {
  9.             Console.Beep(350, 100);
  10.  
  11.             //Definir la apertura de la nueva ventana
  12.             UnaHija2 = new Form2();
  13.             UnaHija2.Show();
  14.             this.Hide();
  15.            
  16.         }
  17.  
  18. private void button2_Click(object sender, EventArgs e)
  19.         {
  20.             Console.Beep(350, 100);
  21.  
  22.             //Definir la apertura de la nueva ventana
  23.             UnaHija3 = new Form3();
  24.             UnaHija3.Show();
  25.             this.Hide();
  26.         }
  27.  
  28.      ......
  29.  
  30.  

para luego desde cualquier evento (sea boton..) poder llamar a las variables de estos formularios y poder hacer la suma:

Código: C#
  1.  
  2. private void button5_Click(object sender, EventArgs e)
  3.         {
  4.  
  5.             textBox1.Text = (UnaHija2.variableint + UnaHija3.variableint  + ... ).ToString();
  6.  
  7.         }
  8.  
  9.  

Para lo de declarar las variables de momento publicas que te dije mirate el tema de get/set, para segun que cosas es mucho mejor, y en este caso podría ser mejor.

Un saludo

richystrikis

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #6 en: Lunes 6 de Junio de 2011, 02:13 »
0
Hola de nuevo no he podido resolver mi problema por favor ayudame te dejo mi programa para que me hagas que sume los subtotales por fa...

download56.mediafire.com/1719by4c162g/snndxw9g9dhy6ah/WindowsApplication1.zip

ayudame me urgeee
espero no molestarte mucho

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #7 en: Lunes 6 de Junio de 2011, 15:40 »
0
Lo que dice tankee, es totalmente correcto, ahora  si no la entendiste, te doy una forma (muy muy similar, para no decir que IGUAL a la que el te dice)...

En cada formulario, declara una variable global DECIMAL y además que sea pública, ejemplo:

Código: C#
  1.  
  2. public decimal SubTotal = 0.0;
  3.  
  4.  

Entonces en el evento TextChanged de tus MaskedBox de CADA FORMULARIO , deberás poner lo siguiente:

Código: C#
  1.  
  2.   private void maskedTextBox1_TextChanged(object sender, EventArgs e)
  3.         {
  4.                    SubTotal = decimal.Parse(maskTextBox1.Text)
  5.         }
  6.  
  7.  

Entonces, cuando quieras llamar a tú Total FINAL desde tu "Formulario Principal", me imagino que tendrás algún botón o algo por el estilo, entonces en el evento Click del botón vas a llamar a cada una de las variables "SubTotal" de cada formulario que supongo debería estar abierto (Si tus formularios los cierras obviamente se perderá el valor de tu variable "Subtotal" del formulario que hayas cerrado). Entonces en el evento Click deberá ir lo siguiente:

Código: C#
  1.  
  2. //Doy por entendido que tienes declaradas ya los objetos de cada formulario (donde supongo abriste los formularios con un objFormulario1.Show(), objFormulario1 seria el objeto de tu Fom1 por ejemplo).
  3.  
  4. decimal  Total = 0.0;
  5.  private void button1_Click(object sender, EventArgs e)
  6.         {
  7.                Total = objFormulario1.Subtotal + objFormulario2.Subtotal + objFormularioN.Subtotal; // Aquí la suma de TODOS TUS FORMULARIOS.      
  8.                 MessageBox.Show(Total.ToString());
  9.         }
  10.  
  11.  

Y ya, tienes el TOTAL de todo, este fue un ejemplo rápido, yo en lo personal agregaria unas 2 o 3 validaciones más..  y también lo haría de otra manera solo que es mucho más complicada y pues por la rápidez te explique está forma.. un saludo espero te sirva cualquier duda PREGUNTA! :)..  suerte!
@gabio87

richystrikis

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #8 en: Lunes 6 de Junio de 2011, 18:10 »
0
Lo hice tal cual para que solo me mostrara un subtotal en la principal y me salieron muchos errores :(

espero me lo resuelvas solo ponle lo que dices en mi programa te dejo el link para que lo descargues y lo habras y lo acomodes solo te pido eso por que yo le intento y me salen muchísimos errores

copea y pega:

Citar
download56.mediafire.com/1719by4c162g/snndxw9g9dhy6ah/WindowsApplication1.zip

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Sumar valores de distinas ventanas (Form1, Form2 etc..)
« Respuesta #9 en: Lunes 6 de Junio de 2011, 18:31 »
0
no lo puedo resolver por tí amigo, yo trabajo y ando ocupado también resolviendo mis propios problemas de mi trabajo (no me estoy quejando, simplemente lo menciono por que estó es para la gente que realmente le gusta resolver problemas por si mismos), esto es para dudas, no hacer tareas, para preguntar, tienes que ser específico, por ejemplo cual fue el PRIMER error que marco.. y por que piensas que puede ser?.. ya luego muestras la linea donde marca el error.. y así se van resolviendo las dudas.. te repito.. almenos.. YO.. NO HAGO TAREAS.. solo ayudo.. .. un saludo.. puedes seguir preguntando..
@gabio87