- PR -

ReportViewerでの日付の西暦→和暦変換

1
投稿者投稿内容
影羽
常連さん
会議室デビュー日: 2006/09/16
投稿数: 20
投稿日時: 2006-10-19 17:27
お世話になります。
VS2005 C#で開発しています。

ReportViewerで、Accessテーブルの文字列"20060101"を、"平成18年1月1日"
というように西暦→和暦変換して表示したい


と思っています。

元号は明治から平成までです。

はじめにReport1.rdlcのデザイナで、和暦を表示したいテキストボックスを
右クリック→プロパティ→全般→式の編集で、以下のコードを書きましたが

=Format(CDate(
Mid(First(Fields!f1.Value),1,4) & "/" &
Mid(First(Fields!f1.Value),5,2) & "/" &
Mid(First(Fields!f1.Value),7,2))
,"gggee年mm月dd日")

西暦ee年01月01日と表示されました。また、

=Format(CDate(
Mid(First(Fields!f1.Value),1,4) & "/" &
Mid(First(Fields!f1.Value),5,2) & "/" &
Mid(First(Fields!f1.Value),7,2))
,"gggyy年mm月dd日")

とした場合は

西暦06年01月01日と表示されてしまいました。

そこで、下記を参照して、
http://msdn2.microsoft.com/ja-jp/library/ms252130.aspx

@ITのTipにのっていた
Imports System
Imports System.Globalization

Dim culture As CultureInfo = New CultureInfo("ja-JP", True)
culture.DateTimeFormat.Calendar = New JapaneseCalendar()

Dim target As DateTime = New DateTime(2003, 7, 1)
Dim result As String = target.ToString("ggyy年M月d日", culture)
Console.WriteLine(result)

このコードでの表示を行おうと思い、
Report1.rdlcのデザイナのレポート→レポートのプロパティ→参照
→.NETタブからmscorlibの参照を追加し、

カスタムコードを書かずにビルドすると、

ローカル レポート処理中にエラーが発生しました。レポートはコードモジュール'mscorlib, Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'を
参照していますが、これは信頼されたアセンブリではありません

というエラーが表示されてしまいました。

参照の追加を、Report1.rdlcのデザイナのレポート→レポートのプロパティ→参照
→参照タブから行い、直接 mscorlib.dllのファイルを指定して追加してみても結果は変わりませんでした。

西暦和暦変換をするには、ReportViewerで自動的に参照される Microsoft.VisualBasic,System.Convert,System.Mathのアセンブリでは不可能ではないかと思いこのようにしたのですが、このエラーの回避方法、またはほかの方法で西暦和暦変換を行うことはできないのでしょうか

すみませんがよろしくお願いします


1

スキルアップ/キャリアアップ(JOB@IT)