Power Builder - Problema maestro-detalle

   
Vista:
Imágen de perfil de Leonardo Daniel A.

Problema maestro-detalle

Publicado por Leonardo Daniel A. (206 intervenciones) el 14/09/2017 18:22:43
Hola a todos... estoy teniendo un problema... al distribuir mi aplicacion.... me llevo la aplicacion a otra PC... y las ventanas que son maestro detalle me marcan error a la hora de generar el detalle, por algun motivo no me sacan el id del encabezado (aunque si lo tiene, porque el encabezado se graba con su id ) pero si lo ejecuto desde PowerBuilder todo funciona bien..!! que puede ser ?? me super urge, estan detenido esperando el sistema..!

image

lo que hago es


BOTON GUARDARd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if not f_valida_requeridos(dw_datos) then
	dw_datos.setcolumn( "id_viaje" )
	dw_datos.setfocus( )
	return
end if
 
if wf_valida_fechas() = false then
	dw_datos.setcolumn( "fecha" )
	dw_datos.setfocus( )
	return
end if
 
if dw_detalle.rowcount() = 0 then
	f_mensaje("A", "Add Load Expenses details")
	parent.pb_add.setfocus( )
	return
end if
 
if wf_valida_detalle() = false then
	f_mensaje("I", "Fill the empty fields")
	dw_detalle.setcolumn( "fecha" )
	dw_detalle.setfocus( )
	return
end if
 
if dw_datos.of_guardar() then
  	commit ;
	dw_datos.ib_modificado = false
 
	wf_pon_id_detalle()   // aqui mando poner el ID del encabezado al detalle, por eso guardo primero el encabezado
	if dw_detalle.of_guardar() then
		commit;
		dw_datos.ib_modificado = false
		f_mensaje("I", "Data saved correctly")
		dw_datos.Reselectrow( dw_datos.getrow() )
		//close(parent)
	else
		dw_datos.ib_modificado = true
		dw_detalle.ib_modificado = true
   	rollback ;
	end if
else
	dw_datos.ib_modificado = true
   rollback ;
end if


FUNCION wf_pon_id_detalle para poner el id del encabezado a cada linea de detalle
1
2
3
4
5
6
7
8
9
10
11
12
long ll_id, ll_rows, ll_row
 
// Aqui cuando lo ejecuto desde PB   si me trae el id que se genero, pero si lo ejecuto desde mi exe  en otra carpeta no saca el id y por ende a la hora de insertar el detalle marca error de nulos
 
ll_id = dw_datos.getitemnumber( dw_datos.getrow(), "id_gasto_chofer" )
 
ll_rows = dw_detalle.rowcount()
 
for ll_row = 1 to ll_rows
	 dw_detalle.setitem( ll_row, "id_gasto_chofer", ll_id )
next
dw_detalle.accepttext()
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

Problema maestro-detalle

Publicado por CAR (1 intervención) el 15/09/2017 00:29:19
Amigo ... revisa lo siguiente...

1. Revisa que los Update Properties del DataWindow Object del detalle esten activados para actualizar el campo que te falta 'id_gasto_chofer'
2. Como generas 'id_gasto_chofer' en el encabezado ? , lo haces desde la aplicación o es un 'auto-incremental' ... Si es lo segundo, creo que debes recuperarlo para poder asignarlo al detalle...
3. Si no son las anteriores, ve dando más detalle.

Saludos.
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
Imágen de perfil de Leonardo Daniel A.

Problema maestro-detalle

Publicado por Leonardo Daniel A. (206 intervenciones) el 15/09/2017 00:55:22
Hola amigo.... ya esta corregido el id_gasto_chofer a actualizable, lo quite intencionalmente a ver que hacia

son autoincrementales amigo desde SQL Server..

lo extraño es que la funcion de poner ID si funciona cuando ejecuto la aplicacion dentro de PowerBuilder... pero ya estando compilada y con sus PBD's en otra carpeta ya no lee el id_gasto_chofer generado... y haciendo el commit si esta guardado con su ID,
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
Imágen de perfil de Leonardo Daniel A.

Problema maestro-detalle

Publicado por Leonardo Daniel A. (206 intervenciones) el 15/09/2017 05:38:21
RESUELTO..!!! pues segun yo habia puesto todas las librerias necesarias de PowerBuilder segun la "ayuda"... y para probar, me acorde que tenia una Maquina Virtual con Win7 y copie el sistema ahi y marco error. luego dije a ver deja ejecuto el RunTime Packager... y lo instale, ejecute y nada, error de nuevo (porque en la carpeta de la aplicacion tenia las librerias anteriores), las borre y copie las que se instalaron con el RunTime Packager. y luego desinstale el runtime packager.... y vuala... funciono todo perfecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad