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

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

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

■8112 / inTopicNo.1)  転置集計後の行集計結果を一覧印刷したい。
  
□投稿者/ 広田 -(2014/06/05(Thu) 12:57:16)
    いつも大変お世話になっております。クリニックで使用する注射の集計表で困っています。

    基本.TBL
    氏名  注射  数
    あ   A   1
    あ   B   2
    い   A   1

    を転置集計して
        A   B  合計
    あ   1      1
    い   1   2  3
    --------------------------
    総計  2   2  4

    の結果を一覧表でもレポートでも良いので一気に出力したいのですが、
    氏名の項目内容や項目数、注射の項目内容や項目数が随時変わります。
    #項目属性など使ってみたのですが、集計項目では項目名でないと#合計([])が使えないようです。
    別表を作って書き出しや読み込みなど行ってみましたが、集計内容が随時異なることと
    集計関数のうまい使い方を見つけることが出来ませんでした。

    ご教授いただけますと幸いです。

    Win7、桐Ver9-2012です。

引用返信 [メール受信/ON] 削除キー/
■8114 / inTopicNo.2)  Re[1]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 今村 誠 -(2014/06/05(Thu) 14:37:47)
    広田さんこんにちは
    > 基本.TBL>………1を元表 を転置集計して………2を中継表
    > 氏名  注射  数   >     A   B  合計
    > あ   A   1   > あ   1      1
    > あ   B   2   > い   1   2  3 
    > い   A   1   > --------------------------
                 > 総計  2   2  4
    2は転置集計から表を書き出しますか?

    あBは2で
    いBは未定義値だと思います。

    2(中継表)で総計と書いてありますが転置集計しただけでは
    総計はできないので一度ファイル→書き出し表で名前をつけて
    保存します。仮に保存した表をtemp.tblとします。
    この表では集計はできますが印刷はしません。
    この表で一度集計します。
    "総計"#合計#合計#合計
    と設定して集計後にもう一度表として書き出すと
    2行の表が3行に増えて総計行も集計行扱いにならないので
    印刷レイアウトもすっきりすると思います。

    以上の処理を履歴に登録すると下記のようになります。

    条件 (#U <> #処理条件名検索(7, "総計付")) 行集計条件削除 条件名="総計付"
    行集計条件登録 条件名="総計付",並べ替え=しない,総計{[A ]#合計,[B ]#合計,[合計]#合計,[名前]"総計"}
    条件 (#U <> #処理条件名検索(7, "印刷表")) 行集計条件削除 条件名="印刷表"
    書き出し条件登録 表,条件名="印刷表","hirota.tbl",ファイル名変更=しない,{[名前],[A ],[B ],[合計]}
    書き出し 表,条件名="印刷表"
    表 "hirota.tbl",モード=専有

    ここを一括処理に組むと少し手間が省けますね。
引用返信 [メール受信/OFF] 削除キー/
■8115 / inTopicNo.3)  Re[2]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 広田 -(2014/06/05(Thu) 15:09:27)
    今村さま

    こんにちわ。早々のコメントありがとうございます。

    > あBは2で
    > いBは未定義値だと思います。
    すみません。間違えました。(汗)

    > 条件 (#U <> #処理条件名検索(7, "総計付")) 行集計条件削除 条件名="総計付"
    > 行集計条件登録 条件名="総計付",並べ替え=しない,総計{[A ]#合計,[B ]#合計,[合計]#合計,[名前]"総計"}
    > 条件 (#U <> #処理条件名検索(7, "印刷表")) 行集計条件削除 条件名="印刷表"
    > 書き出し条件登録 表,条件名="印刷表","hirota.tbl",ファイル名変更=しない,{[名前],[A ],[B ],[合計]}
    > 書き出し 表,条件名="印刷表"
    > 表 "hirota.tbl",モード=専有
    ここの[名前]は良いとしても、[A]や[B]が[広田][田広]などど元のTBLから絞り込みした際に、ランダムに変わってしまいます。
    なので、#項目属性(2,0)などと入れてみたのですがうまくいきません。

    > ここを一括処理に組むと少し手間が省けますね。
    そうなんです。一括処理で行いたいのですが・・・。
    ご教授いただけますと幸いです。


引用返信 [メール受信/OFF] 削除キー/
■8116 / inTopicNo.4)  Re[3]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 今村 誠 -(2014/06/05(Thu) 20:18:26)
    広田さん転置後の難しいところだけ抜き出しました

      表 &Stemp1,モード=専有,リトライ=しない, 終了状態=&Iend2
      &Itb3=#IS表
      if (&Iend2 <> 1 )/* 対象表が開けた時 1 */
       確認 #対応文字列(\
       "共有情報が使用中で表を開けません-2,他の桐で開かれています-1,開けない時 0を設定"\
       ,&Iend2+3)
      else
       var Str { &Sev[#項目数]}
       条件 (#U <> #処理条件名検索(7, "総計")) 行集計条件削除 条件名="総計"
       &Seval= "行集計条件登録 条件名=""総計"",並べ替え=しない,総計{["+#項目属性( 1 , 1 )+"]"" 総 計 """
       クリップボード 設定,&Seval, 終了状態=&Iend3
    *   確認 &Seval /* どういう内容かの見本の確認 一度止めないとクリップボードが確認できない */
       繰り返し &Icnt=2,#項目数
        &Sev[&Icnt] = #項目属性(&Icnt , 1 )
        &Seval = &Seval + ",["+&Sev[&Icnt]+"]#合計"
        if (#L(&Seval)>3998)
         確認 #str(&Icnt) + " 番目で文字数オーバーで処理中止"
         繰り返し中止
        end
       繰り返し終了
       &Seval = &Seval + "}"
       クリップボード 設定,&Seval, 終了状態=&Iend3
       コマンド &Seval
       行集計 条件名="総計", データ行=有効
       書き出し 表,&Stemp2, 終了状態=&Iend4,*
       終了 表 &Itb2
       終了 表 &Itb3
       表 &Stemp2,モード=専有,リトライ=しない, 終了状態=&Iend5
       &Itb4=#IS表
    *   表形式編集
       レポート印刷 &Srpt,部数=1,開始ページ=1,罫線印字=する,カラー印刷=する,編集表=する\
       ,会話=しない,プレビュー=する,印刷ページ=両方,終了状態=&Iend6
       終了 表 &Itb4 /* 注射名の種類にあわせて印刷列が変わるのでレポートを選択するか再定義する */
      end /* 空白列でよければ再定義は必要なし */

引用返信 [メール受信/OFF] 削除キー/
■8119 / inTopicNo.5)  Re[1]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 通りすがり -(2014/06/05(Thu) 23:08:44)
    コードでレポート定義できないから、項目数の増加は対応できない
    その点以外は、

    Accessでは、ラベルのソースを動的に設定して対応する
    桐で同様にするには、レポート定義のラベル・テキストのソースを変数にしとけば良いんじゃないかな

    実際にやって確認はしてない、ゴメン
引用返信 [メール受信/OFF] 削除キー/
■8120 / inTopicNo.6)  Re[1]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 尾形 -(2014/06/06(Fri) 06:38:36)
    どうも、こんにちは

    自分の場合
    レポートの列数は変更できないので
    24項目で、固定項目名でMAX定義して


    表 "転置集計後.tbl"
    項目属性変更2 追加{"項目01","文字列"},\
            追加{"項目02","数値"},\
            追加{"項目03","数値"},\
            ※以下24個

    置換 [項目01]=#項目属性(1,0),\
       [項目02]=#項目属性(2,0),\
       [項目03]=#項目属性(3,0),\
       ※以下24個

    代入 &項目名[1]=#項目属性(1,1),\
       &項目名[2]=#項目属性(2,1),\
       &項目名[3]=#項目属性(3,1),\
       ※以下24個


    こんな感じで決め打ちでやってみてはどうでしょ
    小計・総計等はレポート側の機能で

引用返信 [メール受信/OFF] 削除キー/
■8121 / inTopicNo.7)  Re[1]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 広田 -(2014/06/07(Sat) 09:58:00)
    皆様、いつもながらものすごく、素早いご回答ありがとうございます。

    今村さま、少々ハードルが高いのでしばらく勉強させてください(汗)
    通りすがりさま、配列変数使って頑張ってみました、ありがとうございます。
    尾形さま、決め打ちで試してみました。
    レポート機能の総計のところで項目名を指定すると思うのですが、この場合、
    集計種別:総計
    ソース:#合計(&項目名[1])
    では受け付けてくれませんでした。
    関数の引数で項目名を指定するところにそれ以外が指定されています。

    ひょっとしたら簡単なことなのかもしれませんが、色々やってもどうしても上手くいきません。
    お手数ですがご教授頂けますと幸いです。
引用返信 [メール受信/OFF] 削除キー/
■8123 / inTopicNo.8)  Re[4]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 今村 誠 -(2014/06/07(Sat) 12:08:26)
    広田さんサンプルを作ったので参考にしてください。
    基本.tblを開いた後名前を整列して一括処理を実行すると
    プレビューします。
    用紙の幅=注射液の種類です。
    横方向に用紙を使うとレポートオブジェクトでコピーすることで
    簡単に増やせます。
    注射液が少ないと後方に空白列が印字されます。

1410058177.zip
/15KB
引用返信 [メール受信/OFF] 削除キー/
■8124 / inTopicNo.9)  Re[2]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 通りすがり -(2014/06/07(Sat) 12:33:30)
    eval "項目集計  <項目名>"
    で取得できるんじゃないのかな?

    例によって試してないけど
引用返信 [メール受信/OFF] 削除キー/
■8125 / inTopicNo.10)  Re[5]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ 広田 -(2014/06/07(Sat) 14:41:09)
    今村 さま

    早々にしかもパーフェクトにご教授頂きかたじけないです(> <)
    内容については追々勉強させて頂きますが、やはり現時点の私の実力では無理でした。
    これで明日より便利に仕事が出来ます。心より御礼を申し上げます。ありがとうございました!


解決済み!
引用返信 [メール受信/OFF] 削除キー/
■8127 / inTopicNo.11)  Re[1]: 転置集計後の行集計結果を一覧印刷したい。
□投稿者/ xeno -(2014/06/08(Sun) 18:09:14)
    こんにちは。ブラウザのブックマークの整理をしていて、たまたま開いたところ、以前私が幅田さんのところで回答していた案件と似ているなと思ったので、参考までに、当時の質問の url を記載しておきます。

    http://www.habata.net/kiri/kbbs/kakov8/14503.htm

    ↑のページの私の回答の中にある一括処理を使って対応できないでしょうか?
    (先に単一化をしておく必要があるとは思いますが。見当外れなようでしたら申し訳ありません)
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -