Business Central预览打印时无法获取打印机名称的解决方案咨询
在Business Central中实现打印/预览场景均获取打印机名称的方案
可行,可通过以下几种方式实现需求:
监听打印对话框的选择事件
不要仅依赖OnBeforeMergeDocument事件,在打印对话框加载完成后,监听打印机下拉菜单的选择变更动作,将选中的打印机名称存入会话变量(如SessionStorage)或临时表中。这样无论点击「打印」还是「预览」,都能从存储位置读取到用户选择的打印机名称。扩展预览按钮的触发逻辑
通过AL语言扩展原生打印页面的预览按钮,重写其点击事件:在执行预览动作前,主动获取打印对话框中选中的打印机名称,再将该参数传递给后续的报表处理流程,确保预览场景下参数不丢失。优化报表调用的参数传递
若通过代码触发打印/预览,调用Report.Print()方法时显式传入打印机名称参数;对于原生打印对话框,拦截对话框的提交动作,先捕获选中的打印机信息,再传递给报表执行逻辑,保证两种场景下参数都能正确传递。
注意事项:
- 确保存储打印机名称的变量作用域覆盖打印和预览的全流程,避免变量提前被释放。
- 测试时覆盖默认打印机、自定义选择打印机等多种场景,验证兼容性。
内容的提问来源于stack exchange,提问作者Luke_
相关产品推荐
相关产品推荐

