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

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

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

■10961 / inTopicNo.1)  複数の行単一の行にまとめたい
  
□投稿者/ まるみ -(2018/03/24(Sat) 07:35:33)
    説明しにくいので、修正前.tbl 修正後.tbl を添付しました。

    修正前.TBLの内容
    山田さんは 3種目、
    上田さんは 1種目、
    佐藤さんは 2種目
    鈴木さんは 3種目  以上9行使用しています
    これを
    修正後.TBLのように
    山田さんは 1行
    上田さんは 1行
    佐藤さんは 1行
    鈴木さんは 1行
    参加者で1行にまとめたいのですが、2行だったら、#直前値 を使用してできるのですが、3行の場合の方法がみつからなくて。
    よろしくお願いします。


data.zip
/3KB
引用返信 [メール受信/OFF] 削除キー/
■10962 / inTopicNo.2)  Re[1]: 複数の行単一の行にまとめたい
□投稿者/ ONnoji -(2018/03/24(Sat) 11:09:01)
    2018/03/24(Sat) 11:47:03 編集(投稿者)

    > 説明しにくいので、修正前.tbl 修正後.tbl を添付しました。
    >
    > 修正前.TBLの内容
    > 山田さんは 3種目、
    > 上田さんは 1種目、
    > 佐藤さんは 2種目
    > 鈴木さんは 3種目  以上9行使用しています
    > これを
    > 修正後.TBLのように
    > 山田さんは 1行
    > 上田さんは 1行
    > 佐藤さんは 1行
    > 鈴木さんは 1行
    > 参加者で1行にまとめたいのですが、2行だったら、#直前値 を使用してできるのですが、3行の場合の方法がみつからなくて。

    今回は3種目ですが、将来は4種目だったりそれ以上だったりするかもしれません。

    だから、3種目限定で 修正前.tbl から 修正後.tbl を一気に作成するよりも、

    タブ区切りのテキストデータを作成する方が応用が利きます。

    添付ファイルを解凍して、

    氏名別種目タブ区切りテキスト出力.cmd を実行して、

    修正後.tbl で 氏名別種目タブ区切りテキスト.txt を読み込んでください。

    区切りはタブですので何もしなくてもそのまま読み込めます。

    <参考>

    **氏名別種目タブ区切りテキスト出力.cmd

     印字終了
     印字開始 #一括パス名 + "氏名別種目タブ区切りテキスト.txt"

     表 "修正前.tbl"
     並べ替え { [氏名]昇順 }

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

    │ 手続き実行 prc同名処理( [氏名] ) /* これは[ジャンプ 行番号 = 次行]と等価 */

    └繰り返し終了

     印字終了

     シェル実行 #一括パス名 + "氏名別種目タブ区切りテキスト.txt" /* 結果の確認 */

     終了 /* 一括処理終了 */




    手続き定義開始 prc同名処理( 文字列 &氏名 )
     変数宣言 自動,整数{ &cnt }

     &cnt = 1
    ┌繰り返し ( &氏名 = [氏名] )

    │ 手続き実行 prcテキスト出力( &cnt, &氏名, [種目], [距離] ) /* 印字 &氏名, _09, &種目, _09, #str( &距離 ), */

    │ &cnt = &cnt + 1
    │ ジャンプ 行番号 = 次行
    └繰り返し終了

     印字 _13, _10, /* 改行 CR LF */

    手続き定義終了

    手続き定義開始 prcテキスト出力( 整数 &cnt, 文字列 &氏名, 文字列 &種目, 数値 &距離 )

    ┌if ( &cnt = 1 )

    │ 印字 &氏名, _09, &種目, _09, #str( &距離 ), /* 改行しない */
    ├else

    │ 印字 _09, &種目, _09, #str( &距離 ), /* 改行しない */
    └end

    手続き定義終了




1521857341.zip
/5KB
引用返信 [メール受信/OFF] 削除キー/
■10963 / inTopicNo.3)  Re[1]: 複数の行単一の行にまとめたい
□投稿者/ 悲しげ -(2018/03/24(Sat) 13:51:27)
    No10961に返信(まるみさんの記事)
    一括処理を使えば楽ですが、会話処理のみでやる方法の一例も挙げてみます。

    1)修正前(改).tbl
    @念のため予め[氏名][種目][距離]の順で並べ替えておく。
    A種目と距離を合わせた項目[種目・距離]で考える(この二つを分ける必要は無いようにも思えるし)。
      項目計算式→[種目]+"・"+#str([距離])+"m"
    B[連結]項目では、下記の置換で[氏名]ごとに[種目・距離]値を連結した値を取得させる。
      #cond([氏名]<>#直前値([氏名],""),[種目・距離],1,#直前値([連結],"")+","+[種目・距離])
     半角カンマで区切っているのがミソ(後半で「#対応文字列」関数で使うため)
     項目計算式の設定でも良い(並べ替え後に再計算が必要となるかも)
    C行集計で[氏名]ごとの最終行に連結最終値を取得し
    D「表示」→「集計行のみ」を表示させる
    E修正後のtblを開いてDの集計行のみのデータを読み込む
     読み込むのは[氏名]と[連結]項目のみ

    2)修正後(改).tbl
    F[種目・距離1]項目では #対応文字列([連結],1) でデータを切り出す。
     [種目・距離2]以降も同様。余裕を持たせて[種目・距離7]まで用意してみた。
    G種目と距離をどうしても分けたい場合のために、[種目・距離1]だけについて
     aとbの2様の切り出し計算式例を設定してある。
     ※桐10なら「#対応文字列2」関数があるが、今回は桐v9のようなので。

    3)ちなみに
    参加者ごとに1行にではなく、複数行に縦に入力されているのは、データベース的にはむしろグッドですね。(^_^)


1521867087.zip
/4KB
引用返信 [メール受信/OFF] 削除キー/
■10964 / inTopicNo.4)  Re[1]: 複数の行単一の行にまとめたい
□投稿者/ まるみ -(2018/03/24(Sat) 17:18:36)
    アドバイスありがとうございます。

    目的とするデータを取得できました。

    参加種目が多くなった場合、一括処理が応用がきくと思いました。
引用返信 [メール受信/OFF] 削除キー/
■10965 / inTopicNo.5)  Re[2]: 複数の行単一の行にまとめたい
□投稿者/ まるみ -(2018/03/24(Sat) 20:45:52)
    No10962に返信(ONnojiさんの記事)

    求める答えは取得出来ました。
    処理内容を理解したいのですが、処理がジャンプ、ジャンプでいまいち理解が出来ません。
     自分でこのような一括処理を書けるとうれしいのですが。




    > 2018/03/24(Sat) 11:47:03 編集(投稿者)
    >
    >>説明しにくいので、修正前.tbl 修正後.tbl を添付しました。
    >>
    >>修正前.TBLの内容
    >>山田さんは 3種目、
    >>上田さんは 1種目、
    >>佐藤さんは 2種目
    >>鈴木さんは 3種目  以上9行使用しています
    >>これを
    >>修正後.TBLのように
    >>山田さんは 1行
    >>上田さんは 1行
    >>佐藤さんは 1行
    >>鈴木さんは 1行
    >>参加者で1行にまとめたいのですが、2行だったら、#直前値 を使用してできるのですが、3行の場合の方法がみつからなくて。
    >
    > 今回は3種目ですが、将来は4種目だったりそれ以上だったりするかもしれません。
    >
    > だから、3種目限定で 修正前.tbl から 修正後.tbl を一気に作成するよりも、
    >
    > タブ区切りのテキストデータを作成する方が応用が利きます。
    >
    > 添付ファイルを解凍して、
    >
    > 氏名別種目タブ区切りテキスト出力.cmd を実行して、
    >
    > 修正後.tbl で 氏名別種目タブ区切りテキスト.txt を読み込んでください。
    >
    > 区切りはタブですので何もしなくてもそのまま読み込めます。
    >
    > <参考>
    >
    > **氏名別種目タブ区切りテキスト出力.cmd
    >
    >  印字終了
    >  印字開始 #一括パス名 + "氏名別種目タブ区切りテキスト.txt"
    >
    >  表 "修正前.tbl"
    >  並べ替え { [氏名]昇順 }
    >
    >  ジャンプ 行番号 = 先頭
    > ┌繰り返し ( .not #eof )
    > │
    > │ 手続き実行 prc同名処理( [氏名] ) /* これは[ジャンプ 行番号 = 次行]と等価 */
    > │
    > └繰り返し終了
    >
    >  印字終了
    >
    >  シェル実行 #一括パス名 + "氏名別種目タブ区切りテキスト.txt" /* 結果の確認 */
    >
    >  終了 /* 一括処理終了 */
    >
    >
    >
    >
    > 手続き定義開始 prc同名処理( 文字列 &氏名 )
    >  変数宣言 自動,整数{ &cnt }
    >
    >  &cnt = 1
    > ┌繰り返し ( &氏名 = [氏名] )
    > │
    > │ 手続き実行 prcテキスト出力( &cnt, &氏名, [種目], [距離] ) /* 印字 &氏名, _09, &種目, _09, #str( &距離 ), */
    > │
    > │ &cnt = &cnt + 1
    > │ ジャンプ 行番号 = 次行
    > └繰り返し終了
    >
    >  印字 _13, _10, /* 改行 CR LF */
    >
    > 手続き定義終了
    >
    > 手続き定義開始 prcテキスト出力( 整数 &cnt, 文字列 &氏名, 文字列 &種目, 数値 &距離 )
    >
    > ┌if ( &cnt = 1 )
    > │
    > │ 印字 &氏名, _09, &種目, _09, #str( &距離 ), /* 改行しない */
    > ├else
    > │
    > │ 印字 _09, &種目, _09, #str( &距離 ), /* 改行しない */
    > └end
    >
    > 手続き定義終了
    >
    >
    >
引用返信 [メール受信/OFF] 削除キー/
■10966 / inTopicNo.6)  Re[3]: 複数の行単一の行にまとめたい
□投稿者/ ONnoji -(2018/03/24(Sat) 21:44:14)
    まずはお願いですが。長大な引用はお止めください。引用は必要なところだけにしてください。

    > 求める答えは取得出来ました。
    > 処理内容を理解したいのですが、処理がジャンプ、ジャンプでいまいち理解が出来ません。

    「処理がジャンプ、ジャンプ」とは、手続き(プロシージャ)を呼び出していることでしょうかね。

    手続き(プロシージャ)を呼び出さないで、一本道の方がよろしければ、以下のようになります。

    添付ファイルを用意しました。

    私( ONnoji )には、手続き(プロシージャ)を呼び出す方が、理解し易いと思いますが…(^^ゞ

    > 自分でこのような一括処理を書けるとうれしいのですが。

    詳しいコマンドの内容は桐のヘルプを参照してください。


    <参考>

     変数宣言 文字列{ &氏名 }
     変数宣言 整数 { &cnt }
     印字終了
     印字開始 #一括パス名 + "氏名別種目タブ区切りテキスト.txt"
     表 "修正前.tbl"
     並べ替え { [氏名]昇順 }
     ジャンプ 行番号 = 先頭
     繰り返し ( .not #eof )
      &cnt = 1
      &氏名 = [氏名]
      繰り返し ( &氏名 = [氏名] )
       if ( &cnt = 1 )
        印字 &氏名, _09, [種目], _09, #str( [距離] ),
       else
        印字 _09, [種目], _09, #str( [距離] ),
       end
       &cnt = &cnt + 1
       ジャンプ 行番号 = 次行
      繰り返し終了
      印字 _13, _10,
     繰り返し終了
     印字終了
     シェル実行 #一括パス名 + "氏名別種目タブ区切りテキスト.txt" /* 結果の確認 */
     終了 /* 一括処理終了 */



1521895454.zip
/1KB
引用返信 [メール受信/OFF] 削除キー/
■10967 / inTopicNo.7)  Re[1]: 複数の行単一の行にまとめたい
□投稿者/ 尾形 -(2018/03/25(Sun) 07:12:39)
    どうも、こんにちは

    もし、帳票印刷のための整形であれば

    先の「7847 のスレッド」ともかぶりますけど

    [氏名]  [連結名称]
    山田太郎 平泳ぎ,25,平泳ぎ,50,平泳ぎ,100
    上田花子 背泳ぎ,100,,,,
    佐藤二郎 自由形,25,自由形,50,,
    鈴木一郎 自由形,100,自由形,400,自由形,800

    #対応文字列([連結名称],1) #対応文字列([連結名称],2)
    でレポート側で分割するとか
    項目計算式でもいいかもしれないけど



引用返信 [メール受信/OFF] 削除キー/
■10968 / inTopicNo.8)  Re[2]: 複数の行単一の行にまとめたい
□投稿者/ 悲しげ -(2018/03/26(Mon) 00:29:52)
    No10964に返信(まるみさんの記事)

    一括処理でうまくできたとのこと、よかったですね。

    私がNo10963を書いた理由は2つ

    ひとつは、まるみさんが一括処理は不得手のように思えたので、
    会話処理でも可能なことを例示してみた。

    ふたつめは「#直前値」関数が2行までしかできないようなこと
    を言っていたので、何行でも可能ですよと例示した。

    ちなみに、
    私も本件は一括処理の「印字」コマンドを使って処理します。

    めざせ印字上手(インディジョーンズ)!
    ・・・・って前世紀に某所で書いたことあるなぁ。(^^;)

引用返信 [メール受信/OFF] 削除キー/
■10969 / inTopicNo.9)  Re[3]: 複数の行単一の行にまとめたい
□投稿者/ まるみ -(2018/03/26(Mon) 01:02:09)
    ご教授ありがとうございます。
    桐の便利さを実感しました。
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -