如何创建超链接用户字段

时间:2014-10-15 16:16:20

标签: acumatica

我有一个显示ARRegister.RefNbr的用户字段。此用户字段包含在APTran网格中。用户实际创建带有自定义操作的AR发票,新AR文档参考将保存到APTran网格。我希望将用户字段设置为超链接(类似于库存收货参考编号,在SO货运单选项卡中)。我应该使用PXSelector控件吗?什么是正确的属性?目标是在用户单击用户字段时打开AR发票屏幕。

2 个答案:

答案 0 :(得分:7)

有一种通用方法允许您添加到网格单元格的链接,而不是基于选择器或其他任何内容。要实现它,您必须执行以下步骤:

1.定义图表中处理重定向的操作。像这样:

public PXAction<YourMainDAC> ViewInvoice;

[PXButton]
protected virtual void viewInvoice()
{
    ARTran row = Transactions.Current;
    string docType = //get Doc Type from the tran record
    string refNbr = //get Ref Nbr from the tran record
    ARInvoice invoice = PXSelect<ARInvoice, 
        Where<ARInvoice.docType, Equal<Required<ARInvoice.docType>>,
          And<ARInvoice.refNbr, Equal<Required<ARInvoice.refNbr>>>>>
            .Select(this, row.YourDocTypeField, row.YourRefNbrField);

    // Create the instance of the destination graph
    ARInvoiceEntry graph = PXGraph.CreateInstance<ARInvoiceEntry>();
    graph.Document.Current = invoice;

    // If the invoice is found, throw an exception to open
    // a new window (tab) in the browser
    if (graph.Document.Current != null)
    {
        throw new PXRedirectRequiredException(graph, true, "AR Invoice");
    }
}

2.在.aspx页面定义中添加一个与新操作相对应的回调命令(将grid替换为页面上ARTran网格的ID):

<px:PXDataSource ID="ds" ... >
    <CallbackCommands>
        <px:PXDSCallbackCommand Name="ViewInvoice"
            Visible="False"
            DependOnGrid="grid">
        </px:PXDSCallbackCommand>
    </CallbackCommands>
</px:PXDataSource>

3.在要添加链接的网格列中,指定链接命令以指向上面的PXDSCallbackCommand

<px:PXGridColumn DataField="InvoiceNbrOrSomething"
                 LinkCommand="ViewInvoice">
</px:PXGridColumn>

这是定义链接的一种冗长方式,但首先,它不会对添加链接的字段施加任何约束,而且还可以完全控制要打开的图形以及在那里显示的内容。 / p>

注意:您可能还需要在aspx中的网格控件上设置SyncPosition="true"

该示例改编自Acumatica T200培训指南中的示例3.4。您可能需要查看它以获得一些详尽的解释和更多信息。

答案 1 :(得分:3)

如果您有一个链接到标准Acumatica表的选择器,例如添加包含针对InventoryItem或ARInvoice的选择器的自定义字段,您可以在包含自定义字段的页面中的字段上设置AllowEdit = True。这将自动添加超链接。如果您的字段不包含选择器,则除非可以设置段,否则它将无效。

我们在项目中添加了自定义表格,我们想要超链接。只要在DAC上添加PXPrimaryGraph属性,您就可以对完整的自定义页面/ dac执行相同的操作。

我们开始使用LinkCommand,但AllowEdit方法使代码简单,无需自定义逻辑来支持链接。比转到字段主图更复杂的逻辑需要一个linkcommand。