001/*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016package org.opengion.hayabusa.report2;
017
018import org.opengion.fukurou.system.OgRuntimeException ;         // 6.4.2.0 (2016/01/29)
019import java.io.File;
020
021//import org.opengion.fukurou.util.StringUtil;                          // 6.9.8.1 (2018/06/11) 7.4.4.0 (2021/06/30) Delete
022import org.opengion.hayabusa.db.DBTableModel;
023import static org.opengion.fukurou.system.HybsConst.BUFFER_MIDDLE;      // 6.1.0.0 (2014/12/26) refactoring
024
025/**
026 * 帳票処理要求を管理するキューオブジェクトです。
027 * このオブジェクトでは、帳票の定義及びデータと、処理中に発生したエラーメッセージを管理します。
028 * また、このキューを生成したオブジェクトもこのオブジェクトにセットされます。
029 *
030 * @og.group 帳票システム
031 *
032 * @version  4.0
033 * @author   Hiroki.Nakamura
034 * @since    JDK1.6
035 */
036public class ExecQueue {
037
038        /** 実行方法 {@value} */
039        protected static final String OUT_ODS_ONLY              = "1";          // 変換のみ
040        /** 実行方法 {@value} */
041        protected static final String OUT_PRINT_ONLY    = "2";          // (印刷のみ)
042        /** 実行方法 {@value} */
043        protected static final String OUT_ODS_PRINT             = "3";          // プリンタ出力
044        /** 実行方法 {@value} */
045        protected static final String OUT_ODS_PDF               = "P";          // PDF出力
046        /** 実行方法 {@value} */
047        protected static final String OUT_ODS_PRINT_PDF = "Q";          // PDF+印刷
048        /** 実行方法 {@value} */
049        protected static final String OUT_ODS_EXCEL             = "E";          // Excel出力
050        /** 実行方法 {@value} */
051        protected static final String OUT_ODS_ODS               = "S";          // ODS出力 4.3.3.4 (2008/11/01) 追加
052
053        // 7.4.4.0 (2021/06/30) openGionV8事前準備(EXCEL取込廃止、RFID出力廃止)
054        // /** 実行方法 {@value} */
055        // protected static final String IN_INPUT_ONLY  = "5";          // (取込のみ)
056        // /** 実行方法 {@value} */
057        // protected static final String IN_EXEC_ONLY   = "6";          // (PG起動)
058        // /** 実行方法 {@value} */
059        // protected static final String IN_INPUT_EXEC  = "7";          // 取込・PG起動
060        // /** 実行方法 {@value} */
061        // protected static final String RFID_PRINT             = "A";          // RFID(通常印刷)
062        // /** 実行方法 {@value} */
063        // protected static final String RFID_ALLPRINT  = "B";          // RFID(全印刷)
064        // /** 実行方法 {@value} */
065        // protected static final String RFID_ALLERASE  = "C";          // RFID(全消去)
066        // /** 実行方法 {@value} */
067        // protected static final String RFID_SEQERASE  = "D";          // RFID(連続消去)
068
069        // 5.9.0.0 (2015/09/04) CSV出力対応
070        /** 実行方法 {@value} */
071        protected static final String CSV_PRINT                 = "G";
072        /** 実行方法 {@value} */
073        protected static final String CSV_PRINT_EXCEL   = "H";
074        /** 実行方法 {@value} */
075        protected static final String CSV_PRINT_PDF             = "I";
076        /** 実行方法 {@value} */
077        protected static final String CSV_PRINT_EXCEL2  = "J";          // 5.9.4.2 (2016/01/15) EXCEL2追加
078
079        /** 最大シート数 {@value} */
080//      protected static final int MAX_SHEETS_PER_FILE  = 256;          // 5.1.2.0 (2010/01/01)
081        protected static final int MAX_SHEETS_PER_FILE  = 999;          // 7.1.0.0 (2020/01/27) 256シート制限を999にしておく。
082
083        private String          ykno            ;
084        private String          systemId        ;
085        private DBTableModel body               ;
086        private DBTableModel header             ;
087        private DBTableModel footer             ;
088        private String          listId          ;
089        private String          pdfPasswd       ;
090        private String          lang            ;
091        private String          threadId        ;
092        private String          templateName;
093        private String          outputType      ;
094        private String          printerName     ;
095        private String          outputName      ;
096        private boolean         fglocal         ;
097        private boolean         fgcut           ;
098        private QueueManager manager    ;
099        private String          prgdir          ;               // 4.3.3.0 (2008/10/01) 板金RFID対応。
100        private String          prgfile         ;               // 4.3.3.0 (2008/10/01)
101        private String          prtid           ;               // 4.3.3.0 (2008/10/01)
102
103        private String          grpid           ;               // 5.9.2.2 (2015/11/20)
104        private String          dmngrp          ;               // 5.9.2.2 (2015/11/20)
105        private int                     pageCnt         ;               // 5.1.2.0 (2010/01/01) 処理したページ数
106        private int                     rowCnt          ;               // 5.1.2.0 (2010/01/01) 処理した行数
107        private boolean         isDataEnd       ;               // 5.1.2.0 (2010/01/01) 全データが処理されたか (メソッド名と同じ変数名変更)
108
109        private boolean         useSheetName;           // 5.7.6.2 (2014/05/16) PAGEBREAKカラムの値を、シート名として使うかどうか。
110//      private String          fgnoml          = "0";  // 5.10.0.0 (2018/06/08) メール不要フラグ
111        //private boolean       fgnoml          ;               // 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要) 7.4.4.0 (2021/06/30) Delete
112
113        private final StringBuilder errMsg = new StringBuilder( BUFFER_MIDDLE );
114
115        /**
116         * デフォルトコンストラクター
117         *
118         * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
119         */
120        public ExecQueue() { super(); }         // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。
121
122        /**
123         * 要求NOをセットします。
124         *
125         * @param ykno 要求NO
126         */
127        public void setYkno( final String ykno ) {
128                this.ykno = ykno;
129        }
130
131        /**
132         * 要求NOを取得します。
133         *
134         * @return      要求NO
135         */
136        public String getYkno() {
137                return ykno;
138        }
139
140        /**
141         * システムIDをセットします。
142         *
143         * @param systemId システムID
144         */
145        public void setSystemId( final String systemId ) {
146                this.systemId = systemId;
147        }
148
149        /**
150         * システムIDを取得します。
151         *
152         * @return  StringシステムID
153         */
154        public String getSystemId() {
155                return systemId;
156        }
157
158        /**
159         * ボディー部分のDBTableModelをセットします。
160         *
161         * @param body DBTableModelオブジェクト
162         */
163        public void setBody( final DBTableModel body ) {
164                this.body = body;
165        }
166
167        /**
168         * ボディー部分のDBTableModelを取得します。
169         *
170         * @return      ボディー部分のDBTableModelオブジェクト
171         */
172        public DBTableModel getBody() {
173                return body;
174        }
175
176        /**
177         * ヘッダー部分のDBTableModelをセットします。
178         *
179         * @param header DBTableModelオブジェクト
180         */
181        public void setHeader( final DBTableModel header ) {
182                this.header = header;
183        }
184
185        /**
186         * ヘッダー部分のDBTableModelを取得します。
187         *
188         * @return      ヘッダー部分のDBTableModelオブジェクト
189         */
190        public DBTableModel getHeader() {
191                return header;
192        }
193
194        /**
195         * フッター部分のDBTableModelをセットします。
196         *
197         * @param footer DBTableModelオブジェクト
198         */
199        public void setFooter( final DBTableModel footer ) {
200                this.footer = footer;
201        }
202
203        /**
204         * フッター部分のDBTableModelを取得します。
205         *
206         * @return      フッター部分のDBTableModelオブジェクト
207         */
208        public DBTableModel getFooter() {
209                return footer;
210        }
211
212        /**
213         * 帳票IDをセットします。
214         *
215         * @param listId 帳票ID
216         */
217        public void setListId( final String listId ) {
218                this.listId = listId;
219        }
220
221        /**
222         * 帳票IDを取得します。
223         *
224         * @return 帳票ID
225         */
226        public String getListId() {
227                return listId;
228        }
229
230        /**
231         * PDFパスワードをセットします。
232         *
233         * @param pdfPasswd PDFパスワード
234         */
235        public void setPdfPasswd( final String pdfPasswd ) {
236                this.pdfPasswd = pdfPasswd;
237        }
238
239        /**
240         * PDFパスワードを取得します。
241         *
242         * @return PDFパスワード
243         */
244        public String getPdfPasswd() {
245                return pdfPasswd;
246        }
247
248        /**
249         * 言語をセットします。
250         *
251         * @param lang 言語
252         */
253        public void setLang( final String lang ) {
254                this.lang = lang;
255        }
256
257        /**
258         * 言語を取得します。
259         *
260         * @return 言語
261         */
262        public String getLang() {
263                return lang;
264        }
265
266        /**
267         * 雛形ファイル名をセットします。
268         *
269         * @param templateName 雛形ファイル名
270         */
271        public void setTemplateName( final String templateName ) {
272                this.templateName = templateName;
273        }
274
275        /**
276         * 雛形ファイル名を取得します。
277         *
278         * @return 帳票雛形ファイル名
279         */
280        public String getTemplateName() {
281                return templateName;
282        }
283
284        /**
285         * 実行方法をセットします。
286         *
287         * @param outputType 実行方法
288         */
289        public void setOutputType( final String outputType ) {
290                this.outputType = outputType;
291        }
292
293        /**
294         * 出力タイプを取得します。
295         *
296         * @return 出力タイプ
297         */
298        public String getOutputType() {
299                return outputType;
300        }
301
302        /**
303         * プリンター名をセットします。
304         *
305         * @param  printerName プリンター名
306         */
307        public void setPrinterName( final String printerName ) {
308                this.printerName = printerName;
309        }
310
311        /**
312         * プリンター名を取得します。
313         *
314         * @return プリンタ名
315         */
316        public String getPrinterName() {
317                return printerName;
318        }
319
320        /**
321         * 処理要求を処理するスレッドIDをセットします。
322         *
323         * @param threadId スレッドID
324         */
325        public void setThreadId( final String threadId ) {
326                this.threadId = threadId;
327        }
328
329        /**
330         * 処理要求を処理するスレッドIDを取得します。
331         *
332         * @return スレッドID
333         */
334        public String getThreadId() {
335                return threadId;
336        }
337
338        /**
339         * 出力ファイル名をセットします。
340         *
341         * @param outputName 出力ファイル名
342         */
343        public void setOutputName( final String outputName ) {
344                this.outputName = outputName;
345        }
346
347        /**
348         * 出力ファイル名を設定します。
349         * GE50に設定されていない場合は第四引数(要求番号)を利用する。
350         * その場合、タイプに応じた拡張子が自動設定される。
351         *
352         * ".xls" : OUT_ODS_EXCEL
353         * ".pdf" : OUT_ODS_PDF , OUT_ODS_PRINT_PDF
354         * ".ods" : OUT_ODS_ODS
355        // * ".xml" : RFID_PRINT , RFID_ALLPRINT , RFID_ALLERASE , RFID_SEQERASE 7.4.4.0 (2021/06/30) Delete
356         * ".csv" : CSV_PINT , CSV_PRINT_EXCEL , CSV_PRINT_PDF
357         *
358         * @og.rev 4.3.3.4 (2008/11/01) ODS出力対応
359         * @og.rev 5.4.3.0 (2011/12/26) RFIDデフォルト対応
360         * @og.rev 5.4.4.1 (2012/02/03) RFID拡張子変更
361         * @og.rev 5.9.0.0 (2015/09/04) CSV対応
362         * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(RFID出力廃止)
363         *
364         * @param       outputDir       出力ディレクトリ名
365         * @param       outputFile      出力ファイル名
366         * @param       type            タイプ
367         * @param       yokyu           要求番号(ファイル名が指定されていない場合のファイル名)
368         *
369         */
370        public void setOutputName( final String outputDir, final String outputFile, final String type, final String yokyu ){
371                final StringBuilder filePath = new StringBuilder( BUFFER_MIDDLE );
372                filePath.append( outputDir ).append( File.separator );          // 6.0.2.5 (2014/10/31) char を append する。
373
374                if( outputFile == null || outputFile.isEmpty() ){ // ファイル名が指定されていない場合は要求番号を利用する。
375                        if( OUT_ODS_EXCEL.equals( type ) ){
376                                filePath.append( yokyu );
377                                filePath.append( ".xls" );
378                        }
379                        else if( OUT_ODS_PDF.equals( type ) || OUT_ODS_PRINT_PDF.equals( type ) ){
380                                filePath.append( yokyu );
381                                filePath.append( ".pdf" );
382                        }
383                        // 4.3.3.4 (2008/11/01) 追加
384                        else if( OUT_ODS_ODS.equals ( type ) ){
385                                filePath.append( yokyu );
386                                filePath.append( ".ods" );
387                        }
388                        // 5.4.3.0 (2011/12/26) 追加
389                        // 5.4.4.2 (2012/02/03) .txtではなく.xml
390                        // 7.4.4.0 (2021/06/30) Delete
391                        //else if( ExecQueue.RFID_PRINT.equals( type ) || ExecQueue.RFID_ALLPRINT.equals( type )
392                        //              || ExecQueue.RFID_ALLERASE.equals( type ) || ExecQueue.RFID_SEQERASE.equals( type ) ) {
393                        //      filePath.append( yokyu );
394                        //      filePath.append( ".xml" ); //txt-xml
395                        //}
396                        // 5.9.0.0 (2015/09/04) 追加
397                        // 5.9.4.2 (2016/01/13) EXCEL2追加
398                        else if( ExecQueue.CSV_PRINT.equals( type ) || ExecQueue.CSV_PRINT_EXCEL.equals( type )
399                                        || ExecQueue.CSV_PRINT_PDF.equals( type ) || ExecQueue.CSV_PRINT_EXCEL2.equals( type ) ) {
400                                filePath.append( yokyu );
401                                filePath.append( ".csv" );
402                        }
403                }
404                else {
405                        filePath.append( outputFile );
406                }
407
408                this.outputName = filePath.toString();
409        }
410
411        /**
412         * 出力ファイル名を取得します。
413         *
414         * @og.rev 5.1.2.0 (2010/01/01) 256シートを超える場合に対応。2ファイル目以降は、_1、_2・・・をファイル名の後ろにつける
415         * @og.rev 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
416         *
417         * @return 出力先ファイル名
418         * @og.rtnNotNull
419         */
420        public String getOutputName() {
421                // 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
422                if( outputName == null ) {
423                        final String errMsg = "#setOutputName(String) または、#setOutputName(String,String,String,String)を先に実行しておいてください。" ;
424                        throw new OgRuntimeException( errMsg );
425                }
426
427                if( pageCnt <= MAX_SHEETS_PER_FILE ) {
428                        return outputName;
429                }
430                else {
431                        final StringBuilder fileName = new StringBuilder( BUFFER_MIDDLE );
432
433                        final int idx = outputName.lastIndexOf( '.' );
434                        final String name = outputName.substring( 0, idx );
435                        final String suffix = outputName.substring( idx );
436                        final int addNo = (int)Math.ceil( (double)pageCnt/(double)MAX_SHEETS_PER_FILE ) - 1;
437
438                        fileName.append( name ).append( '_' ).append( addNo ).append( suffix );         // 6.0.2.5 (2014/10/31) char を append する。
439
440                        return fileName.toString();
441                }
442        }
443
444        /**
445         * 実行ファイルディレクトリを指定します。
446         *
447         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
448         *
449         * @param dir ディレクトリ
450         */
451        public void setPrgDir( final String dir ) {
452                this.prgdir = dir;
453        }
454
455        /**
456         * 実行ファイルディレクトリを取得します。
457         *
458         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
459         *
460         * @return プログラムディレクトリ
461         */
462        public String getPrgDir() {
463                return prgdir;
464        }
465
466        /**
467         * 実行ファイル名をセットします。
468         *
469         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
470         * @param       file    ファイル名
471         */
472        public void setPrgFile( final String file ) {
473                this.prgfile = file;
474        }
475
476        /**
477         * 実行ファイル名を取得します。
478         *
479         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
480         *
481         * @return プログラムファイル名
482         */
483        public String getPrgFile() {
484                return prgfile;
485        }
486
487        /**
488         * プリンタIDをセットします。
489         *
490         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
491         * @param       id      プリンタID
492         */
493        public void setPrtId( final String id ) {
494                this.prtid = id;
495        }
496
497        /**
498         * プリンタIDを取得します。
499         *
500         * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
501         *
502         * @return プリンタID
503         */
504        public String getPrtId() {
505                return prtid;
506        }
507
508        /**
509         * グループIDをセットします。
510         *
511         * @og.rev 5.9.2.2 (2015/11/20)
512         *
513         * @param       id      グループID
514         */
515        public void setGrpId( final String id ) {
516                this.grpid = id;
517        }
518
519        /**
520         * グループIDを取得します。
521         *
522         * @og.rev 5.9.2.2 (2015/11/20)
523         *
524         * @return グループID
525         */
526        public String getGrpId() {
527                return grpid;
528        }
529
530        /**
531         * デーモングループをセットします。
532         *
533         * @og.rev 5.9.2.2 (2015/11/20)
534         *
535         * @param       name    デーモングループ
536         */
537        public void setDmnGrp( final String name ) {
538                this.dmngrp = name;
539        }
540
541        /**
542         * デーモングループを取得します。
543         *
544         * @og.rev 5.9.2.2 (2015/11/20)
545         *
546         * @return デーモングループ
547         */
548        public String getDmnGrp() {
549                return dmngrp;
550        }
551
552        /**
553         * ローカルリソース使用フラグをセットします(初期値:false)。
554         *
555         * @param       fglocal ローカルリソース使用フラグ[true:使用する/false:使用しない]
556         */
557        public void setFglocal( final boolean fglocal ) {
558                this.fglocal = fglocal;
559        }
560
561        /**
562         * ローカルリソース使用フラグを取得します。
563         *
564         * @return ロールリソース使用フラグ[true:使用する/false:使用しない]
565         */
566        public boolean isFglocal() {
567                return fglocal;
568        }
569
570        /**
571         * ページエンドカットフラグをセットします(初期値:false)。
572         *
573         * @param fgcut ページエンドカットの使用可否[true:使用/false:通常]
574         */
575        public void setFgcut( final boolean fgcut ) {
576                this.fgcut = fgcut;
577        }
578
579        /**
580         * ページエンドカットフラグを取得します。
581         *
582         * @return ページエンドカットフラグ
583         */
584        public boolean isFgcut() {
585                return fgcut;
586        }
587
588        /**
589         * PAGEBREAKカラムの値を、シート名として使うかどうかをセットします(初期値:false)。
590         *
591         * @og.rev 5.7.6.2 (2014/05/16) 新規追加
592         *
593         * @param useSheetName PAGEBREAKカラムのシート名使用可否[true:使用/false:使用しない]
594         */
595        public void setUseSheetName( final boolean useSheetName ) {
596                this.useSheetName = useSheetName;
597        }
598
599        /**
600         * PAGEBREAKカラムの値を、シート名として使うかどうかを取得します。
601         *
602         * @og.rev 5.7.6.2 (2014/05/16) 新規追加
603         *
604         * @return PAGEBREAKカラムのシート名使用可否[true:使用/false:使用しない]
605         */
606        public boolean isUseSheetName() {
607                return useSheetName;
608        }
609
610        /**
611         * キューマネージャーをセットします。
612         *
613         * @param manager キューマネージャー
614         */
615        public void setManager( final QueueManager manager ) {
616                this.manager = manager;
617        }
618
619        /**
620         * 帳票処理データをセットします。
621         * 既にテーブルモデルがセットされている場合は、再セットしません。
622         *
623         */
624        public void setData() {
625                if( body == null && manager != null ) {
626                        manager.set( this );
627                }
628        }
629
630        /**
631         * キューを実行中の状態に更新します。
632         *
633         */
634        public void setExecute() {
635                if( manager != null ) {
636                        manager.execute( this );
637                }
638        }
639
640        /**
641         * キューを完了済の状態に更新します。
642         *
643         */
644        public void setComplete() {
645                if( manager != null ) {
646                        manager.complete( this );
647                }
648        }
649
650        /**
651         * キューをエラーの状態に更新します。
652         */
653        public void setError() {
654                if( manager != null ) {
655                        manager.error( this );
656                }
657        }
658
659        /**
660         * エラーメッセージをセットします。
661         *
662         * @param msg エラーメッセージ
663         */
664        public void addMsg( final String msg ) {
665                errMsg.append( msg );
666        }
667
668        /**
669         * エラーメッセージを取得します。
670         *
671         * @return エラーメッセージ
672         * @og.rtnNotNull
673         */
674        public String getMsg() {
675                return errMsg.toString();
676        }
677
678        /**
679         * 処理したページ数を引数の分だけカウントアップします。
680         *
681         * これは、256シート以上を印刷する場合、ファイル名に"_"を付けて
682         * 出力する機能と、GE50のSUPAGEカラムに印刷ページ数をセットするのに
683         * 使用しています。
684         * openOfficeのシート制限は解除されていますが、SUPAGEカラムが
685         * NUMBER(3) でDB定義されているため、1000以上のページを、GE50 に
686         * セットすると、エラーになります。
687         * DB定義を変更するまでの間、最大ページ数を、999 としておきます。
688         *
689         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
690         * @og.rev 7.1.0.0 (2020/01/27) 256シート制限を999にしておく。
691         *
692         * @param pgs カウントアップするページ数
693         */
694        public void addExecPageCnt( final int pgs ) {
695                pageCnt += pgs;
696
697                // 7.1.0.0 (2020/01/27) 256シート制限を999にしておく。
698                if( pageCnt > MAX_SHEETS_PER_FILE ) { pageCnt = MAX_SHEETS_PER_FILE; }
699        }
700
701        /**
702         * 処理したページ数を返します。
703         *
704         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
705         *
706         * @return 処理したページ数
707         */
708        public int getExecPagesCnt() {
709                return pageCnt;
710        }
711
712        /**
713         * 処理した行数をセットします。
714         *
715         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
716         *
717         * @param rws 処理した行数
718         */
719        public void setExecRowCnt( final int rws ) {
720                rowCnt = rws;
721        }
722
723        /**
724         * 処理した行数を返します。
725         *
726         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
727         *
728         * @return 処理した行数
729         */
730        public int getExecRowCnt() {
731                return rowCnt;
732        }
733
734        /**
735         * 全ての行が処理されたかをセットします(初期値:false)。
736         *
737         * これは、処理結果が、256シートを超えていた場合、再度残りのデータについて
738         * 処理を行うかどうかの判定するために、利用します。
739         *
740         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
741         *
742         * @param flag 全ての行が処理されたか
743         */
744        public void setEnd( final boolean flag ) {
745                isDataEnd = flag;
746        }
747
748        /**
749         * 全ての行が処理されているかを返します。
750         *
751         * これは、処理結果が、256シートを超えていた場合、再度残りのデータについて
752         * 処理を行うかどうかの判定するために、利用します。
753         *
754         * @og.rev 5.1.2.0 (2010/01/01) 新規追加
755         *
756         * @return 全ての行が処理されたか
757         */
758        public boolean isEnd() {
759                return isDataEnd;
760        }
761
762        // /**
763        // * FGNOMI(メール不要フラグ)を設定します(初期値=false:送信する)。
764        // *
765        // * 帳票エラー時のメール送信は帳票IDの正規表現でコントロール可能でしたが、
766        // * ID単位に未送信フラグを持たせてコントロール可能にします。
767        // * 帳票の動作にDBのカラム追加が伴うためバージョンを5.10系に上げます。
768        // * エラーメールが不要の場合は、"true", もしくは、1文字の場合のみ、"0" 以外の場合が、
769        // * メール不要として、エラーメールを送信しません。
770        // *
771        // * @og.rev 5.10.0.0 (2018/06/08) 新規追加
772        // * @og.rev 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要)
773        // * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(GE54.FGNOML廃止)
774        // *
775//      // * @param fgnoml
776        // * @param flag メール不要フラグ
777        // */
778//      // public void setFgnoml( final String fgnoml) {
779        // 7.4.4.0 (2021/06/30) Delete
780        // public void setFgnoml( final String flag ) {
781//      //      this.fgnoml = fgnoml;
782        //      fgnoml = StringUtil.nval( flag,fgnoml );                // true,TRUE,0以外の1文字の場合、true、それ以外は、初期値
783        // }
784
785        // /**
786        // * FGNOMI(メール不要フラグ)を取得します。
787        // *
788        // * @og.rev 5.10.0.0 (2018/06/08) 新規追加
789        // * @og.rev 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要)
790        // * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(GE54.FGNOML廃止)
791        // *
792//      // * @return fgnomi
793        // * @return メール不要フラグ [true:メール不要/false:エラーメール送信する]
794        // */
795//      // public String getFgnoml() {
796        // 7.4.4.0 (2021/06/30) Delete
797        // public boolean isFgnoml() {
798//      //      return this.fgnoml;
799        //      return fgnoml;
800        // }
801}