我有一个字符串,该字符串是从签名板捕获并存储在Acumatica数据库的自定义表中的base64编码位图。我有用于表的DAC,并且可以从报表设计器中访问它。
我遇到的问题是如何将这种base64编码的图像添加到Acumatica中的报表上。有一个PictureBox控件似乎是我想要的,但它似乎不处理编码的图像数据,仅链接到数据库,嵌入的文件或URL。
我尝试过:
Acumatica的报表设计器有什么方法可以解决这个问题?
因为这是一个托管环境,所以我不能托管一个临时文件,因此最好的解决方案是允许该数据库中的编码位图以某种方式在报表中使用。但是,除了已被排除的本地临时文件外,任何可以完成工作的解决方案都将受到欢迎。
答案 0 :(得分:0)
您需要将base64字符串另存为Acumatica中的文件附件。您可以使用Encoding.ASCII.GetBytes(<Base64String>)
将base64 string
转换为byte[]
并利用UploadFileMaintenance
图形将图像保存为文件附件。
//Graph for file management
UploadFileMaintenance upload = PXGraph.CreateInstance<UploadFileMaintenance>();
//Set filename
string fileName = string.Format(<FileName>, <FileExt>);
//Convert Base64 String to byte[]
byte[] data = System.Text.Encoding.ASCII.GetBytes(<Base64String>);
//Create file info, you may check different overloads as per your need
FileInfo file = new FileInfo(fileName, null, data);
upload.SaveFile(file, FileExistsAction.CreateVersion);
//To Attach file to Entity
PXNoteAttribute.SetFileNotes(<PXCache>, <EntityData>, file.UID.Value);
有关完整文件附件的示例,您可以参考this KB。将文件作为附件保存后,您应该可以通过引用现成的销售订单报告(SO641010
中的徽标显示来在报告中使用它。