Jump to content


Photo

Problema en un TService con TMemoryStream


  • Please log in to reply
1 reply to this topic

#1 ArsenioLupin

ArsenioLupin

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 31 December 2017 - 01:05 PM

Hola a todos.

 

Estoy con un problema que realmente no se por donde puede venir y me esta volviendo loco.

 

Trabajo con Delphi XE sobre Windows 7. Hice un sistema para restaurantes y afines en los que, dependiendo el tipo de producto (bebida, comida, etc) y la zona donde se carga (piso del restaurante, etc) imprime por una impresora u otra. Y en cada impresora levanta el modelo de impresión configurado.

 

El código esta compartido con un servicio de impresión, que levanta los datos desde la base y ejecuta exactamente lo mismo. Funciona bien en impresoras locales, pero en impresoras compartidas en red funciona bien la aplicación directa, pero desde el servicio no, no da error, solo que imprime por la última impresora que se haya usado, por lo que creo que el problema esta en como levanta el modelo en sí.

 

Revisé debugueando el código, tanto de forma directa como desde el servicio, lo único que encuentro distinto es cuando crea dos TMemoryStream:


delphi
  1. mem := TMemoryStream.Create;
  2. StrStream := TStringStream.Create();

Como se puede ver en los adjuntos, cuando debugueo el servicio y veo ambas variables en el watch (MemVacio.jpg):

Mem_Vacio.jpg

no se ven los datos internos y cuando lo hago desde la aplicación directa se ven bien (MemDatos.jpg):

Mem_Datos.jpg

 

Quizás no sea solo esto, pero es lo único que logro encontrar, en el código, que este distinto.

 

Si es un tema de asignación de memoria o algo así, si a alguien se le ocurre algo para resolverlo, le agradecería MUCHO.

 

Quizás ayude, o no, que la impresión la hago con FastReport y para levantar el modelo y preparar la impresión hago:


delphi
  1. frxReport1.LoadFromStream(StrStream);
  2. frxReport1.PrintOptions.Copies := Copias;
  3. frxReport1.PrintOptions.Printer := Impresora;
  4. frxReport1.ReportOptions.CreateDate := Now;
  5. frxReport1.PrintOptions.ShowDialog := False;
  6.  
  7. frxReport1.ReportOptions.Name := Nombre;
  8. frxReport1.PrepareReport;
  9. frxReport1.Print;

Attached Files


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 19 January 2018 - 01:44 PM

Hola, ¿Y cómo creas y cargas el strSTream?.


  • 0




IP.Board spam blocked by CleanTalk.