【用語】ゼロパディング、ゼロサプレスとは【考え方】

業務プログラムを開発していると「ゼロパディング」「ゼロサプレス」なんて言葉をたまに使います。

ゼロパディングとは

ゼロパディングの「パディング」とは、文字数調整になります。

例えば、7桁の前方ゼロパディングといった場合「150」を表現すると「0000150」の文字列となります。

桁そろえの意味は「パディング」という言葉で表現され、「ゼロ」は桁を揃える文字に該当します。

ゼロパディングといった場合「ゼロ(数字の0)」で文字数を揃えると言うことになります。亜種としては空白パディングなどもあります。これは「空白」で文字数を揃えると言うことになります。

パディングの必要性は過去のシステム構成から来ていると個人的に思います。過去のシステムではデータを固定長で扱うことがあったため各データの文字数を設計により定義して、情報としては各データを連続した塊として表現していたからだと思いいます。

ゼロサプレスとは

ゼロサプレスの「サプレス」は切り詰めに該当すると思います。上記ゼロパディングした「0000150」をゼロサプレスするという場合「150」になります。

データ管理上は固定長で扱うが、システムを扱うユーザーにはわかりやすい数値で見せたいと思う場合に利用します。

サプレスにも「ゼロ」だけではなく空白サプレスをする場合もあります。この場合は今のプログラミング言語(C#やJavaやPHPなど)では「trim」で実現できるかと思います。

 

【Visual Studio】フォルダーの追加方法【WPF】

機能や役割などグループ分けしておいた方がよい場合があります。その場合ファイルを管理する間隔でプロジェクト上にフォルダーを追加する方法があります。

フォルダーの追加

エンティティをまとめておく「Entity」フォルダーを追加してみます。

エンティティについて

ソリューションエクスプローラーでプロジェクト名で右クリックし、「追加」→新しいフォルダーを選択します。

ソリューションエクスプローラーに「NewForlder1」が追加されるので名前を変更します。

「Entity」にフォルダー名を変更しました。

 

Visual Studioでフォルダーを追加すると「Name Space」が定義されます。フォルダー内にクラスを追加するとフォルダー階層が「Name Space」として適用されるためクラス名が重複することを意識する必要がなくなります。

【開発】エンティティオブジェクトの利用【考え方】

今回は、エンティティオブジェクトを利用するということについて書いてみます。

エンティティオブジェクトとは

エンティティオブジェクトはデータの塊を表現するオブジェクト定義です。

Javaではbeanと言われたりします。言語、フレームワークなどの環境で呼ばれ方はいろいろありますが構造はほぼ同じだと思います。

データの塊とは例えばデータベースを利用した場合、テーブルのカラム構成をそのままオブジェクトにした状態となります。

テーブルでの説明

以下のようなユーザーテーブルがあった場合に、エンティティオブジェクトで表現すると。

テーブル定義

No. カラム名(論理名) 備考
1 USER_ID(ユーザー番号) NUMERIC(数値) ユーザーの管理番号
2 USER_NAME(氏名) VARCHAR(文字列) ユーザーの名称
3 STATUS(登録状況) NUMERIC(数値) 0:仮登録、1:本登録
4 UPDATE_DATE(更新日) DATETIME(日時)
5 REGIST_DATE(登録日) DATETIME(日時)

エンティティオブジェクト

No. フィールド名 備考
1 userId int ユーザーの管理番号
2 userName string ユーザーの名称
3 status int 0:仮登録、1:本登録
4 updateDate DateTime
5 registDate DateTime

 


/**
 * ユーザー情報
 */
public class User {
    /**
     * ユーザ番号
     */
    int userId;

    /**
     * ユーザ氏名
     */
    string userName;

    /**
     * 登録状況
     */
    int status;

    /**
     * 更新日時
     */
    DateTime updateDate;

    /**
     * 登録日時
     */
    DateTime registDate;
}

プログラムコードから操作する場合、オブジェクトとしてデータを扱えるとわかりやすいと個人的には思います。
このエンティティオブジェクトを配列にすることでテーブル情報をそのまま扱うことも可能となります。

WEBアプリケーションでの説明

WEBアプリケーションだと、submitを行うとformタグ内のinputタグ、selectタグなどの情報をまとめてWEBサーバーへ送信する仕組みになります。これも、エンティティオブジェクトで取得できるようにするフレームワークがあります。※フレームワークについては、フレームワーク毎のお作法がいろいろと違うため本記事では詳細は割愛させていただきます。

HTML


<html>
<head>
</head>
<body>
  <form>
    <input name="userId" type="hidden" value="2" />
    <input name="userName" type="text" value="涼風青葉" />
    <select name="status">
      <option value="0">仮登録</option>
      <option value="1">本登録</option>
    </select>
    <input type="submit" value="送信" />
  </form>
</body>
</html>

エンティティオブジェクト


/**
 * ユーザー情報
 */
public class User {
    /**
     * ユーザ番号
     */
    int userId;

    /**
     * ユーザ氏名
     */
    string userName;

    /**
     * 登録状況
     */
    int status;
}

フレームワークの仕様にもよりますが、inputタグ、selectタグの名称とエンティティオブジェクトのフィールド名が一致する定義をすることでWEB画面から送信されたデータをエンティティオブジェクトとして受け取ることを実現してくれます。
このような、データベースの情報や画面の入力データなどをプログラムで扱いやすくするオブジェクトをエンティティオブジェクトと理解してます。

【Visual Studio】開発画面構成の覚え書き【WPF】

開発画面の構成についてわかっている範囲で説明します。

※説明に使用している言葉については、いろいろなサイトから流用してはいるのですが自分自身が正式な名称を知らないため間違いがある可能性がありますのでご了承ください。

画面の配置

  1. 編集画面:GUIの操作でコンポーネントの配置などを行うことができます。
  2. ソリューションエクスプローラ:開発に必要なファイルをツリー構造で表示・選択することができます。
  3. XAML(WPFの画面定義):WPFは画面定義をXML形式で管理しております。このXMLを編集する画面になります。(編集画面、プロパティで操作した結果も反映されます。)
  4. プロパティ:編集画面で選択しているコンポーネントの設定を表示・変更できます。

ツールボックス

左側の「ツールボックス」タブをクリックすることでツールボックスが表示されます。

ツールボックスから配置するコンポーネントをドラッグアンドドロップで編集画面へ配置します。

下記画像は「ボタン」をドラッグアンドドロップした状態です。

編集画面とXAMLに反映されます。

 

【Visual Studio】新規プロジェクト作成【WPF】

会社に新入社員が入社してツールの使い方の説明も必要だなと思い、Visual StudioのWPFプロジェクトを作成するまでを書きます。

ダウンロード

まずは、MicrosoftのページからVisual Studioをダウンロードします。

※Microsoft Edgeで実行した画面キャプチャーになります。

https://www.visualstudio.com/ja/downloads/

「保存」を選択します。

ダウンロードを実行した時点でのバージョンは下記の通りでした。

vs_community__481173091.1523791801.exe

インストール

ダウンロードしたファイルを実行します。

起動した画面で「続行」ボタンを押下します。

以下の画面が表示されるので終了するまで待ちます。

以下の画面が表示されたら「インストール」ボタンを押下します。

ワークロードの「.NET デスクトップ開発」を選択し、「場所」にインストール先のフォルダーを指定して、「インストール」ボタンを押下します。

※デフォルトでは「C:\Program Files (x86)\Microsoft Visual Studio\2017\Community」となっているため、特に問題がなければそのままで構いません。

※確認環境ではCドライブにSSDを利用しているため容量の関係でEドライブのHDDへ場所を変更しました。

※WPFプロジェクト作成を行うため「.NET デスクトップ開発」を選択しました。

インストール中は以下の画面が表示されますので終了するまで待ちます。

インストールが完了すると以下の画面が表示されます。

WPFプロジェクト作成

「ファイル」→「新規作成」→「プロジェクト」を選択します。

「WPFプロジェクト」を選択し以下の項目を入力してから「OK」ボタンを押下します。

  • 名前:プログラムの名称になります。
  • 場所:プロジェクトファイルの保存先になります。
  • フレームワーク:.NET frameworkのバージョンを指定します。(通常はデフォルトで問題ございませんが、理由により.NET frameworkのバージョンを変更できない端末で実行する場合に変更します。)
  • ソリューション(※)のディレクトリ作成:チェックしておくとソリューション名のフォルダーが作成されます。

※ソリューションは、複数のプロジェクト(メインプログラム、共通DLL、インストーラーなど)に分けて開発を行う場合にまとめて管理ができるので便利です。

以下の通りWPFプロジェクトが作成されました。