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