【Power Apps】2つの選択肢による絞り込み(キャンバスアプリ)

  • 前提
    取引先企業マスタ
    取引先企業名:AAA株式会社
    取引先企業名:BBB株式会社

    拠点マスタ
    拠点名:AAA本店
    取引先企業名:AAA株式会社

    拠点名:BBB本店
    取引先企業名:BBB株式会社

  • キャンバスアプリ:2つの選択肢による絞り込み
    ・取引先企業と拠点を表示するコントールを2つ配置(コントロール①、コントロール②)
    ・コントロール①②を「テキストの編集」から「許可値」に変更
    ・許可値のデータソースをDataverseやSharePointリストから選択
    ・コントロール①②のDataCardのロックを解除
    ・コントロール①のDataCard内のドロップダウンを選択し、Itemsプロパティに以下を設定
     「Distinct([データリストの名前], [表示したい列の名前])」
     ※これはコントール①に重複値がある場合に設定
    ・コントロール②のドロップダウンを選択し、プロパティタブの依存先を選択
    ・依存先の親コントールにコントール①の情報を設定

    参考サイト
    ttps://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/dependent-drop-down-lists
    ttps://ippu-biz.com/development/powerplatform/powerapps/link-dropdown/

【Power Apps】2つの選択肢による絞り込み(モデル駆動型アプリ)

  • 前提
    取引先企業マスタ
    取引先企業名:AAA株式会社
    取引先企業名:BBB株式会社

    拠点マスタ
    拠点名:AAA本店
    取引先企業名:AAA株式会社

    拠点名:BBB本店
    取引先企業名:BBB株式会社

  • モデル駆動型アプリ:2つの選択肢による絞り込み
    ・TestTableに列の追加で取引先企業を追加(データ型は参照)
    ・TestTableに列の追加で拠点を追加(データ型は参照)
    ・TestTableのフォームを開き、クラシックUIに切り替える
    ・拠点を選択し、プロパティの変更を押下
    ・表示タブの下部にある「関連レコードのフィルタリング」項目
     次の条件を満たすレコードのみ表示する:チェックON
     取引先企業の列を選択
     取引先企業(拠点)を選択
     ユーザがフィルターを無効にできる:チェックOFF
    ・表示タブの上部にある「このフィールドの最近使用したアイテムを無効にする」をチェックON
    ・保存し公開

    参考サイト
    ttps://ippu-biz.com/development/powerplatform/powerapps/mda/link-dropdown-mda/

【Power Apps】権限の考え方

  • 環境
    PowerAppsの右上の環境のDefaultは誰でも触れる環境のため、
    一般公開したくないテーブルやアプリなどは
    別の環境で作成するような構成にすると良さそう。

    参考サイト
    ttps://memo.tyoshida.me/power-platform/powerapps/power-apps-power-automate-governance-administration-2-secure-tenant/

  • テーブル
    テーブル権限は一般者用のセキュリティロールや承認者用のセキュリティロールに対して、
    参照権限や登録権限などを適宜つけておく。
    PowerAppsアプリの一覧画面でFilter関数、Lookup関数、Search関数などを使って
    ・所有者が自分のレコードを抽出させる
    ・承認者が自分のレコードを抽出させる
    などで閲覧制御する。
  • アプリ
    アプリを公開し、共有したいユーザやグループに対して共有する。
    その後、ソリューションのアプリをクリックし、詳細タブで
    アプリのWebサイトのパスを利用者へ展開すると、ブラウザでアプリが利用できる。

IT単語覚書3

  • インターネットとは
    PCのローカルネットワーク(大学など)を拠点で結んだ巨大なネットワークのこと。
    そのうちプロバイダができ、さらに統合先ができた。
    新しいプロバイダは統合先に繋ぐことで他とも繋がれる仕組みになっている。
  • TCP-IPとは
    TCP-IPはプロトコル。会話の手法。英語と日本語とか。
    RFCによってすべての規則が決められている。
    TCP-IPモデルは4層モデルとなっている。
    1.ネットワークインターフェース層
    2.インターネット層
    3.トランスポート層
    4.アプリケーション層

    TCP-IPモデルとOSI参照モデルとの対比は以下の通り。
    1.物理層
    2.データリンク層
    →TCP-IPの1.ネットワークインターフェース層
    3.ネットワーク層
    →TCP-IPの2.インターネット層
    4.トランスポート層
    →TCP-IPの3.トランスポート層
    5.セッション層
    6.プレゼンテーション層
    7.アプリケーション層
    →TCP-IPの4.アプリケーション層

IT単語覚書2

  • DXとは
    デジタル化をしてビジネスに手を加えて儲ける仕組みをつくること。
    IT化したことで発生したデータをさらに活用しビジネスを生み出すこと。
    ・アナログ業務をデジタル化:デジタイゼーション(これは昔のIT化)
    ・データをクラウドにあげる。:デジタライゼーション
    ・データを活用し新しいビジネス:デジタルフォーメーション(DX)
    と定義しているが、ひっくるめてDXと定義してもよい。

    従来のシステム
    ・機能ファースト:機能を活用して効率化
    DX志向のシステム
    ・データファースト:データを活用して効率化

    データとビジネスのやりとりのことをUXという。
    そしてそれを続けるとDXになる。
    DX=データ x UX x ビジネス
    DXはデジタル化、IT化で終わらないようにする点が異なる。
    DXはシステム開発ではなく、ビジネス開発のことと言える。

    ・・・ぶっちゃけ今のデジタル化、IT化の範囲でも同じようにやっている。
    IT化、デジタル化との違いはほぼない。
    IT業界は異なる言葉で定義したがる傾向がある。

  • DXのXとは
    デジタルトランスフォーメーション
    海外では、トランスフォーメーションのことを「X」とよぶ。

【WordPress】WordPressテーマ変更

WordPressを入れ直したので、外観-テーマをTwenty Seventeenに変更しました。
それに伴い、デザインをカスタマイズしています。

  • アーカイブを変更
    トップページが全文表示から抜粋表示に変更となります。
    archive.php

    get_template_part( 'template-parts/post/content', get_post_format() );
    ↓
    get_template_part( 'template-parts/post/content', 'excerpt' );
    
  • 「投稿」文字を削除
    記事の上にある「投稿」の文字を削除します。
    index.php

    以下を削除
    <header class="page-header">
      <h2 class="page-title"><?php _e( 'Posts', 'twentyseventeen' ); ?></h2>
    </header>
    
  • 「カテゴリ」文字を削除
    記事の上にある「カテゴリ」の文字を削除します。
    archive.php

    以下を削除
    <?php if ( have_posts() ) : ?>
      <header class="page-header">
        <?php
          the_archive_title( '<h1 class="page-title">', '</h1>' );
          the_archive_description( '<div class="taxonomy-description">', '</div>' );
         ?>
      </header><!-- .page-header -->
    <?php endif; ?>
    
  • パンくずリストの追加(未実施)
    fanction.php

    以下を一番下に追加
    function breadcrumb(){
      global $post;$str ='';
      if(!is_home()&&!is_admin()){
        $str.= '<div id="breadcrumb" class="cf"><div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;">';
        $str.= '<a href="'. home_url() .'" itemprop="url"><span itemprop="title">ホーム</span></a> &gt;&#160;</div>';
        if(is_category()) {
          $cat = get_queried_object();
          if($cat -> parent != 0){
            $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
            foreach($ancestors as $ancestor){
              $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($ancestor) .'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor) .'</span></a> &gt;&#160;</div>';
              }
            }
           $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a> &gt;&#160;</div>';
        }elseif(is_page()){
          if($post -> post_parent != 0 ){
            $ancestors = array_reverse(get_post_ancestors( $post->ID ));
            foreach($ancestors as $ancestor){
              $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_permalink($ancestor).'" itemprop="url"><span itemprop="title">'. get_the_title($ancestor) .'</span></a> &gt;&#160;</div>';
            }
          }
        }elseif(is_single()){
          $categories = get_the_category($post->ID);
          $cat = $categories[0];
          if($cat -> parent != 0){
            $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
            foreach($ancestors as $ancestor){
              $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($ancestor).'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor). '</span></a>→</div>';
            }
          }
          $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a> &gt;&#160;</div>';
        }else{
          $str.='<div>'. wp_title('', false) .'</div>';
        }
        $str.='</div>';
      }
      echo $str;
    }
    
    以下をパンくずリストを表示したいphp(page.phpやsingle.phpなど)に追加
    <?php breadcrumb(); ?>
    

【サクラエディタ】正規表現でキャメルケースとスネークケースの変換

文字形式の説明。

  • キャメルケース
    単語の先頭を大文字にする命名規則。
    全ての単語の先頭を大文字にするのがアッパーキャメルケース、または、パスカルケースと呼ばれる。
    JavaのBeanでset/getを除外した名称で使用されることが多い。
    例)CamelCase

    先頭の単語だけ小文字にするのがローワーキャメルケースと呼ばれる。
    JavaやJavaScriptのメソッド名で使用されることが多い。
    例)camelCase

  • スネークケース
    単語の間をアンダーバーでつなぐ命名規則。
    DBの値に使用されることが多い。
    例)snake_case、SNAKE_CASE
  • アッパーキャメルケースからスネークケースに変換
    ・検索条件:”([A-Z])”
    ・置換:”_\L$1″
    サクラエディタで大文字、小文字を区別して検索チェックする。
    変換後に先頭の「_」は後から削除する。
    例)CamelCase → _camel_case
  • スネークケースをアッパーキャメルケースに変換
    ・検索条件:”(_|^)(.)”
    ・置換:”\u$2″
    サクラエディタで大文字、小文字を区別して検索チェックする。
    先頭またはアンダースコアに続く1文字を置換対象にする。
    対象となる文字は$2で参照できるので、これを\uで大文字に変換する。
    例)camel_case → CamelCase