(現在 過去ログ87 を表示中)

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

[ 最新記事及び返信フォームをトピックトップへ ]

■12919 / inTopicNo.1)  条件選択の式で2個の条件を書き込むには。
  
□投稿者/ ロジック -(2021/04/23(Fri) 18:26:09)
    2021/04/23(Fri) 18:43:52 編集(投稿者)
    2021/04/23(Fri) 18:42:52 編集(投稿者)

    初めて投稿します桐初心者です。

    使用しているのは Win7で桐Ver9になります。

    表の中の項目に項目計算式を書いていますが、うまくいきません。

    項目4の条件選択式で 

       項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時

       項目3の値を入れる。そうでない時は項目2の値を入れる。

     このような条件の式を書きたいのですが書き方が分かりません。

     どなたか教えていただけないでしょうか?

     よろしくお願いします。            
        
引用返信 [メール受信/OFF] 削除キー/
■12920 / inTopicNo.2)  Re[1]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ まさやん -(2021/04/23(Fri) 19:44:46)
    2021/04/23(Fri) 19:46:32 編集(投稿者)

    > 項目4の条件選択式で 
    >
    >    項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時
    >
    >    項目3の値を入れる。そうでない時は項目2の値を入れる。
    >

    #条件選択([項目1]=#直前値([項目1],"") .and #直前値([項目2],"")="",[項目3],1,[項目2])

    ではどうですか?

    違ってたらごめんなさい。
引用返信 [メール受信/OFF] 削除キー/
■12921 / inTopicNo.3)  Re[1]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ONnoji -(2021/04/23(Fri) 20:32:21)
    > 項目4の条件選択式で 
    > 項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時
    > 項目3の値を入れる。そうでない時は項目2の値を入れる。

    [項目1][項目2][項目3][項目4]があるとのことですが、それぞれのデータ型は何でしょうか???

    文字列型とそれ以外のデータ型の場合には、扱い方が異なりますので明確にしておいた方がいいですよ。

    >一個前の行が空白の時

    「空白」と表現する場合には、

    A 値が入力されていない  ※困ったことに、PCに慣れていない人は、これを空白と表現してしまうことが多いのです。(^^ゞ
    B 本当に空白文字が1文字入力されている

    の2つの意味に取れるので曖昧です。

    A.ですか?、それともB.でしょうか??

    以上、老婆心ながら書いてしまいました。


引用返信 [メール受信/OFF] 削除キー/
■12922 / inTopicNo.4)  Re[2]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ロジック -(2021/04/23(Fri) 20:52:53)
    2021/04/23(Fri) 21:17:03 編集(投稿者)

    No12921に返信(ONnojiさんの記事)
    >>項目4の条件選択式で 
    >>項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時
    >>項目3の値を入れる。そうでない時は項目2の値を入れる。
    >
    > [項目1][項目2][項目3][項目4]があるとのことですが、それぞれのデータ型は何でしょうか???
    >
    > 文字列型とそれ以外のデータ型の場合には、扱い方が異なりますので明確にしておいた方がいいですよ。
    >
    > >一個前の行が空白の時
    >
    > 「空白」と表現する場合には、
    >
    > A 値が入力されていない  ※困ったことに、PCに慣れていない人は、これを空白と表現してしまうことが多いのです。(^^ゞ
    > B 本当に空白文字が1文字入力されている
    >
    > の2つの意味に取れるので曖昧です。
    >
    > A.ですか?、それともB.でしょうか??
    >
    > 以上、老婆心ながら書いてしまいました。
    >
    > ONnoji様
     
     ありがとうございます。
     
     お問い合わせのところですが、Aの方になります。
     
     値が入力されていない状態です。

     あと、データ形式ですが、整数にしています。
     
     入力は数字を入れるので整数を選んでいますが、合っているかわかりません。

     よろしくお願いいたします。

     
引用返信 [メール受信/OFF] 削除キー/
■12923 / inTopicNo.5)  Re[3]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ロジック -(2021/04/23(Fri) 21:15:55)
    No12922に返信(ロジックさんの記事)
    > ■No12921に返信(ONnojiさんの記事)
    > >>項目4の条件選択式で 
    > >>項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時
    > >>項目3の値を入れる。そうでない時は項目2の値を入れる。
    >>
    >>[項目1][項目2][項目3][項目4]があるとのことですが、それぞれのデータ型は何でしょうか???
    >>
    >>文字列型とそれ以外のデータ型の場合には、扱い方が異なりますので明確にしておいた方がいいですよ。
    >>
    >>>一個前の行が空白の時
    >>
    >>「空白」と表現する場合には、
    >>
    >>A 値が入力されていない  ※困ったことに、PCに慣れていない人は、これを空白と表現してしまうことが多いのです。(^^ゞ
    >>B 本当に空白文字が1文字入力されている
    >>
    >>の2つの意味に取れるので曖昧です。
    >>
    >>A.ですか?、それともB.でしょうか??
    >>
    >>以上、老婆心ながら書いてしまいました。
    >>
    >>ONnoji様
    >  
    >  ありがとうございます。
    >  
    >  お問い合わせのところですが、Aの方になります。
    >  
    >  値が入力されていない状態です。
    >
    >  あと、データ形式ですが、数値にしています。
    >  
    >  入力は数字を入れるので数値を選んでいますが、合っているかわかりません。
    >
    >  よろしくお願いいたします。
    >
    >  
引用返信 [メール受信/OFF] 削除キー/
■12924 / inTopicNo.6)  Re[3]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ まさやん -(2021/04/23(Fri) 21:35:56)
    2021/04/23(Fri) 21:43:24 編集(投稿者)
    2021/04/23(Fri) 21:40:10 編集(投稿者)

    >  あと、データ形式ですが、整数にしています。
    >  
    >  入力は数字を入れるので整数を選んでいますが、合っているかわかりません。

    そうですね 先ほどのは 文字列の場合でした。

    数値型や 整数型の場合

    #条件選択([項目1]=#直前値([項目1],0) .and #直前値([項目2],0)=0,[項目3],1,[項目2])

    #未定義値 の場合 0を返す の条件の場合です。
473×300 => 250×158

1619182628.png
/7KB
引用返信 [メール受信/OFF] 削除キー/
■12925 / inTopicNo.7)  Re[4]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ロジック -(2021/04/23(Fri) 22:24:04)
    No12924に返信(まさやんさんの記事)
    > 2021/04/23(Fri) 21:43:24 編集(投稿者)
    > 2021/04/23(Fri) 21:40:10 編集(投稿者)
    >
    >> あと、データ形式ですが、整数にしています。
    >> 
    >> 入力は数字を入れるので整数を選んでいますが、合っているかわかりません。
    >
    > そうですね 先ほどのは 文字列の場合でした。
    >
    > 数値型や 整数型の場合
    >
    > #条件選択([項目1]=#直前値([項目1],0) .and #直前値([項目2],0)=0,[項目3],1,[項目2])
    >
    > #未定義値 の場合 0を返す の条件の場合です。


    まさやん様

     ありがとうございます。

     教えていただいた式を入れてみましたが思ったようになりませんでした。

     細かくお伝えすると

     項目  番号  ロット ロット1  ロット2  ロット3  ロット4
         1    111  111
         1    222  111     222
         1    333  111     222    333
         1    444  111     222    333     444

      上記のように 番号が同じが物のロットNoをロット1からロット4まで順番に
      入れていきたいのです。
      最終4行目のレコードを印刷に使用します。

     説明が下手で済みませんが、うまくいく方法がありますでしょうか?

     よろしくお願いいたします。
     
     
引用返信 [メール受信/OFF] 削除キー/
■12926 / inTopicNo.8)  Re[2]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ONnoji -(2021/04/23(Fri) 22:44:14)
    2021/04/23(Fri) 23:00:46 編集(投稿者)

    > 項目4の条件選択式で 
    > 項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時項目3の値を入れる。
    > そうでない時は項目2の値を入れる。

    整数(数値系)の項目の場合、表の[未定義項目値処理]の影響を受けます。

    以下にヘルプから引用します。
     ↓
    [未定義項目値処理]
    計算式から項目を扱うとき、未定義の項目値をゼロとして計算するか、未定義として計算するかを指定します。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    未定義の項目を未定義として計算した場合、計算結果は未定義になります。
    集計関数では、この属性に関係なく、未定義値のデータを集計対象として扱いません。たとえば、#件数には含まれません。
    検索と絞り込み、グループ選択時は、未定義値をつねに未定義として扱います。

    ↑と、このように未定義の項目値をゼロとして計算するか、未定義として計算するかという厄介な問題が付きまといます。

    そこで、[項目2] = #u という条件式は、未定義の項目値をゼロとして計算する場合には使えません。

    なぜならば、[項目2]が空欄の場合には、未定義の項目値をゼロとして計算するからです。

    そこで、#横合計( [項目2], [項目2] ) という関数を使います。

    この関数を使えば、未定義の項目値をゼロとして計算していても、ゼロと未定義の区別が出来ます。

    なお、#直前値では #横合計( [項目2], [項目2] ) が指定できないので、[判定結果]という補助項目を追加します。

    説明すると長くなるので、添付ファイルと以下の情報を参考にしてください。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

     添付ファイル:項目計算式のテスト.tbl

     項目番号     項目名 データ型    項目計算式
     1    項目1  整数
     2    項目2  整数
     3    判定結果 文字列 #cond( #横合計( [項目2], [項目2] ) = 0, "ゼロ", 1, "未定義" )
     4    項目3  整数
     5    項目4  整数  #cond( #直前値( [項目1], 32767 ) = [項目1] .and #直前値( [判定結果], "" ) = "未定義", [項目3], 1, #横合計( [項目2], [項目2] ) )

     以下はテスト用の項目
     6    E                整数
     7    直前行の項目1と同じ値の時   文字列 #cond( #直前値( [項目1], 32767 ) = [項目1], "Yes" )
     8    直前行の項目2の値が空欄の時  文字列 #cond( #直前値( [判定結果], "" ) = "未定義", "Yes" )
     9    条件式1 .and 条件式2     文字列 #cond( #直前値( [項目1], 32767 ) = [項目1] .and #直前値( [判定結果], "" ) = "未定義", "Yes", 1, "No" )



    なお、論理演算子の使い方は、以下の拙作HPを参照してください。
    こちら
     ↓
    30 論理と条件式|フォームアプリケーション教書 第2部
    http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section30

    p.s.

    ちなみに質問掲示板の過去ログも参考になりますよ。今までにこの種の質問はいっぱ〜〜いありますから。

    p.p.s.

    余談ながら…

    #条件選択 の別名:#cond というキーワードは、コンピュータ言語の Lisp から拝借しているようです。

    #計算 の別名:#PROGN も同様のようですよ。

    その昔、K3でPC用の Lisp を開発していたのでこのような関数が作られただろうと推察します。




引用返信 [メール受信/OFF] 削除キー/
■12927 / inTopicNo.9)  Re[5]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ まさやん -(2021/04/23(Fri) 22:54:25)
    2021/04/24(Sat) 08:28:12 編集(投稿者)
    2021/04/24(Sat) 00:09:10 編集(投稿者)
    2021/04/23(Fri) 23:42:08 編集(投稿者)
    2021/04/23(Fri) 23:39:04 編集(投稿者)
    2021/04/23(Fri) 23:38:13 編集(投稿者)
    2021/04/23(Fri) 23:23:38 編集(投稿者)
    2021/04/23(Fri) 23:15:35 編集(投稿者)
    2021/04/23(Fri) 23:14:12 編集(投稿者)

    >  項目  番号  ロット ロット1  ロット2  ロット3  ロット4
    >      1    111  111
    >      1    222  111     222
    >      1    333  111     222    333
    >      1    444  111     222    333     444
    >
    >   上記のように 番号が同じが物のロットNoをロット1からロット4まで順番に
    >   入れていきたいのです。
    >   最終4行目のレコードを印刷に使用します。

    これは また 意味合いが違ってくるのでは?

    冒頭の質問の意味と違うのでは?
    そうなると すみません判りません。

    この場合
    どれが 項目1で どれが 項目2で どれが 項目3で どれが 項目4か
    つまり どれが基準項目で 目的の項目がどれでしょうか。

    最初の質問は 未定義行 があった場合  という 条件でした。
    上の表を見ると 未定義行 のあるところにも ロット1 ロット2 ロット3 ロット4 にそれぞれの結果を代入する目的では?
    私の解釈が違うのかもしれませんが。


    >   最終4行目のレコードを印刷に使用します。

    別な 考え方かもしれませんよ。

    結果が
    同じ番号で [ロット] の項目の 単一化 のデータを 求める ということで
    [ロット] に どんな ロット名が あるか  一行づつ 表示したい ということでしょうか?

引用返信 [メール受信/OFF] 削除キー/
■12928 / inTopicNo.10)  Re[3]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ONnoji -(2021/04/23(Fri) 23:35:58)
    2021/04/23(Fri) 23:43:21 編集(投稿者)

    [判定結果]の項目計算式に誤りがありました。

    以下のように変更してください。

    × 3 判定結果 文字列 #cond( #横合計( [項目2], [項目2] ) = 0, "ゼロ", 1, "未定義" )

    ○ 3 判定結果 文字列 #cond( #横合計( [項目2], [項目2] ) = #u, "未定義" )

    p.s.

    添付ファイルあります。




引用返信 [メール受信/OFF] 削除キー/
■12929 / inTopicNo.11)  Re[4]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ ロジック -(2021/04/24(Sat) 00:23:35)
    No12928に返信(ONnojiさんの記事)
    > 2021/04/23(Fri) 23:43:21 編集(投稿者)
    >
    > [判定結果]の項目計算式に誤りがありました。
    >
    > 以下のように変更してください。
    >
    > × 3 判定結果 文字列 #cond( #横合計( [項目2], [項目2] ) = 0, "ゼロ", 1, "未定義" )
    >
    > ○ 3 判定結果 文字列 #cond( #横合計( [項目2], [項目2] ) = #u, "未定義" )
    >
    > p.s.
    >
    > 添付ファイルあります。
    >
    > ONnojiさん

     いろいろと詳しく書いていただきありがとうございます。

     いただいた内容をみてもう少し勉強してみます。
     
     丁寧な回答ありがとうございました。
    >
    >
引用返信 [メール受信/OFF] 削除キー/
■12930 / inTopicNo.12)  Re[6]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ まさやん -(2021/04/24(Sat) 07:31:27)
    2021/04/24(Sat) 08:48:55 編集(投稿者)
    2021/04/24(Sat) 07:37:35 編集(投稿者)
    2021/04/24(Sat) 07:34:05 編集(投稿者)



    > 項目  番号  ロット ロット1  ロット2  ロット3  ロット4 ロット5
    >     1    111  111
    >     1    222  111     222
    >     1    333  111     222    333
    >     1    444  111     222    333     444
          1    222  111     222    333     444
          1    444  111     222    333     444
          1    111  111     222    333     444
          1    333  111     222    333     444
          1    555  111     222    333     444    555
          2    333              333
          2    111  111           333

    >  最終4行目のレコードを印刷に使用します。

    推測すると

    番号 1を 絞り込んで 最終行を印刷します   かな?   


    ロジックさん
    もしかして データが4行以上ある場合このような感じ考えてよいのでしょうか?

    も少しデータを アップしてもらえるといいかもです。
    差支え無い程度の 内容で 表を アップしてもらえると
    皆さんからの いい考えがもらえると思います。

    もし このような場合は  多分 項目計算式に条件式を入れるよりは 他の方法を考えた方がよいかと思います。

    もし、ロットの異なる値が増えていった場合 ロット? という項目数が増えていく場合
       きりがないと思います。

    もし ロット数が 4種類の 4行 で終わりの場合(そんなことはないと思いますが)
    それぞれの項目に [ロット1]=#条件選択(#行番号=1,[ロット],1,"")
             [ロット2]=#条件選択(#行番号=2,[ロット],1,"")・・・・・・   この考え方は所詮無理なことですが。
             集計使って #最大([ロット1])  で項目ごとに表示する。

    もし 4行以上の時は  [ロット]の 絞り込み 単一化  で  [ロット] そのものを印刷する。

     表のみで行うよりは フォーム利用して 変数使ったイベント組めば ある程度ロジックさんの 思い通りになると思います。
     (勿論 表のみで出来る方法もあるかと思いますが)

    データの推測で書きました。
引用返信 [メール受信/OFF] 削除キー/
■12931 / inTopicNo.13)  Re[5]: 「縦のものを横に」かな?
□投稿者/ 悲しげ -(2021/04/24(Sat) 23:05:05)
    No12925に返信(ロジックさんの記事)
    まず初めに、引用は必要最小限にてお願いします。

    さて本件ツリートップのNo12919
    >項目4の条件選択式で 
    >   項目1の値が一個前の行と同じ時で、項目2は一個前の行が空白の時
    >   項目3の値を入れる。そうでない時は項目2の値を入れる。

    この記述は一旦すべて無視して(^^;)
    No12925より
    > 項目  番号  ロット ロット1  ロット2  ロット3  ロット4
    >     1    111  111
    >     1    222  111     222
    >     1    333  111     222    333
    >     1    444  111     222    333     444
    >  上記のように 番号が同じが物のロットNoをロット1からロット4まで順番に
    >  入れていきたいのです。
    >  最終4行目のレコードを印刷に使用します。

    について想像を逞しくするに、次のような風にしたいのではないんでしょうか?

    元データは
      種別番号 Lot
      1    111
      1    118
      1    122
      1    136
      2    210
      2    234
      2    298
      3    345
      3    390
      4    411
      4    418
      4    422
      4    436

    これを次のように
      種別番号 Lot1 Lot2 Lot3 Lot4
      1    111 118 122 136
      2    210 234 298
      3    345 390
      4    411 418 422 436

    もしそうだとすると、これはいわゆる「縦のものを横に展開」の問題となりまして
    やり方は色々ありますが・・・・。

引用返信 [メール受信/OFF] 削除キー/
■12933 / inTopicNo.14)  Re[1]: 「表の項目計算式では実現は困難」だろうと思います
□投稿者/ ONnoji -(2021/04/25(Sun) 11:21:51)
    2021/04/25(Sun) 14:20:15 編集(投稿者)

    > について想像を逞しくするに、次のような風にしたいのではないんでしょうか?
    >
    > 元データは
    >   種別番号 Lot
    >   1    111
    >   1    118
    >   1    122
    >   1    136
    >   2    210
    >   2    234
    >   2    298
    >   3    345
    >   3    390
    >   4    411
    >   4    418
    >   4    422
    >   4    436
    >
    > これを次のように
    >   種別番号 Lot1 Lot2 Lot3 Lot4
    >   1    111 118 122 136
    >   2    210 234 298
    >   3    345 390
    >   4    411 418 422 436
    >
    > もしそうだとすると、これはいわゆる「縦のものを横に展開」の問題となりまして
    > やり方は色々ありますが・・・・。

    なるほどねぇ〜。

    私は最初の質問だけを見て回答したのですが、

    確かに2番めの詳細な質問では、本当に何をしたいのか判ったような気がします。

    なお、私の感想では、「表の項目計算式では実現は困難」だろうと思いますね。

    これはあくまでも私の個人的な感想であって、実現不可能だと断定しているのではありませんよ。>ALL

    表の項目計算式は、[単価]*[数量]のような[単純な導出項目]では良いのですが、

    [単純な導出項目]ではない(エクセルのような?)複雑な項目計算式には限界があるように思いますよ。

    さて、番号番号で4回絞り込んで、その都度[書き出し_転置]も試してみましたが、上書きになってしまう等の理由でNGですね。

    そこで、フォーム(.wfm)+イベント処理(.kev)でサンプルを作ってみました。

    慣れていない人には難易度が非常に高くなりますが、「色々あります」のうちのひとつの例としてご覧ください。

    サンプルは、フォームと同じフォルダに、ファイル名:印字テスト.txt でタブ区切りのデータを出力します。

    このファイルは表で読み込めますので、表で読み込んで使ってください。

    表の項目値データは次の通り

    番号   ロット番号
    1    111
    1    222
    1    333
    1    444
    2    2111
    2    2222
    2    2333
    2    2444

    出力結果:印字テスト.txt ※実際にはタブ区切りですが、以下では見やすくするためにタブを空白文字に置き換えてあります

    種別番号 Lot1    Lot2    Lot3    Lot4
    1     111     222     333     444
    2     2111    2222    2333    2444

    p.s.

    添付ファイルは後日削除します。

    以下の情報も参考にしてください。

    ■表形式のフォーム:ロット管理.wfm の編集対象表:ロット管理.tbl

     項目番号    項目名   データ型    項目計算式
     1        番号    整数
     2        ロット番号 整数

    ■ロット管理.wfm

     フォーム
     ├ ファミリ
     ├ ワークスペース
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ ├ a
     │ ├ a番号
     │ ├ aロット番号
     │ └ cmdテキストファイル作成 ※以下参照
     ├ フォーム明細部
     │ ├ 行セレクタ
     │ ├ t番号
     │ └ tロット番号
     └ フォームフッタ部

     <参照>
     オブジェクト名: cmdテキストファイル作成
     標題     : テキストファイル作成

      機能名   機能パラメータリスト
     1 表示
     2 手続き実行 cmdテキストファイル作成Click
     3 なし
     4 なし

    ■表形式のフォーム:ロット管理.wfm のイベント処理:ロット管理.kev

    名札  メイン

     ** 手続きのネスト(入れ子)
     **
     ** cmdテキストファイル作成Click( )
     ** │
     ** └ prcテキストファイル作成( )
     **  │
     **  └ prc印字モジュール( 長整数 &number )



    手続き定義開始 cmdテキストファイル作成Click( )
     変数宣言 自動,文字列{ &icon, &title = "cmdテキストファイル作成Click( )", &msg }
     変数宣言 自動,整数 { &ans }

     &msg =      "テキストファイルを作成します"
     &msg = &msg + "\n\nよろしいですか?"
     &icon = "?"
     手続き実行 INFprcMsgYesNo( &icon, &title, &msg, &ans )

    ┌if ( &ans ) /* &ans の値は、はい:イチ(1) いいえ:ゼロ(0) */

    │ 手続き実行 prcテキストファイル作成( )
    └end

    手続き定義終了

    手続き定義開始 prcテキストファイル作成( )
     変数宣言 自動,文字列{ &icon, &title = "prcテキストファイル作成( )", &msg }
     変数宣言 自動,文字列{ &txtFileName }
     変数宣言 自動,整数 { &status }
     変数宣言 自動,整数 { &ans }
     変数宣言 自動,長整数{ &number }

     &txtFileName = #一括パス名 + "印字テスト.txt"
     ファイル削除 &txtFileName, 終了状態 = &status

     解除 *
    ┌if ( .not #eof )

    │ 印字開始  &txtFileName, 終了状態 = &status
    │┌if ( &status = 1 ) /* 1:ファイルの新規作成または開くことに成功  0: と -1: は失敗 */
    ││
    ││ 印字 "種別番号", _09, "Lot1", _09, "Lot2", _09, "Lot3", _09, "Lot4", _13, _10,
    ││ 並べ替え { [番号]昇順, [ロット番号]昇順 }
    ││
    ││ ジャンプ 行番号 = 先頭
    ││┌繰り返し ( .not #eof )
    │││ &number = [番号]
    │││ トレース出力 _&number
    │││ 絞り込み [番号]{ &number }
    │││
    │││ 手続き実行 prc印字モジュール( &number )
    │││
    │││ 絞り込み 補集合
    ││└繰り返し終了
    ││
    ││ 印字終了
    ││
    ││ &msg =      "テキストファイルを作成しました"
    ││ &msg = &msg + "\n\nファイルを[メモ帳]で表示しますか?"
    ││ &icon = "?"
    ││ 手続き実行 INFprcMsgYesNo( &icon, &title, &msg, &ans )
    ││┌if ( &ans ) /* &ans の値は、はい:イチ(1) いいえ:ゼロ(0) */
    │││
    │││ シェル実行 &txtFileName
    ││└end
    │└end

    └end


     解除 *
     &msg = "一般手続き:" + &title + " を実行終了しました"
     メッセージボックス &title, &msg, アイコン = i

    手続き定義終了

    手続き定義開始 prc印字モジュール( 長整数 &number )
     変数宣言 自動,文字列{ &icon, &title = "prc印字モジュール( )", &msg }
     変数宣言 自動,長整数{ &lotNumber }

     印字 &number,

     ジャンプ 行番号 = 先頭
    ┌繰り返し ( .not #eof )

    │ &lotNumber = [ロット番号]
    │ トレース出力 _&lotNumber

    │ **印字 "種別番号", _09, "Lot1", _09, "Lot2", _09, "Lot3", _09, "Lot4", _13, _10,
    │ 印字 _09, &lotNumber,

    │ ジャンプ 行番号 = 次行
    └繰り返し終了
     印字 _13, _10,

    手続き定義終了

    手続き定義開始 INFprcMsgYesNo( 文字列 &icon, 文字列 &title, 文字列 &msg, 参照 整数 &ans )
     変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */
     変数宣言 自動,文字列{ &macro }
     変数宣言 自動,整数 { &at, &num }

     &icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */
     &at  = #対応番号( &iconList, &icon )

     &macro = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 5, 制御文字展開 = する, &num"
     コマンド &macro

     ** &num:はい( 6 )/いいえ( 7 )
     &ans = 0
     条件 ( &num = 6 ) &ans = 1 /* &num が はい( 6 )だったら &ans をイチ( 1 )にする */

    手続き定義終了




引用返信 [メール受信/OFF] 削除キー/
■12950 / inTopicNo.15)  Re[5]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ natsu -(2021/05/01(Sat) 13:19:52)
    具体的には、箱があって箱には「番号」が割り付けられていて
    商品が4つまで入ります。各商品には「ロット番号」が割り付けられていて
    表の初期状態は、番号とロットだけが入力済み
    最終的な目的は、それぞれの箱に入っている商品のロット番号を一覧にしたい
    という理解でよろしいでしょうか?

    既に皆さんが回答された通りだと思いますが、
    ちょっとだけ、変法をご紹介させていただきます。

    表に[サブ番号]という整数型項目を追加します。
    項目計算式は、下記をセットです。
    #cond(#直前値([番号],0)≠[番号],0,1,#直前値([サブ番号],0)+1)

    [番号]が整列しているという前提で、箱のなかのロットに0〜3の数値が入力されます。
    あとは[ロット1]〜[ロット4]の項目計算式に下記をセットしてください。

    [ロット1] #cond([サブ番号]=0,[ロット],1,#直前値([ロット1],#U))
    [ロット2] #cond([サブ番号]<1,#U,[サブ番号]=1,[ロット],1,#直前値([ロット2],#U))
    [ロット3] #cond([サブ番号]<2,#U,[サブ番号]=2,[ロット],1,#直前値([ロット3],#U))
    [ロット4] #cond([サブ番号]<3,#U,[サブ番号]=3,[ロット],1,#直前値([ロット4],#U))

    箱に商品が詰まった状態の行を絞り込むのであれば
    [番号]を昇順、[サブ番号]を降順で並べ替えて、[番号]で単一化すれば完了です。

    ロット4までなので、項目計算式のチカラ技で対応できそうですが…

    外した回答でなければ幸いです。
引用返信 [メール受信/OFF] 削除キー/
■12951 / inTopicNo.16)  Re[6]: 条件選択の式で2個の条件を書き込むには。
□投稿者/ 悲しげ -(2021/05/01(Sat) 21:26:33)
    No12950に返信(natsuさんの記事)
    いいですね! [サブ番号]すなわち#明細連番ふうですね。
    この結果により、行集計(番号、ロット1〜nとも#項目値)、集計行のみ表示で
    お求めの結果は得られると思います。
    一括処理を使わないのならこんな感じでしょう。

    幾つか留意すべきことは、[番号]、[ロット]の順で並べ替えさせておくこと。
    実際の入力作業がどのような順序でなされるかは不定なので、
    実行直前に並べ替え&項目置換=再計算(計算項目のどれかひとつで)
    させておくことも必要ですよね。

    あともうひとつ、敢えて考慮してなかった前提があります。
    それは同一ロット番号が有る場合にどう扱うのかです。
    が、それはのちの問題としておきましょう。

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



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

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

- Child Tree -
- Antispam Version -