直接打印

最近遇到一个需求,POS机打印的时候,如果每次都出现一个对话框,让选择打印机,无疑是很煞风景的事情,AX可以通过PrintJobSettings类来设置默认的打印机,不需要每次都让用户设定。步骤如下:
1.阻止打印对话框的出现
在Report的Methods下添加方法showDialog

Boolean showDialog()
{
    
return false;
}
2.给用户一个设定打印机的窗口,写一个窗体,在Button的Clicked方法下添加如下代码:
void clicked()
{
    PrintJobSettings        printJobSettings;
    ReportPrinterSetting    rps;
    ;
    super();

    printJobSettings 
= new PrintJobSettings();
    printJobSettings.printerSettings(
'SysPrintForm');

    select firstonly forupdate rps;

    ttsbegin;
    rps.PrinterSetting 
= printJobSettings.packPrintJobSettings();
    rps.write();
    ttscommit;

}

其中表ReportPrinterSetting包含一个Container类型的字段PrinterSetting,用来存放用户设定的打印机设定信息。
3.在报表的Init方法或则fetch方法中,设定
PrintJobSettings类
public void init()
{
    ReportPrinterSetting    rps;
    Container               c;
    ;
    select firstonly rps;

    super();

     c 
= rps.PrinterSetting;

    
if(!c)
        
throw error("@GCN956");
    element.unpackPrintJobSettings(c);

}
@GCN956为提示信息,提示用户设置打印机。
原文地址:https://www.cnblogs.com/Farseer1215/p/868586.html