2011-01-19 8 views
0

iam VFP 9.0を使用しています...私が知りたいのは、フォームのコンボボックスを変更してレポートの内容を変更する方法です。またはレポートで選択して句を使用することができ...任意の助けいただければ幸いです:)明確化のためVFP - フォームからのコントロールレポート

EDITED(コメントごとの代わりに、直接の質問に追加)

+-----------------+  +-------------------------+ 
| Contract Form |  | Invoice Form   | 
|     |  |       | 
|     |  | radioCustomer   | 
| btnInvoiceForm -------> | comboCustomersList | 
+-----------------+  | radioContract   | 
          | comboContractsList | 
          |       | 
          | btnPreviewReport  | 
          +-------------------------+ 

私は上をクリックした場合プレビュー・インボイス・ボタンは、顧客ID(FK)がコンボ・ボックスから選択されたIDまでの契約テーブルのすべてのレコードを表示します。

ラジオボタンから契約を選択した場合、契約コンボボックスが機能し、契約IDのリストが表示され、レポートが実行され、契約テーブルのレコードが表示されます。契約ID =コンボボックスから...

+0

あなたの質問はあまりにも一般的です。あなたは現在のコンテンツの例とそれについて何を変えたいのですか?特定の顧客ごとにコンテンツを変更したいですか?特定のタイプのトランザクション?何が... – DRapp

+0

@DRapp、あなたに感謝し、遅く返事を申し訳ありません。私は誰もが私を放棄したと思っていた....これは私がしたいことです。私は契約テーブルに接続されている契約書式を持っています。そのフォームには、別の小さな請求書フォームを実行するためのボタンがあります。請求書フォームには2つのラジオボタン(顧客と契約)と2つのコンボボタン(顧客のリストと契約IDのリスト)が含まれています。今、もしあなたがラジオボタンから顧客を選んだら、契約を選ぶことはできません。 – BFK

+0

と入力してから、コンボボックスを有効にして使用できます。顧客IDのリストが表示され、1つが選択されます。顧客ID(FK)がコンボボックスから選択されたIDのところにある契約テーブルのすべてのレコードを表示するかどうかをクリックすると「プレビュー請求書」ボタンが表示されます。 – BFK

答えて

0

それぞれのラジオボタンのコンボボックスコントロールが有効/無効になっているフォームのレイアウトを分かりやすくするためにメッセージを編集しました。私は、それぞれのコンテンツを表示しているにもかかわらず、2つの異なるレポートを作成し、ラジオボタンの設定に基づいてそれぞれを呼び出す必要があると思います...「btnPreviewReport」オブジェクトのCLICKイベントなど...私は、 ...

if not empty(Thisform.radioControl.radioCustomer.Value) 
    */ Customer radio button was selected 
    xCustomerID = comboCustomersList.Value 

    */ Run your Query 
    select ... from YourTable where ... into cursor C_SampleCustomerData 

    */ Run the report 
    report form YourCustomerReport preview 

else 
    */ Contract radio button was selected 

    */ Customer radio button was selected 
    xContractID = comboContractsList.Value 

    */ Run your Query 
    select ... from YourTable where ... into cursor C_SampleContractData 

    */ Run the report 
    report form YourContractReport preview 
endif 

また、私はあなたの記述から最高の形を試みました。

EDIT - 二コメント明確化...

彼らはデータ環境内の任意のハードDBF()を事前に必要としないでVFPでレポートのいいところ。しかし、データフィールドに、期待しているAlias.Field参照を設定するとよいでしょう。だから、...お客様のレポートのデータのご照会は、常に同じ期待されるエイリアスの結果を持っていなければならない場合

ex: 
// pre-close in case the alias we want was already left open previously 
use in select("C_CustomerResults") 
select c1.*; 
    from YourCustomerTable c1; 
    where c1.ID = SomeChosenID; 
    into cursor C_CustomerResults readwrite 

Then, in your report, have all your fields to something like 

C_CustomerResults.FirstName 
C_CustomerResults.LastName 
C_CustomerResults.OtherField 

この例では、そうでない場合は、長いエイリアス名を使用していますが、ちょうど取扱いの明確化のため。

私はあなたの「契約」の結果のエイリアスに似ています。そのエイリアスが使用されている限り、使用中の現在のテーブルが何であれ、レポートは実行されます。他の準備は必要ありません。レポートに必要なデータ環境設定はありません。

レポートのデータを事前に照会することで、レポートのレイアウトを「荒くする」ことができます。次に、フォームを完成させてクエリを実行し、レポートを表示すると完了です。

EDIT - 改訂されたコメントのフォローアップを再び

はい...あなたの顧客の複数の行を持つインボイス、同じもののために...しかし、あなたのレポートには、あなただけで一度表示したいもののために、ヘッダーバンドを持っていますページの上部、インボイスの "各広告申込情報"のコンテンツを表示する詳細バンド、および合計を表示するレポートフッターがあります。複雑さによっては、レポートに「データグループ」を追加することもできますが、ここから始めてください。あなたが足を伸ばす前に、最初に働いているものであなたの足を濡らす必要があるように思えます。

VFPが開発プラットフォームの場合、VFPの専任エキスパートが常にいる別のWebサイトはwww.UniversalThread.comにあります。彼らはまた、他のフォーラムをサポートしていますが、VFPでは、彼らは1日に100以上の質問を投げます...

+0

コードは意味を持ちますが、レポートにはデータを選択したカーソルについてのレポートがどのようになっていますか...レポート自体で何をしなくてはなりませんか?ありがとうalot :) – BFK

+0

うーん...次の私は理解していない、このコードはどこに行くのですか? //先にエイリアスがすでに開かれている場合には、先に閉じておいてください。 select( "C_CustomerResults")で使用します。 select c1。*; YourCustomerTableの c1; ここで、c1.ID = SomeChosenID; into cursor C_CustomerResults readwrite))iam申し訳ありませんが、foxproであまりよくありません – BFK

+0

OK、これは契約請求書のために働きました。私が必要とするのは1つのレコードですが、顧客請求書では、報告する。何か案は? – BFK

関連する問題