1

我有一个很大的问题,您可以通过操作附加 XML,当您导入 XML 并将其保存在“文件”选项卡中时,问题是。如果它可以附加?

这是一个示例图像:缺少的是我在“文件”选项卡中自动附加,当我上传时

这里我有一个示例图像

这是我的代码,我在其中附加了 XML

  public PXAction<ARInvoice> CargarXML;
    [PXUIField(DisplayName = "Carga de código hash")]
    [PXButton()]
    public virtual void cargarXML()
    {
        var Result = NewFilePanel.AskExt(true);
        if (Result == WebDialogResult.OK)
        {
            PX.SM.FileInfo fileInfo = PX.Common.PXContext.SessionTyped<PXSessionStatePXData>().FileInfo["CargaSessionKey"];
            string result = System.Text.Encoding.UTF8.GetString(fileInfo.BinData);

            ARInvoice ari = Base.Document.Current;
            xtFECodHashEntry graph2 = PXGraph.CreateInstance<xtFECodHashEntry>();
            var pchExt = ari.GetExtension<ARRegisterExt>();

            string Valor = "";
            XmlDocument xm = new XmlDocument();
            xm.LoadXml(result);

            XmlNodeList elemList = xm.GetElementsByTagName("ds:DigestValue");
            for (int i = 0; i < elemList.Count;)
            {
                Valor = (elemList[i].InnerXml);
                break;
            }
            PXLongOperation.StartOperation(Base, delegate ()
            {
                xtFECodHash dac = new xtFECodHash();
                dac.RefNbr = ari.RefNbr;
                dac.DocType = ari.DocType;
                dac.Nrocomprobante = ari.InvoiceNbr;
                dac.Hash = Valor;
                dac.Tipo = pchExt.UsrTDocSunat;
                graph2.xtFECodHashs.Insert(dac);
                graph2.Actions.PressSave();
            });
        }
    }
4

1 回答 1

1

如果您有看起来像的 FileInfo 对象,我使用了类似这样的东西:

protected virtual void SaveFile(FileInfo fileInfo, PXCache cache, object row)
{
    if (fileInfo == null)
    {
        return;
    }

    var fileGraph = PXGraph.CreateInstance<UploadFileMaintenance>();

    if (!fileGraph.SaveFile(fileInfo, FileExistsAction.CreateVersion))
    {
        return;
    }

    if (!fileInfo.UID.HasValue)
    {
        return;
    }

    PXNoteAttribute.SetFileNotes(cache, row, fileInfo.UID.Value);
}

因此,在您的示例中,您可以使用以下代码调用此方法,如上所示:

SaveFile(fileInfo, Base.Document.Cache, Base.Document.Current);
于 2019-08-07T13:00:14.860 回答