Hola, Te propongo otras dos opciones según necesites: Si sólo necesitas pasar los datos, y no quieres vincular lo que se haga en una ventana con lo que se haga en la otra, puedes pasar la dw por blob de la siguiente manera. 1- //creas una estructura en la ventana origen y destino con una variable de tipo blob //(ya que no puedes pasar variables blob en el open de la ventana) //supongamos que a tu estructura la llamas str_ejemplo 2- En el evento/función donde vayas a abrir la otra ventana haces lo siguiente: //declaras una variable de tipo blob //y una estructura str_ejemplo lstr_ejemplo blob lblb_ejemplo //Recoges en la variable de tipo blob la dw origen dw_origen.getFullState(lblb_ejemplo) //introduces en el blob de la estructura el resultado lstr_ejemplo.lblb_estructura = lblb_ejemplo //abres la ventana destino pasando por parámetros la estructura OpenWithParm(w_destino, lstr_ejemplo) 3- //en el open de la ventana destino haces lo siguiente: //primero recoges la structura (recuerda que ya la has creado en el paso 1) str_ejemplo lstr_ejemplo lstr_ejemplo = Message.PowerObjectParm //luego estableces el resultado en la dw destino dw_2.setFullState(lstr_ejemplo.lblb_estructura) ------------------------------------------------------------------------------------------------------- //blob lbl_data //long k, ll_item //string ls_booking //int li_fila; li_fila = dw_1.getrow( ) //triggerevent("ue_nuevo") //triggerevent("ue_set_childs") //triggerevent("ue_antes_guardar") //triggerevent("ue_guardar_item") int li_fila; li_fila = dw_1.getrow( ) //st_Man.anio = Integer( em_1.text ) //st_Man.tipope = 'R' //st_man.anio_booking = st_man.anio //st_man.item_booking = dw_1.getitemnumber( li_fila, 'item' ) ////OpenWithParm( w_mant_booking, st_Man ) string retorno retorno = Message.StringParm If Not IsNull( retorno ) AND retorno <> '' Then UPDATE OPE_BOOKING SET OPE_BOOKING.ESTADO = 0 WHERE OPE_BOOKING.CODEMP = :amb.codemp AND OPE_BOOKING.CODLOCAL = :amb.codloc AND OPE_BOOKING.ANIO = :st_man.anio_booking AND OPE_BOOKING.ITEM = :st_man.item_booking USING sqlca ; IF sqlca.sqlcode = 0 Then COMMIT USING sqlca ; Else fn_mostrarerrorbd( sqlca, 'Ha ocurrido un error al intentar anular el booking roleado' ) ROLLBACK USING sqlca ; End If Event ue_recuperar_du( ) End If // ////string(dw_1.object.item[1]) ////messagebox('item',string(dw_1.object.item[1])) ////string(dw_1.object.nro_booking[1]) // //ls_booking='' //dw_1.object.nro_booking[1] =ls_booking // //dw_1.object.item[1]=setnull(ll_item) //st_man.item_booking = dw_1.getitemnumber( li_fila, 'item' ) // // //dw_1.Getfullstate(lbl_data) //dw_1.accepttext( ) //// k=dw_1.insertrow(0) //// dw_1.scrolltorow(k) //// event ue_nuevo_registro(k) //dw_1.SetFullState( lbl_data) // --------------------------------------------------------------------------- roleooooo int li_fila; li_fila = dw_1.getrow( ) st_Man.anio = Integer( em_1.text ) st_Man.tipope = 'R' st_man.anio_booking = st_man.anio st_man.item_booking = dw_1.getitemnumber( li_fila, 'item' ) OpenWithParm( w_mant_booking, st_Man ) string retorno retorno = Message.StringParm If Not IsNull( retorno ) AND retorno <> '' Then UPDATE OPE_BOOKING SET OPE_BOOKING.ESTADO = 0 WHERE OPE_BOOKING.CODEMP = :amb.codemp AND OPE_BOOKING.CODLOCAL = :amb.codloc AND OPE_BOOKING.ANIO = :st_man.anio_booking AND OPE_BOOKING.ITEM = :st_man.item_booking USING sqlca ; IF sqlca.sqlcode = 0 Then COMMIT USING sqlca ; Else fn_mostrarerrorbd( sqlca, 'Ha ocurrido un error al intentar anular el booking roleado' ) ROLLBACK USING sqlca ; End If Event ue_recuperar( ) End If -------------------------------------------------------------------------------------- ultimo blob lbl_data //This.title = This.title + ' - ROLEO' pb_guardar.enabled = True pb_eliminar.enabled = False int li_fila li_fila = dw_1.insertrow( 0 ) dw_1.scrolltorow( li_fila ) ids_booking = Create DataStore ids_booking.dataobject = 'dw_booking' ids_booking.settransobject( sqlca ) ids_booking.retrieve( amb.codemp, amb.codloc, st_man.anio_booking, st_man.item_booking ) int li_i string ls_campo, ls_tipo For li_i = 1 To Integer( dw_1.describe( 'DataWindow.Column.Count' ) ) ls_campo = dw_1.describe( '#' + String( li_i ) + '.Name' ) ls_tipo = dw_1.describe( ls_campo + '.coltype' ) dw_1.Getfullstate(lbl_data) //dw_1.accepttext( ) //// k=dw_1.insertrow(0) //// dw_1.scrolltorow(k) //// event ue_nuevo_registro(k) dw_1.SetFullState( lbl_data) // Choose Case ls_tipo // Case 'date' // dw_1.setitem( li_fila, ls_campo, ids_booking.getitemdate( 1, ls_campo ) ) // Case 'datetime' // If ls_campo <> 'fec_reg_booking' And ls_campo <> 'fec_reg' Then // dw_1.setitem( li_fila, ls_campo, ids_booking.getitemdatetime( 1, ls_campo ) ) // End If // Case 'decimal' // dw_1.setitem( li_fila, ls_campo, ids_booking.getitemdecimal( 1, ls_campo ) ) // Case 'long' // If ls_campo <> 'item' And ls_campo <> 'estado' And & // ls_campo <> 'cant_bultos' And & // Left( ls_campo, 12 ) <> 'cant_equipos' Then // dw_1.setitem( li_fila, ls_campo, ids_booking.getitemnumber( 1, ls_campo ) ) // End If // Case Else // If Left( ls_tipo, 4 ) = 'char' And ls_campo <> 'nro_booking' Then // dw_1.setitem( 1, ls_campo, ids_booking.getitemstring( 1, ls_campo ) ) // End If // End Choose Next Event ue_nuevo_registro( li_fila ) Destroy ids_booking Return 1 --------------------------------------------------------------- li_fila = dw_1.insertrow( 0 ) dw_1.scrolltorow( li_fila ) ids_booking = Create DataStore ids_booking.dataobject = 'dw_booking' ids_booking.settransobject( sqlca ) ids_booking.retrieve( amb.codemp, amb.codloc, st_man.anio_booking, st_man.item_booking ) int li_i string ls_campo, ls_tipo For li_i = 1 To Integer( dw_1.describe( 'DataWindow.Column.Count' ) ) ls_campo = dw_1.describe( '#' + String( li_i ) + '.Name' ) ls_tipo = dw_1.describe( ls_campo + '.coltype' ) Next ----------------------------------------------------------------------- st_Man.anio = Integer( em_1.text ) st_Man.tipope = 'N' OpenWithParm( w_mant_booking, st_Man ) string retorno retorno = Message.StringParm If Not IsNull( retorno ) AND retorno <> '' Then Event ue_recuperar( ) ------------------------------------------------------------------------ DUPLICAR blob lbl_data string ls_booking, ls_Resp int li_fila; li_fila = dw_1.getrow( ) long ll_row, ls_null, ll_item string retorno setnull(ls_null) dw_1.Getfullstate(lbl_data) dw_1.accepttext( ) dw_1.reset() li_fila = dw_1.insertrow( 0 ) dw_1.scrolltorow( li_fila ) dw_1.SetFullState(lbl_data) ls_booking='' //dw_1.setTransobject ( sqlca) dw_1.object.item[1]= ls_null dw_1.object.nro_booking[1] =ls_booking //ls_dupl='D' // is_tipope = 'N' // xmoneda_pag fehtrjtukiylñoñoñoiñ pb_nuevo.triggerevent(Clicked!) Event ue_nuevo_registro( li_fila ) ----------------------------------------- FLAG_LOGIS_ASIGNADO, OPE_BOOKING.FLAG_FLETE_ASIGNADO dwc.getitemstring( dwc.getrow( ), 'direccion' ) --------------------------------------------------------- st_mantenimiento st_Man dw_1.acceptText() If dw_1.Rowcount() <= 0 then return ls_codigo = Trim(dw_1.object.codigo[dw_1.getrow()]) If Len(ls_codigo) = 0 or isnull(ls_codigo) then return st_Man.codigo = dw_1.object.codigo[dw_1.getrow()] st_Man.anio = integer(uo_par.ii_año) // ******************************************** st_Man.tipope = 'V' // ******************************************** openwithParm(w_voucher_detalle,st_Man) ------------------------------------------- ------------------------------------ //evcgarcia 01/02/2016 long ll_iRow messagebox('hola',string(dw_1.rowcount())) if is_tipope='M' then 4551708193928119 dw_1.object.b_prop20.enabled = true end if //-----fin---01/02/2016 If is_tipope = 'V' Then //dw_1.Modify( "Datawindow.ReadOnly = no" ) /* dw_1.object.b_booking.enabled = false dw_1.object.b_instruccion.enabled =false dw_1.object.b_cliente.enabled = false dw_1.object.b_1.enabled = false dw_1.object.b_4.enabled = false dw_1.object.b_prop20.enabled = false dw_1.object.b_prop40.enabled=false dw_1.object.b_2.enabled = false dw_1.object.b_3.enabled = false*/ //Agregado AEP - Permitir modificar Consignatario y messagebox('fef', 'pasooo') //dw_1.object.item[1] = dw_1.object.item_booking // if dw_1.rowcount()<1 then return // ll_iRow=dw_1.getrow() // if ll_iRow <1 then return //if dw_1.object.estado[ll_iRow] = 0 then return // Event ue_modificar_en_ventana(w_mant_booking) if dw_1.rowcount( ) > 0 then messagebox('hola',string(dw_1.rowcount())) If dw_1.object.estado[ 1 ] >= 3 And dw_1.object.estado[ 1 ] < 5 Then dw_1.Modify( "Datawindow.ReadOnly = no" ) uf_bloqueo_dw( dw_1, 3 ) // pb_guardar.enabled = True p_1.enabled = True //End If //end if //end if end if else messagebox('Aviso', 'No se encontro el booking',Exclamation!) close(w_mant_booking) return end if ElseIf is_tipope = 'R' Then f_iniciarroleo( ) ElseIf is_tipope = 'B' Then title = title + ' - ROLEO NAVE' pb_guardar.enabled = True pb_eliminar.enabled = False This.triggerevent( "ue_recuperar_item" ) dw_1.Modify( "Datawindow.ReadOnly = yes" ) dw_1.object.b_booking.enabled = False dw_1.object.b_instruccion.enabled = False dw_1.object.b_cliente.enabled = False dw_1.object.b_1.enabled = False dw_1.object.b_4.enabled = True dw_1.object.b_prop20.enabled = False dw_1.object.b_2.enabled = False dw_1.object.b_3.enabled = False End If If amb.grupo_sistema = '042' Then dw_1.object.tipo_carga[ 1 ] = 1 dw_1.object.tipo_carga.Protect = 1 End If If dw_1.object.flag_roleo[ 1 ] = 1 Then pb_1.visible = True p_4.visible = True End If