星期二, 11月 19, 2019

[VFP] Error accessing printer spooler

VFP 在指定列印標籤機時,拋出下圖錯誤訊息 - 離線列印時發生錯誤


把離線列印翻成英文去 Google,找到的都是確認印表機、標籤機狀態的討論,確定標籤機當下是正常,不應該需要確認狀態,後來在測試環境中指定標籤機,總算是拋出正確錯誤訊息,馬上就找到答案,Orz


之前指定標籤機是下列寫法,利用 laPrinters(li, 1) 來進行設定
APRINTERS(laPrinters)
IF VARTYPE(laPrinters) <> "U"
  FOR li = 1 TO ALEN(laPrinters, 1)
    IF ATC(TargetPrinter , laPrinters(li, 1)) <> 0  
      SET PRINTER TO NAME laPrinters(li, 1)
    ENDIF
  ENDFOR
ENDIF
因為有些因素,所以改寫為下述寫法,先把印表機名稱塞進一個變數,再利用該變數來指定印表機,然後就是一上線就掛的悲劇,QQ
APRINTERS(laPrinters)
IF VARTYPE(laPrinters) <> "U"
  FOR li = 1 TO ALEN(laPrinters, 1)

    lcPrintName = laPrinters(li, 1)
  
    IF ATC(TargetPrinter , lcPrintName) <> 0  
      SET PRINTER TO NAME lcPrintName
    ENDIF
  ENDFOR
ENDIF
必須利用括號 [name expression ()] 包住變數,才能正常指定
SET PRINTER TO NAME (lcPrintName)

沒有留言:

張貼留言