Power Builder - como pasar datos de una datawindows a otra

 
Vista:

como pasar datos de una datawindows a otra

Publicado por martha (8 intervenciones) el 03/04/2003 23:58:10
Mi problema es el siguiente es para registrar prestamos de videos
Lo cual tengo una tabla llamada prestamos, otra maestros y otra responsables
La tabla de prestamos cuento con los campos siguientes: rfc, clv_res, no_adq, fecha de prestamo
Pero los datos los pido en datawindows diferentes en una sola ventana, ya que tengo dos botones uno que se llama NUEVO y otro que se llama OTRO, ya que un solo maestro puede hacer varios prestamos a la vez, entonces por lo que quiero que solo pida os datos de no_adq del video.

Como lo estoy haciendo es compartir los datos para posteriormente pasarlos en la datawindows de prestamos y guardarlos pero me dice que hay un error en compartir los datos, y después me saca el siguiente mensaje Datawindow does noy have UPDATE capability. Mi scrip es el siguiente

if dw_obtres.Sharedata(dw_prestamos)= -1 then
messagebox("error", "error de compartir datos")
end if

if dw_obtrmaeresp.Sharedata(dw_prestamo)= -1 then
messagebox("error", "error de compartir datos")
end if


if dw_prestamo.Update() <> -1 then
MessageBox("Aviso", "Se almaceno la información")
else
MessageBox("Aviso", "No se almaceno la información")
end if

Me pueden ayudar a encontrar mi error o bien a sugerirme como hacer lo que necesito
Gracias de antemano

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como pasar datos de una datawindows a otra

Publicado por Milson Cardona (613 intervenciones) el 04/04/2003 01:29:54
Un saludo especial desde COLOMBIA

el error es bastante diciente por si mismo, EL DW NO TIENE CAPACIDAD DE UPDATE.... esto es debido a que la propiedad ALLOW UPDATE esta deshabilitada....

para habilitarla debes hacer lo siguiente:
- CLICK en la opción de menú ROWS - UPDATE PROPERTIES
- dentro de la ventana que se te despliega debes habilitar la propiedad ALLOW UPDATE
- marcas o eliges las columnas del DW que desees actualizar al hacer el UPDATE en opción updateables columns
- eliges la tabla que desees actualizar con el DW, esta opción es para DW que se conponen de varias tablas "Table to Update", pero siempre debes elegir una.
-click en el boton "primary key" para que identifique la clave primaria de la tabla elegida.
-las otras opciones las puedes dejar por default.
-click en OK y listo, resolviste el problema para el error que te esta sacando..

ahora bien, mañana analizo el procedimiento que describes y te doy algún consejo para hacerlo de la manera más óptima.... hoy estoy apurado.

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como pasar datos de una datawindows a otra

Publicado por marianux (1 intervención) el 04/04/2003 02:08:56
Que es esa payasada de "estoy apurado."

mejor no contestes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

idea 1

Publicado por Milson Cardona (613 intervenciones) el 04/04/2003 17:41:33
Un saludo especial desde COLOMBIA

lo prometido es deuda y ya te tengo una sugerencia, que a mi manera de ver es más segura y más sencilla que estar controlando el shared, porque además debes de tener en cuenta que la función shared te comparte los datos registro a registro, es decir:
REG 1 del dw_obtres con REG 2 del dw_prestamo.
REG 2 del dw_obtres con REG 2 del dw_prestamo y asi sucesivamente.

en pocas palabras en el dw_obtres deberás tener tantos registros como en el dw_prestamo, y al parecer por tu comentario este no es el caso

NOTA: si estoy equivocado y algun forista puede corregirme se lo agradecería.

entonces mi propuesta es la siguiente.

- pides los datos principales del maestro en el dw_obtres
- en el dw_prestamo pides los datos del pretamo, exactamente como lo estas haciendo ahora pero sin compartir (shared) nada entre los DW.
- en el script donde guardas la información pones un ciclo para pasar la información que necesitas del dw_obtres al dw_prestamo
FOR li_i = 1 TO dw_prestamo.rowcount()
dw_prestamo.setitem(li_i,'campo_dw_prestamo',dw_obtres.getitemxxxx(dw_obtres.getrow(),'campo_dw_obtres'))
NEXT

NOTA2: dentro del ciclo pones todos los campos que necesites para de un DW al otro, y cambiar getitemxxxx por geitemstring, getitemnumber, etc según sea el caso.

CONTINUA......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

IDEA 2

Publicado por Milson Cardona (613 intervenciones) el 04/04/2003 17:42:53
CONTINUA DEL POST ANTERIOR

- al hacer el UPDATE reseteas los DW e insertas un nuevo registro en cada uno de ellos, la idea es que no puedan generar la información y prestamos de un nuevo profesor hasta que no guarde los prestamos del actual.
IF dw_prestamo.Update() = 1 THEN
MessageBox("Aviso", "Se almaceno la información")
dw_optres.reset()
dw_prestamo.reset()
dw_optres.insertrow(0)
dw_prestamo.insertrow(0)
ELSE
MessageBox("Aviso", "No se almaceno la información")
END IF

espero que sea entendible mi idea, y que resuelvas el problema... disculpame por no responderte ayer pero la verdad si tenía un poco de afán.... me comentas como te va
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar