PDA

Ver la Versión Completa : Impresión de grilla TMS Planner


santiago14
16-04-2010, 02:36:58
Buenas, estoy trabajando con la grilla TPlanner de TMS Software. Tiene un método para impresión.
La cosa es que en una impresora HP3420 imprime la grilla perfectamente, pero en una HP Laser 1018 y en una HP 1500 sale muy comprimido y encima achicharrado, ocupa la mitad de la hoja cuando debería ocupar toda.
Aparentemente es un problema de configuración de impresora pero no estoy dando en la tecla.

Bueno, agradecería algo de ayuda.

Saludos.

Neftali [Germán.Estévez]
16-04-2010, 16:28:42
Creo que para temas tan técnicos será mejor que te dirijas a la gente de TMS. Seguro que si es un problema conocido de su componente te podrán orientar mejor.

santiago14
16-04-2010, 16:43:49
Bueno compañeros, a pesar de no tener respuestas les agradezco sus lecturas e interés.
Encontré un principio de solución y lo comparto con todos por si alguien lo necesita.
Sin dudas a la cuestión de impresión le falta un poco pero van por buen camino.
TPlanner.Print intenta meter en una sola hoja todo el contenido de la grilla y lo logra, pero achicharra todo, usando TPlanner.PrintRange solucionamos la cosa de mejor manera.
Un atributo clave es TPlanner.PrintOptions.CellHeigth el cual debe ir a 0 (cero) para hacer así que se acomode a la hoja automáticamente, si uno lo pone con otro valor algunas impresoras lo interpretan bien y otras no. De ahí que se me achicharraba y salía todo pegado.
Pongo aquí un pedacito de código que muestra lo que hice:


procedure TFrmABMTurnos.btnImprimirAgendaClick(Sender: TObject);
begin
with gTurnos do
begin
if txtNombreOdont.Text <> EmptyStr then
begin
if dlgImprimir.Execute then
begin
PrintOptions.Header.Clear;
PrintOptions.Header.Add('Turnos correspondientes al Dr. ' + txtNombreOdont.Text);
PrintOptions.Footer.Clear;
PrintOptions.Footer.Add('Fecha impresión: ' + DateTimeToStr(Now));
PrintOptions.Footer.Add('Fin de Agenda');
PrintOptions.CellHeigth:=0;
//Los otros valores de la configuración de la impresión están puestos directamente en el Object Inspector
//Display.ActiveEnd + 4 --> Incluímos una hora mas por las dudas...
PrintRange(0, Positions - 1, Display.ActiveStart, Display.ActiveEnd + 4);
MessageBox(handle, 'Impresión terminada.', 'Impresión agenda',
MB_OK + MB_ICONINFORMATION);
end;
end
else
begin
MessageBox(handle, 'Debe buscar primero un Odontólogo.', 'Impresión agenda',
MB_OK + MB_ICONERROR);
end;
end;
end;

Con esto he logrado imprimir exitosamente en una HP deskjet 3420 y en una HP laser 1018. Me falta probar en la HP deskjet 1500 y en otras pero espero no tener problemas.

Bien, gracias a todos.

santiago14
16-04-2010, 16:49:10
Gracias Neftalí, consultaré con la gente de TMS.

Saludos.

santiago14
17-04-2010, 02:12:50
Ya que estamos en el asunto de la grilla TPlanner de TMS Software. ¿Alguien conoce alguna alternativa que haga lo mismo o similar?
Y si es posible que no sea tan cara (gratis si se puede) porque los clientes se ven reacios a comprarla.
Este la compró pero la licencia single, solo para él, pero no todos lo harán. Por eso estoy buscando una alternativa que sea mas económica y que se pueda ofrecer de manera mas masiva.
Acepto cualquier sugerencia.

Gracias.