過去の桐井戸端BBS (桐ver.7)
1024 フォームを使って今入力した分だけをレポート印刷したい まもる 1999/1/11-14:54
桐 Ver7.0を使っています超初心者です。

コマンドボタンを使った簡単なレポート印刷の方法を教えて欲しいのですが・・

現在、データーを伝票形式のフォームで入力しているのですが、今入力した分だけをレポート印刷する方法を教えて下さい。
自分でも考えてみたのですがどうしても思いつかず、今はいったん表に戻って印刷したいモノを絞り込んでからレポート印刷を選んで印刷しています。
これでは、あまりにも操作が多すぎるのでボタン一つでなんとか印刷できるようにしたいのですが・・・・
この説明で分かっていただけたかどうかは????なのですが、是非教えて下さい。
お願いいたします。
1026 Re: ikjun 1999/1/11-17:16
記事番号1024へのコメント
 いまちょっと忙しいんで、考え方だけですが!

 ダミーで行を指定する項目、例えば[印刷指定]という項目を整数で作ってやります。

 一括処理でレポートを印刷するプログラムを組むのですが、その際、新規に入力した行の[印刷指定]項目を1を代入します。
その行を選択して印刷、もどってその行を検索して入力画面に戻る。
その際、[印刷指定]は0を代入する。

 基本的には、まもるさんのやっていることを一括処理で組むだけです。
そのときのテクニックとしては、選択するだけ為だけのダミーの項目を作るだけです。

 一括処理といっても、長くはならないはずなので、練習をかねてやってみては?
1030 Re:蛇足です 宮城 1999/1/11-21:50
記事番号1026へのコメント
 まもるさん、こんにちは。
 ikjunさんのコメントで尽きてるのですが、ちょっとしたヒントにでもなれば。

 一から取り組まれているようですね。これは本当に大変です。そもそも何ができるのか、できないのか、まだ見当もつかないのでは(失礼!)? それから、バグが問題です。
一つずつでてくれればまだしも、集団で現れます。
あれを直せばこっち、こっち直せばそっち、直したつもりでバグを追加・・・。
私も何度パニックに陥ったことか。でも、いつかは必ず動きます!
 で、本当は誰かの作った一括処理をマイナーチェンジしてみるというアプローチの方が楽です。
なぜこんな記述があるのか? ああ、こう動くのか、テキスト読むとこんなこともできそうだぞ・・・。
 私はそうやって覚えてきました。
 いずれにしても、はじめて作った一括処理が思い通り動いたときは実に気分のいいものです。
頑張ってください。

 ここまでは、完全なオンリー応援歌。

 さて、本題に入りますが、まもるさんの記述に重要なポイントが含まれていると思います。
 
>>現在、データーを伝票形式のフォームで入力しているのですが、今入力した分だけ
>>をレポート印刷する方法を教えて下さい。

 「今入力した分だけ」という部分です。
このような絞り込みをどうやって行うかが、ikjunさんの書かれたテクニックです。
何も識別キーがないと、今入力したレコードをどうやって選びますか?
絞込み->選択行ぐらいしかないのです。
 各人の流儀で、「xxフラグ」といってみたり「xxマーク」だったり「xxステイタス」なんてのもあるでしょうが、識別のための項目が自然必要になってくるわけです。
1,0とか、作成年月日、時刻とか、皆さん、いろいろ工夫されているんじゃないかと思います。

 それから、このような識別がただ「新規」時だけでよいかも考えて下さい。
そのレコードに対する更新を行うとき、処理が終わったとき、もう再入力する可能性はなくなり抹消してもよくなったとき(抹消を考えておかなければいつかパンクします)・・・。
けっこうあるものです。
 これを一つの項目ですべて処理する人もいるでしょうし、やたら項目を増やしてしまう人もいるでしょう(ちなみに私は後者、大体スマートに処理しようとして失敗するたちなんで・・・。
素人はスマートな一括処理をめざしてはいけません。確実性第一!)。

 それでは、健闘をお祈りします。
1031 Re: 幅田 1999/1/11-23:03
記事番号1030へのコメント
>現在、データーを伝票形式のフォームで入力しているのですが、今入力した分だけ
>をレポート印刷する方法を教えて下さい。

この質問について、私はikjunさんや宮城さんとはちょっと違った解釈をしました。
伝票形式のフォームで入力なさっているとのことですので、例えばその伝票フォームのヘッダセクションには[伝票NO]と言うものが設定してあって、明細行が5行くらいあったとしたら、その画面イメージそのままの伝票形式のレポートを印刷したいという風に解釈しました。

すなわち画面上の伝票NOのレコードすべてを印刷するということです。
それなら、何も一括処理を組まなくてもコマンドボタンで十分です。

その場合のレポートの設定は、
ファイル属性→対象表の表ファイル名に「販売.TBL」が設定されており、
ファイル属性→対象表→表の操作で、例えば並べ替え条件名に「伝票NO順」、
単一化条件名に「伝票番号単一化」と設定します。
(並べ替え条件「伝票NO順」、単一化条件「伝票番号単一化」はあらかじめ表(販売.TBL)の中で定義しておく。)
で、明細ページには、[伝票NO]のテキストオブジェクトが貼り付けられており、明細行に当たる部分の伝票オブジェクトが貼り付けられています。
伝票オブジェクトの対象表には「販売.TBL」が設定されており、リンクの設定→リンク項目では、レポートの表の項目、オブジェクトの表の項目ともに[伝票NO]を設定しておきます。

そこで、本題のフォームのコマンドボタンに入りますが、
フォームのどこかにコマンドボタンを貼り付けて、
オブジェクトの属性→コマンドボタンで標題を適当につけて、
機能名の1行目の...ボタンをクリックして「行操作」の「絞り込み_単一化」を
選んでOKをクリックします。
その行の機能パラメータリストの部分をクリックすると▼ボタンが表示されます。
すると表に登録されている絞り込み条件名が表示されるので「伝票番号単一化」を
クリックして選択します。

つづいて、機能名の2行目の...ボタンをクリックして「ファイル」の中の「レポート印刷」を
クリックしてOKを押します。その行の機能パラメータリストの...ボタンをクリックして
式入力→ファイル名ボタンをクリックして、先に作成しておいたレポートのファイル名を
選んでOKを押します。

これで、フォーム編集画面で作成したコマンドボタンをクリックすれば、レポートのプレビュー
画面に切り替わります。
この状態で印刷ボタンをクリックすれば、現在表示しているデータだけを印刷することが
できます。

まもるさんの思いと違っていたらごめんなさい。
1041 Re:有り難うございます。 まもる 1999/1/12-15:17
記事番号1031へのコメント
皆さんお忙しい中素敵なヒントを有り難うございます。
and応援歌まで頂いちゃって・・・
今頑張って項目を一つ増やす方法でやってみています。
なんとか上手く行きそうです。
一括処理がちょっと怪しいのですが・・・
また不思議な質問を出すと思いますが優しい気持ちで見守ってやって下さい。
スマートな一括処理より確実な一括処理目指して頑張ります(笑)

1355 フォームを使って今入力した分だけをレポート印刷したい 1999/2/17-05:36
はじめまして。。。

過去のBBSであつた、
「フォームを使って今入力した分だけをレポート印刷したい」の件について、
「伝票オブジェクトの対象表には「販売.TBL」が設定されており、リンクの設
定→リンク項目では、レポートの表の項目、オブジェクトの表の項目ともに[伝票N
O]を設定しておきます。」という記述がありますが、
リンクボタンがクリツク出来ません。
ちなみに、フォームは、明細ぺージのみです。
1357 Re: 幅田 1999/2/17-09:03
記事番号1355へのコメント
ファイル属性→対象表
オブジェクトの属性→対象表
の両方に表のファイル名が設定されていないと、リンク設定のボタンは押せません。

明細ページに貼り付ける[伝票NO]のオブジェクトは1レコード1枚で印刷される
ため、表の操作で伝票番号単一化を設定しておきます。
また、伝票オブジェクトでは、その[伝票NO]に対応する複数レコードの明細が
印刷されるようにするため、ファイル属性での対象表の[伝票NO]と伝票オブジェクト
での対象表の[伝票NO]とをリンクで関連づけておきます。

戻る