我创建了一个放置在采购订单行项目网格上的按钮和一个新的 GI。我需要打开这些 GI 并自动将 PO 订单号作为参数传递给 GI。
我在按钮事件处理程序中编写了以下代码。但是,它是在内部框架内(见截图)而不是在主窗口中打开 GI。
public PXAction<POOrder> viewFullSODemandGI;
[PXButton()]
[PXUIField(DisplayName = "View Full SO Demand", MapEnableRights = PXCacheRights.Insert, MapViewRights = PXCacheRights.Insert)]
protected virtual IEnumerable ViewFullSODemandGI(PXAdapter adapter)
{
var poOrderNbr = string.Empty;
foreach (POOrder current in adapter.Get<POOrder>())
{
poOrderNbr = current.OrderNbr;
}
var sURL = PXUrl.ToAbsoluteUrl(HttpUtility.UrlPathEncode(string.Format("~/?CompanyID=Company&ScreenId=GI000092&POOrderNumber={0}", poOrderNbr.Trim())));
throw new PXRedirectToUrlException(sURL, PXBaseRedirectException.WindowMode.New, false, null);
}Run Code Online (Sandbox Code Playgroud)
请建议。
我想这两种方法(一种由@Brendan 建议,另一种最初由 @Krunal 使用)之间的最大区别在于 URL 的组成方式:
@Brendan 建议使用相对 URL
@Krunal 组成了一个绝对 URL
我的结果与使用绝对 URL 的 @Krunal 完全相同。但是,使用由以下任一代码片段组成的相对 URL,成功完成了任务:
使用 GI 名称(查询标题):
string inqName = "InvoicedItems";
var url = new StringBuilder(PXGenericInqGrph.INQUIRY_URL).Append("?name=").Append(inqName).ToString();
throw new PXRedirectToUrlException(url, PXBaseRedirectException.WindowMode.New, true, null);
Run Code Online (Sandbox Code Playgroud)使用通用查询 ID(来自数据库的 GI 的 GUID):
string inqID = "6b267dbb-0ff2-49b2-b005-355c544daba3";
var url = new StringBuilder(PXGenericInqGrph.INQUIRY_URL).Append("?id=").Append(inqID).ToString();
throw new PXRedirectToUrlException(url, PXBaseRedirectException.WindowMode.New, true, null);
Run Code Online (Sandbox Code Playgroud)还值得检查PXRedirectToGIRequiredException:
使用带有参数 (SalespersonID) 的 GI 名称(查询标题):
string inqName = "SalespersonSales&SalespersonID=SP0003";
throw new PXRedirectToGIRequiredException(inqName, PXBaseRedirectException.WindowMode.New, true);
Run Code Online (Sandbox Code Playgroud)使用通用查询 ID(来自数据库的 GI 的 GUID):
Guid inqID = Guid.Parse("6b267dbb-0ff2-49b2-b005-355c544daba3");
throw new PXRedirectToGIRequiredException(inqID, PXBaseRedirectException.WindowMode.New, true);
Run Code Online (Sandbox Code Playgroud)的两个样本PXRedirectToGIRequiredException都可以绝对地为 GI 参数赋值。
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |