In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

pasar datos de un tarraybrowse a otro formulario

Foro público de Xailer en español
Responder
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

pasar datos de un tarraybrowse a otro formulario

Mensaje por lilosoft »

Buenas tardes junto con saludar. Alguién me podría ayudar necesito pasar los datos que contiene un array browse en un formulario y pasar los datos a otro formulario .
o de otra forma si tengo un array browse en un formulario poder modificarlo en otro

A continuación muestro como llamo al otro formulario en donde en el arraybrowse (oBrwSelbono) es llenado luego al retornar agrego los datos en aLines para incluirlos en el arreglo oBrwBono que se encuentra en el formulario inicial.
Bueno esto no me funciona y no se como hacerlo. por favor alguien que me pueda ayudar.

De antemano muchas gracias.

METHOD BtnAgreBonClick( oSender ) CLASS TFrmPerEdi
Local aLines := {}
Local I := 1

WITH OBJECT TFrmSelBono():New( Application:oMainForm )
:cText := "Agrega Bono"
IF :ShowModal() == mrOK
While :oBrwSelBono:GetValue(1, I) != Nil
If :oBrwSelBono:GetValue(4, I) = "*"
AAdd(aLines, { :oBrwSelBono:GetValue(1, I), :oBrwSelBono:GetValue(2, I), :oBrwSelBono:GetValue(3,I)})
End If
I++
End
::oBrwBono:aArrayData := aLines
End IF
:End()
End With

RETURN Nil
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por XeviCOMAS »

Para poder acceder a otro formulario i TODOS sus controles/eventos/datas...

Local aForms := Application:aForms
If (nAscan := aScan( aForms , {|o| o:ClassName() == TFrmSelBono():ClassName() } )) > 0
//Aquí todo el código que quieras
puedes acceder a cualquier objeto... por ejemplo
aForms[nAscan]:oBrwBono:aArrayData := aLines
//
EndIf


Espero te sirva.

Un Saludo,
Xevi.
Un Saludo,
Xevi.
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por lilosoft »

Muchas gracias
voy a probar y te cuenta
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por lilosoft »

Por favor He estado haciendo pruebas pero no logro hacerlo funcionar, por favor me podrías ayudar.
En el siguiente código el formulario TfrmSelBono no se abre por lo tanto no puedo hacer la selección.
Me podrías indicar que estoy haciendo mal

Este método lo ejecuto desde mi primer formulario, donde en teoría se llama al segundo el cual llena oBrwSelBono cuando retorna llenaría oBrwBono.
Obviamente como el segundo formulario no se abre como indico anteriormente no se llena oBrwSelBono


METHOD BtnAgreBonClick( oSender ) CLASS TFrmPerEdi
Local aLines := {}
Local I := 1
Local nAscan
Local aForms := Application:aForms

If (nAscan := aScan( aForms , {|o| o:ClassName() == TFrmSelBono():ClassName() } )) > 0

While aForms[nAscan]:oBrwSelBono:GetValue(1,I) != Nil
If aForms[nAscan]:oBrwSelBono:GetValue(4,I) = "*"
AAdd(aLines, {aForms[nAscan]:oBrwSelBono:GetValue(1,I), ;
aForms[nAscan]:oBrwSelBono:GetValue(2,I), ;
aForms[nAscan]:oBrwSelBono:GetValue(3,I)})
End If
I++
End
::oBrwBono:aArrayData := aLines
::oBrwBono:Refresh()
EndIf
Avatar de Usuario
emeasoft
Mensajes: 1088
Registrado: Mié Abr 01, 2009 4:12 pm
Ubicación: emeasoft
Contactar:

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por emeasoft »

English:

Hello Lilosoft,

Are you sure there is a "*" on any of the rows of the arraybrowse? Because I can't see what is wrong with your code.
Here goes a test with the same code...

Regards,
Juliano

Spanish by Google Translator:

Hola Lilosoft,

¿Estás seguro de que hay un "*" en cualquiera de las filas del arraybrowse? Porque no puedo ver lo que está mal con tu código.
Aquí va una prueba con el mismo código ...

Saludos,
Juliano
Adjuntos
Teste.zip
(43.74 KiB) Descargado 130 veces
Última edición por emeasoft el Vie Ago 11, 2017 2:12 pm, editado 1 vez en total.
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por lilosoft »

Muchas gracias
Ahora si funciono, seguí el ejemplo y funciono.
Nuevamente muchas gracias

Quedaría así

METHOD BtnAgreBonClick( oSender ) CLASS TFrmPerEdi
Local aLines := {}
Local I := 1

::oBrwBono:Zap()
WITH OBJECT TFrmSelBono():New()
:ShowModal()
For I := 1 To Len( :oBrwSelBono:aArrayData )
If :oBrwSelBono:aArrayData[I,4]$"*"
AAdd( aLines ,{:oBrwSelBono:aArrayData[I,1],:oBrwSelBono:aArrayData[I,2],:oBrwSelBono:aArrayData[I,3]} )
End If
Next
::oBrwBono:aArrayData := aLines
:end()
End With

RETURN Nil
Avatar de Usuario
xhermita
Mensajes: 177
Registrado: Vie Feb 18, 2011 10:05 pm
Ubicación: Las Palmas de Gran Canaria
Contactar:

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por xhermita »

Igual llego un poco tarde, pero igual te sirve esta solución algo más compacta.

Código: Seleccionar todo

   with object TForm2():New(oSender)
      if :ShowModal() == mrOK
         ::oArrayBrowse1:Zap()
         ::oArrayBrowse1:aArrayData := :oArrayBrowse1:aArrayData
      endif
   end with
Te adjunto proyecto de prueba.
prueba.zip
(3.22 KiB) Descargado 117 veces
Saludos
Pedro Amaro
2PC Service

Xailer / Néfele / MySQL-MariaDB / SQLServer
Avatar de Usuario
emeasoft
Mensajes: 1088
Registrado: Mié Abr 01, 2009 4:12 pm
Ubicación: emeasoft
Contactar:

Re: pasar datos de un tarraybrowse a otro formulario

Mensaje por emeasoft »

Glad to hear that everything is working now!

Regards,
Juliano

Spanish:

Me alegro de saber que todo está funcionando ahora!

Saludos,
Juliano
Responder