No funcionara, pero está muy bonito.
¿que es lo que tiene que volver del formulario de recibos? En las imagenes que mandas, esta todo como vacio.
En el ida y vuelta de un lado para el otro, fijate que si estas usando el tema de compartir el entorno de datos entre ambos formularios, disparar un refresh() cuando volves.
Otra receta, es que en casos como el que mostras, yo en realidad no uso dos formularios, sino que en realidad es el mismo, usando un gran pageframe sin los tabs (tabs = .f.) donde en las diferentes paginas ubico las diferentes funciones que se deben hacer.
Un ingreso de cobranzas o una emision de ordenes de pago, pueden a llegar a tener 15 o 17 paginas para ir y venir haciendo las locuras que el cliente quiere (ya se sabe, en argentina estamos todos un poco locos)
Es una solucion muy practica para estos casos complejos, ya que no hay tema de datos a compartir, y usas facilmente propiedades del form para controlar cosas, por ejemplo thisform.totalfactura, thisform.totalefectivo, thisform.totalcartera que te van dando los importes manejados en cada solapa como si fuera un form independiente.
Y la barra de botones de cada "subpantalla" cambia desde el evento activate de la pagina que se trate.
Incluso la ventaja adicional de que el pasaje de uno al otro es mas rápido, ya que todo esta inicializado y creado.
Volviendo a tu caso especifico (me acaba de aparecer tu aclaracion) la devolucion tene presente que es un solo campo, asi que lo tenes que "armar" antes de devolverlo en el unload, algo asi como
lcrespuesta = str(thisform.txt5.value)+thisform.txt6+str(thisform.txt15,10,2)
return lcrespuesta
al volver al formulario madre, esto te queda en una variable que tenes que "desarmar" para obtener cada parcial
do form recibo to lcacavuelve && que es el comando para llamar al otro formulario
lnnrorec = val(substr(lcacacuelve,10))
lccliente = substr(lcacavuelve,11,50) && o lo que mida el nombre del cliente
lnimporte = val(right(lcacacueve,10))
Espero que te sirvan estas ideas
Jorge