Breew, el CmPrint entra en el pack de controles proporcionados por PowerCOBOL. Normalmente por defecto ya viene seleccionado para que aparezca en la barra de controles de PowerCOBOL. Sirve para dibujar lo que quieres en un Form, e imprimir dicho Form. Es decir, el CmPrint imprime el Form y todo lo que esté puesto encima (simepre y cuando la propiedad "Printable" está marcada.
La pripiedad PrinterName es de sólo lectura. Es decir, podemos obtener el nombre de la impresora, pero no podemos establecerla con:
Código COBOL:
MOVE "Epson_ABC_123" TO "PrinterName" OF CmPrint1
Con lo cual, si imprimimos directamente, el CmPrint imprime por la impresora por defecto de Windows. Si queremos cambiar o elegir impresora, sólo queda la opción de invocar los dialogos "SetPrinter" o "SetPage".
Una solución algo más complicada sería cambiar temporalmente (via WinAPI creo que se puede hacer), la impresora predeterminada por otra la que nos interesa, imprimir y volver a establecer la impresora predeterminada que había antes.