| 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" } /* 半角コンマで区切った文字列リスト */ 変数宣言 自動,文字列{ ¯o } 変数宣言 自動,整数 { &at, &num }
&icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */ &at = #対応番号( &iconList, &icon )
¯o = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 5, 制御文字展開 = する, &num" コマンド ¯o
** &num:はい( 6 )/いいえ( 7 ) &ans = 0 条件 ( &num = 6 ) &ans = 1 /* &num が はい( 6 )だったら &ans をイチ( 1 )にする */
手続き定義終了
|