ExecuteSQLと検索

1 minuteReading Time

ExecuteSQL

条件に一致するレコードの件数を返すSQL

ExecuteSQL ( "SELECT COUNT (\"_kp_スタッフID\")
FROM \"スタッフ管理\"
WHERE \"_kf_支店\" = ? AND \"契約形態\" = ? AND \"ステータス\" = ? " 
;""; ""; $支店ID; "社員"; "在籍中" )

注意事項
「FROM \”スタッフ管理\”」のスタッフ管理はテーブル名ではなく、オカレンス名を仕様しなければならない。

「$支店ID」は事前に変数に値を入れることで利用可能

条件に一致する値を取得(SELECT文)

ExecuteSQL ( "SELECT \"フィールド名\"
FROM \"テーブル(オカレンス名)"
WHERE \"フィールド名\" = ?"
;"";""; "条件" )

条件に一致する値を集計(SELECT SUM)

ある一定金額($集計基準金額)以上で、返品フラグ(f_返品)に値が入っていないものを期間で集計するクエリです。

ExecuteSQL ( "SELECT SUM (\"数量\")
FROM \"T仕入明細\"
WHERE \"_kf_仕入先ID\" = ? AND \"f_返品\" IS NULL AND \"仕入単価\" >= ? AND \"仕入日\" BETWEEN ? AND ?"
; ""; "" ; $仕入先ID; $集計基準金額; $from; $to)

 

条件に一致する値をグループごとに集計(SELECT SUM…GROUP BY)

あるフィールドを使ってグループごとにまとめて(GROUP BY)一定金額($集計基準金額)以上で、返品フラグ(f_返品)に値が入っていないものを特定の年月で集計するクエリです。

ExecuteSQL ( "SELECT \"_kf_仕入先ID\", SUM(\"仕入数量\")
FROM \"T仕入明細\"
WHERE \"f_返品\" IS NULL AND \"仕入単価\" >= ? AND \"c_仕入年\" = ? AND \"c_仕入月\" = ?
GROUP BY \"_kf_仕入先ID\" "
; ""; "" ; $集計仕入金額; $集計年; $集計月)

仕入先IDと、仕入先IDごとに仕入数量を集計した値が配列で帰ります。

上記配列の変数($結果array)を1件ずつ取得するスクリプト

#データの件数を取得し変数へ
変数を設定[$データ件数; 値: ValueCount ( $結果array )]
#カウンターを初期化
変数を設定[$カウンター; 値: 1 ]
Loop
  Exit Loop If [$カウンター > $データ件数]

  #カウンターの行数のデータを取得し、カンマ(,)を改行コードに変換して変数へ
  変数を設定[$現在の行; 値: Substitute( GetValue ( $結果array ; $カウンター ) ; "," ; "改行コード" )]

  #配列の1つ目のデータ(仕入先ID)を取得し変数へ
  変数を設定[$仕入先ID; 値: GetValue ( $現在の行 ; 1 )]

  #配列の2つ目のデータ( SUM(\"仕入数量\")集計された仕入数量)を取得しフィールドへ
  フィールド設定 [集計仕入数; GetValue ( $現在の行 ; 2 )]

  #その他処理
  変数を設定[$カウンター; 値: $カウンター + 1 ]
End Loop

検索

フィールドをまたいだ「or」検索

複数のフィールドに対して共通の検索キーワードで検索する。

グローバルフィールド「g_検索ワード」を作成し、画面に配置。そのオブジェクトにスクリプトトリガを設定して検索スクリプトを実行する。

変数を設定 [$検索ワード; 値: "*" & テーブル名::g_検索ワード & "*"]
検索モードに切り替え[一時停止:オフ]
フィールド設定[対象テーブル::対象フィールド1; $検索ワード]
新規レコード・検索条件
フィールド設定[対象テーブル::対象フィールド2; $検索ワード]
エラー処理[オン]
検索実行[]


#結果からさらに絞り込む場合
検索モードに切り替え[一時停止:オフ]
フィールド設定[対象テーブル::対象フィールド; 検索ワード]
対象レコードの絞り込み[]
検索実行[]
エラー処理[オフ]

ポータルのフィルター

選択用にポータルを設置し、キーワードでIDと名前を検索して絞り込む。
キーワード入力したときにスクリプトで「ポータルの更新」を実行する。
If ( 
  IsEmpty ( Zユーティリティ::g_スタッフ検索 ) ; 1 ;
  PatternCount ( 
   List (
    勤怠入力_Mスタッフ|選択用::_kp_スタッフID ;
    勤怠入力_Mスタッフ|選択用::名前 ) ;
   Zユーティリティ::g_スタッフ検索 ) > 0
)

0
0
300
1 minuteReading Time

こんにちは。 グローバルリンクです。

KbxBotIcon