如何更改“销售订单”页面中选项卡的顺序

时间:2019-07-04 03:35:36

标签: acumatica acumatica-kb

是否可以更改“销售订单”页面中选项卡的顺序?

3 个答案:

答案 0 :(得分:3)

  

免责声明
  所示方法只是如何更改选项卡顺序的示例。
  在产品中使用该方法之前,请确保该方法对您的产品安全。

没有任何选项可以从“自定义”中指定选项卡位置,“屏幕编辑器”不支持拖放选项卡,即使您从“编辑ASPX”页面更改选项卡的顺序,按“生成定制脚本”也将回滚所有发生变化,因此剩下的唯一方法就是使用Javascript中的标签页。

如果我们检查页面的DOM结构,则会发现与tabs表相对应的以下部分: enter image description here

我将使用the answer to this question中的交换功能,并编写一个用于交换明细和税金标签的功能:

function swapElements(parent,elemA,elemB){
    if(!parent||parent.constructor.toString().search('HTML')===-1) return;
    var children = parent.children;
    if(typeof elemA!=='number' || typeof elemB!=='number' || elemA===elemB || !children[elemA] || !children[elemB]) return;

    elemB = elemA<elemB ? elemB--:elemB;
    var childNumb = children.length - 1;

    var a = parent.removeChild(children[elemA]);
    var b = parent.removeChild(children[elemB]);
    append(elemB,a);
    append(elemA,b);

       function append(a,b){
          childNumb===a ? parent.appendChild(b) : parent.insertBefore(b,children[a]);
       }
}

function swapDetailsAndTaxes()
{
    swapElements(document.querySelector("#"+px_all.ctl00_phG_tab.tabTable.id+ " tr"),0,1)
}

现在,我们需要将此Javascript添加到页面并将其设置为启动脚本:

enter image description here

并将其添加到数据源的Initialize Client Event下 enter image description here

现在,在发布定制后,如果打开“销售订单”页面,您将看到“税收”选项卡是第一个选项卡 enter image description here

答案 1 :(得分:2)

根据最初让我感到困惑的一些事情,对使用 PxTabItem Text 和 OriginalIndex="n" 的上一个答案进行了一些澄清。

OriginalIndex 是一个从零开始的索引,表示标签在移动之前的位置。例如对于项目表单: Sample of Projects original Tab Order

诀窍是按照您想要显示的顺序列出 Children Key="Items" - 使用它们原始的基于零的索引作为参数。 最好以正确的顺序包含所有选项卡 - 在将代码添加到 aspx 页面后 - Cust Proj 编辑器将消除不必要的选项卡,只留下需要的选项卡。这非常有帮助 - 但如果你不知道这一点就很棘手.. 如果您不想包含所有标签 - 您至少必须在更改之前包含最后一个未更改的标签。

另外 PS - 不要忘记在最后添加 /Page 标记...在 pageSource 标记之后添加代码之后。即在现有代码的末尾将 /> 更改为 > 然后添加:-

重新排序项目的示例...

<PXTab ID="tab" ParentId="phG_tab" TypeFullName="PX.Web.UI.PXTab">
    <Children Key="Items">
        <PXTabItem Text="Tasks" OriginalIndex="1" />
        <PXTabItem Text="Balances" OriginalIndex="4" />
        <PXTabItem Text="Cost Budget" OriginalIndex="3" />
        <PXTabItem Text="Change Requests" OriginalIndex="8" />
        <PXTabItem Text="Attributes" OriginalIndex="14" />
        <PXTabItem Text="Compliance" OriginalIndex="17" />
        <PXTabItem Text="Contacts" OriginalIndex="19" />
        <PXTabItem Text="Lien Waiver Settings" OriginalIndex="18" />
        <PXTabItem Text="Activity History" OriginalIndex="10" />
        <PXTabItem Text="Settings" OriginalIndex="13" />
        <PXTabItem Text="Mailing Settings" OriginalIndex="16" />
        <PXTabItem Text="Approval Details" OriginalIndex="15" />
        <PXTabItem Text="Equipment" OriginalIndex="12" />
        <PXTabItem Text="Union Locals" OriginalIndex="9" />
        <PXTabItem Text="Estimates" OriginalIndex="21" />
        <PXTabItem Text="Production Orders" OriginalIndex="20" />
    </Children>
</PXTab>

答案 2 :(得分:0)

注意到这是一个有答案的老问题,但只是想更新/添加另一种选择,以通过“定制编辑器”工具更改选项卡的顺序,请参见下文:

-确保将屏幕添加到“定制项目”的屏幕部分。

-然后单击文件->编辑项目项,如下所示:

Edit Project Items

-然后选择/突出显示要更改其标签顺序的屏幕。

Page Highlighted

-然后,在底部部分中选中该页面,通过添加 PXTab 标签代码段(代码段)来更改标签的顺序,请参见以下页面:

<Page path="~/pages/so/so301000.aspx" pageSource="YOURPAGESOURCE">
<PXTab ID="tab" ParentId="phG_tab" TypeFullName="PX.Web.UI.PXTab">
    <Children Key="Items" >
               <PXTabItem Text="Document Details" OriginalIndex="3" />
               <PXTabItem Text="Financial Settings" OriginalIndex="2" />
               <PXTabItem Text="Commissions" OriginalIndex="1" />
            </Children>
</PXTab>

-发布您的自定义内容,并使用 Ctrl + F5 (Windows)刷新浏览器。查看以下结果:

Results

希望这会有所帮助。