作成日: 2019/04/10 最終更新日: 2019/04/17
文書種別
不具合
状況
修正済み
詳細
■事象
和暦の入力書式を設定したGcDateTime型セル(InputManセル)について、テキストが全選択された状態で、日付の値を貼り付けると、正しい日付が設定されない場合があります。
現象は以下の条件を満たす場合に発生します。
◎サンプルコード(VB)
(App.Config内の設定…和暦設定部分のみ抜粋)
■再現手順
1. フォーム上にSPREADコントロールを配置し、上記コードを実装します。
2. App.Configに和暦設定情報を追加します。
3. プロジェクトを実行します。
4. A1セルを編集状態にし、表示される"A010501"をコピーします。
5. A2セルを編集状態にして、表示される"H310430"をすべて選択した状態で貼り付けます。
→コピーした日付と異なる日付("A010505")が貼り付けられます。
和暦の入力書式を設定したGcDateTime型セル(InputManセル)について、テキストが全選択された状態で、日付の値を貼り付けると、正しい日付が設定されない場合があります。
現象は以下の条件を満たす場合に発生します。
- アプリケーション構成ファイル(App.config)に新元号を定義している。
- 貼り付け先のGcDateTime型セルに和暦の入力書式を設定している。
- 貼り付け先のコントロールに設定されている値を編集モードですべて選択した状態で、値を貼り付ける。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' GcDateTime型セルを定義します。
Dim GcDTCell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType()
GcDTCell.Fields.Clear()
GcDTCell.DisplayFields.Clear()
' (和暦の書式を設定します。)
GcDTCell.Fields.AddRange("geeMMdd")
GcDTCell.DisplayFields.AddRange("gggee年MM月dd日")
' "A1"と"A2"セルにGcDateTime型セルを適用します。
FpSpread1.ActiveSheet.Cells(0, 0, 1, 0).CellType = GcDTCell
' セルに値を設定します。
FpSpread1.ActiveSheet.Cells(0, 0).Value = New DateTime(2019, 5, 1)
FpSpread1.ActiveSheet.Cells(1, 0).Value = New DateTime(2019, 4, 30)
' 編集開始時、文字列が選択された状態にします。
FpSpread1.EditModeReplace = True
End Sub
' GcDateTime型セルを定義します。
Dim GcDTCell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType()
GcDTCell.Fields.Clear()
GcDTCell.DisplayFields.Clear()
' (和暦の書式を設定します。)
GcDTCell.Fields.AddRange("geeMMdd")
GcDTCell.DisplayFields.AddRange("gggee年MM月dd日")
' "A1"と"A2"セルにGcDateTime型セルを適用します。
FpSpread1.ActiveSheet.Cells(0, 0, 1, 0).CellType = GcDTCell
' セルに値を設定します。
FpSpread1.ActiveSheet.Cells(0, 0).Value = New DateTime(2019, 5, 1)
FpSpread1.ActiveSheet.Cells(1, 0).Value = New DateTime(2019, 4, 30)
' 編集開始時、文字列が選択された状態にします。
FpSpread1.EditModeReplace = True
End Sub
(App.Config内の設定…和暦設定部分のみ抜粋)
<configSections> <section name="GrapeCityEra" type="System.Configuration.NameValueSectionHandler"/> </configSections> <GrapeCityEra> <add key="1868 09 08" value="明治_明_M_1,M"/> <add key="1912 07 30" value="大正_大_T_2,T"/> <add key="1926 12 25" value="昭和_昭_S_3,S"/> <add key="1989 01 08" value="平成_平_H_4,H"/> <add key="2019 05 01" value="和元_和_A_5,A"/> </GrapeCityEra>
■再現手順
1. フォーム上にSPREADコントロールを配置し、上記コードを実装します。
2. App.Configに和暦設定情報を追加します。
3. プロジェクトを実行します。
4. A1セルを編集状態にし、表示される"A010501"をコピーします。
5. A2セルを編集状態にして、表示される"H310430"をすべて選択した状態で貼り付けます。
→コピーした日付と異なる日付("A010505")が貼り付けられます。
回避方法
Service Pack 3(v11.0.4504.2012)で修正済み。
旧文書番号
83855