Página 1 de 1
pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 12:20 am
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
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 10:50 am
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.
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 4:03 pm
por lilosoft
Muchas gracias
voy a probar y te cuenta
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 8:05 pm
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
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 9:32 pm
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
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Mié Ago 09, 2017 10:36 pm
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
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Jue Ago 10, 2017 4:12 pm
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.
Saludos
Re: pasar datos de un tarraybrowse a otro formulario
Publicado: Vie Ago 11, 2017 2:14 pm
por emeasoft
Glad to hear that everything is working now!
Regards,
Juliano
Spanish:
Me alegro de saber que todo está funcionando ahora!
Saludos,
Juliano