如何更改销售订单页面中选项卡的顺序
How to change order of the tabs in Sales Orders page
有没有办法更改“销售订单”页面中选项卡的顺序?
Disclaimer
The shown approach is just an example of how to change the order of the tabs.
Please make sure that this approach is safe for your product before using it in it.
没有从自定义中指定选项卡位置的选项,屏幕编辑器不支持选项卡的拖放,即使您从编辑 ASPX 页面更改选项卡的顺序,按生成自定义脚本也会回滚所有更改,因此唯一剩下的方法是使用 Javascript.
中的选项卡
如果我们检查页面的 DOM 结构,我们会发现以下部分对应于选项卡 table:
我将使用 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添加到页面并将其设置为启动脚本:
并添加到DataSource的Initialize Client Event下
现在,在自定义发布后,如果您打开“销售订单”页面,您将看到“税收”选项卡是第一个选项卡
注意到这是一个有答案的老问题,但只是想 update/add 另一种方法来通过自定义编辑器工具更改选项卡的顺序,见下文:
-确保将屏幕添加到自定义项目的 屏幕 部分。
-然后点击文件->编辑项目项,见下图:
-然后 select/highlight 您要更改 Tab 键顺序的屏幕。
-然后在 底部选择后 通过添加 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) 刷新您的浏览器。查看以下结果:
希望对您有所帮助。
基于一些最初让我感到困惑的事情,使用 PxTabItem Text 和 OriginalIndex="n" 对之前的答案进行了一些澄清。
OriginalIndex 是一个基于零的索引,表示选项卡在移动之前的位置。例如,对于项目表格:
Sample of Projects original Tab Order
诀窍是按照您希望显示它们的顺序列出子项 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>
有没有办法更改“销售订单”页面中选项卡的顺序?
Disclaimer
The shown approach is just an example of how to change the order of the tabs.
Please make sure that this approach is safe for your product before using it in it.
没有从自定义中指定选项卡位置的选项,屏幕编辑器不支持选项卡的拖放,即使您从编辑 ASPX 页面更改选项卡的顺序,按生成自定义脚本也会回滚所有更改,因此唯一剩下的方法是使用 Javascript.
中的选项卡如果我们检查页面的 DOM 结构,我们会发现以下部分对应于选项卡 table:
我将使用 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添加到页面并将其设置为启动脚本:
并添加到DataSource的Initialize Client Event下
现在,在自定义发布后,如果您打开“销售订单”页面,您将看到“税收”选项卡是第一个选项卡
注意到这是一个有答案的老问题,但只是想 update/add 另一种方法来通过自定义编辑器工具更改选项卡的顺序,见下文:
-确保将屏幕添加到自定义项目的 屏幕 部分。
-然后点击文件->编辑项目项,见下图:
-然后 select/highlight 您要更改 Tab 键顺序的屏幕。
-然后在 底部选择后 通过添加 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) 刷新您的浏览器。查看以下结果:
希望对您有所帮助。
基于一些最初让我感到困惑的事情,使用 PxTabItem Text 和 OriginalIndex="n" 对之前的答案进行了一些澄清。
OriginalIndex 是一个基于零的索引,表示选项卡在移动之前的位置。例如,对于项目表格: Sample of Projects original Tab Order
诀窍是按照您希望显示它们的顺序列出子项 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>