Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services AX 2012 SSRS报告可见性问题_Reporting Services_Ssrs 2008_Axapta_Dynamics Ax 2012 - Fatal编程技术网

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表。由于它被强制为一个常规表,所以我可以看到数据在报表运行时被插入。