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