WPPN (Windows Printing Printer Name)

The Windows Printing Printer Name specifies the full name of the printer. If specifying a network printer, the domain name must also be included. That is, WPPN=\\domain\printer name. For example, WPPN=\\ourdomain\Epson Stylus COLOR 900.

The LIST_PRINTERS BIF returns the full printer name as required by this parameter.

This parameter is not passed to (inherited by) a server system.  To print from a server in a client/server environment, retrieve the list of printers defined on the server by calling a function on the server that uses the LIST_PRINTERS BIF.  The selected printer's name can then be exchanged back to the server when the print function is called.  For example:

***************************************************

** CLIENT SIDE FORM
***************************************************
FUNCTION OPTIONS(*DIRECT)
BEGIN_COM ROLE(*EXTENDS #PRIM_FORM) CLIENTHEIGHT(240) CLIENTWIDTH(492) HEIGHT(267) LEFT(378) TOP(238)

* DEFINE_COM commands appear here to define controls on dialog.

DEF_LIST NAME(#PRNLIST) FIELDS(#PRN_NAME #PRN_LOC) TYPE(*WORKING)

EVTROUTINE handling(#com_owner.Initialize)
   SET #com_owner caption(*component_desc)

   USE BUILTIN(SET_SESSION_VALUE) WITH_ARGS(USER MyUserid)
   USE BUILTIN(DEFINE_ANY_SERVER) WITH_ARGS(MYSERVER Server1 Y) TO_GET(#STD_CMPAR)
   USE BUILTIN(CONNECT_SERVER) WITH_ARGS(MYSERVER 'MyPassword') TO_GET(#STD_CMPAR)
   USE BUILTIN(CALL_SERVER_FUNCTION) WITH_ARGS(MYSERVER GETPRNS Y Y #PRNLIST) TO_GET(#STD_CMPAR)

   SELECTLIST NAMED(#PRNLIST)
      ADD_ENTRY #LTVW_1
   ENDSELECT

   CHANGE FIELD(#DEPTMENT) TO(FLT)

ENDROUTINE

EVTROUTINE HANDLING(#PHBN_PrintEmplistD.Click)

   EXCHANGE FIELDS(#DEPTMENT #PRN_NAME) OPTION(*ALWAYS)

   USE BUILTIN(CALL_SERVER_FUNCTION) WITH_ARGS(MYSERVER SRVEMPL Y Y) TO_GET(#STD_CMPAR)

ENDROUTINE

END_COM

***************************************************
** SERVER SIDE FUNCTION
***************************************************
FUNCTION OPTIONS(*DIRECT) RCV_LIST(#PRNLIST)
DEF_LIST NAME(#PRNLIST) FIELDS(#PRN_NAME #PRN_LOC) TYPE(*WORKING)
USE BUILTIN(LIST_PRINTERS) WITH_ARGS(A) TO_GET(#PRNLIST #STD_CMPAR)