GrapeCity社「VS2010で対応されないツール」をVS2010で使ってみる(1)

愛用ツール(TrueDBGrid.Net2.0、InputMan4.0、ActiveReports3.0:いずれもGrapeCity社)が、VisualStudio2010では「対応されない」模様です。 Visual Studio 2010 - .NET 製品の対応環境(GrapeCity社)

古いので切り捨てられるのは仕方のない事なのでしょう。しかし、新しいバージョンのTrueDBGridを手に入れようとしても ComponentOne Studio for Windows Forms 2010Jを購入しなければならず単品では購入出来ません。(パッケージ化するのはいいんだけど、単品で購入出来る道を残しておいてもらいたいものです)

それより何より「高価」ですので、簡単には購入出来ません..

上記ツールは「未対応(対応予定なし)」とのことですが、ちょっと動かしてみようと思います

開発環境

  • OS:WindowsXP SP3 (32bit)
  • VisialStudio 2010 SP1 (Visual Basic)
  • .NET Framework 4
  • InputMan For .NET 4.0J WindowsForms Version 4.0.2006.0908
  • TrueDBGrid For .NET Version 2.0J(改訂第1版:1.4.20062)
  • ActiveReports For .NET 3.0J Version 5.2.0.0431

1.とりあえず環境整備

ツールボックスにアイテムを追加したところツールボックスには(多分)InputManなどが無いので、「アイテムの選択」を行う。
「ツールボックス アイテムの選択」に、表示されなかったので「参照ボタン」で直接参照した。
InputMan4 / TrueDBGrid2 / ActiveReports3は、とりあえずこれでOK。

問題は、ActiveReports3のレポートを追加できない事。
VS2005など以前のバージョンでは[プロジェクト]-[新しい項目の追加]でActiveReports3ファイルを選択できたが、VS2010では出てこない。

ひょっとしたら何とかしてテンプレートとして追加出来るのかも知れないが、よくわからないので、以下の手順。

  • ActiveReportsを参照設定
  • VS2005などで作った空のレポートを、[プロジェクト]-[既存項目の追加]で追加。

これでOK。後は必要に応じて編集するなり増やしたければコピーするなりしようと思う。


2.コントロールを配置して実行

とりあえずペタペタとコントロールを配置!

動きました。一見、何も問題ない様に見えます。

3.もう少し突っ込んでみよう

実際にデータを投入して実行してみる。

はい。普通に動きました。

Private dt As DataTable = Nothing

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim rpt As NewActiveReport1 = Nothing

    Try
        InitializeControls()
        InitializeData()

        Combo1.DataSource = dt
        C1TrueDBGrid1.SetDataBinding(dt, "", True)

        rpt = New NewActiveReport1
        rpt.DataSource = dt
        rpt.Run()
        Viewer1.Document = rpt.Document

    Catch ex As Exception
        MessageBox.Show(ex.Message, "エラー発生", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
        If Not IsNothing(rpt) Then
            rpt.Dispose()
        End If
    End Try
End Sub

Private Sub InitializeControls()

    Try
        With Date1
            .HighlightText = GrapeCity.Win.Input.HighlightText.All
            .DisplayFormat = New GrapeCity.Win.Input.DateDisplayFormat( _
			                 "yyyy/MM/dd", "未設定", "未設定")
            .Format = New GrapeCity.Win.Input.DateFormat( _
			                 "yyyy/MM/dd", "未設定", "未設定")
            .Value = Now
        End With

        With Edit1
            .ImeMode = Windows.Forms.ImeMode.Hiragana
            .HighlightText = True
            .LengthAsByte = True
            .MaxLength = 20
            .Text = "あいうえおかきくけこさしすせそ"
        End With

        With Number1
            .HighlightText = True
            .DisplayFormat = New GrapeCity.Win.Input.NumberDisplayFormat( _
			                 "###,##0", "", "", "-", "", "0", "未設定")
            .Format = New GrapeCity.Win.Input.NumberFormat( _
			                 "###,##0", "", "", "-", "", "0", "未設定")
            .MinValue = 0
            .MaxValue = 999999
        End With

        With Combo1
            .DropDownStyle = ComboBoxStyle.DropDownList
            .HighlightText = GrapeCity.Win.Input.HighlightText.All
            .ValueMember = "SEQNO"
            .DisplayMember = "Name"
        End With

        With Calendar1
            .SelectedDate = Now
        End With

        With C1TrueDBGrid1
            .AlternatingRows = True
            .EvenRowStyle.BackColor = Color.Azure
            .FilterBar = True
        End With

    Catch ex As Exception
        Throw ex
    End Try
End Sub

Private Sub InitializeData()
    Dim i As Integer
    Dim drow As DataRow

    Try
        dt = New DataTable
        dt.Columns.Add("SEQNO", GetType(Integer))
        dt.Columns.Add("Name", GetType(String))

        For i = 0 To 99
            drow = dt.NewRow
            drow.Item("SEQNO") = i + 1
            drow.Item("Name") = "No." & (i + 1).ToString
            dt.Rows.Add(drow)
        Next

    Catch ex As Exception
        Throw ex
    End Try
End Sub

Private Sub Calendar1_SelectedDateChanged( _
     ByVal sender As Object, ByVal e As System.EventArgs) _
	 Handles Calendar1.SelectedDateChanged

    lblSelectDate.Text = Calendar1.SelectedDate.ToString("yyyy/MM/dd")

End Sub

とりあえず普通に動いているようです。今回は32bitだったので次回は64bitで確認してみようと思います。

履歴

2012/01/07
公開
Loading