2013-02-27 3 views
3

SQL Server 2008 R2 Reporting Services 보고서를 Excel로 내보내려고합니다. 보고서에는 날짜 열이 있습니다. 날짜는 SQL 서버에 datetime으로 저장됩니다. 보고서의 언어는 =User!Language이고 날짜 셀의 형식은 d입니다. 보고서를 PDF로 내보내거나 렌더링 할 때 브라우저에서 요청한 로캘로 모든 내용이 표시됩니다 (Accept-Language).현지화가있는 Excel의 SSRS 날짜 형식

그러나 Excel로 렌더링하는 경우 형식이 갑자기 변경되어 예를 들어 General ([$-10409]M.T.JJJJ) (독일어로 Excel의 로캘은 de-AT으로 설정되고 브라우저 로캘은 en-US)입니다.

즉, Excel에서 날짜가 완전히 잘못된 형식으로 표시됩니다. 일, 월 및 년의 순서는 하드 코드되며 구분 기호 만 현재 로캘에서 제공됩니다. 따라서 d-m-yyyy 국가에서 생성 된 보고서는 날짜 형식이 다른 국가에서 여전히 일 - 월 - 연도로 표시되기 때문에 다른 OS 언어간에 보고서를 공유하는 것은 거의 불가능합니다. 따라서 m/d/yyyy 형식의 날짜를 예상하는 사람은 d/m/yyyy이됩니다.

12 일 이상 날짜가없는 경우 특히 위험합니다. 명백한 오류가 없기 때문에 표시된 날짜를 잘못 읽게 될 가능성이 큽니다.

Excel에서 수동으로 셀 형식을 날짜로 설정하면 모든 항목이 정상적으로 작동하고 형식이 OS 로캘에 따라 변경됩니다.

Excel 파일 자체를 편집 할 필요없이 Excel에서 날짜 형식으로 셀을 강제 설정할 수 있습니까?

P.S : 숫자도 숫자로 서식이 지정되지 않지만 문제가되지는 않지만 여전히 잠재적으로 오류의 원인 일 수는 [$-10409]#.##0,00;-#.##0,00입니다. (보고서의 형식은 N2입니다.)

+0

OS 언어를 바꿀 수 있습니까? – glh

+0

OS 언어를 변경하면 어떻게 알 수 있습니까? 셀 자체가 날짜 형식으로되어 있으면 Excel은 올바른 언어 종속 형식으로 셀을 표시합니다. 물론 SSRS가 일, 월 및 년의 위치가 정적 인 사용자 정의 형식의 셀을 생성하는 데는 도움이되지 않습니다. – urbanhusky

+0

저는 서버 배경이 아니지만 문제가있는 것 같습니다. 서버에는 사용자 언어에 대한 다른 아이디어가있는 것 같습니다. – glh

답변

0

나는 비슷한 문제를 해결하기 위해 노력해 왔습니다. 해결책은 간단합니다. 보고서 편집기에서 디자인보기를 열고 편집 할 필드를 선택하고 마우스 오른쪽 버튼을 클릭하고 Expression 또는 Textbox properties을 선택합니다. 나머지는 Excel 편집기 에서처럼 매우 직관적입니다.

+0

죄송합니다. 그러나 Excel 내보내기에서 날짜 필드 형식이 로캘/언어에 따라 달라지는 문제에 대한 해결책을 찾지 못했습니다. 'Number' 설정에서'Textbox properties'의 포맷을'Date'로 설정할 수는 있지만, 이것은 셀이'Date'로 포맷되지 않고, 하드 코드 된 날짜 포맷으로 일반 포맷이됩니다. – urbanhusky

+0

하드 코드 된 날짜 형식입니다. 다른 경우에는 로캘 정보에 종속적 일 수 있기 때문입니다.SSRS 용 렌더링 기계를 직접 작성하지 않는 한 다른 옵션은 없습니다. Excel 파일에 –

+0

로캘/언어에 따라 날짜가 달라질 것으로 예상됩니다. Excel은 바로 이런 이유로 '날짜'형식으로 셀을 지정할 수 있습니다. 날짜가'01.12.2013' 또는'12.01.2013'이고 'm.d.yyyy' 또는'd.m.yyyy'인 경우에는 큰 차이가 있습니다. 비즈니스 보고서의 경우 이는 파국적 인 영향을 미칠 수 있습니다. – urbanhusky