    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", もしくは、１文字の場合のみ、"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以外の１文字の場合、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}