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