Acumatica 在任何屏幕上显示GI in选项卡
我想在任何屏幕的某个选项卡上显示GI 例如,我希望在SO屏幕上的新选项卡上显示OrderMargin的新自定义GI,该选项卡将仅显示特定订单的订单保证金 OrderMargin是一种简单的GI,具有SOOrder、SOLine和InventoryItem表联接,并且很少有列需要使用边距计算的列Acumatica 在任何屏幕上显示GI in选项卡,acumatica,acumatica-kb,Acumatica,Acumatica Kb,我想在任何屏幕的某个选项卡上显示GI 例如,我希望在SO屏幕上的新选项卡上显示OrderMargin的新自定义GI,该选项卡将仅显示特定订单的订单保证金 OrderMargin是一种简单的GI,具有SOOrder、SOLine和InventoryItem表联接,并且很少有列需要使用边距计算的列 有人能提出建议吗?假设您创建了一个名为SalesOrderMargin的GI,其中包含两个隐藏参数: 要将此GI嵌入到“销售订单”页面,您应遵循以下步骤: 为SOOrder声明新的未绑定字段,以返回Sa
有人能提出建议吗?假设您创建了一个名为SalesOrderMargin的GI,其中包含两个隐藏参数: 要将此GI嵌入到“销售订单”页面,您应遵循以下步骤:
public class SOOrderExt : PXCacheExtension<SOOrder>
{
public abstract class marginGiUrl : IBqlField { }
[PXString]
[PXUIField(Visible = false)]
public string MarginGiUrl
{
get
{
if (string.IsNullOrEmpty(Base.OrderType) ||
string.IsNullOrEmpty(Base.OrderNbr)) return string.Empty;
string inqName = "SalesOrderMargin";
var url = new StringBuilder(PXGenericInqGrph.INQUIRY_URL)
.Append("?name=").Append(inqName)
.Append("&SOOrderType=").Append(Base.OrderType);
.Append("&SOOrderNbr=").Append(Base.OrderNbr);
.Append("&hidePageTitle=true");
return PX.Common.PXUrl.SiteUrlWithPath().TrimEnd('/') +
url.ToString().Remove(0, 1);
}
}
}
公共类SOOrderExt:PXCacheExtension
{
公共抽象类marginGiUrl:IBqlField{}
[字符串]
[PXUIField(可见=假)]
公共字符串MarginGiUrl
{
收到
{
if(string.IsNullOrEmpty(Base.OrderType)|
IsNullOrEmpty(Base.OrderNbr))返回string.Empty;
字符串inqName=“SalesOrderMargin”;
var url=新的StringBuilder(PXGenericInqGrph.INQUIRY\u url)
.Append(“?name=”).Append(inqName)
.Append(“&SOOrderType=”).Append(Base.OrderType);
.Append(“&SOOrderNbr=”).Append(Base.OrderNbr);
.Append(&hidePageTitle=true);
返回PX.Common.PXUrl.SiteUrlWithPath().TrimEnd('/')+
url.ToString().Remove(0,1);
}
}
}
<px:PXTabItem Text="Margins" >
<Template>
<px:PXSmartPanel runat="server" ID="panelMarginGI" RenderIFrame="True"
AutoSize-Enabled="true" SkinID="Frame" LoadOnDemand="true"/>
</Template>
</px:PXTabItem>
...
<script type="text/javascript" language="javascript">
function commandResult(ds, context) {
var commands = ["ReloadPage", "Save", "Cancel", "Insert", "First", "Previous", "Next", "Last"];
if (commands.indexOf(context.command) >= 0) {
var marginGiUrl = px_alls["edMarginGiUrl"];
var smartpanel = px_alls["panelMarginGI"];
if (marginGiUrl || smartpanel) {
var url = marginGiUrl.getValue();
smartpanel.setPageUrl(url);
smartpanel.repaint();
}
}
}
</script>
函数commandResult(ds,上下文){
var命令=[“重新加载页面”、“保存”、“取消”、“插入”、“第一个”、“上一个”、“下一个”、“最后一个”];
if(commands.indexOf(context.command)>=0){
var marginGiUrl=px_all[“edMarginGiUrl”];
var smartpanel=px_all[“panelMarginGI”];
if(marginGiUrl | |智能面板){
var url=marginGiUrl.getValue();
smartpanel.setPageUrl(url);
smartpanel.repaint();
}
}
}
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="PX.Objects.SO.SOOrderEntry" PrimaryView="Document">
<ClientEvents CommandPerformed="commandResult" />
...
</px:PXDataSource>
...
假设您创建了一个名为SalesOrderMargin的GI,其中包含两个隐藏参数: 要将此GI嵌入到“销售订单”页面,您应遵循以下步骤:
public class SOOrderExt : PXCacheExtension<SOOrder>
{
public abstract class marginGiUrl : IBqlField { }
[PXString]
[PXUIField(Visible = false)]
public string MarginGiUrl
{
get
{
if (string.IsNullOrEmpty(Base.OrderType) ||
string.IsNullOrEmpty(Base.OrderNbr)) return string.Empty;
string inqName = "SalesOrderMargin";
var url = new StringBuilder(PXGenericInqGrph.INQUIRY_URL)
.Append("?name=").Append(inqName)
.Append("&SOOrderType=").Append(Base.OrderType);
.Append("&SOOrderNbr=").Append(Base.OrderNbr);
.Append("&hidePageTitle=true");
return PX.Common.PXUrl.SiteUrlWithPath().TrimEnd('/') +
url.ToString().Remove(0, 1);
}
}
}
公共类SOOrderExt:PXCacheExtension
{
公共抽象类marginGiUrl:IBqlField{}
[字符串]
[PXUIField(可见=假)]
公共字符串MarginGiUrl
{
收到
{
if(string.IsNullOrEmpty(Base.OrderType)|
IsNullOrEmpty(Base.OrderNbr))返回string.Empty;
字符串inqName=“SalesOrderMargin”;
var url=新的StringBuilder(PXGenericInqGrph.INQUIRY\u url)
.Append(“?name=”).Append(inqName)
.Append(“&SOOrderType=”).Append(Base.OrderType);
.Append(“&SOOrderNbr=”).Append(Base.OrderNbr);
.Append(&hidePageTitle=true);
返回PX.Common.PXUrl.SiteUrlWithPath().TrimEnd('/')+
url.ToString().Remove(0,1);
}
}
}
<px:PXTabItem Text="Margins" >
<Template>
<px:PXSmartPanel runat="server" ID="panelMarginGI" RenderIFrame="True"
AutoSize-Enabled="true" SkinID="Frame" LoadOnDemand="true"/>
</Template>
</px:PXTabItem>
...
<script type="text/javascript" language="javascript">
function commandResult(ds, context) {
var commands = ["ReloadPage", "Save", "Cancel", "Insert", "First", "Previous", "Next", "Last"];
if (commands.indexOf(context.command) >= 0) {
var marginGiUrl = px_alls["edMarginGiUrl"];
var smartpanel = px_alls["panelMarginGI"];
if (marginGiUrl || smartpanel) {
var url = marginGiUrl.getValue();
smartpanel.setPageUrl(url);
smartpanel.repaint();
}
}
}
</script>
函数commandResult(ds,上下文){
var命令=[“重新加载页面”、“保存”、“取消”、“插入”、“第一个”、“上一个”、“下一个”、“最后一个”];
if(commands.indexOf(context.command)>=0){
var marginGiUrl=px_all[“edMarginGiUrl”];
var smartpanel=px_all[“panelMarginGI”];
if(marginGiUrl | |智能面板){
var url=marginGiUrl.getValue();
smartpanel.setPageUrl(url);
smartpanel.repaint();
}
}
}
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="PX.Objects.SO.SOOrderEntry" PrimaryView="Document">
<ClientEvents CommandPerformed="commandResult" />
...
</px:PXDataSource>
...