有没有办法更改销售订单页面中选项卡的顺序?
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 添加到页面并将其设置为启动脚本:
基于最初让我绊倒的一些事情,使用 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>
注意到这是一个带有答案的老问题,但只是想更新/添加另一个替代方法以通过自定义编辑器工具更改选项卡的顺序,见下文:
- 确保将屏幕添加到自定义项目的屏幕部分。
-然后点击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)刷新您的浏览器。请参阅下面的结果:
希望这可以帮助。