programing

Excel, SSRS에서 텍스트로 출력된 번호 필드

skycolor 2023. 10. 14. 09:58
반응형

Excel, SSRS에서 텍스트로 출력된 번호 필드

내 SSRS 보고서에서 필드 중 하나가 이 식을 사용하고 있으며, 여기서 필드는 숫자 필드입니다.값이 다음과 같은 경우 공백 필드를 표시합니다.0.

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value ,"")

Excel 내보내기 버전은 이 필드를 번호가 아닌 텍스트로 간주합니다.

SSRS 쪽에서 다른 방법이 있습니까?

제가 이런 문제가 있었습니다.일부 셀은 텍스트이고 다른 셀은 숫자이며 모두 동일한 형식 문자열입니다.분해능은 셀 표현식에 1.000을 곱하는 것입니다(1이 작동하지 않음!). 이는 SSRS가 셀을 숫자로 포맷하도록 강제합니다.예; (여기 당신의 표정) * 1,000

Excel은 필드가 0일 때마다 빈 문자열을 출력하기 때문에 이 필드를 텍스트로 인식합니다.

빈 문자열 대신 null 값을 출력하려면 다음과 같이 시도할 수 있습니다.

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value,  Nothing)

그러나 Excel은 필드가 첫 번째 데이터 행에 있는 것과 같은 유형이라고 가정하는 것을 기억하고 있기 때문에 이것이 작동하는 것은 보장되지 않습니다.

엑셀 수출에서 이 문제가 발생하여 정수는 CLng, 소수점은 CDbl 기능으로 해결하였습니다.

= CLNG(필드!Qty.Value)

그러면 Excel 셀이 숫자로 표시되고 필드보다 깨끗해집니다!Qty.값 * 1.000

문제는 IIF 문이 빈 문자열 ""로 끝난다는 것입니다.이 값을 0으로 변경하면 예상대로 작동합니다.

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, 0)

대신에...

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, "")

다음은 3가지 다른 결함에 대한 3가지 솔루션입니다.
값 1

1234
빈 칸
1234

솔루션2

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), " ")


값2

1234
Null
345
귀무의

솔루션2

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), "NULL")


값 3

1234
Null
345
해당 없음
550
TBA
440
599
해당 없음

솔루션3

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), Fields!TEST.Value.ToString()),

언급URL : https://stackoverflow.com/questions/643854/number-field-turned-out-as-text-in-excel-ssrs

반응형