킨톤으로 아래 목록 선택 변경

킨톤은 밑에 있는 리스트가 있는데, 어떤 텍스트 정보(이번은 주소)를 설정한 후 자동으로 분류를 설정하려는 요구가 높아졌다. 다양한 방법이 있지만, 이번에는 분류를 아래로 당겨서 만들고,텍스트 정보를 자동으로 선택하는 기능이 만들어졌습니다.

전제 조건

  • 주소 필드(문자열), 주소 2 필드(문자열)에 등록된 주소를 가져오고 영역 필드(드롭다운 목록)의 옵션을 수정합니다
  • .
  • 이번 구역 관리자는 프로그램 내의 변수로 할 것이다
  • 창 만들기


    킨톤으로 다음 형식을 만들어주세요.

    또 지역 드롭다운 리스트의 내용은 여기에 있다.

    또 우편번호에서 주소를 얻는 부분은 이번에 생략했다.

    로그인 후 지역별 Javascript 자동 설정


    autoset_area.js
    // 20210402 S地域自動設定
    // 1.住所が登録されたら,地域を自動的に設定します
    
    (function() {
      // 住所が入っているフィールド名
      const ADDRESS_FIELD_NAME = '住所';
    
      // 住所2が入っているフィールド名
      const ADDRESS2_FIELD_NAME = '住所2';
    
      // 地域が入っているフィールド名(ドロップダウン)
      const AREA_FIELD_NAME = '地域';
    
      // 地域のリスト(今回はDBは使わずに対応)
      const AREA_LIST = ['静岡市駿河区','静岡市葵区','静岡市清水区','その他中部地区','その他西部地区','その他東部地区','県外','国外'];
    
      // 地域ごとの選択肢(今回はDBは使わずに対応)
      const AREA_SUB_LIST =   [
        ['静岡市駿河区'],
        ['静岡市葵区'],
        ['静岡市清水区'],
        ['焼津市', '藤枝市', '島田市', '牧之原市', '榛原郡'],
        ['浜松市', '磐田市', '袋井市', '掛川市', '湖西市', '御前崎市', '菊川市', '周智郡森町'],
        ['沼津市', '三島市', '熱海市', '富士宮市', '伊東市', '富士市', '御殿場市', '下田市', '裾野市',
          '伊豆市', '伊豆の国市', '賀茂郡', '田方郡', '駿東郡'],
        ['北海道', '大阪府', '京都府', '東京都', ''],
        ['']
      ];
    
      "use strict";
    
        // レコード詳細表示
        kintone.events.on(['app.record.detail.show', 'app.record.edit.change.住所', 'app.record.create.change.住所',
      'app.record.edit.change.住所2', 'app.record.create.change.住所2'], function (event) {
        // 住所の文字列を取得(番地まで)
        var address_name = event.record[ADDRESS_FIELD_NAME].value + event.record[ADDRESS2_FIELD_NAME].value;
    
        // マッチングフラグ(いずれかの地域にマッチしたら1をセットしてループを抜ける)
        let set_flag = 0;
        // 地域でループを回す
        for(let i=0; i<AREA_LIST.length; i++){
          for(let j=0; j<AREA_SUB_LIST[i].length; j++){
            if( address_name.indexOf(AREA_SUB_LIST[i][j]) > -1 ){
              // マッチする地域が見つかったので,ドロップダウンリストを設定
              event.record[AREA_FIELD_NAME].value = AREA_LIST[i];
              // フラグを立ててループを抜ける
              set_flag = 1;
              break;
            }
          }
          // フラグが立っていたらループを抜ける
          if( set_flag === 1 ) break;
        }
    
        return event;
      });
    
    })();
    

    앞으로의 과제


    어쨌든 주소만 등록하면 자동으로 드롭다운 목록을 선택할 수 있습니다.
    다음은,
  • 불가능한 주소를 등록했을 때 드롭다운 목록의 내용을 지웁니다
  • .
  • 일치하는 메인스테이션(지역 및 포함된 시정 목록)을 DB
  • 로 설정
    도전해 보고 싶어요.

    좋은 웹페이지 즐겨찾기