新しいsPread

 SPREADは1994年にVisual Basic 2.0向けのデータ グリッドコンポーネントとして登場したグレープシティ(当時はBOC)の製品で、18年間の間に計14製品をリリースしています。





 コードベースとしてはVisual Basic向け、ASP.NET向け、Windowsフォーム向けの3つが存在していたことになりますが、今回ここに新しくWPF向けが加わります。

SPREAD for WPF 2.0J | Developer Tools - グレープシティ株式会社



 この4つ目のコードベースとなる新しいSPREADは、後方互換性を意識することなくゼロから設計できるチャンスであることから、これまでにない新たな機能や使い勝手が実現されています。その詳細は下記の資料で紹介されています。

SPREADの再創造 〜日本の業務アプリ開発における最強のデータグリッドを求めて〜



 下の図は日本の業務アプリケーションにおける特徴的な表画面の一例です。





 この表画面には以下のような特徴があります。

  • 1レコード分のデータが複数行にレイアウトされている
  • ヘッダーと明細行のレイアウトは必ずしも一致しない
  • 特定の列の値に基づいたグループ化とそのグループレベルでの集計が行われている
  • 本来の表示データとは直接関係のないデータ(コメント行)が挿入されている



 また、このような条件に加え、特定の値を含む行のみを集計するといった業務に依存した複雑な集計も珍しくありません。


 こういった表画面をデータグリッド系コントロールを使って実現しようとする場合、一般的には非連結(データバインディングを使用しない)で作成されます。コーディングを用いて1つずつデータをセルに配置していく方法です。従来のSPREADはExcelなどのスプレッドシートを基本的な設計概念としていたことから、あらゆる機能がセル単位で柔軟に設定できたため、このような非連結のかたちでよく使用されていました。しかし、非連結による手法は多くのコーディングを必要とするため、生産性や保守性は決して高くありません。


 新しいSPREADでは、データ連結を使用した上でこのような表画面を実現できるよう、以下のような機能が搭載されています。


1レコード複数行レイアウトを実現するための「テンプレートデザイナ」



ヘッダを明細行とは異なるレイアウトにするための「ヘッダデザイナ」



グループ化と集計を実現するための「グループデザイナ」



連結時にもそれとは無関係に非連結業を挿入できるInsertUnboundRowメソッドやAddUnboundRowメソッド


複雑な集計時に必要となる数式で使用できる列名参照


 新しいSPREADであるSPREAD for WPF 1.0Jはすでに無償のトライアル版が公開されており、以下のページからダウンロードすることができます。

トライアル版 - ダウンロード | Developer Solutions - グレープシティ株式会社