- すべての実装されたインタフェース:
TableFilter
public class TableFilter_DBARG
extends AbstractTableFilter
TableFilter_DBARG は、TableFilter インターフェースを継承した、DBTableModel 処理用の
実装クラスです。
ここでは、テキストから、オブジェクト名、カラム名、クラス、利用桁数を切り出します。
ソースのテキスト部は、",NAME_JA VARCHAR2(100) " という形式のテキストになっています。
これを、カラム部、クラス名部、使用桁数部に分解します。上記の例では、
それぞれを、NAME_JA、VARCHAR2、100 に分解して、文字列配列に格納します。
また、これらのソースに、"--" や "/ * ・・・ * /" などのコメントが含まれるケースが
あります。"--" コメントは、それ以降を無視しますが、"/ *" コメントは、複数行に
またがる為、今回は処理対象から外します。
ソースのテキスト部には、それら以外に、OBJECT_NAME に相当する行や、");" などの
ソースの最初や最後の無効な部分があります。無効な部分は、null を返すことで
登録処理から省いてください。
パラメータは、tableFilterタグの keys, vals にそれぞれ記述するか、BODY 部にCSS形式で記述します。
【パラメータ】
{
TEXT : 処理をおこなう、ソースのテキスト部のカラム名
OBJ_NAME : キーとなるオブジェクト名のカラム名
SEQNO : ソースの行番号のカラム名
CLM : 処理結果のカラム名を格納するカラム名
CLS_NAME : 処理結果のクラス名を格納するカラム名
USE_LENGTH : 処理結果の利用桁数を格納するカラム名
CLM_NAME : 処理結果のカラム名称(ラベル)を格納するカラム名
MAX_LENGTH : 処理結果の桁数を格納するカラム名
}
- 形式サンプル:
- ●形式:
select A.OBJECT_NAME AS OBJ_NAME,B.LINE AS SEQNO,'' AS CLM ,
'' AS CLS_NAME,'' AS USE_LENGTH,'' AS CLM_NAME,
'' AS TABLE_NAME ,'' AS MAX_LENGTH,
B.TEXT , '{@SYSTEM_ID}' AS SYSTEM_ID,'{@TBLSYU}' AS TBLSYU
from USER_OBJECTS A inner join USER_SOURCE B
on A.OBJECT_NAME = B.NAME
where A.OBJECT_TYPE = 'TYPE'
and B.TYPE = 'TYPE'
and not A.OBJECT_NAME like '%ARRAY'
order by A.OBJECT_NAME,B.LINE
① <og:tableFilter classId="DBARG"
keys="TEXT,OBJ_NAME,SEQNO,CLM,CLS_NAME,USE_LENGTH,CLM_NAME,MAX_LENGTH"
vals="TEXT,OBJ_NAME,SEQNO,CLM,CLS_NAME,USE_LENGTH,CLM_NAME,MAX_LENGTH" />
② <og:tableFilter classId="DBARG" >
{
TEXT : TEXT ;
OBJ_NAME : OBJ_NAME ;
SEQNO : SEQNO ;
CLM : CLM ;
CLS_NAME : CLS_NAME ;
USE_LENGTH : USE_LENGTH ;
CLM_NAME : CLM_NAME ;
MAX_LENGTH : MAX_LENGTH ;
}
</og:tableFilter>
- 変更履歴:
- 5.6.6.0 (2013/07/05) keys の整合性チェックを追加
- バージョン
- 0.9.0 2000/10/17
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.1,