Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Duda] Necesito ayuda con Cobol trinidad99 COBOL - General 2 11 de diciembre de 2024 23:25
[Sintaxis] [AYUDA] problemas con file-status Marengo97 GnuCOBOL (OpenCOBOL) 7 30 de julio de 2023 22:26
Necesito ayuda con el manejo de pantalla CHITOBLA GnuCOBOL (OpenCOBOL) 22 20 de noviembre de 2022 01:20
[Duda] Ayuda con ejercicio de Cobol abi4997 COBOL - General 4 28 de octubre de 2022 18:46
[Sintaxis] Ayuda con DISPLAYMESSAGE Juanes PowerCOBOL (ActiveX, v4 - v11) 3 5 de octubre de 2015 17:42

Respuesta

  #1
Antiguo 6 de febrero de 2024, 11:37
lfortuny
Forero Junior
Última Actividad 05.07.2026 12:35
Posts Posts: 20
Likes enviados Enviados: 17
Likes recibidos Recibidos: 3
Predeterminado Ayuda con la impresora.
0 Inactivo Inactivo

Buenos días.
Tengo un programa, en el cual puedo seleccionar la impresora con el 'Print Control', guardo el nombre de la impresora seleccionada con 'PrinterName', ..., tengo que llamar a otro programa y pasarle la impresora, todo bien, pero en el segundo programa ¿cómo puedo asignar la impresora seleccionada en el primer programa sin tener que seleccionarla de nuevo en el segundo?

He probado con

MOVE nomimpre TO "PrinterName" OF Pr_Impresora

pero me devuelve el siguiente error:

'You may not overwrite or set the value of this property'.

Se agradecen todas las ideas. No me sirve cambiar la impresora por defecto.

Lluís.
lfortuny is offline   Responder Con Cita
  #2
Antiguo 6 de febrero de 2024, 19:03
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Hola @lfortuny
No entiendo muy bien que necesitar hacer .....

Código COBOL:
  1.     *> la Propiedad "PrinterName" es solo lectura
  2.     *> invalido esto no funciona
  3.      move "PDFCreator" to "PrinterName" OF PR-Print


Código COBOL:
  1. *> Solo lectura(get) esto funciona
  2.      move "PrinterName" OF PR-Print to "Text" OF CmText3.

Saludos ...

- - - Updated - - -

Hola @lfortuny
No entiendo muy bien que necesitar hacer .....

Código COBOL:
  1.     *> la Propiedad "PrinterName" es solo lectura
  2.     *> invalido esto no funciona
  3.      move "PDFCreator" to "PrinterName" OF PR-Print


Código COBOL:
  1. *> Solo lectura(get) esto funciona
  2.      move "PrinterName" OF PR-Print to "Text" OF CmText1.

Saludos ...
fastpho is offline   Responder Con Cita
  #3
Antiguo 6 de febrero de 2024, 20:13
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

@lfortuny, vamos a suponer que estás utilizando PowerCobol en alguna de sus versiones , por lo que estás poniendo, claro.

Yo lo que hago es llamar al "Print Control" con la opción "SetPrinter", ahí que seleccionen la impresora que quieran y después mover ese valor a una variable o a lo que lo necesites, (un StaticText, TextBox Control, ...)

Código COBOL:
  1.      INVOKE PRINT1 "SetPrinter".
  2.      MOVE "PrinterName" OF PRINT1 TO ...

No sé si es eso lo que necesitas exactamente ....

O si no necesitas seleccionar la impresora, puedes hacerlo directamente quitando la primera línea

Un salu2.-





Por cierto, muevo el tema al subforo más adecuado si no indicas lo contrario.

Última edición por Josber fecha: 6 de febrero de 2024 a las 20:16. Razón: Mover tema a otro foro
Josber is offline   Responder Con Cita
  #4
Antiguo 6 de febrero de 2024, 21:28
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@lfortuny, @fastpho, @Josber, que yo sepa no se puede asignar el nombre de una impresora al control CmPrint sin pasar por el diálogo de selección de impresora. Es por ello que yo siempre configuro la impresora por defecto.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 7 de febrero de 2024, 10:36
lfortuny
Forero Junior
Última Actividad 05.07.2026 12:35
Posts Posts: 20
Likes enviados Enviados: 17
Likes recibidos Recibidos: 3

Buenos días y gracias a tod@s.
Para PowerCobol.
Ya lo solucioné, en el primer programa selecciono la impresora con "SetPrinter", guardo todas las características en campos.

Características:
"PrinterName"
"PaperOrientation"
"PaperType"
"Source"

Cuando llamo al segundo programa paso todas las características y las cargo de nuevo al nombre de control 'Pr_Impresora' exceptuando el 'PrinterName' que como dice fastpho, no se puede, pero por el simple hecho de tener el nombre cargado en el primer programa y tener la misma variable del nombre de la impresora en ambos programas, no es necesario asignar 'PrinterName' y puedo imprimir.
Por otro lado, si es de interés para alguien, en el segundo programa se puede asignar el nombre de la impresora que desee con solo asignar el nombre a la variable del 'Printername'.

Ejemplo:
MOVE "Brother ..." TO nomimpre

Gracias.
Que disfruten del día.
lfortuny is offline   Responder Con Cita
  #6
Antiguo 7 de febrero de 2024, 18:57
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Citación del post de lfortuny Ver Mensaje
Ejemplo:
MOVE "Brother ..." TO nomimpre
Pero esto no va a compilar, va a decir que dicha propiedad del control es de sólo lectura


EDITO: lo acabo de comprobar y sí que deja compilar pero salta un Warning en ejecución diciendo que no se puede modificar dicha propiedad...



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 8 de febrero de 2024, 09:07
lfortuny
Forero Junior
Última Actividad 05.07.2026 12:35
Posts Posts: 20
Likes enviados Enviados: 17
Likes recibidos Recibidos: 3

Buenos días.
En el primer programa:

Código COBOL:
  1.  elegir-impresora.
  2.     INVOKE Pr_Impresora "SetPrinter" RETURNING ReturnValue.
  3.     IF ReturnValue = POW-TRUE
  4.         MOVE "PrinterName"        OF Pr_Impresora TO nomimpre
  5.         MOVE "PaperOrientation"   OF Pr_Impresora TO orientation
  6.         MOVE "PaperType"          OF Pr_Impresora TO paper
  7.         MOVE "Source"             OF Pr_Impresora TO bandeja
  8.     END-IF.


Working primer programa.
Código COBOL:
  1. 01 datos-llamada GLOBAL EXTERNAL.
  2.     02 bandeja      PIC 9(4).
  3.     03 nomimpre     PIC X(200).
  4.     03 orientation      PIC X(9).
  5.     03 paper            PIC X(9).
Segundo programa.

Working .

Código COBOL:
  1. 01 datos-llamada GLOBAL EXTERNAL.
  2.     02 bandeja      PIC 9(4).
  3.     03 nomimpre     PIC X(200).
  4.     03 orientation      PIC X(9).
  5.     03 paper            PIC X(9).
  6.  
  7.  programa.
  8.     MOVE orientation            TO "PaperOrientation"   OF Pr_Impresora
  9.     MOVE paper              TO "PaperType"        OF Pr_Impresora
  10.     MOVE bandeja                TO "Source"                OF Pr_Impresora

Con esto imprimo por la impresora elegida en el primer programa.

También puedo hacer lo siguiente, para que me coja la impresora que desee, eso si, siempre teniendo el nombre completo de la impresora cargada en 'nombre_imp'.
En ambos programas.
Código COBOL:
  1. 01 nombre_imp              PIC X(20) VALUE "Impresora_PDF" GLOBAL EXTERNAL.
* También los otros datos GLOBAL EXTERNAL.

En el segundo programa:
Código COBOL:
  1.     MOVE nombre_imp         TO nomimpre
  2. * Le puedo pasar "PaperOrientation" y "PaperType"  y asignarla.
  3.     MOVE orientation TO "PaperOrientation" OF Pr_Impresora
  4.     MOVE paper         TO "PaperType"        OF Pr_Impresora


La working es así:
Código COBOL:
  1. 01 datos-llamada GLOBAL EXTERNAL.
  2. 02 bandeja PIC 9(4).
  3. 02 nomimpre PIC X(200).
  4. 02 orientation PIC X(9).
  5. 02 paper PIC X(9).

Comentario de Moderador

Usa los botones de resalto de sintaxis
lfortuny is offline   Responder Con Cita
  #8
Antiguo 8 de febrero de 2024, 15:32
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@lfortuny, en tu primer post decías que cuando mueves el nombre de la impresora te daba el error You may not overwrite or set the value of this property

Y no te lo da en el otro Form?

Porque a mi me sigue diciendo esto si le muevo el nombre de una impresora.....

Entiendo que puedes obtener el nombre de la impresora y pasárselo a otro Form, pero de qué te sirve si en cuando que hagas esto:

Código COBOL:
  1.      MOVE nomimpre TO "PrinterName" OF Pr_Impresora

va a petar diciendo lo de may not overwrite



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #9
Antiguo 8 de febrero de 2024, 16:16
lfortuny
Forero Junior
Última Actividad 05.07.2026 12:35
Posts Posts: 20
Likes enviados Enviados: 17
Likes recibidos Recibidos: 3

@Kuk.

Cuando tenga un rato te monto un ejemplo y verás.
Para la próxima semana....

Saludos.
lfortuny is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:31.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.