WSIRINQ: 仕入先照会[WEB解説]

最終更新: 2025-11-24

 
 

#*********************************************************#   
#*                                                            
#*  プログラム名   : WSIRINQ.PY                               
#*  タイプ         : PYTHON                                   
#*  APP タイプ     : WSFL       ( WEB SFL 一覧表示 )          
#*  作成日         : 2025/11/04                     07:57:11  
#*  作成者         : QTR                                      
#*  ディレクトリー :  /PYTHON.400/PROJECT                     
#*  使用ファイル   : QTRFIL/SIREMT                            
#*  監査報告書     : Y                                        
#*  数値の編集     : Y                                        
#*  画面サイズ                                                
#*    桁           : 132                                      
#*    行           : 27                                       
#*                                                            
#*********************************************************    
#! /usr/bin/env python3.4                                     
import sys                                                                    
import os                                                                     
import re                                                                     
import ibm_db2                                                                
import bottle2                                                                
import urllib.parse                                                           
                                                                              
dspmod = sys.argv[1]                                                          
                                                                              
SFLPAG = 10                     #  一度の通信でクライアントに返すレコード数   
                                                                              
add_count = 0                                                                 
chg_count = 0                                                                 
dlt_count = 0                                                                 
                                                                              
#*************************************************************#               
@bottle2.route('/init', method=["GET", "POST"])                               
def init():                                                        
#*************************************************************#    
    # 初期画面の HTML を表示する。                                 
                                                                   
    #  パラメータを受け取る                                        
    params = bottle2.request.params.decode()                       
                                                                   
    # パラメータがあれば初期画面の HTML にセットする。             
    values = [{                                                    
       'SRCODE': params.get('SRCODE', ''),                         
    }]                                                             
                                                                   
    #  ブラウザに DSPHEAD.HTM を出力する。                         
    return bottle2.template('DSPHEAD.HTM', {                       
      'dspmod': dspmod,                                            
      'values': values,                                            
      'msg': params.get('MSG', ''),                                
      })                                                           
                                                                   
 #*************************************************************#   
 @bottle2.route('/input', method=["GET", "POST"])  # 入力切替      
 def input():                                                      
 #*************************************************************#   
     #  ブラウザからの入力値を受け取る。                           
     params = bottle2.request.query.decode()                       
                                                                   
     # 白紙の明細画面の HTML を表示する                            
     return bottle2.template('DSPTOP.HTM', {                       
       'dspmod': 'INPPTN',                                         
       'values': [{}],                                             
      })                                                           
                                                                   
 #*************************************************************#   
 # 明細画面                                       # データ検索     
@bottle2.route('/query', method=["GET"])                          
def query():                                                      
#*************************************************************#   
    #  ブラウザからの入力値を受け取る。                           
    params = bottle2.request.query.decode()                       
                                                                  
    #  明細画面の HTM を表示する。                                
    values = [{                                                   
       'SRCODE': params.get('SRCODE', ''),                        
    }]                                                            
                                                                  
    return bottle2.template('DSPTOP.HTM', {                       
        'dspmod': dspmod,                                         
        'values': values,                                         
    })                                                            
                                                                  
#*************************************************************#   
# 挿入画面用の空っぽのレコードをブラウザに返す。                     
@bottle2.route('/template', method=["GET", "POST"])                  
def template():                                                      
#*************************************************************#      
    return bottle2.template('LISTDEF.HTM', {                         
        'dspmod': 'WRTPTN',                                          
        'value': {},                                                 
    })                                                               
                                                                     
#*************************************************************#      
# レコードのデータをブラウザに返す。                                 
@bottle2.route('/record', method=["GET", "POST"])                    
def record():                                                        
#*************************************************************#      
    # DB2 に接続する。                                               
    with ibm_db2.connected() as conn:                                
        #  ブラウザからの入力値を受け取る。                          
        params = bottle2.request.params.decode()  
                                                  
        # SQL を組み立てる。                      
        sql = '''                                 
        SELECT T01.SRCODE                         
              ,T01.SRNMK                          
              ,T01.SRNMJ                          
              ,T01.SRNMJ2                         
              ,T01.SRNM                           
              ,T01.SRSHOT                         
              ,T01.SRTEL                          
              ,T01.SRFAX                          
              ,T01.SFAX                           
              ,T01.SRFORD                         
              ,T01.SRYOSI                         
              ,T01.SRKAIT                         
              ,T01.SRLABL                         
              ,T01.SRZIP         
              ,T01.SRADR1        
              ,T01.SRADR2        
              ,T01.STANTO        
              ,T01.SRKOKB        
              ,T01.SRFRKB        
              ,T01.SRR01         
              ,T01.SRR02         
              ,T01.SRR03         
              ,T01.SRR04         
              ,T01.SRKBN         
              ,T01.SGYOSH        
              ,T01.SRHLMT        
              ,T01.SEGCD         
              ,T01.SCHIKU        
              ,T01.SRTRI         
              ,T01.SRSHCD        
             ,T01.SRSHKB        
             ,T01.SRSHHO        
             ,T01.SRSIT         
             ,T01.SRZEI         
             ,T01.SDIHYO        
             ,T01.SJOKEN        
             ,T01.SBNKCD        
             ,T01.SSTNCD        
             ,T01.SYOKKB        
             ,T01.SKOZNO        
             ,T01.SYOKNM        
             ,T01.SNEWDT        
             ,T01.SMITEG        
             ,T01.SRKEDT        
             ,T01.SRHDDT        
             ,T01.SROKDT        
             ,T01.SSIHON        
              ,T01.SNENSO                
              ,T01.SORITU                
              ,T01.SSHAIN                
              ,T01.SKESAN                
              ,T01.SMAKER                
              ,T01.SSHHIN                
              ,T01.STRHIN                
              ,T01.SBIKO1                
              ,T01.SBIKO2                
              ,T01.STORCD                
              ,T01.STOROK                
               FROM QTRFIL/SIREMT T01    
               WHERE T01.SRCODE >= ?     
               ORDER BY  T01.SRCODE      
               OFFSET ? ROWS             
               FETCH NEXT ? ROWS ONLY    
        '''                              
        stmt = ibm_db2.prepare(conn, sql);                                            
        ibm_db2.bind_param(stmt, 1, params['SRCODE'])   # SRCODE を SQL にセットする。
        ibm_db2.bind_param(stmt, 2, params['_RRN'])     # RRN を SQL にセットする。   
        ibm_db2.bind_param(stmt, 3, SFLPAG)             # SFLPAG を SQL にセットする。
                                                                                      
        # SQL を実行する。                                                            
        ibm_db2.execute(stmt)                                                         
                                                                                      
        #  結果のレコードを取得する。                                                 
        values = []                                                                   
        row = ibm_db2.fetch_assoc(stmt)                                               
        while row != False:                                                           
            values.append(row)                                                        
            row = ibm_db2.fetch_assoc(stmt)                                           
                                                                                      
        #  結果をテンプレートに埋め込む。                                             
        text = ""                                                                     
        for value in values:                                    
            text += bottle2.template('LISTDEF.HTM', {           
                'dspmod': dspmod,                               
                'value': value,                                 
            })                                                  
                                                                
        #  明細画面の HTM を表示する。                          
        bottle2.response.content_type = 'text/plain';           
        return text                                             
                                                                
#*************************************************************# 
@bottle2.route('/update', method=["POST"])         # 更新処理   
def update():                                                   
#*************************************************************# 
    # DB2 に接続する。                                          
    with ibm_db2.connected() as conn:                           
        #  ブラウザからの入力値を受け取る。                     
         params = bottle2.request.forms.decode()                                                  
                                                                                                  
         txn_chg_count = 0                                                                        
         txn_add_count = 0                                                                        
                                                                                                  
         #  各レコードについて繰り返す。                                                          
         for i in range(len(params.getall('SRCODE'))):                                            
                                                                                                  
             #  空行はスキップ                                                                    
             if params.getall('SRCODE')[i] == '':                                                 
                 continue                                                                         
                                                                                                  
             params['SRKAIT'] = int(params['SRKAIT'].replace(',', '')) # SRKAIT を数値に変換する  
             params['SRHLMT'] = int(params['SRHLMT'].replace(',', '')) # SRHLMT を数値に変換する  
             params['SRSIT'] = int(params['SRSIT'].replace(',', '')) # SRSIT を数値に変換する     
             params['SNEWDT'] = int(params['SNEWDT'].replace(',', '')) # SNEWDT を数値に変換する  
             params['SMITEG'] = int(params['SMITEG'].replace(',', '')) # SMITEG を数値に変換する  
           params['SRKEDT'] = int(params['SRKEDT'].replace(',', '')) # SRKEDT を数値に変換する  
           params['SRHDDT'] = int(params['SRHDDT'].replace(',', '')) # SRHDDT を数値に変換する  
           params['SROKDT'] = int(params['SROKDT'].replace(',', '')) # SROKDT を数値に変換する  
           params['SSIHON'] = int(params['SSIHON'].replace(',', '')) # SSIHON を数値に変換する  
           params['SNENSO'] = int(params['SNENSO'].replace(',', '')) # SNENSO を数値に変換する  
           params['SORITU'] = int(params['SORITU'].replace(',', '')) # SORITU を数値に変換する  
           params['SSHAIN'] = int(params['SSHAIN'].replace(',', '')) # SSHAIN を数値に変換する  
           params['SKESAN'] = int(params['SKESAN'].replace(',', '')) # SKESAN を数値に変換する  
           params['STOROK'] = int(params['STOROK'].replace(',', '')) # STOROK を数値に変換する  
                                                                                                
           # SQL を組み立てる。                                                                 
           if params.getall('_DSPMOD')[i] == 'WRTPTN':                                          
               #  レコードの挿入                                                                
               sql = '''                                                                        
       INSERT INTO QTRFIL/SIREMT                                                                
               (SRCODE,                                                                         
               SRNMK,                                                                           
               SRNMJ,            
               SRNMJ2,           
               SRNM,             
               SRSHOT,           
               SRTEL,            
               SRFAX,            
               SFAX,             
               SRFORD,           
               SRYOSI,           
               SRKAIT,           
               SRLABL,           
               SRZIP,            
               SRADR1,           
               SRADR2,           
               STANTO,           
               SRKOKB,           
               SRFRKB,           
                SRR01,       
                SRR02,       
                SRR03,       
                SRR04,       
                SRKBN,       
                SGYOSH,      
                SRHLMT,      
                SEGCD,       
                SCHIKU,      
                SRTRI,       
                SRSHCD,      
                SRSHKB,      
                SRSHHO,      
                SRSIT,       
                SRZEI,       
                SDIHYO,      
                SJOKEN,      
                SBNKCD,   
                SSTNCD,   
                SYOKKB,   
                SKOZNO,   
                SYOKNM,   
                SNEWDT,   
                SMITEG,   
                SRKEDT,   
                SRHDDT,   
                SROKDT,   
                SSIHON,   
                SNENSO,   
                SORITU,   
                SSHAIN,   
                SKESAN,   
                SMAKER,   
                SSHHIN,   
                STRHIN,                                                                           
                SBIKO1,                                                                           
                SBIKO2,                                                                           
                STORCD,                                                                           
                STOROK)                                                                           
                '''                                                                               
                stmt = ibm_db2.prepare(conn, sql);                                                
                ibm_db2.bind_param(stmt, 1, params['SRCODE'])   # SRCODE  を SQL にセットする     
                ibm_db2.bind_param(stmt, 2, params['SRNMK'])   # SRNMK  を SQL にセットする       
                ibm_db2.bind_param(stmt, 3, params['SRNMJ'])   # SRNMJ  を SQL にセットする       
                ibm_db2.bind_param(stmt, 4, params['SRNMJ2'])   # SRNMJ2  を SQL にセットする     
                ibm_db2.bind_param(stmt, 5, params['SRNM'])   # SRNM  を SQL にセットする         
                ibm_db2.bind_param(stmt, 6, params['SRSHOT'])   # SRSHOT  を SQL にセットする     
                ibm_db2.bind_param(stmt, 7, params['SRTEL'])   # SRTEL  を SQL にセットする       
                ibm_db2.bind_param(stmt, 8, params['SRFAX'])   # SRFAX  を SQL にセットする       
                ibm_db2.bind_param(stmt, 9, params['SFAX'])   # SFAX  を SQL にセットする         
                ibm_db2.bind_param(stmt, 10, params['SRFORD'])   # SRFORD  を SQL にセットする    
                ibm_db2.bind_param(stmt, 11, params['SRYOSI'])   # SRYOSI  を SQL にセットする   
                ibm_db2.bind_param(stmt, 12, params['SRKAIT'])   # SRKAIT  を SQL にセットする   
                ibm_db2.bind_param(stmt, 13, params['SRLABL'])   # SRLABL  を SQL にセットする   
                ibm_db2.bind_param(stmt, 14, params['SRZIP'])   # SRZIP  を SQL にセットする     
                ibm_db2.bind_param(stmt, 15, params['SRADR1'])   # SRADR1  を SQL にセットする   
                ibm_db2.bind_param(stmt, 16, params['SRADR2'])   # SRADR2  を SQL にセットする   
                ibm_db2.bind_param(stmt, 17, params['STANTO'])   # STANTO  を SQL にセットする   
                ibm_db2.bind_param(stmt, 18, params['SRKOKB'])   # SRKOKB  を SQL にセットする   
                ibm_db2.bind_param(stmt, 19, params['SRFRKB'])   # SRFRKB  を SQL にセットする   
                ibm_db2.bind_param(stmt, 20, params['SRR01'])   # SRR01  を SQL にセットする     
                ibm_db2.bind_param(stmt, 21, params['SRR02'])   # SRR02  を SQL にセットする     
                ibm_db2.bind_param(stmt, 22, params['SRR03'])   # SRR03  を SQL にセットする     
                ibm_db2.bind_param(stmt, 23, params['SRR04'])   # SRR04  を SQL にセットする     
                ibm_db2.bind_param(stmt, 24, params['SRKBN'])   # SRKBN  を SQL にセットする     
                ibm_db2.bind_param(stmt, 25, params['SGYOSH'])   # SGYOSH  を SQL にセットする   
                ibm_db2.bind_param(stmt, 26, params['SRHLMT'])   # SRHLMT  を SQL にセットする   
                ibm_db2.bind_param(stmt, 27, params['SEGCD'])   # SEGCD  を SQL にセットする     
                ibm_db2.bind_param(stmt, 28, params['SCHIKU'])   # SCHIKU  を SQL にセットする     
                ibm_db2.bind_param(stmt, 29, params['SRTRI'])   # SRTRI  を SQL にセットする       
                ibm_db2.bind_param(stmt, 30, params['SRSHCD'])   # SRSHCD  を SQL にセットする     
                ibm_db2.bind_param(stmt, 31, params['SRSHKB'])   # SRSHKB  を SQL にセットする     
                ibm_db2.bind_param(stmt, 32, params['SRSHHO'])   # SRSHHO  を SQL にセットする     
                ibm_db2.bind_param(stmt, 33, params['SRSIT'])   # SRSIT  を SQL にセットする       
                ibm_db2.bind_param(stmt, 34, params['SRZEI'])   # SRZEI  を SQL にセットする       
                ibm_db2.bind_param(stmt, 35, params['SDIHYO'])   # SDIHYO  を SQL にセットする     
                ibm_db2.bind_param(stmt, 36, params['SJOKEN'])   # SJOKEN  を SQL にセットする     
                ibm_db2.bind_param(stmt, 37, params['SBNKCD'])   # SBNKCD  を SQL にセットする     
                ibm_db2.bind_param(stmt, 38, params['SSTNCD'])   # SSTNCD  を SQL にセットする     
                ibm_db2.bind_param(stmt, 39, params['SYOKKB'])   # SYOKKB  を SQL にセットする     
                ibm_db2.bind_param(stmt, 40, params['SKOZNO'])   # SKOZNO  を SQL にセットする     
                ibm_db2.bind_param(stmt, 41, params['SYOKNM'])   # SYOKNM  を SQL にセットする     
                ibm_db2.bind_param(stmt, 42, params['SNEWDT'])   # SNEWDT  を SQL にセットする     
                ibm_db2.bind_param(stmt, 43, params['SMITEG'])   # SMITEG  を SQL にセットする     
                ibm_db2.bind_param(stmt, 44, params['SRKEDT'])   # SRKEDT  を SQL にセットする     
                ibm_db2.bind_param(stmt, 45, params['SRHDDT'])   # SRHDDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 46, params['SROKDT'])   # SROKDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 47, params['SSIHON'])   # SSIHON  を SQL にセットする  
                ibm_db2.bind_param(stmt, 48, params['SNENSO'])   # SNENSO  を SQL にセットする  
                ibm_db2.bind_param(stmt, 49, params['SORITU'])   # SORITU  を SQL にセットする  
                ibm_db2.bind_param(stmt, 50, params['SSHAIN'])   # SSHAIN  を SQL にセットする  
                ibm_db2.bind_param(stmt, 51, params['SKESAN'])   # SKESAN  を SQL にセットする  
                ibm_db2.bind_param(stmt, 52, params['SMAKER'])   # SMAKER  を SQL にセットする  
                ibm_db2.bind_param(stmt, 53, params['SSHHIN'])   # SSHHIN  を SQL にセットする  
                ibm_db2.bind_param(stmt, 54, params['STRHIN'])   # STRHIN  を SQL にセットする  
                ibm_db2.bind_param(stmt, 55, params['SBIKO1'])   # SBIKO1  を SQL にセットする  
                ibm_db2.bind_param(stmt, 56, params['SBIKO2'])   # SBIKO2  を SQL にセットする  
                ibm_db2.bind_param(stmt, 57, params['STORCD'])   # STORCD  を SQL にセットする  
                ibm_db2.bind_param(stmt, 58, params['STOROK'])   # STOROK  を SQL にセットする  
                ibm_db2.bind_param(stmt, 59, params['SRCODE'])   # SRCODE  を SQL にセットする  
                                                                                                
                # SQL を実行する。                                                              
                ibm_db2.execute(stmt)     
                                          
                global add_count          
                add_count += 1            
                txn_add_count += 1        
                                          
            else:                         
                #  レコードの更新         
                sql =  '''                
                UPDATE QTRFIL/SIREMT      
                  SET SRNMK     = ?       
                     ,SRNMJ     = ?       
                     ,SRNMJ2    = ?       
                     ,SRNM      = ?       
                     ,SRSHOT    = ?       
                     ,SRTEL     = ?       
                     ,SRFAX     = ?       
                     ,SFAX      = ?      
                     ,SRFORD    = ?      
                     ,SRYOSI    = ?      
                     ,SRKAIT    = ?      
                     ,SRLABL    = ?      
                     ,SRZIP     = ?      
                     ,SRADR1    = ?      
                     ,SRADR2    = ?      
                     ,STANTO    = ?      
                     ,SRKOKB    = ?      
                     ,SRFRKB    = ?      
                     ,SRR01     = ?      
                     ,SRR02     = ?      
                     ,SRR03     = ?      
                     ,SRR04     = ?      
                     ,SRKBN     = ?      
                     ,SGYOSH    = ?      
                     ,SRHLMT    = ?    
                     ,SEGCD     = ?    
                     ,SCHIKU    = ?    
                     ,SRTRI     = ?    
                     ,SRSHCD    = ?    
                     ,SRSHKB    = ?    
                     ,SRSHHO    = ?    
                     ,SRSIT     = ?    
                     ,SRZEI     = ?    
                     ,SDIHYO    = ?    
                     ,SJOKEN    = ?    
                     ,SBNKCD    = ?    
                     ,SSTNCD    = ?    
                     ,SYOKKB    = ?    
                     ,SKOZNO    = ?    
                     ,SYOKNM    = ?    
                     ,SNEWDT    = ?    
                     ,SMITEG    = ?          
                     ,SRKEDT    = ?          
                     ,SRHDDT    = ?          
                     ,SROKDT    = ?          
                     ,SSIHON    = ?          
                     ,SNENSO    = ?          
                     ,SORITU    = ?          
                     ,SSHAIN    = ?          
                     ,SKESAN    = ?          
                     ,SMAKER    = ?          
                     ,SSHHIN    = ?          
                     ,STRHIN    = ?          
                     ,SBIKO1    = ?          
                     ,SBIKO2    = ?          
                     ,STORCD    = ?          
                     ,STOROK    = ?          
                  WHERE SRCODE  = ?          
                '''                                                                              
                stmt = ibm_db2.prepare(conn, sql);                                               
                ibm_db2.bind_param(stmt, 1, params['SRCODE'])   # SRCODE  を SQL にセットする    
                ibm_db2.bind_param(stmt, 2, params['SRNMK'])   # SRNMK  を SQL にセットする      
                ibm_db2.bind_param(stmt, 3, params['SRNMJ'])   # SRNMJ  を SQL にセットする      
                ibm_db2.bind_param(stmt, 4, params['SRNMJ2'])   # SRNMJ2  を SQL にセットする    
                ibm_db2.bind_param(stmt, 5, params['SRNM'])   # SRNM  を SQL にセットする        
                ibm_db2.bind_param(stmt, 6, params['SRSHOT'])   # SRSHOT  を SQL にセットする    
                ibm_db2.bind_param(stmt, 7, params['SRTEL'])   # SRTEL  を SQL にセットする      
                ibm_db2.bind_param(stmt, 8, params['SRFAX'])   # SRFAX  を SQL にセットする      
                ibm_db2.bind_param(stmt, 9, params['SFAX'])   # SFAX  を SQL にセットする        
                ibm_db2.bind_param(stmt, 10, params['SRFORD'])   # SRFORD  を SQL にセットする   
                ibm_db2.bind_param(stmt, 11, params['SRYOSI'])   # SRYOSI  を SQL にセットする   
                ibm_db2.bind_param(stmt, 12, params['SRKAIT'])   # SRKAIT  を SQL にセットする   
                ibm_db2.bind_param(stmt, 13, params['SRLABL'])   # SRLABL  を SQL にセットする   
                ibm_db2.bind_param(stmt, 14, params['SRZIP'])   # SRZIP  を SQL にセットする     
                ibm_db2.bind_param(stmt, 15, params['SRADR1'])   # SRADR1  を SQL にセットする   
                ibm_db2.bind_param(stmt, 16, params['SRADR2'])   # SRADR2  を SQL にセットする   
                ibm_db2.bind_param(stmt, 17, params['STANTO'])   # STANTO  を SQL にセットする   
                ibm_db2.bind_param(stmt, 18, params['SRKOKB'])   # SRKOKB  を SQL にセットする   
                ibm_db2.bind_param(stmt, 19, params['SRFRKB'])   # SRFRKB  を SQL にセットする   
                ibm_db2.bind_param(stmt, 20, params['SRR01'])   # SRR01  を SQL にセットする     
                ibm_db2.bind_param(stmt, 21, params['SRR02'])   # SRR02  を SQL にセットする     
                ibm_db2.bind_param(stmt, 22, params['SRR03'])   # SRR03  を SQL にセットする     
                ibm_db2.bind_param(stmt, 23, params['SRR04'])   # SRR04  を SQL にセットする     
                ibm_db2.bind_param(stmt, 24, params['SRKBN'])   # SRKBN  を SQL にセットする     
                ibm_db2.bind_param(stmt, 25, params['SGYOSH'])   # SGYOSH  を SQL にセットする   
                ibm_db2.bind_param(stmt, 26, params['SRHLMT'])   # SRHLMT  を SQL にセットする   
                ibm_db2.bind_param(stmt, 27, params['SEGCD'])   # SEGCD  を SQL にセットする     
                ibm_db2.bind_param(stmt, 28, params['SCHIKU'])   # SCHIKU  を SQL にセットする   
                ibm_db2.bind_param(stmt, 29, params['SRTRI'])   # SRTRI  を SQL にセットする     
                ibm_db2.bind_param(stmt, 30, params['SRSHCD'])   # SRSHCD  を SQL にセットする   
                ibm_db2.bind_param(stmt, 31, params['SRSHKB'])   # SRSHKB  を SQL にセットする   
                ibm_db2.bind_param(stmt, 32, params['SRSHHO'])   # SRSHHO  を SQL にセットする   
                ibm_db2.bind_param(stmt, 33, params['SRSIT'])   # SRSIT  を SQL にセットする    
                ibm_db2.bind_param(stmt, 34, params['SRZEI'])   # SRZEI  を SQL にセットする    
                ibm_db2.bind_param(stmt, 35, params['SDIHYO'])   # SDIHYO  を SQL にセットする  
                ibm_db2.bind_param(stmt, 36, params['SJOKEN'])   # SJOKEN  を SQL にセットする  
                ibm_db2.bind_param(stmt, 37, params['SBNKCD'])   # SBNKCD  を SQL にセットする  
                ibm_db2.bind_param(stmt, 38, params['SSTNCD'])   # SSTNCD  を SQL にセットする  
                ibm_db2.bind_param(stmt, 39, params['SYOKKB'])   # SYOKKB  を SQL にセットする  
                ibm_db2.bind_param(stmt, 40, params['SKOZNO'])   # SKOZNO  を SQL にセットする  
                ibm_db2.bind_param(stmt, 41, params['SYOKNM'])   # SYOKNM  を SQL にセットする  
                ibm_db2.bind_param(stmt, 42, params['SNEWDT'])   # SNEWDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 43, params['SMITEG'])   # SMITEG  を SQL にセットする  
                ibm_db2.bind_param(stmt, 44, params['SRKEDT'])   # SRKEDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 45, params['SRHDDT'])   # SRHDDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 46, params['SROKDT'])   # SROKDT  を SQL にセットする  
                ibm_db2.bind_param(stmt, 47, params['SSIHON'])   # SSIHON  を SQL にセットする  
                ibm_db2.bind_param(stmt, 48, params['SNENSO'])   # SNENSO  を SQL にセットする  
                ibm_db2.bind_param(stmt, 49, params['SORITU'])   # SORITU  を SQL にセットする  
                 ibm_db2.bind_param(stmt, 50, params['SSHAIN'])   # SSHAIN  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 51, params['SKESAN'])   # SKESAN  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 52, params['SMAKER'])   # SMAKER  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 53, params['SSHHIN'])   # SSHHIN  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 54, params['STRHIN'])   # STRHIN  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 55, params['SBIKO1'])   # SBIKO1  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 56, params['SBIKO2'])   # SBIKO2  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 57, params['STORCD'])   # STORCD  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 58, params['STOROK'])   # STOROK  を SQL にセットする   
                 ibm_db2.bind_param(stmt, 59, params['SRCODE'])   # SRCODE  を SQL にセットする   
                                                                                                  
                 # SQL を実行する。                                                               
                 ibm_db2.execute(stmt)                                                            
                                                                                                  
                 global chg_count                                                                 
                 chg_count += 1                                                                   
                 txn_chg_count += 1                                                               
                                                                      
        # 初期画面に戻る                                              
        msgs = []                                                     
        if txn_add_count > 0:                                         
            msgs.append("{} レコード追加 ".format(txn_add_count))     
        msgs.append("{} レコード更新 ".format(txn_chg_count))         
        msg = ' 、 '.join(msgs) + " しました。 "                      
                                                                      
        return bottle2.redirect('/init?' + urllib.parse.urlencode({   
            'MSG': msg,                                               
        }))                                                           
                                                                      
#*************************************************************#       
@bottle2.route('/insert', method=["POST"])         # 入力処理         
def insert():                                                         
#*************************************************************#       
    # DB2 に接続する。                                                
    with ibm_db2.connected() as conn:                                                          
        #  ブラウザからの入力値を受け取る。                                                    
        params = bottle2.request.forms.decode()                                                
                                                                                               
        params['SRKAIT'] = int(params['SRKAIT'].replace(',', '')) # SRKAIT を数値に変換する    
        params['SRHLMT'] = int(params['SRHLMT'].replace(',', '')) # SRHLMT を数値に変換する    
        params['SRSIT'] = int(params['SRSIT'].replace(',', '')) # SRSIT を数値に変換する       
        params['SNEWDT'] = int(params['SNEWDT'].replace(',', '')) # SNEWDT を数値に変換する    
        params['SMITEG'] = int(params['SMITEG'].replace(',', '')) # SMITEG を数値に変換する    
        params['SRKEDT'] = int(params['SRKEDT'].replace(',', '')) # SRKEDT を数値に変換する    
        params['SRHDDT'] = int(params['SRHDDT'].replace(',', '')) # SRHDDT を数値に変換する    
        params['SROKDT'] = int(params['SROKDT'].replace(',', '')) # SROKDT を数値に変換する    
        params['SSIHON'] = int(params['SSIHON'].replace(',', '')) # SSIHON を数値に変換する    
        params['SNENSO'] = int(params['SNENSO'].replace(',', '')) # SNENSO を数値に変換する    
        params['SORITU'] = int(params['SORITU'].replace(',', '')) # SORITU を数値に変換する    
        params['SSHAIN'] = int(params['SSHAIN'].replace(',', '')) # SSHAIN を数値に変換する    
        params['SKESAN'] = int(params['SKESAN'].replace(',', '')) # SKESAN を数値に変換する    
        params['STOROK'] = int(params['STOROK'].replace(',', '')) # STOROK を数値に変換する  
                                                                                             
        # SQL を組み立てる。                                                                 
        sql =  '''                                                                           
        INSERT INTO QTRFIL/SIREMT                                                            
        (SRCODE,                                                                             
        SRNMK,                                                                               
        SRNMJ,                                                                               
        SRNMJ2,                                                                              
        SRNM,                                                                                
        SRSHOT,                                                                              
        SRTEL,                                                                               
        SRFAX,                                                                               
        SFAX,                                                                                
        SRFORD,                                                                              
        SRYOSI,                                                                              
        SRKAIT,                                                                              
        SRLABL,           
        SRZIP,            
        SRADR1,           
        SRADR2,           
        STANTO,           
        SRKOKB,           
        SRFRKB,           
        SRR01,            
        SRR02,            
        SRR03,            
        SRR04,            
        SRKBN,            
        SGYOSH,           
        SRHLMT,           
        SEGCD,            
        SCHIKU,           
        SRTRI,            
         SRSHCD,        
         SRSHKB,        
         SRSHHO,        
         SRSIT,         
         SRZEI,         
         SDIHYO,        
         SJOKEN,        
         SBNKCD,        
         SSTNCD,        
         SYOKKB,        
         SKOZNO,        
         SYOKNM,        
         SNEWDT,        
         SMITEG,        
         SRKEDT,        
         SRHDDT,        
         SROKDT,        
        SSIHON,                                                                        
        SNENSO,                                                                        
        SORITU,                                                                        
        SSHAIN,                                                                        
        SKESAN,                                                                        
        SMAKER,                                                                        
        SSHHIN,                                                                        
        STRHIN,                                                                        
        SBIKO1,                                                                        
        SBIKO2,                                                                        
        STORCD,                                                                        
        STOROK)                                                                        
        '''                                                                            
        stmt = ibm_db2.prepare(conn, sql);                                             
        ibm_db2.bind_param(stmt, 1, params['SRCODE'])   # SRCODE  を SQL にセットする  
        ibm_db2.bind_param(stmt, 2, params['SRNMK'])   # SRNMK  を SQL にセットする    
        ibm_db2.bind_param(stmt, 3, params['SRNMJ'])   # SRNMJ  を SQL にセットする    
        ibm_db2.bind_param(stmt, 4, params['SRNMJ2'])   # SRNMJ2  を SQL にセットする     
        ibm_db2.bind_param(stmt, 5, params['SRNM'])   # SRNM  を SQL にセットする         
        ibm_db2.bind_param(stmt, 6, params['SRSHOT'])   # SRSHOT  を SQL にセットする     
        ibm_db2.bind_param(stmt, 7, params['SRTEL'])   # SRTEL  を SQL にセットする       
        ibm_db2.bind_param(stmt, 8, params['SRFAX'])   # SRFAX  を SQL にセットする       
        ibm_db2.bind_param(stmt, 9, params['SFAX'])   # SFAX  を SQL にセットする         
        ibm_db2.bind_param(stmt, 10, params['SRFORD'])   # SRFORD  を SQL にセットする    
        ibm_db2.bind_param(stmt, 11, params['SRYOSI'])   # SRYOSI  を SQL にセットする    
        ibm_db2.bind_param(stmt, 12, params['SRKAIT'])   # SRKAIT  を SQL にセットする    
        ibm_db2.bind_param(stmt, 13, params['SRLABL'])   # SRLABL  を SQL にセットする    
        ibm_db2.bind_param(stmt, 14, params['SRZIP'])   # SRZIP  を SQL にセットする      
        ibm_db2.bind_param(stmt, 15, params['SRADR1'])   # SRADR1  を SQL にセットする    
        ibm_db2.bind_param(stmt, 16, params['SRADR2'])   # SRADR2  を SQL にセットする    
        ibm_db2.bind_param(stmt, 17, params['STANTO'])   # STANTO  を SQL にセットする    
        ibm_db2.bind_param(stmt, 18, params['SRKOKB'])   # SRKOKB  を SQL にセットする    
        ibm_db2.bind_param(stmt, 19, params['SRFRKB'])   # SRFRKB  を SQL にセットする    
        ibm_db2.bind_param(stmt, 20, params['SRR01'])   # SRR01  を SQL にセットする      
        ibm_db2.bind_param(stmt, 21, params['SRR02'])   # SRR02  を SQL にセットする     
        ibm_db2.bind_param(stmt, 22, params['SRR03'])   # SRR03  を SQL にセットする     
        ibm_db2.bind_param(stmt, 23, params['SRR04'])   # SRR04  を SQL にセットする     
        ibm_db2.bind_param(stmt, 24, params['SRKBN'])   # SRKBN  を SQL にセットする     
        ibm_db2.bind_param(stmt, 25, params['SGYOSH'])   # SGYOSH  を SQL にセットする   
        ibm_db2.bind_param(stmt, 26, params['SRHLMT'])   # SRHLMT  を SQL にセットする   
        ibm_db2.bind_param(stmt, 27, params['SEGCD'])   # SEGCD  を SQL にセットする     
        ibm_db2.bind_param(stmt, 28, params['SCHIKU'])   # SCHIKU  を SQL にセットする   
        ibm_db2.bind_param(stmt, 29, params['SRTRI'])   # SRTRI  を SQL にセットする     
        ibm_db2.bind_param(stmt, 30, params['SRSHCD'])   # SRSHCD  を SQL にセットする   
        ibm_db2.bind_param(stmt, 31, params['SRSHKB'])   # SRSHKB  を SQL にセットする   
        ibm_db2.bind_param(stmt, 32, params['SRSHHO'])   # SRSHHO  を SQL にセットする   
        ibm_db2.bind_param(stmt, 33, params['SRSIT'])   # SRSIT  を SQL にセットする     
        ibm_db2.bind_param(stmt, 34, params['SRZEI'])   # SRZEI  を SQL にセットする     
        ibm_db2.bind_param(stmt, 35, params['SDIHYO'])   # SDIHYO  を SQL にセットする   
        ibm_db2.bind_param(stmt, 36, params['SJOKEN'])   # SJOKEN  を SQL にセットする   
        ibm_db2.bind_param(stmt, 37, params['SBNKCD'])   # SBNKCD  を SQL にセットする   
         ibm_db2.bind_param(stmt, 38, params['SSTNCD'])   # SSTNCD  を SQL にセットする   
         ibm_db2.bind_param(stmt, 39, params['SYOKKB'])   # SYOKKB  を SQL にセットする   
         ibm_db2.bind_param(stmt, 40, params['SKOZNO'])   # SKOZNO  を SQL にセットする   
         ibm_db2.bind_param(stmt, 41, params['SYOKNM'])   # SYOKNM  を SQL にセットする   
         ibm_db2.bind_param(stmt, 42, params['SNEWDT'])   # SNEWDT  を SQL にセットする   
         ibm_db2.bind_param(stmt, 43, params['SMITEG'])   # SMITEG  を SQL にセットする   
         ibm_db2.bind_param(stmt, 44, params['SRKEDT'])   # SRKEDT  を SQL にセットする   
         ibm_db2.bind_param(stmt, 45, params['SRHDDT'])   # SRHDDT  を SQL にセットする   
         ibm_db2.bind_param(stmt, 46, params['SROKDT'])   # SROKDT  を SQL にセットする   
         ibm_db2.bind_param(stmt, 47, params['SSIHON'])   # SSIHON  を SQL にセットする   
         ibm_db2.bind_param(stmt, 48, params['SNENSO'])   # SNENSO  を SQL にセットする   
         ibm_db2.bind_param(stmt, 49, params['SORITU'])   # SORITU  を SQL にセットする   
         ibm_db2.bind_param(stmt, 50, params['SSHAIN'])   # SSHAIN  を SQL にセットする   
         ibm_db2.bind_param(stmt, 51, params['SKESAN'])   # SKESAN  を SQL にセットする   
         ibm_db2.bind_param(stmt, 52, params['SMAKER'])   # SMAKER  を SQL にセットする   
         ibm_db2.bind_param(stmt, 53, params['SSHHIN'])   # SSHHIN  を SQL にセットする   
         ibm_db2.bind_param(stmt, 54, params['STRHIN'])   # STRHIN  を SQL にセットする   
        ibm_db2.bind_param(stmt, 55, params['SBIKO1'])   # SBIKO1  を SQL にセットする 
        ibm_db2.bind_param(stmt, 56, params['SBIKO2'])   # SBIKO2  を SQL にセットする 
        ibm_db2.bind_param(stmt, 57, params['STORCD'])   # STORCD  を SQL にセットする 
        ibm_db2.bind_param(stmt, 58, params['STOROK'])   # STOROK  を SQL にセットする 
        ibm_db2.bind_param(stmt, 59, params['SRCODE'])   # SRCODE  を SQL にセットする 
                                                                                       
        # SQL を実行する。                                                             
        ibm_db2.execute(stmt)                                                          
                                                                                       
        global add_count                                                               
        add_count += 1                                                                 
                                                                                       
        # 初期画面に戻る                                                               
        return bottle2.redirect('/init?' + urllib.parse.urlencode({                    
          'MSG': '1 レコード追加しました ',                                            
        }))                                                                            

#*************************************************************#                                   
@bottle2.route('/delete', method=["POST"])         # 削除処理                                     
def delete():                                                                                     
#*************************************************************#                                   
    # DB2 に接続する。                                                                            
    with ibm_db2.connected() as conn:                                                             
        #  ブラウザからの入力値を受け取る。                                                       
        params = bottle2.request.forms.decode()                                                   
                                                                                                  
        txn_dlt_count = 0                                                                         
                                                                                                  
        #  各レコードについて繰り返す。                                                           
        for i in range(len(params.getall('SRCODE'))):                                             
            if(params.getall('_CHK')[i] != 'on'):                                                 
                continue                                                                          
                                                                                                  
            params['SRKAIT'] = int(params['SRKAIT'].replace(',', '')) # SRKAIT を数値に変換する   
            params['SRHLMT'] = int(params['SRHLMT'].replace(',', '')) # SRHLMT を数値に変換する   
            params['SRSIT'] = int(params['SRSIT'].replace(',', '')) # SRSIT を数値に変換する      
            params['SNEWDT'] = int(params['SNEWDT'].replace(',', '')) # SNEWDT を数値に変換する   
            params['SMITEG'] = int(params['SMITEG'].replace(',', '')) # SMITEG を数値に変換する   
            params['SRKEDT'] = int(params['SRKEDT'].replace(',', '')) # SRKEDT を数値に変換する   
            params['SRHDDT'] = int(params['SRHDDT'].replace(',', '')) # SRHDDT を数値に変換する   
            params['SROKDT'] = int(params['SROKDT'].replace(',', '')) # SROKDT を数値に変換する   
            params['SSIHON'] = int(params['SSIHON'].replace(',', '')) # SSIHON を数値に変換する   
            params['SNENSO'] = int(params['SNENSO'].replace(',', '')) # SNENSO を数値に変換する   
            params['SORITU'] = int(params['SORITU'].replace(',', '')) # SORITU を数値に変換する   
            params['SSHAIN'] = int(params['SSHAIN'].replace(',', '')) # SSHAIN を数値に変換する   
            params['SKESAN'] = int(params['SKESAN'].replace(',', '')) # SKESAN を数値に変換する   
            params['STOROK'] = int(params['STOROK'].replace(',', '')) # STOROK を数値に変換する   
                                                                                                  
            # SQL を組み立てる。                                                                  
            sql =  '''                                                                            
                DELETE QTRFIL/SIREMT                                                              
               WHERE SRCODE  = ?                                                          
            '''                                                                           
            stmt = ibm_db2.prepare(conn, sql);                                            
            ibm_db2.bind_param(stmt, 1, params['SRCODE'])   # SRCODE  を SQL にセットする 
                                                                                          
            # SQL を実行する。                                                            
            ibm_db2.execute(stmt)                                                         
                                                                                          
            global dlt_count                                                              
            dlt_count += 1                                                                
            txn_dlt_count += 1                                                            
                                                                                          
        # 初期画面に戻る                                                                  
        return bottle2.redirect('/init?' + urllib.parse.urlencode({                       
          'MSG': '{} レコード削除しました '.format(txn_dlt_count),                        
        }))                                                                               
                                                                                          
#*************************************************************#       
# 終了画面                                                            
@bottle2.route('/end', method=["GET", "POST"])            # 終了処理  
def end():                                                            
#*************************************************************#       
    #  ブラウザからの入力値を受け取る。                               
    params = bottle2.request.params.decode()                          
                                                                      
    #  終了確認画面の HTML を表示する。                               
    return bottle2.template('ENDOPT.HTM', {                           
        'dspmod': dspmod,                                             
        'values': [params],                                           
        'add_count': add_count,                                       
        'chg_count': chg_count,                                       
        'dlt_count': dlt_count,                                       
    })                                                                
                                                                      
#*************************************************************#  
@bottle2.route('/close', method=["POST"])                        
def close():                                                     
#*************************************************************#  
    # bottle を終了する。                                        
    bottle2.shutdown()                                           
                                                                 
#*************************************************************#  
@bottle2.route('/icon/')        # アイコンの呼出し    
def icon(path):                                                  
#*************************************************************#  
   return bottle2.static_file(path, '/PYTHON.400/ICON')          
                                                                 
#*************************************************************#  
# MAIN: 以下のルーチンが最初に実行されるメイン・ルーチンです。   
#*************************************************************#  
#  使用する HTML テンプレートの場所を宣言する。                  
HTM_DIR = os.path.dirname(os.path.abspath(__file__)) 
bottle2.TEMPLATE_PATH[:] = [HTM_DIR]                 
                                                     
# HTTP サーバーを起動する。                          
bottle2.run(host='', port=8080, quiet=True)          

[解説]

WSIRINQ:仕入先マスター照会もWSHOINQ:商品照会と基本的には同じです。
仕入先マスターは商品マスターに比べて圧倒的に項目数が多くなりますが
HTMLには横方向縦方向の制限がありませんので
5250エミュレータのような制約はありません。
従ってロール・アップ/ダウンなどの処理を書く必要もありません。
WSIRINQ:仕入先マスター照会ノロジックは WSHOINQ:商品マスター照会を
参考にして読み解いてみてください。