如何将Cognos 10中的报表表达式导出为数据项,并在选择Excel 2007数据时返回结果

时间:2017-11-14 20:55:53

标签: excel cognos-10 cognos-bi

我有关于Cognos 10的快速提问。我正在尝试导出我创建的数据项,该数据项具有报表表达式作为值。例如:IF(ParamValue(' p_RPO')为NULL)那么('')ELSE(ParamDisplayValue(' p_RPO'))。当我以HTML格式导出报表时,它按预期工作。但是,当我选择excel 2007数据时,它似乎删除了具有报表表达式的数据项列。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

不使用报表表达式而是使用以下表达式向查询添加数据项:

class AddMedia(LoginRequiredMixin, StaffuserRequiredMixin, JsonRequestResponseMixin, GenericView):
    require_json = True

    def post(self, request, *args, **kwargs):
        object_id = self.request_json["objectId"]
        object_var = self.request_json["objectVarName"]
        content_type_id = self.request_json["contentType"]
        order = self.request_json["order"]
        media_id = self.request_json["mediaId"]
        media_type = self.request_json["mediaType"]

        content_type = _get_content_type_or_404(content_type_id)
        content_object = _get_object_or_404(content_type, object_id)
        model_var = getattr(content_object, object_var)

        try:
            if media_type.lower() == "image":
                obj = Image.objects.get(pk=media_id)
            elif media_type.lower() == "video":
                obj = Video.objects.get(pk=media_id)
            else:
                raise Http404("Invalid mediaType parameter: {0}".format(media_type))
            media_item = model_var.create(content_object=obj)
            media_item.order = order
            media_item.save()
        except model_var.model.DoesNotExist:
            pass

        return self.render_json_response({'message': "Order successfully updated"})

将此数据项添加到列表中。

要使p_RPO参数可选,必须使用指定默认值的提示宏。在这种情况下:

if (?p_RPO? is null) then ('whatever') else (?p_RPO?)