62 lines
2.5 KiB
Plaintext
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
|