Imprimir la página actual de un DW

Si no es molestia, quisiera saber como puedo mandar ha imprimir la página actual de un dw, lo que pasa es que ya se los parámetros para imprimir todo o un grupo de páginas (1,2,3-10) y no se que parámetros o que debe hacer para imprimir la página actual. Ayudame es para un trabajo de la Universidad.
Respuesta
1
Para imprimir una página específica de un listado/dw yo utilizo la siguiente sentencia:
//para imprimir la pg 3
dw_listado.modify("DataWindow.Print.Page.Range = '3'")
dw_listado.print()
Por lo general obtengo el valor de la página que quiero imprimir y lo paso a una variable string con la que reemplazo la sentenci anterior.
dw_listado.modify("DataWindow.Print.Page.Range = '" + ls_variable + "'")
dw_listado.print()
Cualquier duda escribí
En primer lugar te quiero agradecer por la atención prestada hacia mi pregunta.
En la ayuda esta muy claro como puedo mandar a imprimir una página especifica
//para imprimir la pg 3
dw_listado.modify("DataWindow.Print.Page.Range = '3'")
dw_listado.print()
ademas indica como puedeo mandar a imprimir todo el dw
//para imprimir todo
dw_listado.modify("DataWindow.Print.Page.Range = ''")
dw_listado.print()
Mi pregunta es como puedo saber la página actual (como en el MS Word), osea el usuario tiene el cursor en una parte del dw y quiere mandar a imprimir esa página donde esta el cursor y el usr. No sabe que página es.
mi problema es no saber como obtener la pagina actual de un dw para almecenarla en una variable y de ahi mandar la impresion
dw_listado.modify("DataWindow.Print.Page.Range = '" + ls_variable + "'")
dw_listado.print()
De antemano de doy las gracias.
Chao.
Espero tu respuesta.
Bueno creo que ahora si...
Estuve probando con un ejemplo para darte algo como lo que necesitas.
El código siguiente determina e imprime la página en la que estas parado.
//inicio
string ls_variable
ll_fila = dw_listado.getrow()
ls_variable = dw_listado.describe("evaluate('page()',"+string(ll_fila)+")")
dw_listado.modify("DataWindow.Print.Page.Range = '" + ls_variable + "'")
if messagebox("impresión", "imprimo?", question!, yesno!) = 1 then dw_listado.print()
//fin
Consideraciones:
1) Si el usuario puede pararse sobre la fila quiere decir que la tenés habilitada, en particular que no tenés la dw en modo "vista previa". Como PB determina los números de página según el tamaño de la dw lo que se imprime es diferente a lo que ves. (Ej.: En la dw en la ventana te dice hoja 3/15 y en realidad al imprimir te sale en 4 hojas)
Si tenés la dw en modo "vista previa" vas a ver la cantidad real de hojas pero el usuario no puede posiciones sobre una fila.
//suena rebuscado -> comprobalo, sino escribime
2) Como resolver lo anterior: si es importante que el usuario se pare sobre la fila (no la puede seleccionar ingresando el número de fila en un casillero o algo) entonces podrías tener una dw para que él seleccione y la misma dw invisible pero con modo "vista previa". Al seleccionar una fila y poner imprimir, le haces un scrolltorow(fila_del_usr) a la dw invisible y a continuación el código que te mande.
3)El zoom también afecta la cantidad de páginas, si permitís modificarlo entonces setealo a 100 antes de imprimir
4)modo "vista previa" -> dw_listado.modify("datawindow.print.Preview = Yes")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas