0

我正在研究 D365FO。我确实创建了一个报告,向基于 tmp 表的数据集添加了一个查询。现在,当我尝试生成报告时,我得到的只是精确设计。其中没有显示任何数据。我怎样才能解决这个问题 ?我认为这是我的代码之外的问题,因为我试图生成一个已经创建的报告并且遇到了同样的问题。

[SrsReportParameterAttribute(classStr(ProductionStatusContract))]
class ProductionStatusDP extends SrsReportDataProviderBase
{
ProductionStatusTmp ProductionStatusTmp;
ProdTable prodtable;
SalesTable salestable;
InventDim inventdim;
SalesLine salesline;

public void processReport()
{
    ProductionStatusContract                    contract            = this.parmDataContract() as 
ProductionStatusContract;
    date                                        FromDate;
    date                                        ToDate;
    boolean                                     DateBetween         = false;

    if(contract.parmToDate() && contract.parmFromDate())
    {
        ToDate = contract.parmToDate();
        FromDate = contract.parmFromDate();
        DateBetween = true;
    }

    super();

    delete_from ProductionStatusTmp;
    ProductionStatusTmp.clear();

    while select prodtable where prodtable.CollectRefLevel == 0 
       join inventdim where prodtable.InventDimId == inventdim.inventDimId
        join salesline where prodtable.InventRefType == salesline.InventRefType
        && prodtable.InventRefId == salesline.SalesId
        && prodtable.InventRefTransId == salesline.InventTransId
        && prodtable.InventRefType == inventreftype::Sales

    {

        ProductionStatusTmp.clear();
        Info(strFmt("%1", prodtable.ProdId));
        ProductionStatusTmp.AcceptedDate = prodtable.CreatedDateTime;
        ProductionStatusTmp.ProdWeek = wkOfYr(prodtable.CreatedDateTime) + year(prodtable.CreatedDateTime);
        ProductionStatusTmp.ExternalNum = salesline.ExternalItemId;
        ProductionStatusTmp.Progress = ((prodtable.qtycalc * 100) / prodtable.QtySched);
        ProductionStatusTmp.Quantity = prodtable.QtyCalc;
        ProductionStatusTmp.AcceptedBy = prodtable.CreatedBy;
        ProductionStatusTmp.ProdItemId = InventDim.InventLocationId;
        ProductionStatusTmp.Ware = prodtable.Name;
        ProductionStatusTmp.ProductionStatus = prodtable.ProdStatus;
        ProductionStatusTmp.Produced = prodtable.QtySched;

        ProductionStatusTmp.insert();

    }
}

[SrsReportDataSetAttribute(tableStr(ProductionStatusTmp))]
public ProductionStatusTmp getProductionStatusTmp()
{

    select ProductionStatusTmp;
    return ProductionStatusTmp;

}
}
4

1 回答 1

0

您必须验证您的报告确实显示了您提供的数据。

您可以通过在数据提供程序中提供固定静态数据来执行此操作,以查看是否显示在 SSRS 报告预览中。

有关示例,请参阅此视频以了解如何操作。

于 2020-03-27T14:35:12.203 回答