Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Pasar Inf De Una Pantalla A Otra
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Pasar Inf De Una Pantalla A Otra 
 
hola buenas tardes quisiera que me ayudaran en algo nuevamente, ¿como hago para pasar el resultado que tiene un ValueBox de una pantalla a otra?
me explico:
tengo una pantalla de Iva el resultado del iva me lo muestra en un ValueBox, tengo una pantalla principal llamada orden de pago que es la que me hace el llamado a la pantalla iva cuando hago click en un boton ¿como hago para pasar el resultado que tiene el ValueBox de iva para la pantalla principal orden de pago en un ValueBox que deje para ello en dicha pantalla?
agradezco su ayuda
 



 
Josec - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
Basicamente lo que estas preguntando es "como pasar variables de un formulario a otro",

Hay varios métodos:
1) Usando variables globales. (no recomendable)
Defines un modulo (lo llamas por ejemplo var) y en el creas una variable publica.


Esta variable publica es la que te va a servir para pasar los datos de un formulario a otro
En el formulario de "Iva", le asignas el valor
var.paso=valuebox1.value


En el formulario " orden de pago" lees el valor:
valuebox2.value=var.paso


2) Usando algo de programación orientada a objetos.

Explicación de Soplo, sobre como pasar de variables de un formulario a otro:

Pongamos que al pulsar un botón quieres que se abra otro formulario form2 (iva) y allí conocer valores de dos textboxes de form1.


2.1)º opcion

En Form2 (iva) creas la siguiente función:

private $txt1 as string, $txt2 as string

public sub _new(txt1 as string, txt2 as string)

$txt1=txt1

$txt2=txt2

end


Ahora en form1 en botón click pones lo siguiente:

private sub boton_click()

Dim F as NEW form2(textbox1, textbox2)

f.show

end


Lo que has hecho es crear una instancia en la que le pasas dos objetos existentes en form1. Esos dos objetos en este caso son dos textboxes, pero podría ser cualquier cosa. Por ejemplo yo suelo crear una única conexión a base de datos y la voy pasando a formularios según me va conviniendo).

También podrías pasarle el formulario entero. Entonces lo harías así

En form2
private $formu as form1

public sub _new(f as form1)

$formu=f

end


Y en form1 en el click del botón

public sub boton_click()

Dim F as new form2(ME)

F.show

end


Y ahora en form2 tendrías una variable conocida en todo el formulario llamada $Formu que contiene todo el formulario Form1.


2.2ª) opción

Puedes crearte propiedades a tu gusto. Pongamos que queremos dos propiedades nombre y cif que están escritas en dos textboxes de form1 y quieres pasarlas a form2.

En form2 pones

private $txt1 as string, $txt2 as string

property nombre as string ‘al hacer esto se crearán dos funciones read y write que pondré mas abajo

property cif as string ‘al hacer esto se crearán dos funciones read y write que pondré mas abajo


Las funciones estarán vacías pero les pongo el código para que funcione

public function Nombre_read()

return $txt1

end

public sub Nombre_write(value as string)

$txt1=value

end

public function cif_read()

return $txt2

end

public function cif_write(value as string)

$txt2=value

end
 

A partir de ahora en form1 tu puedes hacer utilizar las propiedades que has creado

private sub boton_click

Dim F as NEW form2

f.nombre=textbox1.text

F.cif=textbox2.text

end
 

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
Hay otra forma que seguro que muy pocos de vosotros habéis usado alguna vez: usando eventos.

En el formulario donde tienes el valuebox IVA, se declara un evento con un valor a pasar:


Formulario Padre

' gambas class file

'
Private f_iva As Form 'declaramos una variable tipo Form

Public Sub Form_Open()

' instanciamos nuestro formulario "iva"
f_iva = New Form2 As "FormIva"

End

Public Sub Button1_Click()

  f_iva.Show 'lo mostramos

End

'Declaramos el manejador del evento especial
'que tiene nuestro formulario "iva".
Public Sub FormIva_PasarIva(value As Integer)
  
  ValueBoxReceptor.Value = value
  
End
 



Formulario llamado (iva):

' gambas class file

Event PasarIva(valor As Integer)


Public Sub Button1_Click()
  ' Disparamos el evento antes de que se cierre el formulario
  ' el evento se propagará por la aplicación y lo interceptará
  ' la clase que instancia este formulario
  Raise PasarIva(ValueBox1.Value)
  Me.Close

End
 



Aún hay otra forma que luego explicaré

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
jguardon:

Muy curiosa esa forma:
Citar:
  ' Disparamos el evento antes de que se cierre el formulario
  ' el evento se propagará por la aplicación y lo interceptará
  ' la clase que instancia este formulario


Y muy gráfica la explicación

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
El otro método de pasar valores, siempre que los valores a pasar sean de tipo Entero (no funcionará para otro tipo de dato, como cadenas) es llamando al formulario que hemos llamado "iva" mediante "showmodal". Los formularios "modales" tienen la particularidad que pueden devolver un valor entero al cerrarse, lo cual usaremos para este menester:

En el formulario padre:

' gambas class file


Public Sub Button1_Click() 'boton que abre el form "iva"

  ValueBoxReceptor.Value = Form2.ShowModal()
  ' lo mostramos de forma modal. Es muy importante poner los paréntesis
  ' para usar el valor devuelto, que se lo asignamos al valuebox o lo que queramos.
End
 



En el formulario "iva":

' gambas class file


Public Sub Button1_Click()

  Me.Close(ValueBox1.Value)
  ' hemos pasado el valor del valuebox al método Close()
  ' del formulario, porque es un numero entero. Al cerrarse
  ' este formulario devolverá dicho valor.
End



Pues eso es todo. Este método solo puede usarse con números enteros, y seguro que será útil en algunos casos. Supongo que a Josec no le servirá porque que va a manejar valores de tipo float, es decir, números decimales que representan dinero.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
Jesús:

Creo que si puedes devolver algo mas que enteros en el ultimo ejemplo.

Poniendo la propiedad del segundo formulario Persisten a True para que aunque lo cierres y hagas creer al usuario que el
formulario ya no esta, cuando en realidad esta oculto.

Luego en el formulario uno utilizas por ejemplo:  variableformulario1=Formulario2.valor
Y como ya tienes el valor destruyes el formulario2 con Formulario2.Delete()

Esto lo tenéis en el manual de gambas en la pagina 106. Diálogos personalizados.

Y digo yo.
De una manera parecida  se podría pasar una variable a otro formulario por valor o referencia a un procedimiento del otro formulario.¿ Seria esto otra manera ?.

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
jsbsan muchas gracias por tu ayuda mira esto es lo que tengo esta es mi pantalla de orden de pago
/home/pasanteinf/Escritorio/Pantallazo.png
esta la del iva cuando doy click al boton de ordened de pago
/home/pasanteinf/Escritorio/Pantallazo-1.png
esta es como agrego inf y saca calculos
/home/pasanteinf/Escritorio/Pantallazo-2.png
y esto es lo que quiero que el valor del ultimo valuebox se muestre en la pantalla principal de orden en el texbox de alado del boton
/home/pasanteinf/Escritorio/Pantallazo-3.png
esto se hace como porque lo que entendi de lo que me mandaste es pasar valores de mi principal a la de iva y eso no es lo que quiero es lo contrario no se si estoy equivocado lo mas seguro es que si
 



 
Josec - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
pantallazo  Orden de pago
 pantallazo_1 iva
 pantallazo_2 carga de datos en iva
 pantallazo_3 esto es lo que quiero que el valor del ultimo valuebox de iva salga en la de orden en el valuebox de alado del boton
 



 
Josec - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
jguardon lamentablemente tu codigo no me sirvio me dice que no es posible cargar clase Form2 loading has already failed
 



 
Josec - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Inf De Una Pantalla A Otra 
 
yo creo que estoy haciendo todo mal ninguno de esos códigos me corren ayudenme please
los coloque como me sugirieron y nada
me medio sirvio el de jguardon el de solo enteros pero no me guarde la inf en el form iva porque cuando doy el ultimo valor a el valuebox ce cierra antes de guardarlo me imagino que es por el me.close(valuebox5.Value) a pesar de eso cuando cierra si me da el valor en el otro form claro en entero y lo necesito en decimal
AYUDAAAAAAAAAAAAAAAAAAA
 



 
Josec - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Máscaras De Pantalla soplo Aplicaciones/Fragmentos de Código 4 Viernes, 13 Noviembre 2009, 22:05 Ver último mensaje
soplo
No hay nuevos mensajes Pantalla De Bienvenida anahaga General 2 Martes, 09 Noviembre 2010, 09:50 Ver último mensaje
jsbsan
No hay nuevos mensajes La Pantalla Del Gestor De Empaquetado Se S... alki General 2 Sabado, 02 Julio 2011, 23:38 Ver último mensaje
alki
No hay nuevos mensajes Como Pasar De Una Fila A Otra En Un Gridview? jousseph Controles/Librerías/Componentes 4 Domingo, 28 Agosto 2016, 08:00 Ver último mensaje
jousseph
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario