Power Builder - Obtener el ancho del area de impresión

 
Vista:

Obtener el ancho del area de impresión

Publicado por Guillermo (72 intervenciones) el 13/02/2008 21:49:12
Estimados Amigos quisiera saber si es posible obtener por código el ancho de página del área de impresión de un reporte, independientemente del tipo de hoja u orientación que se haya seleccionado.
Muchas Gracias.
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

Respuesta

Publicado por Leopoldo Taylhardat (710 intervenciones) el 14/02/2008 19:00:31
Saludos...
esto lo tomé de una función que conseguí publicada ...
Creas una función (por ejemplo: f_ancho) con un argumento tipo 'datawindow' (debes diferenciarlo por si es un datastore)... y le pones que retorna un valor 'long'

Coloca el script a continuación:

string ls_objects, ls_object
long ll_width=0, ll_len, ll_from, ll_to, ll_x, ll_widthObject

ls_objects = dw_proceso.DYNAMIC describe('datawindow.objects')

// Recorremos todos los objetos.
ll_len = len(ls_objects)

If ll_len > 0 Then
ll_from = 1
Do
ll_to = pos(ls_objects, "~t", ll_from)
If ll_to = 0 Then
ls_object = mid(ls_objects, ll_from)
Else
ls_object = mid(ls_objects, ll_from, ll_to - ll_from)
End If
If len(ls_object) > 0 Then
ll_x = long(dw_proceso.DYNAMIC describe(ls_object + '.x'))
ll_widthObject = long(dw_proceso.DYNAMIC describe(ls_object + '.width'))

// Obtenemos hasta donde llega horizontalmente el objeto más a la derecha.
If ll_x + ll_widthObject > ll_width Then
ll_width = ll_x + ll_widthObject
End If
END IF
ll_from = ll_to + 1

Loop While (ll_to > 0)
END IF
RETURN(ll_width)

// llamas a la función así: le pasas a la función el dw que quieras determinar...
long ll_ancho
ll_ancho=f_ancho(objeto_dw)

// Y para verificar si quieres...
MessageBox('Atención!','Ancho del dw= ' +string(ll_ancho))

Espero que te sirva...
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:Respuesta

Publicado por Guillermo (72 intervenciones) el 14/02/2008 19:10:12
Muchas gracias por tu respuesta.
Saludos,
Guillermo
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