3

有没有办法更改销售订单页面中选项卡的顺序?

4

3 回答 3

3

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

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

如果我们检查页面的 DOM 结构,我们会发现以下部分对应于 tabs 表: 在此处输入图像描述

我将使用这个问题的答案中的交换函数,并编写一个用于交换详细信息和税收选项卡的函数:

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 添加到页面并将其设置为启动脚本:

在此处输入图像描述

并将其添加到 DataSource 的 Initialize Client Event 下 在此处输入图像描述

现在,在自定义发布后,如果您打开销售订单页面,您将看到税选项卡是第一个选项卡 在此处输入图像描述

于 2019-07-04T03:35:36.753 回答
2

基于最初让我绊倒的一些事情,使用 PxTabItem Text 和 OriginalIndex="n" 对上一个答案进行了一些澄清。

OriginalIndex 是标签在移动之前所在位置的基于零的索引。例如对于 Projects 表单: 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>
于 2021-05-01T00:55:20.070 回答
1

注意到这是一个带有答案的老问题,但只是想更新/添加另一个替代方法以通过自定义编辑器工具更改选项卡的顺序,见下文:

- 确保将屏幕添加到自定义项目的屏幕部分。

-然后点击File->Edit Project Items,见下图:

编辑项目项

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

页面突出显示

- 然后在底部选择后,通过添加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)刷新您的浏览器。请参阅下面的结果:

结果

希望这可以帮助。

于 2020-03-31T20:24:54.920 回答