open-insight/LSL2/STPROC/GET_PRINTER_PORT.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

62 lines
2.5 KiB
Plaintext

Compile function Get_Printer_Port(Report)
************************************************************************************************
*
* This program is proprietary and is not to be used by or disclosed to others, nor is it to be
* copied without written permission from SRP Computer Solutions unless used exclusively within
* the context of the licensed user's proprietary application or within a deployed runtime
* generated by the licensed user
*
* Name : Get_Printer_Port
*
* Description: Scans the OINSIGHT.INI file for a custom section that tracks which printer and
* port a specific form/report is assigned to. Used in environments where different
* workstations may have different print drivers or captured ports than others.
*
* Notes:
*
* Parameters:
* Report [in] -- The name of the report that we need to retrieve the printer and port for.
*
* History (Date, Initials, Notes)
* 10/05/98 dmb Original programmer
* 10/07/98 dmb Removed the WIN.INI scan because the driver and port is also being stored
* with the printer name in the OINSIGHT.INI file
* 10/21/98 dmb Made sure that Ans is set to null if only @FM is assigned to variable to
* avoid problems with the OIPI
* 11/12/98 dmb Return the entire printer definition rather than Printer and Port to
* accomodate the Set_Default_Printer subroutine
* 05/02/02 dmb Return Windows default printer and port if there is no assignment listed
*
************************************************************************************************
$insert LOGICAL
Declare function GetPrivateProfileString, WritePrivateProfileString, GetPrivateProfileSection
/* Get printer name assigned to form/report */
lpszSection = "Printers":\00\
lpszEntry = Report:\00\
lpszDefault = "":\00\
lpszPrinter = Str(\00\, 1024)
cbPrinter = Len(lpszPrinter)
lpszFileName = "OINSIGHT.INI":\00\
Value = GetPrivateProfileString(lpszSection, lpszEntry, lpszDefault, lpszPrinter, cbPrinter, lpszFileName)
Convert \0020\ to \2000\ in lpszPrinter
lpszPrinter = TrimB(lpszPrinter)
If lpszPrinter EQ "" then
/* Printer assignment does not exist. Return default printer instead */
lpszSection = "windows":\00\
lpszEntry = "device":\00\
lpszDefault = "":\00\
lpszPrinter = Str(\00\, 1024)
cbPrinter = Len(lpszPrinter)
lpszFileName = "win.ini":\00\
Value = GetPrivateProfileString(lpszSection, lpszEntry, lpszDefault, lpszPrinter, cbPrinter, lpszFileName)
end
Convert \002C\ to \20FE\ in lpszPrinter
Return lpszPrinter