Spreadの工夫

私は米FarPoint社のSpreadを多用しています(Excelに似たプログラム開発用シート)。

予断ですが…
このSpreadは日本ではGrapeCity社が日本語版を販売しています。
原版に比べて日本語版は倍近く高価です。
原版はマニュアルやデザイン画面のメニューが英語であることを我慢すれば、使用には何も問題はありません。
ところが、最近このFarPoint社はGrapeCity社に買収されたようです(多分)。

このSpreadでは沢山の工夫をしています。

まず、
Spreadの列幅やCellTypeの設定等々様々な設定をデザイン画面で設定すると、結構手間がかかります。
しかも開発の途中でシートのデザインの変更が多々ありますので、その都度デザイン画面でやり直しをやっていては大変非効率です。
そこで私は、クラス[clsShtData]を作ってこれらの処理を全部このクラスに任せています。
パフォーマンスの検証はしていません。
少なくとも最終版の手前まではこれらの設定をコードで書き、最終的にパフォーマンスを考慮した方法に置き換えるのも一つだと思います(私の経験では特にパフォーマンスが悪いとは思いません)。

Spread2
        Sht賃料 = New clsShtData(FpSpd賃料, 0, True, True, 賃料表示行数)
        With Sht賃料
            With .P_Heading
                .Add(New clsSpdHeader("コード", 55, SpdIntCellType, False))
                .Add(New clsSpdHeader("科目名", 100, SpdStrCellType, False))
                .Add(New clsSpdHeader("金額", 80, SpdComCellType, True))
                .Add(New clsSpdHeader("税区分", 55, cmbcell税区分, False))
                .Add(New clsSpdHeader("消費税", 60, SpdComCellType, True))
                .Add(New clsSpdHeader("合計", 80, SpdComCellType, True))
                .Add(New clsSpdHeader("送金", 40, Spdchkcell, False))
                .Add(New clsSpdHeader("料率", 40, SpdDblCellType, False))
                .Add(New clsSpdHeader("金額", 60, SpdComCellType, True))
                .Add(New clsSpdHeader("税区分", 55, cmbcell税区分, False))
                .Add(New clsSpdHeader("消費税", 60, SpdComCellType, True))
                .Add(New clsSpdHeader("合計", 60, SpdComCellType, True))
                .Add(New clsSpdHeader("賃料明細ID", 60, SpdIntCellType, False))
            End With

            ' VB2008仕様
              Dim multiHeader(,) = New Object(,) {{"金額", 1, 4, "金額"}, {"送金", 1, 6, "管理料"}}
            Dim 非表示() = {"賃料明細ID"}
            SpdIdx賃料 = .画面設定(multiHeader, 非表示, True)
        End With

このコードで、Spread[FpSpd賃料]のインデックス[0]のシートで、行数は[賃料表示行数]に設定、合計行を作成し、指定する列で合計を計算表示します。

[P_Heading]では次の内容を設定しています。
列名は、[コード]、[科目名]、[金額]等で、列幅はそれぞれ[55]、[100]、[80]で、データ型はそれぞれ[SpdIntCellType]、[SpdStrCellType]、[SpdComCellType]であり、[金額]列は合計を計算します。

[画面設定]メソッドでは、[P_Heading]の内容で各シートのスタイルを設定しますが、このとき列名を表示するヘッドの部分は2行にし、列名[金額]から4列分に分類名[金額]、同じく[送金]から6列に分類名[管理料]を付けています。
また、[賃料明細ID]の列は非表示にしています。

[clsShtData]ではそのほか様々な処理をしています。
一般的に参考になることを次回紹介します。

error: コピーできません !!