如何打印加入表格?

时间:2015-12-02 20:57:01

标签: remedy

难以弄清楚如何在BMC Remedy 9.0中打印Join表单的内容。 Remedy的文档仅解释打印报告,而不是加入表格。我希望能够使用Ctrl-P或内部Remedy流程/操作链接进行打印。我的加入表单主要包含字符字段。尽管页面宽度为915像素,高度为1000像素,但打印预览会在第一个~20像素高度截断。有谁知道如何在浏览器中打印表单?

1 个答案:

答案 0 :(得分:0)

想出如何解决这个问题 - 如果你通过WYSIWYG将所有内容放在Remedy面板对象中,那么你可以在Web Footer中添加一个脚本来设置document.body.innerHTML等于面板' s innerHTML之中。这个小技巧以一种使用window.print()或Ctrl-P打印页面的方式组织元素。但是要注意,这个innerHTML赋值通常会破坏或丢失像child textarea或输入值这样的属性。因此,您必须抓取这些值并在打印前将它们附加到页面上。

<div>
    <script>

    function myPrint() 
    {
        var idTexts = [];
        var textareas = document.querySelectorAll('textarea[id][readonly]');

        for(var i = 0; i < textareas.length; i++)
        {
            idTexts.push(textareas[i].id);
            idTexts.push(textareas[i].value);
        }

        var inputs = document.querySelectorAll('input[id][readonly]');

        for(var i = 0; i < inputs.length; i++)
        {
            idTexts.push(inputs[i].id);
            idTexts.push(inputs[i].value);
        }

        //Assume there is only one panel object, so only one .pnl class on the page

        var printContents = document.querySelector('.pnl').innerHTML;
        document.body.innerHTML = printContents;

        for(var i = 0; i < idTexts.length; i++)
        {
            if(document.getElementById(idTexts[i]))
            {
                document.getElementById(idTexts[i]).value = idTexts[i+1];
            }
        }

        window.print(); 
    }

    /*On page load, I noticed the click event fired for a visible button
    without the user actually needing to click. 
    Will not work unless the button's visibility is set to true (Remedy is a weird creature).
    Used the setTimeout to allow time for the initial page load, as the onload event fired too early.
    If you don't want this button to appear on the page when it is printed
    overlay a transparent image on the button's display properties.*/

    document.querySelector('a[ardbn="btnPrintMe"]').onclick = setTimeout(function(){ myPrint(); }, 500);
    </script>
</div>

如果您仍然无法打印,请确保此btnPrintMe按钮至少具有正确的6个权限:1101 / -1101,1102 / -1102,1103 / -1103,并且您正在测试此用户的用户具有相应的权限好。