Foro de ayuda y soporte técnico de Sysme Software
Impresion de opciones de cocina una por linea - Versión para impresión

+- Foro de ayuda y soporte técnico de Sysme Software (https://www.sysme.net/foro)
+-- Foro: Software Sysme (Español) (https://www.sysme.net/foro/forumdisplay.php?fid=3)
+--- Foro: Sysme Tpv (https://www.sysme.net/foro/forumdisplay.php?fid=4)
+---- Foro: Personalización de Documentos en Sysme Tpv (https://www.sysme.net/foro/forumdisplay.php?fid=19)
+---- Tema: Impresion de opciones de cocina una por linea (/showthread.php?tid=8423)



Impresion de opciones de cocina una por linea - javier.carrillo - 10-08-2021

Hola, Oscar

Como puedo realizar la impresión de opciones de cocina una por linea?.

He realizado en fastreport, en el área de visualización del campo <Detalle1x."nota">, una serie de if, pos y copy  anidados como lo puedes ver en la imagen que te adjunto donde voy buscando el string ";" que coloco al final de cada opción de cocina y luego copio los caracteres, y así lo he logrado, pero esto impacta en el performance del servidor ya que cada vez que se manda un ticket a cocina se ralentiza el server  (supongo que por tantos cálculos)-

Hay alguna manera mas optima de realizar esto?

por ejemplo es posible que el caracter * con el que separas cada opción de cocina se podria remplazar por un Carriage Return (CR) ?

Gracias

Javier Carrillo


RE: Impresion de opciones de cocina una por linea - sysme - 10-08-2021

Buenas Javier,

Si, esto lo podrías hacer más eficiente en la pestaña código del fastreport, en el evento ONBEFOREPRINT del campo que contiene los datos (en mi formato es el Memo5) inserta este código:

procedure Memo5OnBeforePrint(Sender: TfrxComponent);
var
cadena: string;
cnt: integer;
begin
cadena:= <Detalle1x."nota">;
for cnt:=1 to length(cadena) do
begin
if cadena[cnt] = '*' then cadena[cnt]:= ''+ #13 + #10;
end;
Memo5.text:=Memo5.text + cadena;
end;

Luego en los datos elimina las notas para que no se repitan.


RE: Impresion de opciones de cocina una por linea - javier.carrillo - 13-08-2021

(10-08-2021, 09:30 AM)Oscar, gracias por tu pronta respuesta.Me funciono tal cual.Javier Carrillo escribió: Buenas Javier,

Si, esto lo podrías hacer más eficiente en la pestaña código del fastreport, en el evento ONBEFOREPRINT del campo que contiene los datos (en mi formato es el Memo5) inserta este código:

procedure Memo5OnBeforePrint(Sender: TfrxComponent);
var
cadena: string;
cnt: integer;
begin
cadena:= <Detalle1x."nota">;
for cnt:=1 to length(cadena) do
      begin
      if cadena[cnt] = '*' then cadena[cnt]:= ''+ #13 + #10;
      end;
Memo5.text:=Memo5.text + cadena;
end;

Luego en los datos elimina las notas para que no se repitan.