Reporting services AX 2012 SSRS报告可见性问题
在我的报告中,数据被插入到我的临时表中。问题是报告中没有显示数据。我还删除了所有隐藏表达式和可见性表达式Reporting services AX 2012 SSRS报告可见性问题,reporting-services,ssrs-2008,axapta,dynamics-ax-2012,Reporting Services,Ssrs 2008,Axapta,Dynamics Ax 2012,在我的报告中,数据被插入到我的临时表中。问题是报告中没有显示数据。我还删除了所有隐藏表达式和可见性表达式 这是报告。我添加了第二个数据集,它需要为一个字段插入多个值。数据正在插入到表中,但当我将字段放入表控件中时,报表上的数据集将正确无误…什么都不会出现 在ProjInvoiceDP类中,我添加了一个get方法 [ SRSReportDataSetAttribute(tableStr(ProjInvoiceServiceOrderTmp)) ] public ProjInvoiceSer
这是报告。我添加了第二个数据集,它需要为一个字段插入多个值。数据正在插入到表中,但当我将字段放入表控件中时,报表上的数据集将正确无误…什么都不会出现 在ProjInvoiceDP类中,我添加了一个get方法
[
SRSReportDataSetAttribute(tableStr(ProjInvoiceServiceOrderTmp))
]
public ProjInvoiceServiceOrderTmp getProjInvoiceServiceOrderTmp()
{
select * from projInvoiceServiceOrderTmp;
return projInvoiceServiceOrderTmp;
}
和一个可初始化的方法
public void initTempTableFromSMAServiceOrder(ProjTable _projTable, ProjInvoiceId
_projInvoiceId)
{
SMAServiceOrderLine serviceOrderLine;
ProjEmplTrans projEmplTrans;
ProjItemTrans projItemTrans;
iProjInvoiceId = _projInvoiceId;
ttsBegin;
delete_from projInvoiceServiceOrderTmp where projInvoiceServiceOrderTmp.ProjInvoiceId ==
iProjInvoiceId;
ttsCommit;
while select serviceOrderLine
join projEmplTrans
where serviceOrderLine.ProjTransId == projEmplTrans.TransId
&& serviceOrderLine.ProjId == _projTable.ProjId
{
if(projEmplTrans.invoiceId() == iProjInvoiceId)
{
projInvoiceServiceOrderTmp.clear();
projInvoiceServiceOrderTmp.ServiceOrderId = serviceOrderLine.ServiceOrderId;
// projInvoiceServiceOrderTmp.ShowFieldTicketInfo = #True;
projInvoiceServiceOrderTmp.ProjInvoiceId = iProjInvoiceId;
projInvoiceServiceOrderTmp.insert();
}
}
while select serviceOrderLine
join projItemTrans
where serviceOrderLine.ProjTransId == projItemTrans.ProjTransId
&& serviceOrderLine.ProjId == _projTable.ProjId
{
if(projItemTrans.invoiceId() == iProjInvoiceId)
{
projInvoiceServiceOrderTmp.clear();
projInvoiceServiceOrderTmp.ServiceOrderId = serviceOrderLine.ServiceOrderId;
// projInvoiceServiceOrderTmp.ShowFieldTicketInfo = #True;
projInvoiceServiceOrderTmp.ProjInvoiceId = iProjInvoiceId;
projInvoiceServiceOrderTmp.insert();
}
}
}
InitTestable方法在插入projInvoiceTmp.insert之前的最末端的insertIntoProjInvoiceTmp中调用。一位以前编写过此报告的人员在同一领域将他们的InitTestableFromProjTable称为InitTestableFromProjTable
insertIntoProjInvoiceTmp在fetch方法中调用。processReport调用fetch方法
你知道问题是什么吗?你把TempDB表改成临时表了吗 您是否对ProjInvoiceDP类进行了适当的更改,并创建了一个新方法
[SRSReportDataSetAttribute(tableStr(MyTmp))]
public MyTmp getMyTmp()
{
select myTmp;
return myTmp;
}
这可能是由一个众所周知的问题引起的: 如果客户端显示设置未设置为100%,则某些字段不会显示 看
试着改变这一点-它立即对我起作用这是ProjInvoiceReport。我添加了第二个数据集,它需要为一个字段插入多个值。数据正在插入到表中,但当我将字段放入表控件中时,报表上的数据集将正确无误…什么都不会出现!当您说第二个数据集时,如何选择此数据集?AX与SSR进行了奇怪的集成。我相信它不仅仅是一个简单的选择*,因为我已经浏览了它从中选择的tmp表,而且有时有比报告中显示的更多的数据。有时它仍然包含我上次运行报告时的数据。奇怪。在ProjInvoiceDP中,我添加了一个get方法,如Jan在下面提供的方法。我在insertIntoProjInvoiceTmp中编写了一个initTestableFrom*方法,该方法在projInvoiceTmp.insert之前的末尾调用。在Visual Studio中,我创建了一个新的数据集,允许我从新的临时表中选择所有字段。我将用代码编辑我的帖子。是的,奇怪的是ProjInvoiceTmp表是一个常规表。Visual Studio也不允许我为第二个数据集创建TempDB表。由于它被强制为一个常规表,所以我可以看到数据在报表运行时被插入。