0

在我的报告中,数据被插入到我的临时表中。问题是报告中没有显示数据。我也删除了所有隐藏和可见性表达式。

这是 ProjInvoiceReport。我添加了第二个数据集,它需要为一个字段插入多个值。数据被插入到表中,但是当我将字段放在报表上的表控件(正确的数据集)中时......什么也没有出现!

在 ProjInvoiceDP 类中,我添加了一个 get 方法

[
    SRSReportDataSetAttribute(tableStr(ProjInvoiceServiceOrderTmp))
]
public ProjInvoiceServiceOrderTmp getProjInvoiceServiceOrderTmp()
{
    select * from projInvoiceServiceOrderTmp;
    return projInvoiceServiceOrderTmp;
}

和一个 initTempTable 方法

    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();
        }
    }

}

initTempTable 方法在 projInvoiceTmp.insert() 之前最后的 insertIntoProjInvoiceTmp 中调用。一位曾在此报告中工作过的人在同一区域调用了他们的 initTempTableFromProjTable。

insertIntoProjInvoiceTmp 在 fetch 方法中被调用。processReport 调用 fetch 方法。

知道问题是什么吗?

4

2 回答 2

0

这可能是由一个众所周知的问题引起的:

如果客户端显示设置未设置为 100%,则某些字段不会显示。

请参阅此 Microsoft 技术说明

尝试改变这一点 - 它立即为我工作

于 2013-01-07T10:39:29.383 回答
0

您是否将表 TempDB 设为临时表?

您是否对课程进行了适当的更改ProjInvoiceDP,制作了新方法?

[SRSReportDataSetAttribute(tableStr(MyTmp))]
public MyTmp getMyTmp()
{
    select myTmp;
    return myTmp;    
}
于 2012-12-21T10:13:51.117 回答