このエントリーを含むはてなブックマークはてなブックマーク - Serial Field(CCK module) 応用編 意味あり自動採番 この記事をクリップ!Livedoorクリップ - Serial Field(CCK module) 応用編 意味あり自動採番 Yahoo!ブックマークに登録 @niftyクリップに追加 FC2ブックマークへ追加 このエントリをつぶやくこのWebページのtweets Googleブックマークに追加 Bookmark this on Delicious Digg This BuzzurlにブックマークBuzzurlにブックマーク Share on Tumblr newsing it! この記事をChoix! FriendFeedで共有

前回に引き続いて、Serial Fieldを使った自動採番です。

前回の自動採番は、単純なインクリメント型(1から1ずつ加算していく方法)でした。しかし、実際の業務システムでは、最初の2桁が事業部コードで、次の2桁が部門コードで、その後はシリアル番号、といった意味ありコードを使うことが多いですね。

そこで、今回は、Seial FieldとComputed Fieldを組み合わせて、Serial Fieldで採番した番号に、さらにComputed Fieldで違うコードを付け足して、意味ありコードを実現する方法のご紹介です。

設定方法

1.ベースとなる連番フィールドをSerial Fieldで設定します。
 設定方法は、前回記事「Serial Field(CCK module) で自動採番」を参照。

2.次に、意味ありコードのために、Computed Fieldを設定します。
 設定方法は、以前の記事「Computed Field(CCK module)概要編」を参照。

3.Computed Fieldのコード記述

Computed Code記述例
ここでは、jigyou_codeテーブルから事業コードを変数$jigyouに格納するまでは省略します。
また、1のシリアル番号フィールドは、「serial_no」で定義しているとします。

$serial_no = $node->field_serial_no[0]['value'];
$node_field[0]['value'] = sprintf('%02d', $jigyou) ."-" .sprintf('%08d', $serial_no);

これで、事業コード2桁-シリアル番号8桁の自動採番が実現できますね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL

最新の記事一覧

  • サイト内検索

ページ上部に