Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Pasar Datos Entre Formularios (http://www.forosdelweb.com/f29/pasar-datos-entre-formularios-585972/)

amina 13/05/2008 11:08

Pasar Datos Entre Formularios
 
Hola, voy a intentar explicar mi problema. Para que os situeis: parto de una aplicación que recoge una serie de datos introducidos por el usuario.
La aplicación está en Visual C#. Una vez terminada me la pasaron a mi para realizar la segunda parte, que es generar un informe a partir de todos esos datos.

En una de las pestañas hay un botón, que al darle pues generara el informe.
Yo estoy programando ese botón.

Además tengo que coger información externa al programa que proviene de un excel. Para asegurarme de que por lo que sea este excel no este o surja algún problema quiero mostrar un segundo formulario donde puedan meter esa información externa a mano.

A través de un bloque try,cath controlo la excepción que produciría si no encontrase el archivo excell, es decir que conecto con un segundo formulario y al introducir los datos vuelvo a conectar al formulario principal para que el programa siga su curso. Mi problema es que una vez pasa al segundo formulario siguen sucediéndose todas las demás instrucciones cuando lo que yo quiero es que pare , vaya al segundo formulario y vuelva a ese mismo punto.

Lo siento sino me he explicado muy bien es que es complicado para mi decirlo con palabras ya que no soy una experta en este tema.

Creo que tiene que ver que todo lo hago dentro del mismo evento Button_Click pero es que tengo que hacerlo asi por motivos ajenos a mi.

Podríais ayudarme????????
Graciassssssssss por adelantado!!!!!!!!!!!!!!!!!!!!
Un saludo

Peterpay 13/05/2008 12:18

Re: Pasar Datos Entre Formularios
 
puedes poner tu codigo??

GeoAvila 13/05/2008 12:55

Re: Pasar Datos Entre Formularios
 
Cita:

Iniciado por amina (Mensaje 2402617)
Hola, voy a intentar explicar mi problema. Para que os situeis: parto de una aplicación que recoge una serie de datos introducidos por el usuario.
La aplicación está en Visual C#. Una vez terminada me la pasaron a mi para realizar la segunda parte, que es generar un informe a partir de todos esos datos.

En una de las pestañas hay un botón, que al darle pues generara el informe.
Yo estoy programando ese botón.

Además tengo que coger información externa al programa que proviene de un excel. Para asegurarme de que por lo que sea este excel no este o surja algún problema quiero mostrar un segundo formulario donde puedan meter esa información externa a mano.

A través de un bloque try,cath controlo la excepción que produciría si no encontrase el archivo excell, es decir que conecto con un segundo formulario y al introducir los datos vuelvo a conectar al formulario principal para que el programa siga su curso. Mi problema es que una vez pasa al segundo formulario siguen sucediéndose todas las demás instrucciones cuando lo que yo quiero es que pare , vaya al segundo formulario y vuelva a ese mismo punto.

Lo siento sino me he explicado muy bien es que es complicado para mi decirlo con palabras ya que no soy una experta en este tema.

Creo que tiene que ver que todo lo hago dentro del mismo evento Button_Click pero es que tengo que hacerlo asi por motivos ajenos a mi.

Podríais ayudarme????????
Graciassssssssss por adelantado!!!!!!!!!!!!!!!!!!!!
Un saludo


esta es tu respuesta,

http://msmvps.com/blogs/otelis/archi...-globales.aspx

nos vemos.

amina 14/05/2008 02:29

Re: Pasar Datos Entre Formularios
 
Cita:

Iniciado por Peterpay (Mensaje 2402785)
puedes poner tu codigo??


Hola, aqui lo tienes. He marcado donde esta el problema con el que me encuentro.
Mil gracias por responder!!


private void button116_Click(object sender, EventArgs e)
{
//*****************************************ANEXOA*** ************************************************** *********************



//-------------------ABRE WORD Y HACE COPIA PLANTILLA ANEXO
Word._Document doc;
Word.Application ApWord = new Word.Application();
//copio la plantilla original
string path_plantilla = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\Anexo A - informe europeo PRUEBA.doc";
string path_copia = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\AnexoACopia2.doc";
//string path_prueba = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\PruebaAnexo-A.doc";
File.Copy(path_plantilla, path_copia, true);
MessageBox.Show("Copia plantilla ok");

Object oMising = System.Reflection.Missing.Value;
//creo objeto de la clse Anexo A
AnexoA objAnexoA = new AnexoA();
//----------------------------ABRIR FICHERO EXCELL CON
//tendre que controlar si el fichero no existe
string rutaExcel;
openFileDialog2.Title = "Seleccionar el archivo de muestras";
openFileDialog2.Filter = "Archivos xls|*.xls";
ArrayList ALMuestras = new ArrayList();
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{

rutaExcel = openFileDialog2.FileName;
MessageBox.Show("La ruta es: " + rutaExcel);

//****Importa excel e inserta los datos en un array****\\

ALMuestras = objAnexoA.ImportaExcel();
MessageBox.Show("Importa Excell ok");





}

//----------------------------INSERTA TABLA MUESTRAS----------------------------------------------------------------------------

object param = path_copia;
//Abro Word
doc = objAnexoA.AbrirWord(param, oMising, ApWord);
Word.Range rng,rango;
Word.Table TablaMuestras,TablaContenedor,TablaElemPrinc;
Word.Table TablaAux;
//En el listBox1 estan todos los datos de la muestra, cada 7 lineas hay otra muestra
int lon = this.listBox1.Items.Count;
//Divido entre 7 para saber cuantas muestras hay en el listbox
int numeroM = lon / 7;

//extraemos el rango de la primera tabla que se tiene que insertar
int filaEliminar = 0;//contador que lleva el número de filas de la tabla contendor
string nombre = "Muestra";

rng = objAnexoA.BuscarRango(nombre, doc);

//**Inserto tabla contenedor**\\
//Esta tabla contendra todas las tablas que nesesita una muestra , porcada muestra necesitaremos 10 filas de la tabla contenedor
TablaContenedor = objAnexoA.InsertarTablaContenedor(numeroM*10, doc, rng, oMising);

//contador del listbox, cada 7 lineas hay una nuev muestra
contAnexoA = 0;

//**Copia del rango inicial**\\
rango = rng;
rango.Select();
//Muevo rango primera fila en una unidad de fila
object count = 1;
object unit = Word.WdUnits.wdRow;
rango.Move(ref unit, ref count);


//****Importa excel e inserta los datos en un array****\\
ArrayList ALMuestras = new ArrayList();
//RellenarExcel(ref ALMuestras); //Tengo que hacer un delegado o un evento!!!!!
try //AQUI ESTA EL PROBLEMA
{

AMuestras = objAnexoA.ImportaExcel();//EL ARCHIVO EXCELL QUE IMPORTO PUEDE DAR PROBLEMAS
MessageBox.Show("Importa Excell ok");
}
catch
{
ConectarForm3();//CON ESTO QUIERO CONECTAR A OTRO FORMULARIO DONDE QUIERO RECOGER DATOS
this.Hide();
F3.Show();
AMuestras = F3.AMuestrasOrigen;//AQUI SE RECOGEN LOS DATOS QUE VIENEN DEL OTRO FORMULARIO
MessageBox.Show("Importa Excell ok");

MessageBox.Show("ERROR CON EL EXCELL");
}

Peterpay 14/05/2008 06:31

Re: Pasar Datos Entre Formularios
 
Porq no haces

if(F3.ShowDialog()==DialogResult.Ok)
{
AMuestras=F3.AMuestrasOrigen;
MsgBx....
}

asi garantizas hasta q lo cierren o den click en ok o cancelar en ese formulario q se continue con la siguiente instrucción

amina 19/05/2008 04:44

Respuesta: Re: Pasar Datos Entre Formularios
 
Cita:

Iniciado por Peterpay (Mensaje 2403933)
Porq no haces

if(F3.ShowDialog()==DialogResult.Ok)
{
AMuestras=F3.AMuestrasOrigen;
MsgBx....
}

asi garantizas hasta q lo cierren o den click en ok o cancelar en ese formulario q se continue con la siguiente instrucción



Hola PeterPay!! Muchas gracias por tu respuesta , he estado probando y creo que me va a servir. Pero tengo una gran duda sobre como se usan los cuadros de diálogo. Lo que hace el if es que abre el formulario como si fuese un cuadro de diálogo y el valor devuelto por ese cuadro es ok cuando?? y en que lugar lo especifico en el otro formulario para que asi entre en el if y pueda pasar los datos que necesito????

Es que en ese tema estoy un poco verde y he buscado información pero no esta muy clara. Graciassss de nuevo

amina 19/05/2008 04:52

Respuesta: Re: Pasar Datos Entre Formularios
 
Cita:

Iniciado por amina (Mensaje 2410199)
Hola PeterPay!! Muchas gracias por tu respuesta , he estado probando y creo que me va a servir. Pero tengo una gran duda sobre como se usan los cuadros de diálogo. Lo que hace el if es que abre el formulario como si fuese un cuadro de diálogo y el valor devuelto por ese cuadro es ok cuando?? y en que lugar lo especifico en el otro formulario para que asi entre en el if y pueda pasar los datos que necesito????

Es que en ese tema estoy un poco verde y he buscado información pero no esta muy clara. Graciassss de nuevo

Hola ota vez!! Para que quede mas claro yo tengo tres botones en el otro formulario : Aceptar (Inserta datos), Cancelar(BorraDatos) y Volver(Conecta con el Formulario principal). Según tu respuesta yo debería decirle de alguna forma en uno de estos botones que quiero volver al formulario F1 al cumplirse la condición del if?? Es así?? O lo he entendido mal??

Gracias y un saludo


La zona horaria es GMT -6. Ahora son las 21:33.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.