過去の桐井戸端BBS (桐ver.8)
12067 項目名がその都度変わる状態での一覧表印刷条件開始コマンドの使い方 米田昌弘 2001/07/01-16:15
どなたか お知恵を 拝借できませんか。

したいこと
 A表 を 転置集計 して B 表を 作成しています。
 この B表を書き出して 一覧表印刷する。

B表の項目名が動的に変更されている状態で
B表の一覧表印刷条件設定にて設定して 印刷する。
一覧表印刷条件 の 項目名属性  データ属性 列属性は
 繰り返しと 項目番号指定にて OK なのですが
一覧表印刷条件開始コマンドの 項目指定の部分 つまり 
{[年月日]C900//しない,[曜日]C200//しない,[項目01]C200//しない,[項目02]C200//しない,XXXX03,XXXX04,XXXXX}
を  #項目属性( n , 1 ) 等の関数を利用して設定できないでしょうか。

現在の記述内容
一覧表印刷条件開始 "出勤予定一覧",用紙サイズ="A4 210 x 297 mm",給紙方法="自動選択"
,用紙の向き=横,上余白=1000,下余白=1000,左余白=1000,右余白=1000,上下セル余白=0
,左右セル余白=170,書式=標準,組み方向=横,フォント={"MS ゴシック","MS ゴシック",960,標準,1}
,{[年月日]C900//しない,[曜日]C200//しない,[項目01]C200//しない,[項目02]C200//しない,XXXX03,XXXX04,XXXXX}

繰り返し &ctlno03=4,#項目数,1
一覧表印刷条件 項目名属性,&ctlno03,縦書き=しない,横表示位置=右寄せ,縦表示位置=中央揃え,
一覧表印刷条件 データ属性,&ctlno03,縦書き=しない,横表示位置=右寄せ,縦表示位置=上詰め
一覧表印刷条件 列属性,&ctlno03,図形=しない,ルビ=しない,禁則処理しない=する,自動縮小=しない,全角変換=しない,漢数字変換=しない,バーコード=なし,
繰り返し終了
***********
一覧表印刷条件終了

よろしく ご教授お願いいたします。
米田昌弘


12068 Re:一覧表印刷条件開始の動的変更 米田昌弘 2001/07/01-16:17
記事番号12067へのコメント
追伸
桐 Ver8 Sp6
***.KEV内での利用です。
米田昌弘

12069 Re:一覧表印刷条件開始の動的変更 みつお 2001/07/01-17:51
記事番号12068へのコメント
>米田昌弘さん 今日は みつお といいます
>
私も以前一覧表設定で困った事が有ります。
イベントとか設定の細かいことは解りませんが要するに、書き出した表Bはまっさらの状態で、定形印刷処理が出来ないって事でしょうか?
間違ってたら、聞き捨てにして下さい。

だったら
1) まずB表には、かっちりと一覧表印刷の定義をします
2) A表の転置集計からA1表に書き出します
3) B表を全行削除、表整理を行い、A1表を読み込みします
2)と3)の処理は履歴で一括処理にして自動実行させます。
12070 Re:一覧表印刷条件開始の動的変更 今村 誠 2001/07/01-18:08
記事番号12068へのコメント
米田昌弘さんこんにちは、文字列の生成がわからないのでしょうか、
簡易メニューと出勤簿の一括処理の中に、項目名を取り出す処理があります。

また、簡易メニューを作成するのに、「コマンド」というコマンドを使用しております。
このコマンドは、記述がむずかしいので、私は何度も試行錯誤しました。
今でもよくわからないのですが、過去に記述の記載例もありますので参考にされて頑張ってください。
直接一覧表印刷定義をしたい場合、これしかないと思います。

12071 Re:一覧表印刷条件開始の動的変更 悲しげ 2001/07/01-18:23
記事番号12067へのコメント
どもっ、米田さん
この記述を見るに、プリンタはひょっとしてLP*でしょうか?(^^;)

プリンタ(ドライバ)を1種類に固定して使うのなら、「一覧表印刷条件*」
コマンドは結構便利ですが、もし、他環境のユーザが使用する可能性、
即ち他のプリンタ(ドライバ)を使う可能性があるのならば、
このコマンドを使うのは避けた方が無難かと思います(→cf.#12064)。
もしそうなら、みつをさんの#12069の方法とかをお勧めします。
そうでなければ、本コメントは無視して下さい。
12073 Re:一覧表印刷条件開始の動的変更 米田昌弘 2001/07/01-20:15
記事番号12069へのコメント
みつおさんへ
早速のご返事ありがとうございます。

>3) B表を全行削除、表整理を行い、A1表を読み込みします

この処理で 項目名が 事前に予定できなくて
項目名が どんな名前で 転置されていても実行したいのです。
読み込みでは 対応でないんです。
米田昌弘

12074 Re:一覧表印刷条件開始の動的変更 米田昌弘 2001/07/01-20:51
記事番号12071へのコメント
悲しげさん  みつお  今村さん
いろいろと ありがとうございます。
一覧表の印刷条件開始の履歴生成のコマンドって
フリンターの機種によって ちがうんですか 参考になりました。

少なくとも「用紙サイズ」パラメータと「給紙方法」パラメータの文言は異なる可能性大でしょうね。
一般的には「メーカー」毎と云うよりは「プリンタドライバ」毎と云えそうです。
例えばエプソン製品でもLP*とPM*はドライバが別なように。

この部分の指定をしないでやってみます。
うまくいくかな 機種別のディフォルトを上手く持ってきてくれないのかな


イベントをテーブルでつくると過去ログにありましたので
KEV の基本をテーブルデータにもって
関数を使って 書き換えて
 KEV に書き出して やってみます。
うまく うごくような気がしますが 
やってみます。
米田昌弘

12078 Re:一覧表印刷条件開始の動的変更 米田昌弘 2001/07/01-23:40
記事番号12067へのコメント
米田昌弘さんは
一覧表印刷条件開始の動的変更」で書きました。
自己レスです。
みなさま ありがとうございました。
できました。
今後の参考になればと,まとめておきます。
転置集計した 表を イベント処理にて 一覧表印刷したい。
この場合 転置集計しますので 転置データ が 項目名の 表が作成されます。

よって 項目の名前や順番が特定されない場合に
イベント処理にて一覧表印刷を 行いたい。
ポイント
一覧表印刷用に ひとつフォームを作成する
このフォームに一覧表印刷ボタンを作成しておく。
次に履歴にて作成した 一覧表印刷条件のコマンドファイルを 
そのイベントファイルに読み込んでおく。
そのイベントファイルをテーブルに変換しておく。

次に一覧表を印刷したい元のイベントにて
転置されたファイルの項目名を #項目属性 関数にて項目名をとりだして
テーブル表化 された イベントの内容を 
一覧表印刷条件開始 ***** の 内容 を 調整して 整える
その表を  ファイル複写にて  XXX.TBL XXX.KEV と コピーして
(一覧表印刷用に 作成したフォーム用のイベントファイルと同じ名前にする。)
一覧表印刷用に作成されたフォームを呼び出して
そのフォームのコマンドボタンにて
一覧表印刷条件を実行して
一覧表印刷コマンドを呼び出す。

ちなみに 項目属性 データ属性 列属性は 項目番号指定にて簡略化しました。
繰り返し &ctlno03=4,#項目数,1
一覧表印刷条件 項目名属性,&ctlno03,縦書き=しない,横表示位置=右寄せ,縦表示位置=中央揃え,
一覧表印刷条件 データ属性,&ctlno03,縦書き=しない,横表示位置=右寄せ,縦表示位置=上詰め
一覧表印刷条件 列属性,&ctlno03,図形=しない,ルビ=しない,禁則処理しない=する,自動縮小=しない,
全角変換=しない,漢数字変換=しない,バーコード=なし,
繰り返し終了

過去ログの イベントファイルとテーブル 一覧表印刷条件と OS 等参考にさせていただき
ありがとうございました。
桐って基本設計がしっかりしてて小回りが効くというか本当にすごい事を簡単に初心者にも実現させてくれますね
そして 幅田さん ありがとうございます。
ここのログの資産の価値は 私にとっては 本当にありがたいものです。

みなさん
ありがとうございました。 
米田昌弘

12079 Re:一覧表印刷条件開始の動的変更 米田昌弘 2001/07/01-23:44
記事番号12070へのコメント
今村 誠さん いつも
ありがとうございます。
どうにか実現できました。
米田昌弘

12080 一覧表印刷条件の定義は項目番号が使えます 佐田 守弘 2001/07/02-00:38
記事番号12078へのコメント
米田昌弘さん
一覧表印刷所受けんの登録には、項目名の代りに項目番号で指定できます。
従って、既に米田さんが#12078で書かれている様に、#項目数関数で転地した表の項目数を調べ
一覧表印刷条件コマンドで項目番号を変数で指定する方法を、繰り返しコマンドを使って、
項目数だけ繰り返す方法が正解です。

佐田守弘(KS-00119)

12083 Re:一覧表印刷条件の定義は項目番号が使えます 米田昌弘 2001/07/02-01:31
記事番号12080へのコメント
佐田 先生に コメント いただけて 光栄です、

>一覧表印刷所受けんの登録には、項目名の代りに項目番号で指定できます。
>従って、既に米田さんが#12078で書かれている様に、#項目数関数で転地した表の項目数を調べ
>一覧表印刷条件コマンドで項目番号を変数で指定する方法を、繰り返しコマンドを使って、
>項目数だけ繰り返す方法が正解です。

この変数で指定する方法なんですが
下記の一覧表印刷条件開始コマンドの 項目名の指定の時には 上手く動かなかったんですが
設定の仕方が 誤っていたんでしょうか

一覧表印刷条件開始 "出勤予定一覧",用紙サイズ="A4 210 x 297 mm",給紙方法="自動選択"
,用紙の向き=横,上余白=1000,下余白=1000,左余白=1000,右余白=1000,上下セル余白=0,
左右セル余白=170,書式=標準,組み方向=横,フォント={"MS ゴシック","MS ゴシック",960,標準,1}
,{[年月日]C900//しない,[曜日]C200//しない,[項目01]C200//しない,[項目02]C200//しない,XXXX03,XXXX04,XXXXX}

上記の [項目名] の ところは 数字ではだめだったんですが
,[項目01]C200 を  ,3C200
項目番号 3 を 指定のつもりなんです
これを      &項目番号C200 だったらいけるんでしょうか
もっと簡単に 変数を指定して 
一覧表印刷条件開始 コマンドを実行できたのでしょうか
もう少し お教え願えませんでしょうか
米田昌弘


12086 Re:一覧表印刷条件の定義は項目番号が使えます 悲しげ 2001/07/02-11:23
記事番号12083へのコメント
私は既述のとおり「一覧表印刷条件*」コマンドを使うのを辞めたので(^^;)、
細部未確認ですが、htmlヘルプ「【一括処理】一括処理の書き方 」に次のような件があります。
---------------------
項目番号で指定するとき、<項目名>のうしろに項目名や比較式が続く場合は、番号のうしろに空白を入れます(△は空白)。

(例) 読み込み 表,"Jusho.tbl", \
      { [氏名][名前],[電話][TEL],\
       [住所][住所1]}
    または
    読み込み 表,"Jusho.tbl",\
      { 2△2,3△3,4△5}
--------------------
つまり空白を入れるってことですね。

ただ、項目番号を定数で指定するくらいなら、項目固定と云うことですから、
一般的にはわざわざ項目番号を使わないで項目名そのもので行くと思います。(^^;)
項目番号を使うのは、番号が不定(可変)である場合、即ち変数を使うのが普通なんじゃないでしょうか?
その意味で、

>これを&項目番号C200 だったらいけるんでしょうか

項目番号を変数で指定する場合には、空白は無くても動いたような気もします
けど、細部はご自分でご確認を。(^^;)
12117 Re:一覧表印刷条件の定義は項目番号が使えます 米田昌弘 2001/07/04-02:08
記事番号12086へのコメント
御報告いたします。
一覧表印刷条件開始コマンドにおいて
>>>これを &項目番号 C200 だったらいけるんでしょうか
について 項目番号を変数に指定して みましたら OK でした。
よって
一覧表印刷条件の指定では 項目数が 一定で 項目名が変わる場合には &変数 指定にて 対応が可能です。
もっぱら #項目属性関数による 項目名を 文字列で指定するのは 不可でした。
今回の 転置集計した表のように 項目数も 変わる場合には
これだけでは 対応は無理なようで
項目名が変わり 項目数も変わる場合の対応といたしましては
前にアップしましたように
一括なり イベントなりを テーブルにもって 操作すて CMD KEV を 作るしかないのではないかと思います。
他の方法は思い付きませんでした。
ほかに良い簡単な方法があるのかな ・・・・??????

米田昌弘



戻る