문제

일부 보고서에서 집계 컨트롤을 사용할 때 0 대신 빈 필드를 표시하는 것이 좋습니다.이 작업을 자동으로 수행하는 방법은 없는 것 같습니다.누구든지 이 작업을 수행할 수 있는 방법이 있습니까?내보낼 때 필드의 '0' 값을 유지하고 싶지만 PDF 또는 HTML로 렌더링할 때는 공백을 표시하려고 합니다.

도움이 되었습니까?

해결책 2

참고로 이 작업을 오랫동안 수행한 후에 가시성 규칙을 사용하는 것이 더 쉽다는 것을 알게 되었습니다.한 가지 큰 장점은 다양한 출력 형식에 대해 다양한 가시성을 쉽게 구성할 수 있다는 것입니다.따라서 PDF의 경우 공백을 사용하는 것이 가장 좋지만 Excel의 경우 0 값을 원할 수 있습니다.

다른 팁

이 문제를 해결하는 방법에는 여러 가지가 있습니다.두 가지 주요 방법은 가시성 규칙이나 강조 표시를 사용하여 조건부 서식을 만드는 것입니다.특정 유형의 출력에만 형식 규칙을 적용하는 것이 쉽기 때문에 가시성이 특히 매력적입니다(예:HTML).

이 특별한 경우에는 이러한 접근 방식에 두 가지 문제가 있습니다.첫째, 텍스트 색상을 지정할 필요가 없는 일반적인 솔루션을 원합니다.즉, 조건이 true(값 0)인 경우 텍스트 색상이 배경 색상과 일치하도록 합니다.그런 식으로 누군가가 컨트롤의 backgroundColor를 변경하더라도 코드는 계속 작동합니다.

또 다른 문제는 이 경우 값 조회를 지원하지 않는 동적 열 바인딩을 사용하고 있다는 것입니다.

제가 만든 솔루션은 아래와 같이 hideMe라는 JavaScript 함수를 추가하는 것이었습니다.

function hideText (dataControl){
    if (dataControl.getValue() == 0) {
        var color = dataControl.getStyle().getBackgroundColor();
        var parentItem = dataControl.getParent();
        do {
            if (color == null && parentItem != null) {
                color = parentItem.getStyle().getBackgroundColor();
                parentItem = parentItem.getParent();
            } else {
                break;
            }

        } while (color == null);
        dataControl.getStyle().color = color;
    }
}

이 함수가 보고서(제 경우에는 포함된 javascript 파일)에 추가되면 컨트롤의 OnCreate 메서드에서 호출하기만 하면 됩니다.

hideText(this);

이는 Java 이벤트 핸들러를 사용하여 수행할 수도 있지만 이 방법이 더 쉬운 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top