概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.1.2.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.report
クラス ExcelLayout

    java.lang.Object
      org.opengion.hayabusa.report.ExcelLayout

    public class ExcelLayout

extends Object

【EXCEL取込】雛形EXCELシートの {@カラム} 解析データを管理、収集する 雛形レイアウト管理クラスです。 POIのHSSFListener などで、雛形情報を収集し、HSSFSheet などで、雛形情報のアドレス（行列）から 必要な情報を取得し、このオブジェクトに設定しておきます。 EXCELシート毎に、INSERT文と、対応する文字列配列を取り出します。

機能階層
  帳票システム
変更履歴:

  3.8.0.0 (2005/06/07) 新規追加

バージョン
  4.0
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK5.0,

コンストラクタの概要
`ExcelLayout(int sheetSize)` コンストラクター 雛形の最大シート数を設定します。

メソッドの概要
`void` | `addData(String clm, int edbn, String value)` 解析情報(clm,edbn)と関連付けて、データEXCELの値を設定します。
`void` | `addModel(int sheetNo, String key, int rowNo, short colNo)` 雛形EXCELの {@カラム} 解析情報を設定します。
`void` | `dataClear()` データEXCELの設定情報を初期化します。
`List` | `getBodyInsertData(String systemId, int ykno, int sheetNo)` ボディ(明細)情報のINSERT用Queryに対応する、データ配列のリスト(String[] のList)を取得します。
`String` | `getBodyInsertQuery(String table)` ボディ(明細)情報のINSERT用Query文字列を取得します。
`String[]` | `getHeaderInsertData(String systemId, int ykno, int sheetNo)` ヘッダー情報のINSERT用Queryに対応する、データ配列を取得します。
`String` | `getHeaderInsertQuery(String table)` ヘッダー情報のINSERT用Query文字列を取得します。
`Iterator` | `getLayoutDataIterator(int sheetNo, String loopClm)` 雛形EXCELの {@カラム} 解析情報(ExcelLayoutData)を配列で取得します。

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### ExcelLayout

    public ExcelLayout(int sheetSize)

  コンストラクター 雛形の最大シート数を設定します。 ここでは、連番で管理している為、その雛形シート番号が処理対象外であっても、 雛形EXCEL上に存在するシート数を設定する必要があります。 具体的には、HSSFListener#processRecord( Record )で、BoundSheetRecord.sid の イベントの数を数えて設定します。

  パラメータ:
    `sheetSize` - int

メソッドの詳細

### addModel

    public void addModel(int sheetNo,
                         String key,
                         int rowNo,
                         short colNo)

  雛形EXCELの {@カラム} 解析情報を設定します。 雛形EXCELは、HSSFListener を使用して、イベント駆動で取得します。その場合、 {@カラム}を含むセルを見つける都度、このメソッドを呼び出して、{@カラム}の 位置（行列番号）を設定します。 データEXCELからデータを読み出す場合は、ここで登録したカラムの行列より、読み込みます。 具体的には、HSSFListener#processRecord( Record )で、SSTRecord.sid の 情報をキープしておき、 LabelSSTRecord.sid 毎に、{@カラム}を含むかチェックし、含む場合に、このメソッドに 解析情報を設定します。

  パラメータ:
    `sheetNo` - int
    `key` - String
    `rowNo` - int
    `colNo` - int

### getLayoutDataIterator

    public Iterator getLayoutDataIterator(int sheetNo,
                                          String loopClm)

  雛形EXCELの {@カラム} 解析情報(ExcelLayoutData)を配列で取得します。 雛形EXCELは、イベント処理で取り込む為、すべての処理が終了してから、このメソッドで 処理結果を取り出す必要があります。 解析情報は、ExcelLayoutData オブジェクトにシート単位に保管されています。 この ExcelLayoutData オブジェクト ひとつに、{@カラム} ひとつ、つまり、 ある特定の行列番号を持っています。 データEXCELを読取る場合、この ExcelLayoutData配列から、行列情報を取り出し、 addData メソッドで、キー情報と関連付けて登録する為に、使用します。

  パラメータ:
    `sheetNo` - int
    `loopClm` - String 繰返必須カラム(なければ通常の１対１処理)
  戻り値:
    ExcelLayoutData[]

### addData

    public void addData(String clm,
                        int edbn,
                        String value)

  解析情報(clm,edbn)と関連付けて、データEXCELの値を設定します。 データEXCELは、雛形EXCELの解析情報を元に、行列番号から設定値を取り出します。 その設定値は、取りだした ExcelLayoutData の clm,edbn と関連付けて、このメソッドで登録します。 この処理は、シート毎に、初期化して使う必要があります。 初期化メソッドする場合は、dataClear() を呼び出してください。

  パラメータ:
    `clm` - String
    `edbn` - int
    `value` - String

### dataClear

    public void dataClear()

  データEXCELの設定情報を初期化します。 データEXCELと、雛形EXCELの解析情報を関連付ける処理は、シート毎に行う必要があります。 処理終了時（シート切り替え時）このメソッドを呼び出して、初期化しておく必要があります

### getHeaderInsertQuery

    public String getHeaderInsertQuery(String table)

  ヘッダー情報のINSERT用Query文字列を取得します。 シート単位に、データEXCELより、INSERT用のQuery文字列を作成します。 この、Query は、シート単位に登録したキー情報の最大数(使用されているすべてのキー)を 元に、PreparedStatement で処理できる形の INSERT文を作成します。 シート単位に呼び出す必要があります。

  パラメータ:
    `table` - String ヘッダー情報を登録するデータベース名(HEADERDBID)
  戻り値:
    String

### getBodyInsertQuery

    public String getBodyInsertQuery(String table)

  ボディ(明細)情報のINSERT用Query文字列を取得します。 シート単位に、データEXCELより、INSERT用のQuery文字列を作成します。 この、Query は、シート単位に登録したキー情報の最大数(使用されているすべてのキー)を 元に、PreparedStatement で処理できる形の INSERT文を作成します。 シート単位に呼び出す必要があります。

  パラメータ:
    `table` - String ボディ(明細)情報を登録するデータベース名(BODYDBID)
  戻り値:
    String

### getHeaderInsertData

    public String[] getHeaderInsertData(String systemId,
                                        int ykno,
                                        int sheetNo)

  ヘッダー情報のINSERT用Queryに対応する、データ配列を取得します。 getHeaderInsertQuery( String ) で取りだした PreparedStatement に設定する値配列です。 シート単位に呼び出す必要があります。

  パラメータ:
    `systemId` - String システムID(SYSTEM_ID)
    `ykno` - int 要求番号(YKNO)
    `sheetNo` - int 登録するデータEXCELのシート番号(SHEETNO)
  戻り値:
    String[]

### getBodyInsertData

    public List getBodyInsertData(String systemId,
                                  int ykno,
                                  int sheetNo)

  ボディ(明細)情報のINSERT用Queryに対応する、データ配列のリスト(String[] のList)を取得します。 getHeaderInsertQuery( String ) で取りだした PreparedStatement に設定する値配列です。 シート単位に呼び出す必要があります。

  パラメータ:
    `systemId` - String システムID(SYSTEM_ID)
    `ykno` - int 要求番号(YKNO)
    `sheetNo` - int 登録するデータEXCELのシート番号(SHEETNO)
  戻り値:
    List (String[] のList)

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.1.2.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.