LoginSignup
7
4

More than 1 year has passed since last update.

【プリザンター】拡張SQL機能を使って自動連番を実装するよ!

Last updated at Posted at 2019-12-14

おはようございます!

今回の記事ではプリザンターの拡張SQL機能を使ってテーブルに連番を振っていこうと思います。

参考サイト

プリザンター システム機能:拡張SQL

プリザンター 拡張SQL書き方の例

Pleasanter ユーザーマニュアル-拡張SQL

自動連番のイメージ

現在、プリザンターのレコードは以下のように3つ存在しています。

レコードの一つを覗いてみると・・・

赤枠で囲まれている自動連番という項目がありますね。

作り方は「テーブルの管理」→エディタで作成できます。

(あまりイメージが湧かない方は公式ページを参照しましょう!)
Pleasanter ユーザーマニュアル テーブルの管理

こちらの番号がテーブル作成時に自動で振られていくというイメージになります。

拡張SQLの実装

それでは拡張SQLの実装をしていきます。

拡張SQLを書く上で大切なのはまず自動連番を実装したいテーブルのサイトIdとフォームの列名(データベースの列名)です。

まずはSQL Server Management Studioを開き、それぞれの列名を確認します。



今回連番を振りたいSiteIdは「62」、フォームの列名は「ClassA」ということが分かりますね!

連番を振るSQLは以下になります。

自動連番.sql
UPDATE Results SET ClassA = 
(SELECT MAX(ClassA) FROM Results WHERE SiteId = 62) + 1
WHERE ResultId = {{Id}};

※{{Id}}はレコードのIDに置換されます。

また、今回は記録テーブルで連番を実装するのでWhere句にResultIdを設定していますが、期限付きテーブルの際はIssueIdで設定を行ってください。

次に上記に掲載した「プリザンター 拡張SQL書き方の例」に倣ってjsonファイルを作成していきます。

自動連番.json
{
    "Description": "Sample",
    "SiteIdList": [62],
    "IdList": null,
    "OnCreating": false,
    "OnCreated": true,
    "OnUpdating": false,
    "OnUpdated": false,
    "OnDeleting": false,
    "OnDeleted": false,
    "OnBulkDeleting": false,
    "OnBulkDeleted": false,
    "OnImporting": false,
    "OnImported": false,
    "OnSelectingWhere": false,
    "CommandText": "UPDATE Results SET ClassA = (SELECT MAX(ClassA) FROM Results WHERE SiteId = 62) + 1 WHERE ResultId = {{Id}};"
}

"SiteId"は「62」に設定し、新しくテーブルを作成したときに連番を振りたいので"OnCreated"を「true」としています。

拡張SQLは"CommandText"欄にコピーしてください。

作成したjsonファイルは\pleasanter\App_Data\Parameters\ExtendedSqlsに置いてください。

それでは、新しくレコードを作ってみましょう!!

先ほどまでに3つのレコードを作っているので次に作られるレコードには「4」が振られればOKです!

無事に「4」が振られました!

おわりに

ということで、プリザンターの拡張SQL機能を使って自動連番を実装する方法を書きました!

拡張SQLは凄く便利な機能なのでぜひ利用してみてください!

ではでは!

7
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4