HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■14388 / 親記事)  比較式の書き方について
  
□投稿者/ fu -(2024/05/24(Fri) 13:15:47)
    比較式の書き方についてお尋ねします。

    文字列型[学籍番号]の項目があります(学籍番号の命名規則は上2桁が入学年度の下2桁です)
    例:24K001(2024年度入学・K所属・001番)

    これを今年度入学生で絞り込むため、下記の一括処理を書きましたが、
    「KU1090:コマンドの形式に誤りがあります」のエラーが返ってきます。

    ---
    検索条件登録 "",{[学籍番号]{[].文字2 = &今年度K生}
    絞り込み 条件名=""
    ---


    何が誤っているのかご教示いただけますと幸いです。
    なお、&今年度K生には2024Kの値が代入されています。
    また、今回は変数を使いましたが、それ以外で適切な方法がありましたら教えてください。

    ver.は桐sです



引用返信 [メール受信/ON] 削除キー/
■14389 / ResNo.1)  Re[1]: 比較式の書き方について
□投稿者/ MAKOTO -(2024/05/24(Fri) 19:32:46)
    fuさんこんにちは
    > 比較式の書き方についてお尋ねします。
    > 文字列型[学籍番号]の項目があります(学籍番号の命名規則
    > は上2桁が入学年度の下2桁です)
    > 例:24K001(2024年度入学・K所属・001番)
    > 検索条件登録 "",{[学籍番号]{[].文字2 = &今年度K生}
    > 絞り込み 条件名=""
    > なお、&今年度K生には2024Kの値が代入されています。
    項目名[学籍番号]には 24K001 と書いてあるのに
    変数宣言 固有,文字列{&今年度K生="2024K"}
    上の値を入力したら件数は1件も見当たりませんよ。
    &今年度K生=#SSTR(&今年度K生,3 )
    上のように変数の値を計算式で変更するか最初から二桁を設定してください。
    検索条件登録 "今年度",{[学籍番号]{[学籍番号] = &今年度K生*}}
    絞り込み 条件名="今年度"

    [].文字2 どこから「,」を探したのですかヘルプにも掲載してないですよ
    上の↑はヘルプのどこに記載してあるのですか?
    わからない言葉はヘルプや履歴などでコマンドを生成した方が確実です。

引用返信 [メール受信/OFF] 削除キー/
■14390 / ResNo.2)  Re[2]: 比較式の書き方について
□投稿者/ ONnoji -(2024/05/24(Fri) 20:01:08)
    2024/05/24(Fri) 20:01:55 編集(投稿者)

    今村さんでしょうか?

    横レスで失礼します。m(__)m

    > [].文字2 どこから「,」を探したのですかヘルプにも掲載してないですよ
    > 上の↑はヘルプのどこに記載してあるのですか?

    ここに書いてありますよ
        ↓
     【桐 - ヘルプから転載】行集計条件登録
      ■ノート
      桐ver8までは「行集計01」が標準の行集計条件でしたが、桐ver9からは「""」が標準の行集計条件です。
      <グループ化項目>の項目値の一部でグループ化する場合は、グループ化項目の直後につぎの文字をつけます(<n>、<m>は整数)。

      グループ化指定 説明
      .文字<n>    文字列の先頭から<n>文字までの、一致するものをグループ化します。
             「.文字<n>」は「.CH<n>」と記述してもかまいません。


引用返信 [メール受信/OFF] 削除キー/
■14391 / ResNo.3)  Re[3]: 比較式の書き方について
□投稿者/ MAKOTO -(2024/05/24(Fri) 20:32:35)
    ONnojiさん参考になります。
    行集計は使ったことのないコマンドでグループ化の設定文字列の
    指定に使っているのですね。
    >  【桐 - ヘルプから転載】行集計条件登録
    >   桐ver8までは「行集計01」が標準の行集計条件でしたが、
    > 桐ver9からは「""」が標準の行集計条件です。
    履歴をとると条件名が↑のように記述されますね。

    >   <グループ化項目>の項目値の一部でグループ化する場合は、
    > グループ化項目の直後につぎの文字をつけます(<n>、<m>は整数)。
    >   グループ化指定 説明
    >   .文字<n>    文字列の先頭から<n>文字までの、一致する
    > ものをグループ化します。
    >  「.文字<n>」は「.CH<n>」と記述してもかまいません。

    これ「.」は行集計の指定記号で検索条件登録ではグループ化できないようですよ。
    返信を頂いて非常に良い勉強になりました。


引用返信 [メール受信/OFF] 削除キー/
■14392 / ResNo.4)  Re[1]: 比較式の書き方について
□投稿者/ ONnoji -(2024/05/24(Fri) 21:28:34)
    2024/05/25(Sat) 16:13:10 編集(投稿者)
    2024/05/24(Fri) 23:38:34 編集(投稿者)

    &今年度K生 の内容は、"2024K" ですね。

    そして、[学籍番号]の内容は、"24K001" ですね。

    ところが、
     ...
     24K001
     ↑
    この部分の3文字が一致
     ↓
    2024K
     ^^^
           ...
    と言うふうに 24K の部分の3文字は一致しますが、それ以外の部分が一致しませんね。
           ^^^
    なので、一致するように

    #sstr( [学籍番号], 1, 3 ) → 24K
                   ↑
                  一致する
                   ↓
    #sstr( &今年度K生, 3, 3 ) → 24K

    と文字列を#sstr( )関数、または#部分列( )関数で調整します。※#sstr( )は、#部分列( )の別名です

    従って、

    条件登録しないで直接実行する場合には、
    ・・・・・・・・・・・・・・・・・・

     絞り込み [学籍番号]{ #sstr( [学籍番号], 1, 3 ) = #sstr( &今年度K生, 3, 3 ) }

    または、

    条件登録して条件名を指定して実行する場合には、
    ・・・・・・・・・・・・・・・・・・

     検索条件登録 "",{[学籍番号]{#sstr( [学籍番号], 1, 3 ) = #sstr( &今年度K生, 3, 3 )}}
     絞り込み 条件名=""

    ですね。

    p.s.

    おそらく履歴にあった[行集計条件登録]のコマンドをコピペしたのでしょうけれど、

    [行集計条件登録]のコマンドと[検索条件登録]では記述方法がよく似ていますが、すべて同じではありませんよ。

    よく確認しないで、タラレバでコピペするのは無茶ですよ。

引用返信 [メール受信/OFF] 削除キー/
■14394 / ResNo.5)  Re[2]: 比較式の書き方について
□投稿者/ fu -(2024/05/27(Mon) 10:03:43)
    No14389に返信(MAKOTOさんの記事)

    MAKOTOさんご返信ありがとうございます。

    まず、
    >>&今年度K生には2024Kの値が代入されています
    というのは私の間違いで正しくは24Kの値でした。
    そのうえで、教えていただいた記述で問題なく検索できました。

    > 検索条件登録 "今年度",{[学籍番号]{[学籍番号] = &今年度K生*}}
    > 絞り込み 条件名="今年度"

    変数には"で括らなくとも直接*を付けて検索ができるのですね。
    ありがとうございました。

    なお、グループ化については、絞り込み条件名で検索できました。そのため、履歴でコマンド化しましたがエラーとなったため、今回お尋ねの経緯となりました。



432×177 => 250×102

1716771823.png
/8KB
引用返信 [メール受信/OFF] 削除キー/
■14395 / ResNo.6)  Re[2]: 比較式の書き方について
□投稿者/ fu -(2024/05/27(Mon) 10:14:08)
    No14392に返信(ONnojiさんの記事)

    ONnojiさんご返信ありがとうございます。

    まず、
    >>&今年度K生には2024Kの値が代入されています
    というのは私の間違いで正しくは24Kの値でした。
    そのうえで、教えていただいた記述で問題なく検索できました。
    いつもご丁寧に教えてくださり感謝いたします。

    ※#sstr( &今年度K生, 3, 3 )は先の私の誤りにより、#sstr( &今年度K生, 1, 3 )に修正


    なお、グループ化については、会話型の絞り込み条件名で検索できました。そのため、履歴でコマンド化しましたがエラーとなったため、今回お尋ねの経緯となりました。

    会話型でできた処理も履歴でコマンド化してもできないことがあるのですね。
    大変勉強になりました。ありがとうございました。

432×177 => 250×102

1716772448.png
/8KB
引用返信 [メール受信/OFF] 削除キー/
■14396 / ResNo.7)  Re[3]: 比較式の書き方について
□投稿者/ ONnoji -(2024/05/27(Mon) 10:55:52)
    2024/05/27(Mon) 11:17:28 編集(投稿者)

    > まず、
    > >>&今年度K生には2024Kの値が代入されています
    > というのは私の間違いで正しくは24Kの値でした。
    > ※#sstr( &今年度K生, 3, 3 )は先の私の誤りにより、#sstr( &今年度K生, 1, 3 )に修正

    なるほどです。

    > なお、グループ化については、会話型の絞り込み条件名で検索できました。
    > そのため、履歴でコマンド化しましたがエラーとなったため、今回お尋ねの経緯となりました。

    ↑この点がボタンの掛け違いの原因になっていたんですね。

    まず、検索と絞り込みには、グループ化という考え方が最初から有りません。

    検索と絞り込みで使えるのは、比較式です。
    ・・・・・・・・・・・・・・・・・・・

    貴殿は行集計でクループ項目を指定する際に[項目名].文字nをよく使っていたのですね。

    しかし、行集計では当然の事でも、検索と絞り込みでは当然の事ではないのです。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    きっと何故?という疑問がわきますよね。

    つまり、直接操作の時にはエラーにならなくて、コマンドで実行する時にはエラーになったのかと????

    おそらくですが・・・

    行集計の登録画面と検索条件の登録画面はよく似ていますね。

    なので、桐のプログラムとしては共通の部分があるのだろうと想像できます。

    ということで、たまたま動く状態になっているということだと断定してよろしいと思いますよ。

    しかし、これは良性のバグなので、今は偶然使えていても、将来は使えなくなる可能性があります。

    なので、検索条件では、[項目名].文字nはお使いにならないことをおススメします。

    > 会話型でできた処理も履歴でコマンド化してもできないことがあるのですね。
    > 大変勉強になりました。ありがとうございました。

    もしやと思って桐sのヘルプも調べてみましたが、

    ヘルプのどこにも検索条件で[項目名].文字nが使えるとは書いてありませんでした。

    [項目名].文字nは、項目のグループ指定のオプションなのですから当然ですね。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・

    [桐 - ヘルプ]→ APPENDIX → 文字列の比較方法 も併せてお読みください。




引用返信 [メール受信/OFF] 削除キー/
■14397 / ResNo.8)  Re[4]: 比較式の書き方について
□投稿者/ fu -(2024/05/27(Mon) 11:58:38)
    No14396に返信(ONnojiさんの記事)
    ONnojiさんご返信ありがとうございます。


    なるほど、ダイアログボックスでできたのはそもそもが仕様外のバグだったのですね。それをコマンドにしても形式エラーがでるのは当然ですね。納得しました。

    検索条件の文字列比較式はなんとしても""で括らなければならないとの先入観があり、ずっと先頭文字列をグループ化したり、"24K"*の値になる式を考えておりました。

    &今年度K生だけでなく、[学籍番号]も部分列で文字列を調整すればいいのですね。
    改めて、柔軟な考え方を教えてくださりありがとうございました。
引用返信 [メール受信/OFF] 削除キー/
■14398 / ResNo.9)  Re[5]: 比較式の書き方について
□投稿者/ ONnoji -(2024/05/27(Mon) 12:31:26)
    2024/05/27(Mon) 12:32:08 編集(投稿者)

    > なるほど、ダイアログボックスでできたのはそもそもが仕様外のバグだったのですね。それをコマンドにしても形式エラーがでるのは当然ですね。納得しました。

    [文字列型項目名].文字3 というのは、#sstr( [文字列型項目名], 1, 3 ) と意味は同じですね。

    しかし、グループ指定のオプションなのですから、検索条件では使えないのです。

    当方もなんでそんなことを??と思っていましたが、経緯が分って納得しました。

    なお、手前味噌ながら、以下のページに絞り込みのプログラミング例を掲載していますのでご参考になればと思います。

    こちら
     ↓
    桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    21   レコードの絞り込み
    http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section21

    p.s.

    > ■解決しましたら最下段にチェックを入れてください

    すでに解決された場合には、解決済みのチェックを入れて投稿してください。

引用返信 [メール受信/OFF] 削除キー/

次のレス10件>

スレッド内ページ移動 / << 0 | 1 | 2 >>

このスレッドに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -