過去ログ
キーワード 条件 表示

縮小して全体を表示  あきお - 2006/02/03(Fri) 18:37 No.1584

文字数によってフォントサイズを変えることによって、
決まった範囲に印字させる方法を探しています。
Excelであれば「縮小して全体を表示」にて自動的に出来るのですが、
クリレポでは出来ませんよね。
ほぼ初心者なのでテクニックがありません。
このような設定をしたい項目が沢山あります。
どのようにすルノがスマートでしょうか?
Re: 縮小して全体を表示  あきお - 2006/02/03(Fri) 19:18 No.1585

全然関係ないことなのですが、グローバル変数の使い方が分かりません。
これも教えていただだけませんでしょうか?

Re: 縮小して全体を表示  NZ-000 - 2006/02/03(Fri) 23:44 No.1586

クリスタルレポートには条件付き書式設定というものがあります。
例えば、配置したフィールドを選んでフィールドの書式設定を開きダイアログを表示すると
様々な項目の横に「x+2」みたいな名前のボタンが見えると思います。
このボタンをクリックして表示されるウィンドウはその項目の設定を動的に切り替える式を記述するものです。
(それくらい知ってるって場合は申し訳ないです)

>文字数によってフォントサイズを変える
例えばこれを行うには次のような手が考えられます。
フォントサイズを設定する項目にもこの「x+2」というボタンがあるはずです。
ここでフィールドに表示される値の文字数を取得して、文字数に応じてフォントサイズを変更する
条件式を書きます。

>グローバル変数の使い方が分かりません。
このグローバルというものですがクリスタル構文で用いる変数スコープのことを指しているのでしょうか。
だとしたら他の変数スコープであるSharedやLocalといったものに関してはわかっていらっしゃるのですか?
それとも変数自体の使い方について言っているのでしょうか。

ふーむ、
何にしても最初の質問からちと曖昧すぎていまいち何がわからなくて何を知りたいのかわかりません。
例えばクリスタルレポートの使い方を教えてといわれてもすべてを答えることは無理です。
もう少し自分のわからないところを整理しましょう。

バージョンアップしたところ。  なし - 2006/02/02(Thu) 18:43 No.1582

クリスタルレポートを9から11にバージョンアップしたところ、
印刷できなくなりました。
コンポーネントや参照設定に問題があるのでしょうか。
クリスタルレポート11の参照設定に設定したいのですが、11には.ocxがありません。
Re: バージョンアップした...    - 2006/02/03(Fri) 14:11 No.1583

質問がアバウト過ぎます。
印刷がエラーになるのか、印刷に行ってるように見えるけど出てないのか、
それ以前に動かないのか、それによって違うのではないですか?

あと、CRをどのように使用しているか(開発環境など)も
明示しないと、答えられるものも答えられません。

アンダーレイについて  noromi - 2006/01/27(Fri) 11:10 No.1477

はじめまして
いつも参考にさせていただいています。
すべてにおいて初心者ですのでわかりにくいかもしれないのですがよろしくおねがいします。
CrystalRportsXIを使用しています。

ページヘッダ  タイトル1  タイトル2  タイトル3

グループヘッダ  (空)

詳細          値1     値2     値3

グループフッタ                           値3のグループ合計

という感じのデザインで、詳細セクションの続くセクションをアンダーレイに設定しました。
が、設定してもしなくても結果が変わらないので困っています・・。

出力したいのは・・

タイトル1  タイトル2  タイトル3
  1,000    2,000    1,500
   500     900    1,000
  1,200    1,000    1,500  4,000
   5,00     800    1,000
  1,000    3,000    2,000  3,000

のような感じに出したいのですが・・どうもうまくいきません
アンダーレイをするには他にも何か設定が必要なのでしょうか??
どうかよろしくお願いします。
Re: アンダーレイについて  24x7 - 2006/01/28(Sat) 01:39 No.1484

詳細セクションは期待したようには動作しませんね。
アンダーレイは諦めて、積算集計フィールドを利用してはどうですか。

デザインイメージは以下のようになります。

ページヘッダ  タイトル1  タイトル2  タイトル3
グループヘッダ  (空)
詳細         値1     値2     値3        「値3の積算合計フィールド」

積算合計フィールドでは、以下のように選択します。
「集計するフィールド」・・・値3
「集計のタイプ」・・・合計
「評価」・・・各レコードごと
「リセット」・・・グループの変更時(グループで利用しているフィールド)

この積算合計フィールドを詳細セクションに挿入して、フィールドの書式から「非表示」の条件式に以下の式を挿入します。「非表示」のチェックは不要です。
WhilePrintingRecords;
{値3のフィールド}=Next({値3のフィールド})
Re: アンダーレイについて  noromi - 2006/01/30(Mon) 08:51 No.1526

教えていただいてありがとうございます!
さっそくやってみたら期待通りの結果になりました!!
本当にありがとうございます!!
Re: アンダーレイについて  NZ-000 - 2006/01/30(Mon) 10:12 No.1529

横やりすいません。

>さっそくやってみたら期待通りの結果になりました!!
本当に期待通りなんでしょうか。

>WhilePrintingRecords;
>{値3のフィールド}=Next({値3のフィールド})

この式についてなんですが、意味は
「現在のレコードの値3と次のレコードの値3を比べて、等しかったら積算合計フィールドを非表示にする」
と読めます。これだと以下のような例の場合、全部の詳細に積算合計フィールドが表示されてしまうのではと思うのですがいかがなものでしょう。
タイトル1  タイトル2  タイトル3
  1,000    2,000    1,500
   500     900    1,000
  1,200    1,000    1,500  4,000
   5,00     800    1,000
  1,000    3,000    2,000  3,000

グループの最後のレコードであることを判断できる式でないとだめな気がします。
といってもぱっと手段は思いつきませんが。
私の勘違いなら申し訳ないです。
Re: アンダーレイについて  24x7 - 2006/01/31(Tue) 05:54 No.1536

NZ-000さん、ご指摘ありがとうございます。
レポートのデザイナで動作確認してから書いたのですが、書き間違いしたようです。

WhilePrintingRecords;
{グループで利用しているフィールド}=Next({グループで利用しているフィールド})

Re: アンダーレイについて  noromi - 2006/01/31(Tue) 08:52 No.1547

あ!そうです!そういえば少し変えました・・。
グループを判断しているレコードにしました。

NZ-000さん、24x7さんありがとうございました!

表示、非表示の切り替え  山男 - 2006/01/26(Thu) 14:27 No.1468

はじめまして私は山男と申します。
教えていただきたいことがあります。
ページヘッダに条件によって線を表示したり非表示したりを制御したいのですが
可能なのでしょうか。
線(line8)のプロパティにSuppressがあったので
式フィールドに
if 条件
    line8.suppress = false
って書いてみたんですがエラーになります。
まだ、くりれぽを始めたばかりでよくわかりませんので
宜しくお願い致します。
開発環境は .NET C#です。

Re: 表示、非表示の切り替え  NZ-000 - 2006/01/27(Fri) 08:22 No.1472

こんにちはNZ-000です。

CrystalReportsでは線オブジェクトに対して条件付き書式設定を行えません。
つまり、

>ページヘッダに条件によって線を表示したり非表示したりを制御したいのですが
>可能なのでしょうか。

無理です。

なので、セクションを分けて、そこに線オブジェクトだけを配置し、セクションの設定で表示・非表示を切り替えれば擬似的に可能となります。
もし他のオブジェクトと同じ行に線オブジェクトを配置したい場合は、前のセクションで「続くセクションをアンダーレイ」にチェックすればよいと思います。
Re: 表示、非表示の切り替え  山男 - 2006/01/30(Mon) 10:11 No.1528

はじめましてNZ-000さん。
教えて頂いた方法でやってみます。
有難うございました。


複数グループでの改ページについて  海田 - 2006/01/26(Thu) 18:21 No.1469

いつも参考にさせて頂いております。
開発環境は VB.NET2003 付属のクリスタルレポートです。


改ページ時に、不要なグループヘッダーが表示されてしまい
非常に困っております。

グループヘッダー#1      グループ#1内の詳細件数
 グループヘッダー#2      グループ#2内の詳細件数
  グループヘッダー#3      グループ#3内の詳細件数
   グループヘッダー#4      グループ#4内の詳細件数
     詳細
     ・
     ・
     ・
   グループフッター#4
  グループフッター#3
 グループフッター#2
グループフッター#1


上記のように帳票デザインを行いました。


・クループヘッダー(#1〜#4)は毎ページ必要な為、グループの変更オプションにて
 「ページごとにグループヘッダーを出力」にチェックを入れる。


・グループフッター(#1〜#4)での表示はありません。


・グループ#3ごとに改ページをする為、セクションエキスパートにて
 「出力後に改ページ」にチェックを入れる。


帳票出力を行うと
グループ#1の内容が変わった後の帳票に、前ページのグループヘッダー#1が表示されてしまいます。
以下のように出力されます。


(グループ#1が A→B に変わったとする)


A      Aの詳細件数
B      Bの詳細件数
 グループヘッダー#2      グループ#2内の詳細件数
  グループヘッダー#3      グループ#3内の詳細件数
   グループヘッダー#4      グループ#4内の詳細件数
     詳細
     ・
     ・
     ・


どなたか、対応方法を宜しくお願い致します。

Re: 複数グループでの改ペ...  NZ-000 - 2006/01/27(Fri) 10:31 No.1476

こんにちは、NZ-000です。
>グループ#3ごとに改ページをする為、セクションエキスパートにて
>「出力後に改ページ」にチェックを入れる。

グループ#3のフッター、ヘッダーどっちにですかな。
フッターなら期待通りになりそうな気もしますが。

この調子でいくとグループ#2が変更した際にも同様のことが起こるのですかな。
ふむむ、むずかしいですな。
Re: 複数グループでの改ペ...  海田 - 2006/01/27(Fri) 12:21 No.1479

ご返信ありがとうございます。

>グループ#3のフッター、ヘッダーどっちにですかな。
フッターにチェックを入れています。

>この調子でいくとグループ#2が変更した際にも同様のことが起こるのですかな。
同じことが起こります・・・

ちなみに
グループ#2のフッターにて「出力後に改ページ」にチェックを入れると
グループ#1ヘッダーは出てこなくなりますが、
グループ#4のフッターにて「出力後に改ページ」にチェックを入れると
グループ#1ヘッダーとグループ#2ヘッダーが無駄に表示されてしまいます。

1つ上位のグループは終了を認識しているが
それ以上になると、まだグループ内の出力を続けようとしている?
といった感じです。
Re: 複数グループでの改ペ...  NZ-000 - 2006/01/27(Fri) 17:58 No.1481

とりあえず、こちらで同じデザインを作って再現しようとした結果、
そのような現象は起こりません。

なので原因もちとわかりかねます。

他に特殊なことはしていませんか。

グループ内件数をグループヘッダーで取得しようとしているところとか、かなり謎いです。
Re: 複数グループでの改ペ...  海田 - 2006/01/29(Sun) 01:31 No.1525

>他に特殊なことはしていませんか。
特殊な事かどうか分かりませんが
全ての出力項目は式フィールドになっています。
(指定型データセットの定義に変更があった場合
デザイン上に配置したフィールドが消去されるのを防ぐ為)
設定では、セクションエキスパートにて
・「まとめて表示」のチェックは全てのセクションで、なしに設定
・「空セクションの非表示」のチェックは全てのセクションで、ありに設定

>グループ内件数をグループヘッダーで取得しようとしているところとか、かなり謎いです。
グループヘッダーにて集計フィールド(詳細の件数)を追加すると
自動的にフッター部に配置されました。
そのフィールドをヘッダー部分に貼り付けただけです。
各グループ件数結果が正しく出力されているので
問題視していませんでしたが・・・手法として一般的かどうかも判断できません。
申し訳ないです。

Re: 複数グループでの改ペ...  NZ-000 - 2006/01/30(Mon) 09:37 No.1527

理由がわかりましたので先に説明しておきます。
グループ#3のフッターで改ページすることにより、グループ#1およびグループ#2のフッターが次のページに表示されることになります。次のページに表示されるタイミングはグループ#3より上位のグループの値が変更されたときです。

//例えばグループ#3の値がA→Bに変更された場合、
//------------------1ページ目---------------------
グループヘッダー#1_A
 グループヘッダー#2_A
  グループヘッダー#3_A
   グループヘッダー#4_A
    詳細
   グループフッター#4_A
  グループフッター#3_A
//------------------2ページ目---------------------
グループヘッダー#1_A     //←本来表示されない部分
 グループヘッダー#2_A    //←本来表示されない部分
  グループヘッダー#3_B
   グループヘッダー#4_B
    詳細
   グループフッター#4_B
  グループフッター#3_B

//上記では理想の動きをしますが
//グループ#1の値がA→Bに変更された場合、
//改ページして表示されなかった前レコードのグループフッター部分が先に表示され、
//なおかつページ毎にグループヘッダーを表示する機能により、
//前レコードのヘッダーが表示されてしまいます。
//------------------3ページ目---------------------
グループヘッダー#1_A
 グループフッター#2_A    
グループフッター#1_A
//------------↑ここまでで1レコード分
グループヘッダー#1_B
 グループヘッダー#2_B
  グループヘッダー#3_C
   グループヘッダー#4_C
    詳細
   グループフッター#4_C
  グループフッター#3_C
  

まあ理由はどうあれ、現象を回避するにはグループ#1の値が変更されたときだけ、次のページにグループ#1のヘッダーを表示しないようにすればいいわけです(グループ#2も同様)。

しかし、その仕組みを考えるのはめんどくさいので、提案としとして、ページ毎にグループヘッダーを表示するのをやめ、グループ#4のヘッダーに他のヘッダーで表示するフィールドを全部おしこめちゃうのはどうですか?件数カウンターをまとめるのはまずいですが表示だけなら問題ないはずです。

定型フォームの帳票  クリスタルレポーター - 2006/01/27(Fri) 01:15 No.1471

最近業務で業務でVB6でCrystalReport10を使用して作業をしております。
DBはACCESSです。
定型フォーム(明細も罫線区切り)をCrystalReportで作成してその上に明細を出力するというような帳票を作成しようとしているのですが、レコードの件数によっては
した部分の出力位置が上下してしまいます。ページ途中でデータが終了してしまうような場合にはそれ以降は空白が出力されるようにしたいのですが、何か良い方法はありますでしょうか。
現在は、DBを調整するような方法で作業しています。

Re: 定型フォームの帳票  NZ-000 - 2006/01/27(Fri) 08:35 No.1473

こんにちはNZ-000です。

「した部分」って何でしょう。レポートフッターのことですかな?
セクションエキスパートでは各セクションに対して「ページ下部へ出力」というチェック項目を設けています。こいつで希望通りになりませんか?
Re: 定型フォームの帳票  クリスタルレポーター - 2006/01/27(Fri) 09:28 No.1475

回答ありがとうございます。
「した部分」は確かに、レポートフッター、ページフッターのことです。
NZ-100さんのご指摘通りフッターの部分はそれで実現可能かと思われるのですが
詳細の部分は先に書いたとおり途中で明細が終了してしまったときも、それ以降も
罫線で区切られた空白行を出力したいのです。
何か良い方法はありますでしょうか。
Re: 定型フォームの帳票  NZ-000 - 2006/01/27(Fri) 18:00 No.1482


あぁそーいうことですかあ。そーいう空行を出力するような機能はないかもしれません。

定型ということは1ページに何行表示するとかも決まってるってこですよね。
以下のようにするしかないのかもしれませんね。

1.グループヘッダーで、1ページ分のフォームを作成します。
2.グループヘッダーの「続くセクションをアンダーレイ」をチェックして詳細セクションとマージします。
3.あとはフォームに詳細セクションのフィールドがうまく収まるように位置を調節します。

ページの参照について  いっき - 2006/01/17(Tue) 17:10 No.1426

はじめまして、いっきと申します。

現在VB4+Crystal Report8からVB6+Crystal Report11への変換作業の
方を行っています。Crystal Report11のリファレンスガイドとこちらを参考
にさせて頂いています。

簡単なことかもしれませんが、レポートの最初と最後のページを
参照する方法がわからず詰まっています。

ご存知の方いましたらご教授お願い致します。
よろしくお願いします。

Re: ページの参照について  NZ-000 - 2006/01/18(Wed) 10:36 No.1427

こんにちはNZ-000です。

出力状況関数のPageNumberとTotalPageCountを利用すればできます。

例えば以下の式を利用するとレポートの最初と最後のページで真を返し、それ以外では偽となります。
/////////////////
WhilePrintingRecords;
(PageNumber = 1)
or
(PageNumber = TotalPageCount);
////////////////
Re: ページの参照について  いっき - 2006/01/18(Wed) 13:14 No.1431

NZ-000さん、ご回答ありがとうございます。

If CRViewer1.GetCurrentPageNumber = TotalPageCount() Then
    現在のページが最後のページだった場合の処理
END IF

と試してみたのですが
TotalPageCountでSub、またはFuctionが定義されていません
とエラーが出てしまいました。

何か足りない or 使い方が間違っているのでしょうか?
よろしくお願いします。
Re: ページの参照について  NZ-000 - 2006/01/18(Wed) 14:22 No.1432

上記のサンプルコードはCrystalReports上でのみ使用することができます。

残念ながらCrystalReportViewerに総ページ数を取得する機能はありません。
つまりプログラム側から直接総ページ数を取得することはできないと思われます。

なのでどうしても総ページ数が知りたければ次のようにするしかないでしょう。

例1.ビューアのShowLastPageメソッドを使って最後のページに飛び、そこでGetCurrentPageNumberメソッドによりページ数を取得する。
Re: ページの参照について  いっき - 2006/01/18(Wed) 17:24 No.1433

例1の方法で解決しました、ありがとうございます。
Re: ページの参照について  msat - 2006/01/27(Fri) 11:50 No.1478

失礼いたします。

私は次のような方法でページ総数を取得しています。
環境は,CrystalReports10(SP4)+VB.NET2003+SQLServer2000(SP4)+WIndows XP Pro(SP1)
レポートは"埋め込み"です。

Dim rDoc As New ReportFile 'レポートのインスタンス
Dim intPages As Integer

'CrystalReportが返す全ページ数を得る
intPages = rDoc.FormatEngine.GetLastPageNumber(New CrystalDecisions.Shared.ReportPageRequestContext)

出典:
"How to retrieve the number of pages from a ReportDocument in VS .NET"
http://support.businessobjects.com/library/kbase/articles/c2013559.asp?ref=devzone_net_archive
条件:
Logon and parameter field values must be provided prior to executing this code.
とあります。
実際にやってみると、最後のページ番号を取得できます。
ただ、私の場合は開発環境と運用環境とでログオンアカウントが異なるため、ログオンまわりをきちんとしないと、上記メソッドの行で例外が発生します。

Re: ページの参照について  NZ-000 - 2006/01/27(Fri) 17:54 No.1480

msatさんどうもです。

これはすばらしい方法ですね。

ReportDocumentクラスにFormatEngineプロパティがあるなんてどこにも書いてないんですがねぇ。
コンパイルできたときはびっくりでした。

有用な情報でした。

PaperSizeについて  ひで - 2006/01/25(Wed) 22:25 No.1465

現在CrystalReportを業務で使っており、このサイトを大変参考にさせて頂いてます。


開発環境は、
・Microsoft Visual Basic .NET
・CrystalReport10  (バージョン:10.0.0.533)
・ORACLE 10G
を使用しています。


現在、クリレポに専用紙を設定して、プレビューを出力し、印刷させたいと思っています。
プリンタは、NEC MultiWriter3300Nを使用しています。
サイズは、『封筒 洋形4号』に設定しています。
クリレポ上のプリンタの設定は、用紙サイズ、出力サイズともに『封筒 洋形4号』を指定しています。
(通常使うプリンタもNEC MultiWriter3300Nで、用紙サイズ、出力サイズともに『封筒 洋形4号』を指定しています。)


ですが、普通にVB.NETでプレビューを出すと、用紙サイズがLetterになってしまいます。
ソース上で、用紙サイズを指定しようと思い、
ReportDocumentのプロパティで、PrintOptions.PaperSizeを指定しようとしたところ、
『封筒 洋形4号』(105×235)のサイズが、ありません。
このサイズがうまく送れてないので、Letterになってしまうのかなと思うのですが・・・


ちなみに、プリンタに設定したデフォルトサイズを使用しようと思い、
PrintOptions.PaperSize.DefaultPaperSizeを指定すると、
これも、Letterになってしまいます。


ReportDocumentのプロパティの、PrintOptions.PaperSizeを
縦・横自由に設定し『封筒 洋形4号』で、用紙サイズを初期表示できる方法がありましたら
どうか、教えていただけないでしょうか?


どのような、アドバイスでも構いませんので、よろしくお願いいたします。


無題  バス - 2006/01/17(Tue) 15:07 No.1423

はじめまして。バスともうします。
いつも参考にさせてもらっています。

現在、Visual Studio .Net 2003(C#) + Crystal Report9でWindowsアプリケーションを開発中なんですが、セットアッププロジェクトでインストーラを作成し.NET Framework 1.1が入っているPCに配布したのですが、クリスタルレポートプレビュー画面を実行しようとすると「Load crpe32.dll failed」というエラーがでてしまいます。

セットアッププロジェクト作成時に、
・Crystal_Database_Access2003.msm
・Crystal_Database_Access2003_jpn.msm
・Crystal_Managed2003.msm
・Crystal_Managed2003_JPN.msm
・Crystal_regwiz2003.msm
・VC_User_CRT71_RTL_X86_---.msm(ADO.NETを使用した場合、必要となっていたため)
・VC_User_STL71_RTL_X86_---.msm(ADO.NETを使用した場合、必要となっていたため)
のマージモジュールを追加し、
Crystal_Database_Access2003.msm
Crystal_Database_Access2003_jpn.msm
Crystal_Managed2003.msm
Crystal_Managed2003_JPN.msm
Crystal_regwiz2003.msm
についてはhttp://support.businessobjects.com/fix/merge_modules.asp#04
より最新を取得しました


解決方法をご存知の方がいらっしゃいましたらご教授ください。
よろしくお願いします。
Re: 無題  24x7 - 2006/01/21(Sat) 09:55 No.1453

Merge Module も色々あるので、正しいものをダウンロードしているか確認してみてください。製品版Crystal Reports 9 と .NET2003 の組み合わせですよね。
http://support.businessobjects.com/fix/merge_modules.asp#01 じゃないですか。

Re: 無題  バス - 2006/01/25(Wed) 11:34 No.1464

24x7さん、ご返信ありがとうございます。
せっかくなのに申し訳ないんですが結局、ご回答をいただく前にCrystalReport 9をアンインストールして、Visual Studio .Net 2003を入れなおして対処することになりました。こうしたのには、他にも訳がありまして、現在のプロジェクトメンバーの中で私だけCrystalReport 9のバージョンを使用しているため、いろいろと不都合があったので変更しました。
あー、でも、せっかく情報を頂いたのでテストしてみたいのですが、試す環境がないので出来ません。かなり気になります。
ただ、今後同じような環境で開発をする機会もあるかと思いますので、活用させていただきます。
今後ともよろしくお願い致します。
ありがとうございました。

サブレポートでクロス集計の2ページ目が表示されない  ぺそまる - 2006/01/23(Mon) 13:33 No.1455

VS.NET2003+CrystalReportXIで
Webアプリケーションを作っています。
クロス集計表の2ページ目が表示されなくて困っています。

クロスタブを1つずつ配置したレポートが3つあります
(A・B・C)。
メインのレポート(D)に
A・B・Cをサブレポートとして配置しています。
A・B・Cのクロス集計で列が多くて2ページにまたがった場合、
DのサブレポートAの部分には1ページ目しか表示されず、
2ページ目が表示されません。

同じようなレポートを作成された方、
解決策やヒントなどありましたら、教えてください。
Re: サブレポートでクロス...  24x7 - 2006/01/24(Tue) 09:09 No.1457

Crystal Reports XI のデザイナ環境でもサブレポートのクロス集計の2ページは表示されませんでした。メインレポートのクロス集計は2ページ目は表示されました。
Re: サブレポートでクロス...  ぺそまる - 2006/01/24(Tue) 10:59 No.1459

サブレポートを配置するセクションを変えたり、
いろいろ試してみたのですが、
やはりサブレポートのクロスタブは
2ページ目を表示できないようですので、あきらめます。
24x7さん、ありがとうございました。

CrystalReportの文字列の折返しについて  クリレポ初心者 - 2006/01/19(Thu) 10:46 No.1436

[OSのVER]:WindowsXPSP2
[VBのVER]:.Net

はじめまして。
今現在 .NET+CrystalReportXI で開発をしております。

半角カナ、記号、英数字等等混在したフィールドを式フィールドで
連結し、折り返して表示しようと思うのですがデータを出力すると
表示領域は確保してあるにもかかわらず、データが途中までしか
出力されないという事象が発生しています。

例)
[連結データ] 
"レポート" & "(TEST0126)"

[表示結果] MS ゴシック 10.5Pで表示
レポー
ト(TEST0126)

っと折返しの位置がおかしくなっています。
色々と調べてみたのですが、文字ピッチの問題やら、バージョンの違い
など原因はいくつかあるようなのですが、どの質問でも解決まで至って
いません。
どなたかご存知の方いらっしゃいましたら、解決方法を教えてください。
よろしくお願いいたします。

Re: CrystalReportの文字・..  NZ-000 - 2006/01/19(Thu) 11:04 No.1437

もろ↓にありますね。同様の内容のものが。

No.1410です。
Re: CrystalReportの文字・..  クリレポ初心者 - 2006/01/24(Tue) 09:04 No.1456

NZ-000 さんはじめまして。
回答ありがとうございました。
その書込は私も確認していますが・・・他に方法はないものかと思って質問をあげました。
USP10.DLLは、クリレポと比較したOffice2003でも同じだったのですが、改行位置はお互いのソフトで違っていたので、結局参考にあったような文字列を行単位に物理的に表示するようにプログラムを組む方向で対応しようと思います。
折返しに個々までてこずるとは思いませんでした・・・
ありがとうございました。
Re: CrystalReportの文字・..  NZ-000 - 2006/01/24(Tue) 10:19 No.1458

ちゃんと確認しましたか?
Win2kのUSP10.DLLが正しい?動作をするようですよ。

ページの指定について  いっき - 2006/01/19(Thu) 11:08 No.1438

いつも参考にさせてもらっています。

VB6+Crystal Report11で現在開発しています。

ページ範囲を指定してプレビューを出したい。
ReportオブジェクトのPritnOutメソッド等で試してみたのですが
うまく出力されずに困っています。
1〜10ページ出る帳票で2〜3ページ目だけ出力すると言うことは
可能なのでしょうか?

存知の方いらっしゃいましたら、解決方法を教えてください。
よろしくお願いいたします。
Re: ページの指定について  NZ-000 - 2006/01/19(Thu) 19:25 No.1444

こんにちはNZ-000です。

>ページ範囲を指定してプレビューを出したい。
>ReportオブジェクトのPritnOutメソッド等で試してみたのですが
>うまく出力されずに困っています。
>1〜10ページ出る帳票で2〜3ページ目だけ出力すると言うことは
>可能なのでしょうか?

この文面からは二つの要望が読み取れます。
一つ目はページ範囲を指定してプレビューしたい。
二つ目はページ範囲を指定して印刷をしたい。

なので、前提条件であるページ範囲を指定しないでのプレビュー及び印刷はできているものと思って話を進めます。

さて、一つ目に関してですが、プレビューとはレポートオブジェクトの持つデータを
レポートのデザインに従って表示するだけの動作を指します。
実際にプレビューするまで何ページになるのか求めることはできませんので、これはちょっと無理かと思います。ビューアにもその機能はありません(.NETでの話)。
だからページ指定でプレビューしたいなら、プレビューしてから、あらかじめ指定した範囲内のページしか見れないように自分で実装するしかないでしょう(それしか思うつかない)。

二つ目に関してですが、PrintOutメソッドにページ範囲を指定できるオプションがあるようですができませんか?
印刷ダイアログを表示できるようですがダイアログで指定できないのですか?
うまく出力されないってどういう状況でしょう。

VB6は手元にないし触ったこともないのでこれくらいしかアドバイスできなくて申し訳ありません。
Re: ページの指定について  24x7 - 2006/01/20(Fri) 00:08 No.1446

ページ範囲を指定してプリンタへ印刷することは、以下のような記述で可能です。
(記述例)
Report.PrintOut False, , , 開始ページ, 終了ページ

ページ範囲を指定してプレビュー表示することはできません。
但し、以下のような記述を利用することで指定したページのみ表示させることは可能です。それでも、最初の1ページ目は表示されます。
(記述例)
Me.CrystalActiveXReportViewer1.ReportSource = Report
Me.CrystalActiveXReportViewer1.ViewReport
Do While Me.CrystalActiveXReportViewer1.IsBusy
   DoEvents
Loop
'ページ指定
Me.CrystalActiveXReportViewer1.ShowNthPage 4

レポートはすべてのレコード件数(ページ)を処理してから表示するため、途中のページのみ処理することはできません。そのため、最初にすべてのレコード件数(ページ)の処理が終了するまで、ビューアの画面を閉じるような仕組みにしないと駄目だと思います。処理が完了したら、指定のページのみを表示させるとか・・

それ以外にも以下のような記述ができます。
どの指定も最初のページは必ずビューアに表示されます。
(記述例)
'次のページ   
Me.CrystalActiveXReportViewer1.ShowNextPage
'最初のページ    
Me.CrystalActiveXReportViewer1.ShowFirstPage
'最終ページ
Me.CrystalActiveXReportViewer1.ShowLastPage
'前のページ
Me.CrystalActiveXReportViewer1.ShowPreviousPage

あと、上記のいずれかの処理を実行するとビューアはビジー状態になるのでビューアの状態を確認してから次の処理へ進むようにします。

Re: ページの指定について  いっき - 2006/01/20(Fri) 09:10 No.1447

NZ-000様、24x7様、ご回答ありかとうございます。

範囲を指定してプレビューをしたく、質問しました。
わかりづらくてすいません。
CR11には範囲指定してのプレビュー機能がないんですね。
24x7様の方法でうまく機能を実装することができました。
ビジー状態についてですが

Do While Me.CrystalActiveXReportViewer1.IsBusy
   DoEvents
Loop
Me.CrystalActiveXReportViewer1.ShowNextPage

この様に書けばよろしいのでしょうか?

よろしくお願いします。

Re: ページの指定について  24x7 - 2006/01/20(Fri) 09:56 No.1449

上記の記述で問題ないと思います。
それでも、最初の1ページ目は表示されてしまう問題は残ります。
Re: ページの指定について  いっき - 2006/01/20(Fri) 13:34 No.1450

最初の1ページ目はプレビューを表示される前に
 Me.CrystalActiveXReportViewer1.ShowNthPage 1ページ目
で1ページ目を表示させることができました。

ただ

Do While Me.CrystalActiveXReportViewer1.IsBusy
   DoEvents
Loop
Me.CrystalActiveXReportViewer1.ShowNextPage

がビジー状態になった時にページ移動の処理が効かなくなってしまったので
現在調査しています。

Re: ページの指定について  24x7 - 2006/01/20(Fri) 23:32 No.1452

ちょっと期待していた動きと違うように感じます。
以下のコードの場合、ShowNthPageメソッドで1ページ目を指定してもこれが ShowNthPageメソッドの実行で表示されたものか、ViewReportメソッド の実行で表示されたかの区別できましたか?
(記述例)
Me.CrystalActiveXReportViewer1.ReportSource = Report
Me.CrystalActiveXReportViewer1.ShowNthPage 1
Me.CrystalActiveXReportViewer1.ViewReport


例えば、1ページ目以外を指定して試してみてください。
(記述例)
Me.CrystalActiveXReportViewer1.ReportSource = Report
Me.CrystalActiveXReportViewer1.ShowNthPage 5 
Me.CrystalActiveXReportViewer1.ViewReport
Do While Form2.CrystalActiveXReportViewer1.IsBusy
    DoEvents
Loop

その結果、表示されるのは、1ページ目ですよね。
Show○○○メソッドは、ViewReportメソッドの後、ビューアが表示されてから有効なメソッドであると解釈しています。

以下のコードでは、レポートは、正しくページ移動と表示ができました。
(記述例)
Me.CrystalActiveXReportViewer1.ReportSource = Report
Me.CrystalActiveXReportViewer1.ViewReport
Do While Form2.CrystalActiveXReportViewer1.IsBusy
    DoEvents
Loop
Me.CrystalActiveXReportViewer1.ShowNthPage 5 
Do While Form2.CrystalActiveXReportViewer1.IsBusy
    DoEvents
Loop
Me.CrystalActiveXReportViewer1.ShowNextPage
Do While Form2.CrystalActiveXReportViewer1.IsBusy
    DoEvents
Loop


プリンタの指定で例外発生  けい - 2006/01/20(Fri) 23:03 No.1451

VB.NET2003 + CrystalReport .NETで開発しています。

VBで作成した画面にプリンタ選択用のコンボボックスを表示して、
印刷 又は プレビュー時にコンボボックスで選択されているプリンターを
PrintOptions.PrinterNameに設定しているのですが、SHARPの複合機
 のAR-266FP SPDL2を設定すると、例外が発生して設定できませんで
した。プリンタ名は、SHARP AR-266FP SPDL2としています。

何かご存じの方がいらっしゃいましたら、対策を教えてください。
また、同じような現象に遭遇した方はいらっしゃいますか?

無題  HELP - 2006/01/19(Thu) 19:45 No.1445

得意先コード 年月   前残    発生  当残
AAA      2005/12    0   200   300
AAA      2005/11    0     50     0   
AAA      2005/10    0    10     0

上記データの当残、前残を、得意先コードをグループとして
計算させたいのですが、方法をお教え頂けないでしょうか。
マニュアルなど参考にしていますが、どうも答えが出ません。

望む形
----ヘッダー
AAA
----明細
 締日付    前残 発生  当残
 2005/12    100  200   300   ※1 ※2   
 2005/11    50    50   100   
 2005/10    40   10    50   

※1 前残の計算式
   締日付がグループ内で最大の場合は「当残」-「発生」
※2 当残の計算式
    締日付がグループ内で最大ではない場合は、1つ上のレコード
    の「前残」を印字

だれかご支援ください    
Re: 無題  NZ-000 - 2006/01/20(Fri) 09:18 No.1448

わからなくてもつまづいた時点までで結構ですから、自分の考えを示しましょう。
こちらがアドバイスを考えるのに役立ちます。

そうしないとあなたが何がわからいのかわかりません。
それ以前に何にも考えてないんじゃないのかって思われちゃいますよ。

それはさておき、クリスタルレポートはレコード単位で処理するので、レコードをまたぐような処理は非常にやっかいなものとなります。
前のレコードのデータを参照するならまだしも、式フィールドによる前の計算結果をとなると、
その結果をどこかに格納しておくしか手がないと思います。
そこで計算結果を保持する変数を用意し、計算結果を変数に格納しておきましょう。

以下のデザインは何行目かを判断するカウンタ(@明細カウンタ)を設けておき、
1行目、奇数行、偶数行で処理を分けています。
奇数行、偶数行と分けているのは前のレコードの計算結果を現在のレコードの計算結果で上書きしないようにするためです。


[デザイン]

--グループヘッダー1 # 得意先コード--------------------

{得意先コード}         {@明細カウンタの初期化}

----詳細----------------------------------------------

 {締日付} {@前残} {発生} {@当残} {@明細カウンタ} {@奇数前残バッファ} {@偶数前残バッファ}

--グループフッター1 # 得意先コード--------------------



以下は式フィールド

//@明細カウンタの初期化(非表示)
numberVar cnt := 0;

//@明細カウンタ(非表示)
numberVar cnt := cnt + 1;

//@奇数前残バッファ(非表示)
numberVar oddBuf;
if({@明細カウンタ} mod 2 <> 0) then (oddBuf := {@前残}) else oddBuf;

//@偶数前残バッファ(非表示)
numberVar evenBuf;
if({@明細カウンタ} mod 2 = 0) then (evenBuf := {@前残}) else evenBuf;

//@当残
numberVar evenBuf;
numberVar oddBuf;
if ({@明細カウンタ} = 1) then (oddBuf := {当残}) else (if ({@明細カウンタ} mod 2 <> 0) then evenBuf else oddBuf)

//@前残
numberVar evenBuf;
numberVar oddBuf;
if ({@明細カウンタ} = 1) then ({当残} - {発生}) else (if ({@明細カウンタ} mod 2 = 0) then (oddBuf - {発生}) else (evenBuf - {発生}));

※締日付で降順にレコードがソートされているものとしています。

集計のさらに集計  ひろ - 2006/01/18(Wed) 22:10 No.1434

Win2000、VB.NET2003とクリスタルレポートで開発しています。

グループ1セクションで消費税をを求めたフィールドを、
グループ2セクションでさらに合計したいのですが、式エディタで
「このフィールドは集計できません」と、エラーが出てしまいます。
これが仕様だと諦めるしかないのでしょうか。
それとも、コードでもって制御するような方法があるのでしょうか。
Re: 集計のさらに集計  NZ-000 - 2006/01/19(Thu) 08:41 No.1435

例えば、消費税をどのように求めて、そのフィールドをグループ1のどのセクションに置いたのか。
また、集計をどのように行って、そのフィールドをグループ2のどのセクションに置いたのか。

デザインそして手順の見えない第三者に、デザインがイメージできる形で説明をお願いします。

>グループ1セクションで消費税をを求めたフィールドを、
>グループ2セクションでさらに合計したいのですが

これだと単純に考えてグループ番号が若い方が親ですから、グループ2がグループ1の入れ子になりますよね?
フィールドをどこに置いているのかわかりませんが、これまた単純に考えてフッターですかねぇ。となるとデザインは次のようになりそうです。

--グループ1ページヘッダー--------

----グループ2ページヘッダー------
 
------詳細-----------------------

----グループ2ページフッター------
  {#合計}
--グループ1ページフッター--------
  {@消費税}
  
あれれ、これだと消費税計算する前に合計計算しようとしちゃいますよね?
それともグループ2とグループ1が反対なのでしょうか。だとしたら合計はちゃんと計算できそうですが。
その場合計算方法とフィールドを配置する場所が問題になってきそうです。

それと、お題が「集計のさらに集計」となってますが、これの意味がいまいち理解できません。すいません。
後者の集計が「合計」と言われるものだとして、前者の集計ってなんでしょう。「消費税」?でも消費税って普通集計とは言いませんよねぇ。だとすると他の要素がありそうな。

想像力が乏しいのでこれ以上はなんとも・・・
Re: 集計のさらに集計  ひろ - 2006/01/19(Thu) 11:08 No.1439

記述が足らず、又内容も一部間違っており、大変失礼しました。

正確に書きますと、以下の状況です。

グループフッター#2(Section9)に消費税を計算するフィールドを作りました。式は以下の通りです。フィールド名はZEISHと名付けました。

round({税率} * Sum ({DATA_SET.金額}, {DATA_SET.仕入コード}))

この「ZEISH」フィールドを更に、グループフッター#1(Section7)のフィールドで合計しようとしたのです。式は以下のように書きました。

sum({@ZEISH})

このときに[このフィールドは集計できません」と、メッセージが出たのです。

乏しい語彙で申し訳ありません。いくらか分かっていただけたでしょうか。
Re: 集計のさらに集計  NZ-000 - 2006/01/19(Thu) 14:18 No.1440

結論からいって集計をSumでさらに集計することはできません。

クリスタルレポートでは詳細セクションが最も基本の単位であり、ここに配置して表示されるフィールドの値はデータベースの一つのレコード(1行分)に相当します。

つまりレコード単位で参照するといった処理系を実現しているのことになりますが、この処理系に依存しないフィールドがあります。
簡単な例えではテキストフィールドがそれに相当します。また、変数や評価時期を変更する関数などを用いて独自の処理系を組んだ式フィールドなども含まれるでしょう。これらのフィールドはどこからどのように参照するかされるか、またどこでどのように値に変更を加えるかといったことは実装者次第ということになります。
こういったフィールドはレコード単位で値が循環するフィールド(循環フィールド)とは区別して非循環フィールドと呼ばれます。

ちなみに、Sumはレコード単位で一意に識別できるフィールド(循環フィールド)を集計する関数です。
@ZEISHはSumで集計していますが、Sumを使った時点で@ZEISHは非循環フィールドとみなされます。
なぜなら、集計された結果はレコード単位の処理系から逸脱するからです。
(↑全部私の個人的考えですので、まちがっていたら誰かフォローお願いします)

ではどうしたらいいかというとSumを使わずに変数を使いましょう。
//グループ1ヘッダーに以下の式フィールドを挿入
@合計のリセット//非表示にしておく。
WhilePrintingRecords;
numberVar ToltalValue:=0;

//グループ2フッターに以下の式フィールドを挿入
@合計のカウント//非表示にしておく。
WhilePrintingRecords;
numberVar ToltalValue;
ToltalValue := ToltalValue +{@ZEISH}

//グループ1フッターに以下の式フィールドを挿入
@合計の出力
WhilePrintingRecords;
numberVar ToltalValue;


これによりグループ1単位で@ZEISHを集計した結果が表示されます。
Re: 集計のさらに集計  ひろ - 2006/01/19(Thu) 15:23 No.1441

ありがとう御座います、とても感謝しています。

1つだけ、とても基本的なことをお聞きします。教えて下さい。

//非表示にしておく。

この、非表示の仕方が分かりません。プロパティがあるのでしょうか? 馬鹿な質問ですいません。
Re: 集計のさらに集計  NZ-000 - 2006/01/19(Thu) 15:37 No.1442

設定したいフィールドを選択→「フィールドの書式設定」→「共通」タブ→「非表示」チェックボックスをチェックする
Re: 集計のさらに集計  ひろ - 2006/01/19(Thu) 16:11 No.1443

重ねがさね、ありがとうございます。

無題  まみ - 2006/01/18(Wed) 11:21 No.1428

いつも、勉強させていただいています

1つの文字列の中で、2箇所置き換えをしたいのですが
お教え願えませんでしょうか?

データが 35Mx20\35 と 60Kx50\60 の場合
結果が  35M x 20 \35 と 60K x 50 \60
と表示させたかったので

式フィールドを
Replace([文字列データ], "x", " x ")
Replace([文字列データ], "\", " \")
で作成してみたのですが、上手く行きませんでした…

どうかよろしくお願いします。
Re: 無題  NZ-000 - 2006/01/18(Wed) 11:45 No.1429

こんにちはNZ-000です。

どううまくいかなかったのか書いてくださいね。
まぁこれくらいなら想像できますが。
Replace()は文字列置換の機能があるのでこの場合に用いるのは最適かと思います。

>Replace([文字列データ], "x", " x ")
>Replace([文字列データ], "\", " \")

ただし、このようにしただけでは二段階の変換を踏んでいることにはなりません。
変数を用意して一度目の変換結果を代入し、二度目の変換の際にはその変数の値を利用するようにしましょう。

/////////////
stringVar str;
str := Replace([文字列データ], "x", " x ");
Replace(str, "\", " \");
/////////////

変数を使用せずに行う場合
/////////////
Replace(Replace([文字列データ], "x", " x "), "\", " \");
/////////////
Re: 無題  まみ - 2006/01/18(Wed) 13:13 No.1430

NZ-000様、ありがとうございました。

解決いたしました
掲示板への書き込みに慣れておらず、ご迷惑をお掛けしすみませんでした。
(件名も付け忘れていましたし)

機会がありましたら、今後ともよろしくお願い致します。

小数点以下の表示について  しのぶ - 2006/01/17(Tue) 11:16 No.1422

いつも拝見させていただいております。

クリスタルレポート上で、小数点以下の数値があるときは、小数点第2位まで表示し
数値が0の時は小数点以下を表示させないようにしたいのですが
どのようにすればよいのでしょうか?
ご教授お願い致します。

Re: 小数点以下の表示について  NZ-000 - 2006/01/17(Tue) 15:15 No.1424

こんにちはNZ-000です。

「フィールドの書式設定」→「数値」タブ→「ユーザ設定」→「数値」タブ→「小数点以下の桁数」の右のx-2とかいうのをクリックして以下の式を入力する・・・でいけると思われます。
////////////
WhilePrintingRecords;
//指定したフィールドの値が0なら小数点以下桁数を表示しない、0以外なら第2位まで表示
if {フィールド名} = 0 then 0 else 2;
////////////
Re: 小数点以下の表示について  しのぶ - 2006/01/17(Tue) 16:21 No.1425

NZ-000さま、こんにちは。

ありがとうございました、成功しました!
途方にくれていたので、とても助かりました。

無題  ぼんご - 2006/01/11(Wed) 15:33 No.1410

いつもお世話になっております。
VB.net+CR9でWebアプリを作成中ですが、CRで長文のデータを改行させて表示させたいのですが(当然ですが複数行に出力はチェックしてあります)、中途半端なところで勝手に改行されてしまいます。例えば、
「あけましておめでとうございます」
という文章を10文字分程度の幅を持つフィールドに表示させようとした場合、本来なら

あけましておめでとう
ございます      

となるか、あるいはこれに近い形で表示されると思うのですが、文章によっては、

あけましてお     
めでとうございます 

という感じで、まだその行に表示させるスペースがあるにもかかわらず中途半端な位置で文章のつながりにも関係なく改行されてしまいます。
適切に表示される場合もあります。FAQ等も見たのですが、そのような事例の説明はなく、困っています。データ自体は普通の文章で、改行文字等は一切使用していません。原因や回避方法をご存知の方がいらっしゃいましたらご教授くださいますようお願いいたします。
Re: 無題  miyabi - 2006/01/12(Thu) 08:53 No.1412

OSのバージョンによって、改行位置が異なるという情報を見た記憶があります。

Windows2000とXPでは改行位置が異なったような・・・。

クリレポにも適用されるかは定かではありませんが・・。
Re: 無題  NZ-000 - 2006/01/12(Thu) 10:32 No.1414

こんにちはNZ-000です。

参考Webページです。
http://www.agtech.co.jp/support/faq/crystal_reports/CR_all/cr_general/20031106005.html

上記ページで解決しなかった場合。
以下は指定した位置で無理やり改行するサンプルコードです。
式フィールドに記述して使います。
/////////////////
@10文字単位で改行するフィールド
WhilePrintingRecords;
stringVar str;
stringVar res;
numberVar i;

str := {文字列};
// 対象の文字列から1文字づつ抽出します。
for i := 1 to Length(str) step 1 do(
res := res + str[i];
// 10文字単位で改行コード(chr(13) + chr(10))を埋め込みます。
if Remainder(i,10) = 0 then res := res + chr(13) + chr(10) else res;
);

stringVar res;
/////////////////
今考えたので実際にどうなるかはちとわかりません。
プロポーショナルフォントや半角/全角の違いによって思い通りに改行はできないかもしれません。
Re: 無題  24x7 - 2006/01/13(Fri) 08:18 No.1417

USP10.DLL のバージョンの違いで発生することがあります。
Re: 無題  ぼんご - 2006/01/13(Fri) 12:43 No.1419

いろいろとありがとうございました。http://www.agtech.co.jp/support/faq/crystal_reports/CR_all/cr_general/20031106005.html教えていただいた上記を参照し、usp10.dllをWIn2000環境のものを使ってみたのですが、解決されませんでした。ここでは半角と全角が混在している場合とあったのですが、全て全角でも発生してしまいます。ただし、webアプリでcrystal report viewerでは解決されませんでしたが、クリスタルレポート(アプリケーションの)で同様のデータをプレビューさせると適切に改行されていました。usp10.dllをインストールする場所が、webアプリで使う場合と、クリスタルレポートから直接使う場合とでは違うのでしょうか?

Re: 無題  24x7 - 2006/01/14(Sat) 00:42 No.1420

USP10.DLLは、Windows2000/XPのシステムフォルダとMS Officeからインストールされるものがあります。さらにCrystal Reportsが利用するものがあります。それぞれ存在する(参照する)場所は異なります。Webアプリケーションの場合、期待した動作になるUSP10.DLLのバージョンを権限等の問題で参照できないためではないでしょうか。実際にWebアプリケーションを動作した際、どこのUSP10.DLLがメモリにロードされている調べてみてください。
Re: 無題  ぼんご - 2006/01/14(Sat) 13:20 No.1421

24×7さん、大変ありがとうございます。調べてみたところ、同じdllが複数あり、Windows\servispackfile\i386というフォルダのdllを旧バージョンに変えたところ、適切に表示されました。無事解決できました。ありがとうございます。

グループヘッダーのリンクについて  miyabi - 2006/01/12(Thu) 08:51 No.1411

あけましておめでとうございます。
本年もよろしくお願い致します。

以前こちらでお聞きした事で申し訳ないのですが、もう一度お聞かせください。
(No.1386です)

グループヘッダに設定した値に勝手にリンクが付く現象で困っています。
リンク無しに設定してありますが、生成されるリンクは、
どうやら「レポート パーツのドリルダウン」項目のチェックと同等の様です。
詳細に表示されるデータに関しては、リンクは生成されません。

データベースは外部から取得したものを入力しています。(xsdを使用しています)

様々な方法で試しましたが、リンクは消えませんでした。

リンクを消すことは諦めて、情報の先頭にA終了タグを埋め込み、強制的にリンクを外そうと試みたのですが、
この場合、表示されるデータが文字化けします。
(反映される直前まで、データが正常に取得されている事を確認しています)

何か対策はありませんでしょうか。

また、この状況はクリレポの仕様なのでしょうか。(自分の環境がおかしい?)

当方の環境です。
クリスタルレポート:9.2.2.693
OS:Windows2000 Professional
開発環境:VC.NET 2002

何卒、よろしくお願い致します。

Re: グループヘッダーのリ...  miyabi - 2006/01/12(Thu) 10:12 No.1413

一点判明しましたので、ご報告します。
文字化けの件について、どうやらテキスト形式の「HTMLテキスト」を選択した為発生した模様です。
タグの存在有無に関わらず、文字化けが発生しました。

自分の考えでは、表示データにタグ情報が入っていれば、それが反映されると思っていたのですが、
違うのでしょうか。

テキスト形式の条件を次のように設定した場合の結果です。
「なし」を選択)
   <が&lt;に置換された。(>も同様)
   &lt;はそのまま放置。(つまり、どちらにせよ<>は表示される)
「HTMLテキスト」を選択)
   タグ有無に関わらず文字化け

以上より、テキスト形式を「なし」にした場合は、リンクを打ち消せない為使用できない事が判明しました。

HTMLテキスト」の使用方法が間違っているのでしょうか。

[参考資料]
http://www.agtech.co.jp/support/faq/crystal_reports/CR_all/cr_design/20030916002.html

お手数をお掛けしますが、よろしくお願い致します。

Re: グループヘッダーのリ...  miyabi - 2006/01/12(Thu) 11:21 No.1415

さらにご報告です。

式エディタ内にタグを書くことでタグは反映されました。(文字化けは解消していませんが・・・)
試しにbタグで実験したところ、bタグは消去され、スタイルシートに太文字が設定されました。

なので、タグを用いてデータを消去する事は不可能になります。

考えてみたら、セキュリティ上タグが反映する訳ないですよね・・・。

もう少しリンクの削除方法を模索します。

Re: グループヘッダーのリ...  NZ-000 - 2006/01/12(Thu) 13:11 No.1416

こんにちはNZ-000です。

想像の範疇になるのですが、CrystalReportViewerを使ってWebページに帳票を出力しようとなさっているのでしょうか。
だとしたら、私はASP.NETをしようしたことがないのでこれまた想像の範疇になるのですが、そのリンクというのはドリルダウンポインタのことを指しているのかなと思ったり。

ドリルダウンポインタを表示しないようにするには・・・
グループヘッダーの"表示-ドリルダウン不可"をチェックするしか思いつきません。

しかし、これだとグループヘッダーが表示されなくなっちゃいますね。
ちと私には解決策はわかりませんね。

とりあえず、もうこれは打開策になっちゃいますが、
いっそのこと詳細セクションにグループヘッダーもどきを挿入しちゃってみてはどうでしょうか。

やり方は、詳細セクションを二つに分けて一方は今まで通りの詳細を表示するようにします。
もう一方はをグループヘッダーの中身を表示するようにして、グループの一番最初のみ表示するように条件設定を加えておきます。
Re: グループヘッダーのリ...  miyabi - 2006/01/13(Fri) 10:23 No.1418

お返事ありがとうございます。

> 想像の範疇になるのですが、CrystalReportViewerを使ってWebページに帳票を出力しようとなさっているのでしょうか。
> だとしたら、私はASP.NETをしようしたことがないのでこれまた想像の範疇になるのですが、そのリンクというのはドリルダウンポインタのことを指しているのかなと思ったり。

仰っているとおりです。
環境の問題か分かりませんが、余計なお世話機能ですよね。。

色々リンクの削除方法に付いて検討した結果、
テキスト内にフィールド名を貼り付けることによって、リンクを消す事が出来ました。

皆様本当にありがとうございました。


DatabaseConnectorエラー  くみすけ - 2006/01/04(Wed) 19:23 No.1409

あけましておめでとうございます。
今年も宜しくお願いいたします。

クリスタルレポート:XI
OS:Windows Server 2003
PG:VisualBasic6.0
DB:Oracle9i
で開発を行っています。

Oracleの設定に変更があったのでOracleの設定を変更しました。
(ネーミングメソッドを変更とストプロの追加を行いました。
 ODBC自体やDSNやユーザーID、パスワードなどは同じです。)

その後、クリスタルレポートを使用すると
データベースが見つからない、とエラーになります。
 
クリスタルレポートの「接続の新規作成」においてODBC(RDO)で新しい接続を
作り直しても(DSN名は同じ)
  『DatabaseConnectorエラー:
  'HY000:[Oracle][ODBC][Ora]ORA-01466:
  データを読み込めません-表定義が変更されました
 [データベースベンダーコード:1466]' 』
のエラーでOracleと接続することができません。
 
Oracle側の接続テストも正常ですし、
ODBCで接続テストを行っても正常に接続することが
できました。 

Oracleの設定を変更したために、
以前の情報と違う、というエラーのように思えるのですが、
再作成しても接続できないし、それに使用しているODBCは正常に接続できるので
原因がわからず困っています。

どなたかご存知の方いらっしゃいましたらご教授下さい。
よろしくお願いいたします。


Wordにエクスポートした場合のレイアウト枠の高さについて  You - 2005/09/11(Sun) 14:09 No.967

はじめまして。Youと申します。

Crystal Reports for Visual Studio .NET 2003 にて VBで開発しています。
Crystal Reports初心者です。よろしくお願いします。

Wordにエクスポートしているのですが、自動改行された場合に2行目以降の文字列の
縦方向が切れてしまいます。
(Wordにはレイアウト枠内に出力されますが、枠の縦サイズが2行分の高さが無い状態です。)

┌──────┬──────┐
│12345 │ABCDEF│
│      │GH    │←この行のGHの下2/3位が切れます。
└──────┴──────┘
Α
  (関係ないと思いますが、罫線はフィールドの境界線ではなく、線で書いてます。)

切れないようにするには(レイアウト枠のサイズが正しく出力される)にはどのようにしたら
よいでしょうか。

・1行に収まらない場合は自動改行するようにオブジェクトの書式で「複数行の出力」
 にチェックを入れています。
・行数は固定ではありません。
・1行の場合は正常に出力されます。
・Wordでレイアウト枠のプロパティを見るとサイズの高さが固定値になっています。ここで自動にすると
 枠の高さが広がり文字が全部表示されます。Crystal Reportsから指定できればよいのですが...。
・プレビューでは正常に表示されています。
・PDFには正常にエクスポートされます。
 (後で編集したい場合があるので、Wordにエクスポートしています。)

以上、対処方法をご存知の方がいらっしゃいましたらご教授いただきたくよろしくお願いいたします。
Re: Wordにエクスポートし...  ciao - 2005/12/29(Thu) 10:22 No.1407

こんにちは、私もYouさんと同様の現象で悩んでいましたが、「複数行の出力」のチェックを外すと途中で切れないで出力することができました。ですが、このやり方ですと動的に表示枠を広げることができなくなるので、表示する内容のMAXまであらかじめ表示枠を広げておく必要があります。

どなたか他に良い方法をご存知の方がおられましたら、ご教授下さい。
宜しくお願いします。
Re: Wordにエクスポートし...  24x7 - 2005/12/29(Thu) 13:41 No.1408

回避方法は、フィールドのサイズを少し高めに調整するか、又は、以下の式フィールドを利用することになります。
WhilePrintingRecords;
{データベースの項目} + chr(13) + chr(10) + chr(13) + chr(10)

chr(13) と chr(10) は、余分な領域を確保するため文字コードです。


データセット渡しでのレポート表示  るーし - 2005/11/24(Thu) 18:20 No.1260

始めまして、るーしと申します。
開発環境は VB.NET2003 付属のクリスタルレポートVer9.1.5?
です。

レポート自体ではデータベースへの接続はせずに、VB側から、取得したデータセットを渡して、それを表示したいのですが、
レポートフォームのイメージ自体は、フィールド定義ファイルを作成、それを用い、そのフィールドをレポートフォーム上にセットする事により、解決出来たかと思ったのですが、
実際のプレビュー表示時に、このフィールド定義ファイルへの接続ID,PASS,Server名,Database名を求めるポップアップが表示されてしまいます。

ソースのイメージは下記のような感じで、

Dim objDsRs As System.Data.DataSet              '帳票用データセット

'別関数にて objDsRsにデータセットの結果を代入(中身が入っている事は確認できてます。フィールド構成はフィールド定義ファイルと同じに設定)

'レポートクラス(ReportClass)にデータソースを代入
With objRpt                     
    'レポートにデータセットを関連付け
    .SetDataSource(objDsRs)
End With

'プリントフォームを表示

で、プリントフォーム(プレビュー)表示時に、ログインポップアップ表示

レポートフォームで設定してるデータベース(フィールド定義ファイルによる)はログイン設定などいらないはずなのですが、入力しろと言われてしまいます。

同じような開発仕様でやっている方や、知ってるよという方、是非ご指導お願いします。
そもそもフィールド定義ファイルを使ってやるやり方が正しいのかどうかもわからず仕舞なのです。。。

Re: データセット渡しでの...  NZ-000 - 2005/12/08(Thu) 15:35 No.1318

フィールド定義ファイルとはXMLスキーマファイル(拡張子xsdのやつ)のことでしょうか。
まぁこれを使っていると考えて話を進めます。
パット見た感じ、CrystalReportsとデータセットの連携方法をまちがっている気がします。

スキーマファイルはアプリケーションのプロジェクトに追加されていますか?
追加されていなければ追加してください。
そしてプロジェクトの中でスキーマファイルエディタを起動し(ソリューションエクスプローラでスキーマファイルをダブルクリック)、データセットエディットモードにします。
そこで右クリックメニューを出し、データセット生成を選びます。
そうすると、データセットクラスを継承したスキーマクラスを自動生成してくれます。
値はこのクラスの(データセット)オブジェクトに代入します。
そして、レポートオブジェクトにはこの(データセット)オブジェクトをセットします。


なので、るーしさんの場合、

/------------------引用----------------------------------------
Dim objDsRs As System.Data.DataSet '帳票用データセット

'別関数にて objDsRsにデータセットの結果を代入(中身が入っている事は確認できてます。フィールド構成はフィールド定義ファイルと同じに設定)
/------------------引用ここまで----------------------------------

作成したobjDsRsオブジェクトは、CrystalReportsに渡すためのデータセットオブジェクトではないので、
いくら値を入れても、CrystalReportsに情報が渡りません。
CrystalReportsは情報が来ないのでどこに接続するんじゃいと聞いてくるのだと思います。
Re: データセット渡しでの...  るーし - 2005/12/28(Wed) 17:30 No.1405

しばらく返信頂けず、諦めていたのですが、久々に見てみれば・・・
返信遅れまして、大変申し訳ありません。

NZ-000さんの方法で試させてもらいたいと思います。

回答ありがとうございました.m(_ _)m

Re: データセット渡しでの...  NZ-000 - 2005/12/29(Thu) 08:17 No.1406

>作成したobjDsRsオブジェクトは、CrystalReportsに渡すためのデータセットオブジェクトではないので、
いくら値を入れても、CrystalReportsに情報が渡りません。

すいません。この情報はちょっと誤りのようです。
レポートのデザインに使うデータベーススキーマファイル(XMLスキーマファイル)と、レポートオブジェクトに渡すDataSetはフィールド構成が同じであれば違うものでもかまわないようです。正規のやり方は上で挙げたようにデータベーススキーマファイルから生成したDataSetクラスを使う方法だと思いますが。

で、るーしさんの最初の記事をよくみると、crystalReportViewerのレポートソースに作成したレポートオブジェクトを代入するという情報がないので、もしかしたらそれが原因かもと思う次第であります。

無題  ぼんご - 2005/12/28(Wed) 12:54 No.1401

現在webアプリを作成しています。
開発環境はserver...WindowsServer2003
データベース...SQL2000
開発言語...VB.NET
レポート...CrystalReports9    です。
ブラウザにDatagridを使って表示したデータを、印刷したいのですが、DataGridに表示したデータは、データベースから直接表示したものに若干修正を加え手いる関係で、データベースの内容を直接CrystalReportに落とすことができません。例えば、データベース上では男は1、女は2というデータになっていますが、表示する際に1を男、2を女と書き換えています。そこで、ブラウザに表示されたデータをクライアントサイドで直接CrystalReportに書き込みたいと考えているのですが、そのようなことはできるのでしょうか?
公式サイトや技術書をいろいろ読んではみたものの、うまい解決策が見当たりません。よろしくお願いいたします。

Re: 無題  NZ-000 - 2005/12/28(Wed) 13:08 No.1403

>ブラウザに表示されたデータをクライアントサイドで直接CrystalReportに書き込みたいと考えているのですが、

DataSetを使って、DataGridに表示するデータとレポートに表示するデータの共通化を図ってはどうでしょうか。


しかし、それより
>データベースから直接表示したものに若干修正を加え手いる

この修正が例にあげられているような簡単なものなら
同じことをCrystalReports上でも行った方が早いかもしれません。
例えば性別フィールドを以下のような式フィールドに置き換えるとか。
WhilePrintingRecords;
stringVar sex;
if {性別} = 1 then sex := "男" else sex := "女";
Re: 無題  ぼんご - 2005/12/28(Wed) 13:11 No.1404

そうですね、CrystalReport上で行うやり方がよさそうですね。早速やってみます。
早速のレスありがとうございました。

2列打ち  Syo_Shin - 2005/12/26(Mon) 17:55 No.1389

いつもこの掲示板ではお世話になっている者です。
今現在クリスタルレポートで帳票を作成していますが、情報が無く困っています。
そこで皆様のお力を貸していただけないでしょうか?
以下に質問内容を掲載するのでよろしくお願いいたします。

【,NET2003 クリスタルレポート バージョン??】

-------------グループヘッダーA#1--------------
----詳細a------
----詳細b------
-------------グループフッターA#1--------------

上記のように今デザイン部を設定しています。用は2列にわけてデータを表示させている状況です。
しかし、実際帳票を出力すると、ひとつのグループが1列目から2列目に移行しようとすると、1列目のグループの項目を出力した場所から、2列目のデータは出力してしまうのです。


【現在の状況】

----グループAの内容------
       ↓ 
       ↓
       ↓
----グループBの内容------
       ↓
       ↓
----グループCの内容------            ↓   ←この位置からグループC  
       ↓                     ↓    が始まってしまう。
       ↓                     ↓
    この位置で改列

【実際に出力させたい帳票】

----グループAの内容------                ↓  ←この位置からグルー          
       ↓                         ↓   プCの内容を出力
       ↓                         ↓   させたい
       ↓
----グループBの内容------
       ↓
       ↓
----グループCの内容------             
       ↓                    
       ↓ 
   この位置で改列



以上、わかりにくい説明で申し訳ありませんが、よろしくお願いいたします。                    
    
Re: 2列打ち  NZ-000 - 2005/12/26(Mon) 18:54 No.1391

>上記のように今デザイン部を設定しています。用は2列にわけてデータを表示させている状況です。

とありますので、

>ひとつのグループが1列目から2列目に移行しようとすると、1列目のグループの項目を出力した場所から、2列目のデータは出力してしまうのです。

というのは以下のサンプルのようになり、イメージ通りではないのでしょうか。

[サンプル1]
-------------グループヘッダーA#1--------------
(1列目)  (2列目)
グループA
 詳細a  詳細b
  ・・・   ・・・
  ・・・   ・・・
グループB
 詳細a  詳細b
  ・・・   ・・・
グループC
 詳細a  詳細b
  ・・・   ・・・
-------------グループフッターA#1--------------


それとも、こんな風にグループを横に並べたいのかなぁ。
[サンプル2]
-------------グループヘッダーA#1--------------
(1列目)  (2列目)  (3列目)
グループA グループB グループC
 詳細a   詳細a   詳細a
 詳細b   詳細b   詳細b
  ・・・    ・・・    ・・・
-------------グループフッターA#1--------------

でも、これだと2列に分けたいってのとはちょっと違う気がしますし、

すいません。ちょっと【現在の状況】と【実際に出力させたい帳票】の違いや個々の意味がわからないです。
Re: 2列打ち  24x7 - 2005/12/27(Tue) 02:19 No.1394

残念ならがら、期待するレポートを作成することはできません。
レポートのデザインをよく見ればわかると思います・・
複数列存在しても、同一グループのデータはそのグループ内で「縦から横」、「横から縦」方向しか表示することはできません。
例えば、上記の【実際に出力させたい帳票】の表示イメージの2列目の表示開始位置は、グループAのデータを表示可能な領域で、それ以外のグループのデータは表示することはできません。

Re: 2列打ち  24x7 - 2005/12/27(Tue) 02:30 No.1395

グループを利用していなければ、1列目の表示が終われば、2列目の先頭から表示することは可能です。
Re: 2列打ち  Syo_Shin - 2005/12/27(Tue) 09:39 No.1397

回答ありがとうございます。

グループ利用しないで、2列目の先頭から出力することができました。
そこで、もうひとつ質問があるのですが、改頁したときの先頭にタイトルをおきたいのです、少しわかりにくいかも知れませんが図を載せますのでよろしくお願いします。

【帳票イメージ】(2列打ち)

----------------------タイトル----------------------
-----社員の情報タイトルA-----                                
                  ↓                    ↓                                       
        ↓                   ↓
        ↓                   ↓
-----社員の情報タイトルB-----         ↓  
        ↓            -----社員の情報タイトルD-----       
        ↓                   ↓
        ↓                   ↓
        ↓                   ↓
-----社員の情報タイトルC----          ↓
        ↓                   ↓
        ↓                   ↓
 ---------------------------------------------------

改頁
----------------------タイトル----------------------
-----社員の情報タイトルD-----                                
                  ↓                                                           
        ↓                   
        ↓                   
        ↓  
        ↓                   
        ↓                   
        ↓                   
        ↓                   
        ↓
                           
                           
 ---------------------------------------------------
※↓は社員情報に関する詳細。「社員の情報タイトル」はグループでいうグループヘッダーと同じようなもの。


上記のように、改頁したときに1ページで出力していた「社員の情報タイトルD」を2ページが始まるともう一度出力させたいのです。
グループ分けすれば、最初の質問事項のようになってしまいます。

Re: 2列打ち  24x7 - 2005/12/28(Wed) 11:06 No.1399

難しいですね。
机上だけなので、うまく動作するかわかりませんが・・こんなのどうでしょうか。
ページヘッダーに「社員の情報タイトル」を挿入します。すでにページヘッダーに別な項目を挿入している場合、セクションをページヘッダーに挿入して、ページヘッダーbに「社員の情報タイトル」を挿入します。
このページヘッダーbのセクションの非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
{社員情報} <> Previous({社員情報})
デザインによっては、改ページが発生して先頭のデータが前ページと同一グループならページヘッダーbが表示されると思います。あと、最初の1ページ目は必ず表示されてしまうので、論理和で PageNumber = 1 を追加してください。

Re: 2列打ち  NZ-000 - 2005/12/28(Wed) 12:04 No.1400

私も24x7さんの考え方に賛成ですが、
Previous()を使うと前のレコードがない場合(最初のページ)が評価できないので、以下のようにした方がいいと思います。
WhilePrintingRecords;
PreviousIsNull({社員情報}) or ({社員情報} <> Previous({社員情報}))
Re: 2列打ち  NZ-000 - 2005/12/28(Wed) 12:56 No.1402

あ、すいません。
よく読んでいませんでした。
ちゃんと考慮されてらっしゃるので、私のレスは無視してもらって結構です。

小数部の表示  ベモラ - 2005/12/27(Tue) 18:27 No.1398

お世話になっています。

クリスタルレポートを8から9にバージョンUPしたら、
小数部が0で表示されるようになりました。


DBはオラクル9を使用しています。
オラクルでは、NUMBER型で宣言しています。
書式設定は、-55,555.56になっています。

環境は、
Windows2003サーバー
VB6SP6
です。

宜しくお願いします。

改頁に跨るときに表示させたい  Syo_Shin - 2005/12/26(Mon) 18:20 No.1390

すいません、連続させて質問させていただきます。


まず今テーブルが、

No  社員番号  社員名  保険情報  エラー情報
1       XXXXX       JJJJJ       JJJJJ         JJJJJJ
2       XXXXX       JJJJJ       JJJJJ         JJJJJJ
3       XXXXX       JJJJJ       JJJJJ         JJJJJJ
4       XXXX1       JJJJJ       JJJJJ         JJJJJJ
5       XXXX1       JJJJJ       JJJJJ         JJJJJJ
6       XXXX2       JJJJJ       JJJJJ         JJJJJJ 


このような形でテーブルを作っています。そこで今回は社員番号でグループ分けはせず、べた打ちで帳票を作成しようと考えています。そこで今回の問題なんですが、今、帳票では社員の、「社員番号」「社員名」「保険情報」を頭の部分に出力し、その下に、「エラー情報」を続けて出力しています。

-----社員情報A(社員番号、社員名、保険情報)----

----エラー情報----------------------------
             ↓
         ↓
                   ↓

-----社員情報B(社員番号、社員名、保険情報)----

----エラー情報----------------------------
             ↓
         ↓
                   ↓
     ここで改頁(エラー情報は次のページに持ち越し)

上記のような状態になったとき、改頁後もう一度、社員情報を表示させてやりたいのです。

WhilePrintingRecords;
{社員番号}=Previous({社員番号})
 と、式エディタでつくってます。

デザイン部は

------詳細a------
社員情報
------詳細b------
エラー情報

このようになっています。
以上、何度も申し訳ありませんがよろしくお願いいたします。
Re: 改頁に跨るときに表示...  24x7 - 2005/12/27(Tue) 02:04 No.1392

なぜ、グループ分けしてはいけないのかわかりません。また、レポートをべた打ちって何ですか?
社員番号でグループ化すれば、簡単に作成できると思います。もう少し柔軟に考えた方が期待する表示結果になると思います。
グループ挿入後、そのグループの変更から「ページごとにグループヘッダーを出力」にチェックします。このチェックにより、詳細の途中で改ページが発生してもそのグループのヘッダー部分は、ページの先頭に表示されます。ページヘッダーの表示内容によっては、不要になります。


(デザインイメージ)

グループヘッダー No  社員番号  社員名  保険情報  エラー情報
詳細a         社員情報
詳細b        エラー情報

Re: 改頁に跨るときに表示...  24x7 - 2005/12/27(Tue) 02:07 No.1393


レポートにページヘッダーが挿入されている場合、その内容によっては、グループヘッダーで代用することが可能なので、ページヘッダーが不要になります。

と書きたかったことでした。すみません、ちょっと表現不足でした。
Re: 改頁に跨るときに表示...  24x7 - 2005/12/27(Tue) 02:39 No.1396

また、また、解釈にあやまりがありました。申し訳ございません。
社員情報は、グループヘッダーで表示し、エラー情報は、詳細aになりますね。

(デザインイメージ)
ページヘッダー    No  社員番号  社員名  保険情報  エラー情報
グループヘッダー 社員情報
詳細a        エラー情報

エラー情報の途中で改ページが発生しても「ページごとにグループヘッダーを出力」のチェックで、社員情報が再度、表示されます。

クリレポ9のグループヘッダーのリンクについて  miyabi - 2005/12/26(Mon) 13:15 No.1386

はじめまして。
クリスタルレポート9にて帳票の作成を行っています。
タイトルの件について、どうしても分からないことがあり、申し訳ありませんが、お力を貸して頂きたく考えております。

現在の帳票は、クリスタルレポートから直接DBには接続せず、データセット(xsd)からデータを取り込み、表示しています。
いくつかのグループを作成して、グループヘッダーに項目名を動的に(データセットより)表示しているのですが、何故かハイパーリンクが付きます。

もちろん、書式エディタのハイパーリンクは、”なし”に設定してあります。

原因は不明ですが、どうにかこのハイパーリンクを外す事は出来ないでしょうか。

色々試したところ、自動的に設定されるハイパーリンクは、「レポート パーツのドリルダウン」項目を設定したときと酷似していました。
また、詳細項目に表示するデータに関しては、自動的にハイパーリンクは掛かりませんでした。

当方の環境です。
クリスタルレポート:9.2.2.693
OS:Windows2000 Professional
開発環境:VC.NET 2002

何卒よろしくお願い致します。
Re: クリレポ9のグループ...  NZ-000 - 2005/12/26(Mon) 15:02 No.1387

設定してないのにハイパーリンクがつくですか。
それってちゃんとブラウザにリンクしてるんですかね?

なぞですね。

もう少し具体的にどんな風にハイパーリンクがつくのか挙げてもらった方が考えやすいかもしれません。
(わからないかもしれませんが)

単に下線が引いてあるだけとか・・・
Re: クリレポ9のグループ...  miyabi - 2005/12/26(Mon) 15:40 No.1388

お返事ありがとうございます。

普通はリンクの設定をしなければリンクは付かないのでしょうか。

グループヘッダーに表示されるリンクは次のような感じです。


---グループヘッダー1--------
項目1
------グループヘッダー2-----
        項目2  
-----------詳細------------
               項目3
--------------------------

項目1:リンクが自動的に生成される
項目2:リンクが自動的に生成される
項目3:リンクは付かない

リンクは全て下線無しです。
また、ブラウザに最新のファイルが表示されていることは確認しております。

リンクのターゲットは以下のJavaScriptになります。
--------------------------
javascript:__doPostBack('CrvTest$_ctl1','brch=0-0-0&name=KOMOKU1&drillname=項目1')
--------------------------

CrvTest:クリスタルレポート名
KOMOKU1:データセットの項目名
項目1:表示される値

この情報で分かりますでしょうか。
よろしくお願い致します。


クリレポ11でのSQLQuery  くみすけ - 2005/12/22(Thu) 16:31 No.1384

いつもお世話になっています。
現在cr4.6→11への移行作業を行っているのですが、
4.6でSQL文をセットするSQLQueryプロパティを使用していたのですが、
11ではSQLQueryプロパティを使用することができません。
(何か参照設定がもれているのでしょうか???)

似たようなのでSQLQueryStringプロパティがあったので
      Dim Report As CRAXDRT.Report
      Report.SQLQueryString = "SQL文"
としてみましたが、「ログオンに失敗しました」のエラーになります。

どなたかcr11でのSQL文のセットの仕方をご存知の方、
またはSQLQueryプロパティに変わるプロパティ(またはコンポートネント)を
ご存知の方、ご教授いただければうれしいです。
よろしくお願いいたします。

環境はOS:WindowsServer2003  PG:VB6.0  DB:Oracle9i です。
Re: クリレポ11でのSQLQuery  くみすけ - 2005/12/22(Thu) 17:23 No.1385

すいません、解決しました。
過去ログにありました。申し訳ないです。

非表示項目  kyo - 2005/12/19(Mon) 23:43 No.1378

VB.net2003、付属するCrystalReportsで開発を行っております。
どなたかご存知でしたら、ご教授願います。

以下のイメージの帳票を考えています。
支社コード、支部コードでグループ化し、
改頁を行ってます。
支社コード毎に総計を表示しているのですが、
ページヘッダ部の支部コードを非表示にするよう考えています。
現状、改頁する前の支部コードが表示されてしまいます。
非表示の式フィールド等で対処できるのでしょうか。


●イメージ
支社コード:A
支部コード:AA
 支部    分類   点数 (ページヘッダ)
-------------------------
 新宿支部  A     70(詳細)
         B  80
         C 65
       改頁

支社コード:A
支部コード:AB
 支部    分類   点数 (ページヘッダ)
-------------------------
 渋谷支部 A      60(詳細)
        B      80
        C      40
       改頁

支社コード:A
支部コード:AB←表示したくない
 支社    分類   点数 (ページヘッダ)
-------------------------
       合計     375(支社コードフッタ)

支社コード:B
支部コード:AC
 支部    分類   点数 (ページヘッダ)
-------------------------
 中野支部  A     70(詳細)
         B  80
         C 65
       改頁

支社コード:B
支部コード:AC←表示したくない
 支社    分類   点数 (ページヘッダ)
-------------------------
       合計     215(支社コードフッタ)
Re: 非表示項目  24x7 - 2005/12/20(Tue) 07:01 No.1379

改ページの条件がわかりませんが、ページヘッダーに挿入した{支部コード}の非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
{支部コード}=Previous({支部コード})

但し、上記のように改ページした後、詳細に表示するデータが存在していない場合、改ページ後に比較データが存在しないので正しく動作しないかもしれません。

このようなレポートの場合、グループを挿入しているので、グループヘッダーを利用すれば、同じようなレポートが可能です。グループヘッダー「支部コード」に{支店コード}を挿入して、そのグループ(支部コード)の変更から「ページごとにグループヘッダーを出力」にチェックします。その結果、改ページするごとにグループヘッダー「支部コード」に支店コードと支部コードが表示されます。
グループヘッダー「支部コード」の非表示の条件式には、上記と同一の式を挿入します。
WhilePrintingRecords;
{支部コード}=Previous({支部コード})

ページヘッダー、ページフッターは、他セクションに比べてデータ量に左右される(評価時期が違う)ので、テキストオブジェクトのみ表示するために利用するほうがいいと思います。
Re: 非表示項目  24x7 - 2005/12/20(Tue) 07:04 No.1380

説明不足でした。
以下の項目は、すべてグループ「支部コード」のヘッダーに挿入します。

支社コード:B
支部コード:AC
 支部    分類   点数 
-------------------------

ページヘッダーは使わない。
Re: 非表示項目  kyo - 2005/12/21(Wed) 11:52 No.1381

24x7様
ありがとうございました。
無事、解決いたしました。

合計計算  yamaz - 2005/12/14(Wed) 16:46 No.1332

はじめまして、
CrystalReports8.5、VB6で開発している初心者です。
OSはXP Proです。

グループ計を出したいのですが、ページをまたがるとグループ計が狂ってしまいます。例、
グループ1
 明細1 2000円
 明細2 2000円
 合計  4000円
グループ2
 明細1 2000円
 明細2 1000円
改ページ
 明細3 2000円
 合計  6000円 
 となり 改ページ前の明細が2重に足されます。
 改ページ設定は
 WhilePrintingRecords;
 currencyvar wPageLineCnt;
 wPageLineCnt :=wPageLineCnt+3;
 こんな感じで現在位置を計算させてるのですが、
 また合計は
 WhilePrintingRecords;
 CurrencyVar SKKS;
 明細ごとに
  currencyvar SKKS;
   SKKS :=SKKS+金額;

どなたか、原因、対処方法をご存じないでしょうか。
よろしくお願いいたします。

Re: 合計計算  NZ-000 - 2005/12/14(Wed) 20:02 No.1335

こんにちはNZ-000です。

提示された式を見る限り合計をリセットする式が見当たりません。
これでは加算される一方ですね。

グループヘッダに以下のような数値をリセットする式フィールドを追加しましょう。
WhilePrintingRecords;
CurrencyVar SKKS := 0;

ついでに明細ごとに出力する式フィールドを以下のように変更してください。
WhilePrintingRecords;  (←付け足しただけ)
currencyvar SKKS;
SKKS :=SKKS+金額;
Re: 合計計算  yamaz - 2005/12/15(Thu) 09:42 No.1337

NZ-000さんありがとうございます。

ご指摘の通りに数値リセットとWhilePrintingRecords;を付け加えたのですが結果は同じでグループ2のように明細の途中で改ページして次ページにグループ計を出す場合は例題で示す明細2が2重に加算されてしまいます。他になにかたりないのでしょうか。
Re: 合計計算  NZ-000 - 2005/12/15(Thu) 10:45 No.1339

ほむほむ。
う〜ん、改行が関係しているとは思えないのですが。
とりあえず、改行はどこでどういう条件で行っているのでしょうか。
--------------------------------
追記
「改行」→「改ページ」の間違いです。
Re: 合計計算  24x7 - 2005/12/15(Thu) 11:19 No.1340

同一グループ内で改ページが発生しているので、グループヘッダーの式フィールドの変数の初期化は実行されていないようです。
ためしにグループヘッダーの式フィールドをページヘッダーに移動したら、グループ2の詳細で改ページが発生したら、合計は、2000円になりますか?

NZ-000さんが言われるとおり、ページの改ページの条件が知りたいですね。

>改ページ設定は
> WhilePrintingRecords;
> currencyvar wPageLineCnt;
> wPageLineCnt :=wPageLineCnt+3;

上記の内容だけでは、よくわかりませんが・・
詳細セクションの1件につき3行分表示するということですか?
上記の式だけでは、改ページは発生しないと思います。「出力後に改ページ」の条件式は利用していませんか?

Re: 合計計算  24x7 - 2005/12/15(Thu) 11:35 No.1341

>WhilePrintingRecords;
> currencyvar wPageLineCnt;
> wPageLineCnt :=wPageLineCnt+3;

NumberVarの間違いですよね。

実際に試していないのですが、以下の式フィールドをそれぞれのセクションに挿入して正しい値が表示できませんか?
前提は、1ページに詳細セクションの内容を30行(10レコード)表示させて改ページです。

「ページヘッダー」
//@行数カウンタ変数の初期化
WhilePrintingRecords;
NumberVar wPageLineCnt:=0;

「グループヘッダー」
//@変数の初期化
WhilePrintingRecords;
CurrencyVar SKKS:=0;

「詳細」
//@金額集計
WhilePrintingRecords;
CurrencyVar SKKS;
SKKS := SKKS+{xxx.金額};

//@行数のカウント
WhilePrintingRecords;
NumberVar wPageLineCnt;
wPageLineCnt :=wPageLineCnt+3;

詳細セクションの「出力後に改ページ」の条件式に以下の式を挿入する。
これは、30行(10レコード)出力後に改ページさせる意味です。
上記の行カウントに+3しているので・・

WhilePrintingRecords;
NumberVar wPageLineCnt;
Remainder(wPageLineCnt,30) = 0
Re: 合計計算  NZ-000 - 2005/12/15(Thu) 11:47 No.1344

+3が意味深ですねぇ。
私は通貨型を使っていることと+3をすることは何か関係があると踏んで、あえて伏せて置いたんですが。

指定行で改ページを行いたいなら24x7さんの回答で完璧ですね。
+3にする意味はなくなりますが・・・
Re: 合計計算  yamaz - 2005/12/15(Thu) 14:32 No.1348

NZ-000さん、24x7 さん ありがとうございます。

辞めた人が作ったレポートなので即答できないのですが
改ページは出力後に改ページはどこにも式が無くチェックもついていません。詳細で式があるのは非表示ドリルダウン不可(チェックはついていませんが)だけです。詳細は4種類あり
 {@ブレイク}=1 or {@ページ内件数カウント} =27
 {@ブレイク}<>1 or {@ページ内件数カウント} =27
等の記述があります。

また、NumberVarではなく CurrencyVarを使っています。

CurrencyVar のままですが、出力後に改ページに式を入れたのですが結果は同じでした。

WhilePrintingRecords;
CurrencyVar wPageLineCnt;
Remainder(wPageLineCnt,27) = 0

また、以下は合計欄が3行使っていたので下記の式があっただけでした。まぎらわしい記述をしてすみません。
> WhilePrintingRecords;
> currencyvar wPageLineCnt;
> wPageLineCnt :=wPageLineCnt+3;

CurrencyVar を NumberVarに変更してためしてみようと思います。
合計以外の詳細は下記記述があり
WhilePrintingRecords;
currencyvar wPageLineCnt;
wPageLineCnt :=wPageLineCnt+1;
ページヘッダーとページフッタに
WhilePrintingRecords;
CurrencyVar RecCnt :=0;
WhilePrintingRecords;
CurrencyVar wPageLineCnt :=0;
グループヘッダーに
変数の初期化はしました。

申し訳ありませんが何かありましたら宜しくお願いします。
Re: 合計計算  yamaz - 2005/12/15(Thu) 14:46 No.1351

ためしにグループヘッダーの式フィールドをページヘッダーに移動したら、グループ2の詳細で改ページが発生したら、合計は、2000円になりますか?

結果は同じでした。
Re: 合計計算  24x7 - 2005/12/15(Thu) 15:05 No.1353

ますます理解できないレポートになりました。

>詳細で式があるのは非表示ドリルダウン不可(チェックはついてい>ませんが)だけです。詳細は4種類あり
> {@ブレイク}=1 or {@ページ内件数カウント} =27
> {@ブレイク}<>1 or {@ページ内件数カウント} =27
>等の記述があります。

詳細の「非表示ドリルダウン不可」の条件式には、上記の式が挿入されているわけですか?
4種類とは式フィールドのことですか?詳細に式フィールドが挿入されているということですか?中途半端な説明では、回答する人も困ると思います。

あと、書き忘れがありましたが・・
グループ毎の合計はどこのセクションで表示していますか。グループフッターですよね。その際、以下の式フィールドを利用します。
//グループ合計の表示
WhilePrintingRecords;
CurrencyVar SKKS;
SKKS;

「出力後に改ページ」の条件式を利用していなければ、不要でしょう。
まだ、まだ、ここに説明されてない内容が盛りだくさんのようです。
Re: 合計計算  yamaz - 2005/12/15(Thu) 17:18 No.1355

24x7 さん ありがとうございます。
中途半端な説明ですみません。

グループ合計の表示はグループフッターに
WhilePrintingRecords;
CurrencyVar SKKS;
とあります。

詳細はセクションの書式を開いた時に詳細aから詳細dまで4週類あり条件により4つを使い分けているようです。自由形式とまとめて表示に4種類ともチェックがついています。詳細dはラインを引くためだけにあります。

詳細aの「非表示ドリルダウン不可」の条件式が
{@ブレイク}=1 or {@ページ内件数カウント} =27

詳細bの「非表示ドリルダウン不可」の条件式が
{@ブレイク}<>1 or {@ページ内件数カウント} =27

詳細Cの「非表示ドリルダウン不可」の条件式が
{@ブレイク}=1 or {@ページ内件数カウント} <= 26

詳細dの「非表示ドリルダウン不可」の条件式が
currencyvar wPageLineCnt;
wPageLineCnt <27

グループ1
  明細1 2000円 (詳細b)
  明細2 2000円 (詳細b)
  合計  4000円
グループ2
 明細1 2000円
 明細2 1000円
改ページ
 明細3 2000円
 合計  6000円 

ここでの明細は詳細bを使っています。

表の構成は
グループ#1ヘッダー
 グループ#2ヘッダー
  明細1 2000円 (詳細b)
 グループ#2フッター
 グループ#2ヘッダー
  明細2 2000円 (詳細b)
 グループ#2フッター
グループ#1フッター  合計  4000円

また、ブレイク、ページ内件数カウントは、下記内容で詳細でカウントしています。
DokBk の初期化はグループ#2ヘッダーで行っています。
RecCnt、wPageLineCnt 初期化はグループ#1ヘッダー、グループ#1フッターで行っています。

@ブレイク
WhilePrintingRecords;
currencyvar DokBk;
DokBk :=DokBk+1;

@ページ内件数カウント
WhilePrintingRecords;
currencyvar RecCnt;
RecCnt :=RecCnt+1;

ラインカウント
WhilePrintingRecords;
currencyvar wPageLineCnt;
wPageLineCnt :=wPageLineCnt+1;

取り合えずわかる範囲で記述してみました。済みませんです。
Re: 合計計算  24x7 - 2005/12/16(Fri) 07:17 No.1357

オリジナルのレポートは、「出力後の改ページ」の条件式は、利用していないわけですよね。その場合、同一グループ内に27件(?)以上のデータが存在していると、非表示の条件式では正しく動作しないように見えます。(今回の問題には直接関係しませんが・・)
上記を参考にレポートを作成するとデータソースの違いから同一グループ内で27件以上のデータが存在すると期待したようには表示できませんでした。あと、同じような条件で改ページが発生していないので結果的にはどこに問題があるか不明です。

改ページが発生している詳細な場所がわかりませんが、以下のようなレポートの表示になっているわけですよね。

グループ#1ヘッダー
 グループ#2ヘッダー
      詳細b                明細1 2000円
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細2 2000円 
 グループ#2フッター
グループ#1フッター 合計   4000円

グループ#1ヘッダー
 グループ#2ヘッダー
   詳細b                明細1  2000円
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細2 1000円 
 グループ#2フッター

<改ページの発生> ???

  グループ#2ヘッダー
    詳細b              明細3 2000円  
   グループ#2フッター
グループ#1フッター 合計  6000円


詳細bで表示している金額は、データベースの項目あるいは、式フィールドからですか。また、合計6000円が、同一グループ#1の前ページの詳細1と詳細2が2重に足されたものである根拠はなんですか?

Re: 合計計算  24x7 - 2005/12/16(Fri) 07:52 No.1358

>ラインカウント
>WhilePrintingRecords;
>currencyvar wPageLineCnt;
>wPageLineCnt :=wPageLineCnt+1;

上記の式はどこで利用しているのでしょうか?
「出力後に改ページ」の条件式を利用していないので、この式フィールドは実際には利用していいないように見えます。
Re: 合計計算  24x7 - 2005/12/16(Fri) 08:10 No.1359

失礼しました。ラインカウンタは、詳細dの罫線の表示/非表示の条件式で利用していました。
Re: 合計計算  NZ-000 - 2005/12/16(Fri) 09:59 No.1362


ラインカウントってどこでカウントしているんでしょう。
詳細だとするとページ内件数と値が同じになって二つ存在する意味がなくなってしまいますよね。

恐らくグループ2のフッター当たりかな?


プレビューのグループ1とグループ2というのは
デザインのグループ#1に属するグループ名でしょうから
グループ1→グループ#1:グループ1
グループ2→グループ#1:グループ2
などとしてもらわないと区別しづらいですね(名前を変えてもらってもかまいませんが)。


さて、3つの詳細(ラインは除く)から、条件により表示する
詳細を決めているということですので、
それぞれに意味があって表示の仕方が違うのでしょう。

しかし、ここで気になるのが詳細aと詳細cです。
{@ブレイク}=1という式が同じですよね。
(グループ#2の一つ目の要素ならば非表示にするという意味合い)
orで結ばれているので、前方一致で
aとcの両方が表示されてしまうケースが存在するはずです。

表示されても積算自体は一度しか行われないので、合計には
影響しないのですが、
ただ、このようなケースを想定していくと、
条件により表示内容を分けている場合、
積算は合っていても表示されている明細と合計が一致していないということも起こりうるのではないでしょうか。

また、グループ#1:グループ2がどの詳細で表示されているのか
も気になるところです。
あと、このレポートは条件による改行はしていないですよね。
なので表示しきれなくなったら改行ということになるのですが、
そうなるとページ内件数カウントってページ内の件数ではなく、グループ#1内のレコード件数ということになり、ふむむ・・・
Re: 合計計算  yamaz - 2005/12/16(Fri) 11:14 No.1365

24x7 さん ありがとうございます。

出力後の改ページの条件式は利用していません。

詳細bで表示している金額は、データベースの項目あるいは、式フィールドからですか。
 データベースからです。

 合計6000円が、同一グループ#1の前ページの詳細1と詳細2が2重に足されたものである根拠はなんですか?

例1
ページヘッダー(5行分)、ページフッター(1行分)
第1グループ
グループ#1ヘッダー
 グループ#2ヘッダー
      詳細b                明細1 2000円  ラインカウント=1、ページ内件数カウント=1
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細2 2000円  ラインカウント=2、ページ内件数カウント=2

 グループ#2フッター
グループ#1フッター 合計   4000円  ラインカウン=5

第2グループ
グループ#1ヘッダー
 グループ#2ヘッダー
   詳細b                明細1  2000円  ラインカウント=6、ページ内件数カウント=3

 グループ#2フッター
              〜
 グループ#2ヘッダー
   詳細b                明細2 1000円  ラインカウント=27、ページ内件数カウント=16

 グループ#2フッター
<改ページの発生>
 グループ#2ヘッダー
    詳細b              明細3 2000円   ラインカウント=1、ページ内件数カウント=1
  
   グループ#2フッター
グループ#1フッター 合計  6000円   ラインカウント=4

例2
第1グループ
グループ#1ヘッダー
 グループ#2ヘッダー
      詳細b                明細1 2000円
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細2 2000円 
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細3 2000円 
 グループ#2フッター
グループ#1フッター 合計   6000円

第2グループ
グループ#1ヘッダー
 グループ#2ヘッダー
   詳細b                明細1  2000円
 グループ#2フッター
<改ページの発生>
 グループ#2ヘッダー
   詳細b                明細2 1000円 
 グループ#2フッター
  グループ#2ヘッダー
    詳細b              明細3 2000円  
   グループ#2フッター
グループ#1フッター 合計  7000円

と、例2のように第1グループの明細を1つ増やしたデータを作り改ページの明細をずらすと合計金額が変わったので改ページ前のデータが2重に加えられていると推測しました。
何かありましたら宜しくお願い致します。
Re: 合計計算  NZ-000 - 2005/12/16(Fri) 11:41 No.1366

>RecCnt、wPageLineCnt 初期化はグループ#1ヘッダー、グループ#1フッターで行っています。

ということでしたが、この例を見ると
グループ#1内で初期化されていたり(16→1)
グループ#1ヘッダーで初期化されたにも関わらず、
第2グループの最初の詳細bのカウントが3だったり謎ですね。
私が理解できてないだけかもしれませんが。

あとカウントに間が開いているということは
詳細bが非表示になっているということですが、
明細は毎レコード加算されますのでやはりその非表示のレコードにも金額明細があって合計に加算されてしまっているのではないでしょうか。
試しに、非表示ドリルダウン不可の条件式をとっぱらって
全部表示してみることをお勧めします。
Re: 合計計算  24x7 - 2005/12/16(Fri) 11:53 No.1367

書けば書くほど、新しい発見がありますね。
NZ-000さんも書いていますが、「ラインカウンタ」は、詳細だと思っていましたが・・グループフッターにも挿入しているようです。また、例1のラインカウンタの値と表示の行数も一致していないから、別なセクションにもこのラインカウンタが挿入されているようです。

Re: 合計計算  24x7 - 2005/12/16(Fri) 11:57 No.1368

NZ-000 さん
>私が理解できてないだけかもしれませんが。
そうでは、ないと思います。まだ、見えない部分があるのでしょう。
Re: 合計計算  yamaz - 2005/12/16(Fri) 14:32 No.1369

NZ-000さん、24x7 さん ありがとうございます。
と同時に申し訳ありません。貴重なお時間を頂いているのに説明で間違いが多くて

第1にご指摘の初期化の位置ですが、
RecCnt、wPageLineCnt 初期化はグループ#1ヘッダー、グループ#1フッターで行っています。ではなく、ページヘッダー、ページフッターで
@ページ内ラインカウント
WhilePrintingRecords;
CurrencyVar wPageLineCnt :=0;
@ページ内件数
WhilePrintingRecords;
CurrencyVar RecCnt :=0;
を指定しています。
グループ#2ヘッダー、ページフッターで
@ブレイクカウント
WhilePrintingRecords;
CurrencyVar DokBk :=0;

ラインカウンタは、詳細とグループ#1フッターでカウントしています。
詳細   : +1
フッター : +3
ページ内件数は、詳細でのみ1足しています。

また、例題の間違いは第2グループで明細1と明細2の間に本来は0円で20件の明細行があり、ページ内件数カウントも16でなく24でした。大事な部分での誤記術で貴重な時間を申し訳ありませんでした。
例1は
ページヘッダー(5行分)、ページフッター(1行分)
第1グループ
グループ#1ヘッダー
 グループ#2ヘッダー
      詳細b                明細1 2000円  ラインカウント=1、ページ内件数カウント=1
 グループ#2フッター
 グループ#2ヘッダー
   詳細b                明細2 2000円  ラインカウント=2、ページ内件数カウント=2

 グループ#2フッター
グループ#1フッター 合計   4000円  ラインカウン=5

第2グループ
グループ#1ヘッダー
 グループ#2ヘッダー
   詳細b                明細1  2000円  ラインカウント=6、ページ内件数カウント=3

 グループ#2フッター
              〜(0円で20件の明細行があり詳細bを使用)
 グループ#2ヘッダー
   詳細b                明細2 1000円  ラインカウント=27、ページ内件数カウント=24
 グループ#2フッター
<改ページの発生>
 グループ#2ヘッダー
    詳細b              明細3 2000円   ラインカウント=1、ページ内件数カウント=1
  
   グループ#2フッター
グループ#1フッター 合計  6000円   ラインカウント=4

非表示を全てなくして実行しましたが結果は同じで改ページ前のデータが足されているように思えます。
以上 申し訳ありませんでした。
Re: 合計計算  NZ-000 - 2005/12/16(Fri) 15:00 No.1370

ほむほむ、意図したところ(この場合、ラインカウント27かな)
で改ページしているということはどこかで改ページ条件を
指定していそうなものですがね。

それはさておき、ラインカウントで改ページしていて、
なおかつ、yamazさんの推測(改ページ直前の金額が2重に加算されている)が当たっているなら、
詳細の金額積算フィールドの式を以下のように変更すれば正しい値が取れるということですかな。

WhilePrintingRecords;
CurrencyVar SKKS;
CurrencyVar wPageLineCnt;
if wPageLineCnt = 27 then SKKS else SKKS := SKKS +{金額};
Re: 合計計算  NZ-000 - 2005/12/16(Fri) 15:02 No.1371

あ、失礼、これじゃぁ正しい値にはなりませんね。

でも改ページ直前の金額が影響しているのかは調べられそうですね。

それと、影響を調べるということで気にかかったんですが
改ページしないようにできるんですかね?
Re: 合計計算  24x7 - 2005/12/16(Fri) 15:50 No.1372

グループ#2のフッターに以下の式フィールドを新規作成して挿入してみてください。
WhilePrintingRecords;
CurrencyVar SKKS;
第1グループでは、4000円で、第2グループの改ページ前は、3000円、後では5000円が期待した結果になるべきですよね。

Re: 合計計算  24x7 - 2005/12/16(Fri) 16:10 No.1373

まだ、おかしな部分がありませんか?

> グループ#2フッター
>      〜(0円で20件の明細行があり詳細bを使用)
> グループ#2ヘッダー

グループ#2フッターとグループ#2ヘッダーに詳細があるのはおかしくないですか?以下の3つの組み合わせが20存在するのなら、理解できますが・・

グループ#2ヘッダー
   詳細b               
グループ#2フッター

Re: 合計計算  NZ-000 - 2005/12/16(Fri) 16:48 No.1374

私は詳細bが一件しか表示されてないのはたまたまそのグループ#2の○○グループに属するレコードが一件しかなかっただけと踏んでました。
あと、詳細bにはグループ#2の一件目のレコードしか表示できないので、
(できない理由は{@ブレイク}<>1のときに非表示になる条件式があるからです。)

>0円で20件の明細行があり詳細bを使用
というのはちょっと曖昧で。
0円のレコードが一件表示され、
残りの19件は非表示になるんじゃないでしょうか。

また、この20件に限らず、
表示されていない詳細bの明細行(金額)
がすべて0円でない限り、合計がおかしくなってしまいます。

あと、詳細aと詳細cって何に使う(何を表示する)んでしょう。
金額に関係なければいいんですが。
Re: 合計計算  yamaz - 2005/12/16(Fri) 19:39 No.1375

NZ-000さん、24x7 さん ありがとうございます。
と同時に申し訳ありません。貴重なお時間を頂いているのに説明で間違いが多くて

改ページですが自動的に?しています。
ページヘッダー+27行+ページフッターで改ページされて次のページのページヘッダーが表示されます。
グループ#2のフッターに
WhilePrintingRecords;
CurrencyVar SKKS;
入れてみましたが結果は同じでした。

すみません
グループ#2ヘッダー
   詳細b               
グループ#2フッター
の組み合わせが20個あり全て0円が入っています。

詳細aは、下記のように同じDokBkの中に2件以上あったときに1件目は詳細b、2件目以降は詳細aで表示するようです。今回のデータは全て詳細bで架かれています。
グループ#2ヘッダー
   詳細b     
   詳細a          
グループ#2フッター
詳細cは、wPageLineCnt=RecCnt で最終行の27行目まで来た時に詳細cで表示するようです。
グループ#1ヘッダー
グループ#2ヘッダー
   詳細b     
グループ#2フッター
上記の組み合わせが26回繰り返された後
グループ#2ヘッダー
   詳細c          
グループ#2フッター
改ページ      
以上 本当に申し訳ありません。
Re: 合計計算  24x7 - 2005/12/17(Sat) 01:46 No.1376

今回、金額が一致していないのは、同一グループ#2に複数データが存在しているときですか?

試しにレポートを作成したけど、正しく金額が表示されました。
ちなみに同一グループ#2に複数データは存在しないものです。(以下参照)

「データ内容」
グループ#1の項目 グループ#2の項目 詳細
Japan                     北海道                    2000
Japan                     沖縄県                    2000
USA                       A1                          2000
USA                       A2                          0
USA                       A3                          0
USA                       A4                          0
USA                       A5                          0
USA                       A6                          0
USA                       A7                          0
USA                       A8                          0
USA                       A9                          0
USA                       AA                          0
USA                       AB                          0
USA                       AC                          0
USA                       AD                          0
USA                       AE                          0
USA                       AF                          0
USA                       AG                          0
USA                       AH                          0
USA                       AI                           0
USA                      AJ                          0
USA                      AK                          0
USA                      AL                          0
USA                      VT                          1000
USA                      WA                          2000

レポートのデザインは、以下の通りです。あと、非表示の条件式は、
以前に書かれていたものをそのまま利用しています。

>詳細aの「非表示ドリルダウン不可」の条件式が
>{@ブレイク}=1 or {@ページ内件数カウント} =27

>詳細bの「非表示ドリルダウン不可」の条件式が
>{@ブレイク}<>1 or {@ページ内件数カウント} =27

>詳細Cの「非表示ドリルダウン不可」の条件式が
>{@ブレイク}=1 or {@ページ内件数カウント} <= 26

>詳細dの「非表示ドリルダウン不可」の条件式が
>currencyvar wPageLineCnt;
>wPageLineCnt <27


「レポートのデザイン」
レポートヘッダー (非表示)
ページヘッダーa  <wPageLineCnt:=0><RecCnt:=0>
ページヘッダーb
ページヘッダーc
ページヘッダーd
ページヘッダーe
グループヘッダー#1  <SKSS:=0>
グループヘッダー#2  <DokBk:=0>
詳細a
詳細b <wPageLineCnt:=wPageLineCnt+1> <RecCnt:=RecCnt+1>
         <DokBk:=DokBk+1> <SKSS:=SKSS+金額>
詳細c
詳細d  -------------- <罫線> ----------------------------------
グループフッター#2
グループフッター#1a <SKSS>
グループフッター#1b
グループフッター#1c <wPageLineCnt:=wPageLineCnt+3>
レポートフッター(非表示)
ページフッター

意図的に改ページを発生させていないため、ラインカウント(wPageLineCnt)=27、ページ内件数カウンタ(RecCnt)=24のグループ#2フッター出力後、改ページとなるようにセクションの高さを調整しました。
Re: 合計計算  24x7 - 2005/12/17(Sat) 02:03 No.1377

>グループ#2のフッターに
>WhilePrintingRecords;
>CurrencyVar SKKS;
>入れてみましたが結果は同じでした。

改ページ前と改ページ後、それぞれの値は何ですか?
「結果は同じ」だけでは、わかりません。

繰り返しますが、例題の中には、同一グループ2内で複数データが存在しているのですか?
あと、レポートで利用してる以下の変数の値を表示できる式フィールドを個別に作成して、各セクションに挿入して、変数の値の変化を確認してみてください。

wPageLineCnt
RecCnt
DokBk
SKSS

グループ#2フッターに式フィールドを挿入していただいたのはその目的でした。
さらに今回のレポートはわかりませんが、1つの式フィールドを使いまわしは駄目です。同一式フィールドを複数箇所に挿入すると言う意味です。


データの参照ができない。  くみすけ - 2005/12/16(Fri) 09:51 No.1360

いつもお世話になっています。

CrystalReports4.6→11へ移行作業を行っているのですが
4.6のときに作成したレポートを11で開くとDBには値が入っているにも係わらず
データの参照では何も見えなくて困っています。

「データベースエキスパート」を見てみても正しいDBが選択されていますし、
「データベースの保存場所の設定」で現在のデータソースの
プロパティなどを見てみても接続方法、ユーザー名などあっています。
また、画面右下に表示されるデータ件数もあっています。
なのにデータ内容が参照できません(「データの参照」を行うと真っ白です)

同じウインドウ内で利用可能なデータソースの現在の接続から同じDBを選択して
新規作成を行うい項目を見てみるときちんと内容をみることができます。
4.6→11にバージョンアップする場合、
1から作り直さないといけないのでしょうか?

数が多いのでできるだけ旧資産を使いたいのです。
どなたかご存知の方、ご教授いただければうれしいです。

(初歩的な質問ばかりですいません)
Re: データの参照ができない。  くみすけ - 2005/12/16(Fri) 09:53 No.1361

すいません、開発環境は

  レポート : CrystalReports11
  DB        : Oracle9i
  OS        : WindowsServer2003
  PG        : VB6.0 
    
です。
Re: データの参照ができない。  NZ-000 - 2005/12/16(Fri) 10:06 No.1363

メニュー[レポート]→[データベースの最新表示]
を実行してみてください。
Re: データの参照ができない。  くみすけ - 2005/12/16(Fri) 10:23 No.1364

NZ-000様

情報ありがとうございます。

しかし、レポートデータの最新表示を行っても
依然、データの参照はできないままです。。。

crystalreportviewer  あんば - 2005/12/15(Thu) 12:00 No.1346

初めてお邪魔します。
現在、以下の環境でwebアプリを作成中なのですが、レポート表示のしょっぱなからつまづいています。webツールボックスのcrystalreportviewerをドキュメントにドロップすると、コントロール上に「コントロールの作成エラー」と表示されます。よくよく見ると同コントロールのプロパティウインドウに「データ」のカテゴリーが表示されていません。また、新しい項目の追加にもクリスタルレポートが表示されず、選択できません。参照設定には一通り必要なものは揃っています。また、web.configにアセンブリ情報が自動的に記載されるとあるサイトに書いてあったのですが、そのような記載も全くありません。ためしに手入力しましたが、変わりませんでした(バージョン等の数字も参照設定のバージョンと一致してます)。なにせ,netもcrystalreportも初心者な者で原因が全く分かりません。

開発PC   OS     WIN XP PRO
        開発ソース visual basic.net standard
        レポート   crystalreports9(9.2.3300.0)
webサーバー OS     WINDOWS SERVER 2003 standard edition
                               IIS6
                        visual basic standard 及び crystalreports9 インストール済み

ちなみに、もともとクリスタルレポートは開発PCにインストールされており、その後にVB.netをインストールしたのですが、そのときはコントロールすら現れなかったので、VB.net>>クリスタルレポートの順にインストールしなおしました。どうぞよろしくお願いします。

Re: crystalreportviewer  NZ-000 - 2005/12/15(Thu) 14:41 No.1350

ASP.NETは触ったことがないのでたいしたことは言えませんが、
参照先を認識できないために起きるのではないでしょうか。

>VB.net>>クリスタルレポートの順にインストールしなおしました。

とのことですが、VB.NETも一度アンインストールしたということですかね。

クリスタルレポートを再インストールしただけなら、
以前の情報と参照先がかぶって、あいまいな参照エラーになる可能性があります。

とりあえず、一度ツールバーのCrystalreportViewer項目を削除して、
追加しなおして見てはいかがでしょうか。
Re: crystalreportviewer  あんば - 2005/12/15(Thu) 14:51 No.1352

ありがとうございます。おっしゃるとおり、VB.netもCR9アンインストールしました。もともとツールバーにはCristalReportViewerコントロールは配置されておらず、追加と削除により追加しました。何度か消したり追加したりとやってみましたが変化はありませんでした。

Re: crystalreportviewer  あんば - 2005/12/15(Thu) 18:10 No.1356

サポートサイトよく見たところ、私のは9.2.2.以前のバージョンということで、もともと不具合がでるものでした。サポートサイトの見落としです。しっかり見ないとダメですね。反省します。


クリレポ11でのログオンエラー  くみすけ - 2005/12/14(Wed) 17:33 No.1333

はじめまして。
今回クリスタルレポートを
初めて使用する超初心者です。

WindowsServer2003 + VB6.0 +Oracle9iで
クリスタルレポート4.6.1.0(VB6.0のバンドル)→11への
移行作業を行っております。

実行画面から別画面でプレビューを行ってから
印刷を行うといるようにしているのですが、
プレビュー画面に遷移すると
「ログオンに失敗しました。
詳細:[データベースベンダーコード:1005] 」
で落ちてしまいます。

ヘルプでエラーメッセージを見てみると
似ているので接続に失敗しました、というのがあり、
どうやらデータベースとクリレポの結びつきが悪いようではあるのですが
どこをどう直せばよいのかがわかりません。

どなたかご教授いただければ幸いです。
よろしくお願いいたします。

4.6時のソース
CrystalReport1.ReportFileName = App.Path & "test.rpt"
CrystalReport1.Destination = crpToWindow
CrystalReport1.Connect = ODBCのサービス名;ユーザー名;パスワード
CrystalReport1.Action = 1

11でのソース
<メイン画面(Form_Load)>
Set Report = crxApplication.OpenReport(App.Path & "test.rpt , 1)
プレビュー画面.Show

<プレビュー画面>
CRViewer.ReportSource = メイン画面.Report
CRViewer.ViewReport
(↑ここでログオンエラーでます)

よろしくお願いいたします。
Re: クリレポ11でのログオ...  NZ-000 - 2005/12/14(Wed) 19:04 No.1334

こんにちはNZ-000です。

ソースを見比べた限り、接続パラメータがないじゃないですか?

VB6はわかりませんがVB.NETでは以下のように設定します(MSDNから引っ張ってきただけです)。
ReportはCrystalReportsのレポートオブジェクトですね。


' ConnectionInfo オブジェクトを取得します。
Dim logOnInfo As New TableLogOnInfo()
logOnInfo = Report.Database.Tables.Item("テーブル名").LogOnInfo

Dim connectionInfo As New ConnectionInfo()
connectionInfo = Report.Database.Tables.Item("テーブル名").LogOnInfo.ConnectionInfo

' 接続パラメータを設定します。
connectionInfo.DatabaseName = ""
connectionInfo.ServerName = "ODBCのサービス名"
connectionInfo.Password = "パスワード"
connectionInfo.UserID = "ユーザー名"
Report.Database.Tables.Item("テーブル名").ApplyLogOnInfo(logOnInfo)

Re: クリレポ11でのログオ...  24x7 - 2005/12/14(Wed) 23:55 No.1336

CR4.6.1のOCX の接続で利用するConnectプロパティの代わりに以下のような記述を利用します。

(VB6の記述例)
Dim i As Integer
For i = 1 To Report.Database.Tables.Count
Report.Database.Tables.Item(i).ConnectionProperties.Item("DSN") = "データソース名"
Report.Database.Tables.Item(i).ConnectionProperties.Item("User Id") = "ユーザー名"
Report.Database.Tables.Item(i).ConnectionProperties.Item("Password") = "パスワード"
Next i

メイン画面では、以下のような記述でも動作すると思います。

Set Report = crxApplication.OpenReport(App.Path & "test.rpt , 1)

Dim i As Integer
For i = 1 To Report.Database.Tables.Count
Report.Database.Tables.Item(i).ConnectionProperties.Item("DSN") = "ODBCのサービス名"
Report.Database.Tables.Item(i).ConnectionProperties.Item("User Id") = "ユーザー名"
Report.Database.Tables.Item(i).ConnectionProperties.Item("Password") = "パスワード"
Next i

プレビュー画面.CRViewer.ReportSource = Report
プレビュー画面.CRViewer.ViewReport
プレビュー画面.Show

Set Report = Nothing
Set crxApplication = Nothing

Re: クリレポ11でのログオ...  くみすけ - 2005/12/15(Thu) 10:00 No.1338

NZ-000様
24x7様

ありがとうございました。
サンプルソースもつけていただきとてもわかりやすかったです!

ConnectionInfoプロパティがV6.0では使用できない(?)
みたいなので(コンパイルでエラーになりました)
今回は24x7様の方法を取らせていただきました。

が、
実は実行時に
Report.Database.Tables.Item(i).ConnectionProperties.Item("DSN") = "ODBCのサービス名"
のところで『インデックスが有効範囲にありません』のエラーで落ちてしまいます。
(Report.Database.Tables.Countには1が入っていました)

VBのソースなのでここでお伺いすべきではないのかもしれませんが
もし解決方法などをご存知ならば
教えていただければうれしいです。
よろしくお願いいたします。
(クリレポもVBも初心者な為、質問ばかりですいません。
どうぞよろしくお願いいたします。)
Re: クリレポ11でのログオ...  24x7 - 2005/12/15(Thu) 11:41 No.1342

Report.Database.Tables.Countの値が1の場合、レポートには、1つのテーブルを利用している意味になります。そこで、インデックス値を1でもだめですか?

(記述例)
Report.Database.Tables.Item(1).ConnectionProperties.Item("DSN") = "ODBCのサービス名"

ODBCのサービス名とは、ODBCデータソース名ですね、もしかして、ファイルDSNではないですよね。
Re: クリレポ11でのログオ...  24x7 - 2005/12/15(Thu) 11:46 No.1343

Report.Database.Tables.Item(i).ConnectionProperties で設定するプロパティとその値は、レポートで実際に利用しているものを指定することになります。
OCXのコードをそのままRDCに移行しましたが、V11にアップグレードした後は、異なるプロパティを利用しているかもしれません。 
Re: クリレポ11でのログオ...  24x7 - 2005/12/15(Thu) 11:56 No.1345

以下のコードを挿入して、レポートで利用している ConnectionProperty の内容を確認してみてください。
上記のVBコードと一致していないものが存在しているかもしれません。

(記述例)
Dim CP As CRAXDRT.ConnectionProperty
For each CP In Report.Database.Tables.Item(1).ConnectionProperties
   MsgBox CP.Name
Next
Re: クリレポ11でのロ...   くみすけ - 2005/12/15(Thu) 14:19 No.1347

24x7様

いろいろとご丁寧にありがとうございました!
ConnectionProperty の内容を見てみたところ、
なんやら全然違うものが表示されました(汗)

      CP.Name                       CP
----------------------------------------------
 PreQEServerType        "ODBC−Oracleサービス名−OLD"
                                             (何がOLDなのか謎ですが。。。)
 PreQEServerNAME       "サーバー名"
 UserId                         "ユーザー名"
 UseDSNProperties        True

のでプロパティにPreQEServerType、PreQEServerName、UserId とPasswordを
追加するとエラーなくできるようになりました。

プレビュー画面は開くものの中身が真っ白(涙)という状態ですが、
なんとかログオンはうまいこといけた(?)ようです。
もうちょっと色々試してみてこれを機にクリレポを覚えていきたいと思います。

またお世話になるかもしれませんがよろしくお願いいたします。
ほんとうにありがとうございました!

Re: クリレポ11でのログオ...  24x7 - 2005/12/15(Thu) 14:39 No.1349

このプロパティの内容から、旧バージョンのレポートはV11にアップグレードしていない状態のままのようです。旧バージョンをV11環境でデータベースの再設定をすることでこのプロパティ内容は変更されると思います。又は、旧バージョンのままのレポートファイルを利用する場合、以下のような記述を追加してみてください。

'追加
Report.Database.Tables.Item(1).TestConnectivity
Report.Database.Tables.Item(1).ConnectionProperties.Item("DSN") = "ODBCのサービス名"
Report.Database.Tables.Item(1).ConnectionProperties.Item("User Id") = "ユーザー名"
Report.Database.Tables.Item(1).ConnectionProperties.Item("Password") = "パスワード"

Re: クリレポ11でのログオ...  くみすけ - 2005/12/15(Thu) 16:22 No.1354

24x7様

情報ありがとうございます。
ってなことは、この子は外だけ11だけど中はまだまだ4.6のまま。っという感じなのですね。。。

せっかく11を購入してもらったので
レポートもアップグレードしようと思います!

データベースの再設定。
DBに値はたくさんはいっているのですが、
再設定後(データベースエキスパートでDBを再設定)、データの参照で見てみて、
何もはいっていない。。。というのはやっぱりDBとの接続が正しくできていなのでしょうか(涙)???
奥深いです、クリスタルレポート。

改ページについて  なかじ - 2005/12/13(Tue) 14:22 No.1328

はじめまして。
下記はあやまってクリックしましたすいません。

クリスタルレポート11で開発を行ってます。

改ページ条件として、グループ内のレコードがすべて印字されなければ
改ページという風に設定することは可能でしょうか??

-------------------
Aグループヘッダー
×××××
×××××
×××××
×××××
Aグループフッター

Aグループヘッダー
×××××
×××××
×××××
×××××
Aグループフッター

!!!

次がグループの明細の途中で改ページされてしまうので
!!!でグループの改ページとしたいわけです。
(途中までの印字は見栄えが悪いと指摘されました。)

-------------------

皆様の知恵を拝借させてください。。
Re: 改ページについて  NZ-000 - 2005/12/14(Wed) 08:52 No.1329

こんにちは、NZ-000です。

グループごとの改ページ方法はいくつかありますが、一番一般的なのは、
セクションエクスパートのグループフッターで"出力後に改ページ"に
チェックを入れることでしょうか。

ただし、このままだとレポートフッターが改ページされて出力されまする。

それが理想の形態だ!とおっしゃるならそのままで良いですが、
もしそれらを改ページせずに最後のグループヘッダーから続けて表示したい場合、
グループフッターの"出力後に改ページ"の条件付き書式設定で
以下のような指定を行います。
"OnLastRecord <> true"

意味は最後のグループヘッダーじゃなければ改ページするってことです。
要は目的のデザインになれば良いわけなので、この辺はどんな指定でも
かまわないと思います。
Re: 改ページについて  NZ-000 - 2005/12/14(Wed) 09:26 No.1330

良く見たら、ここのトップページに
普通にグループごとの改ページ方法が載っておりました@@;

"グループごとにページを分けたい"
http://www.hirano.cc/crystalreports/misc.html#groupPage

あと良く考えたら、グループ毎改ページはなかじさんの目的とは違いますね。
たぶん、こちらが参考になるでしょう。

"グループがページをまたがるとき分断されないようにしたい"
http://www.hirano.cc/crystalreports/misc.html#groupKeep
Re: 改ページについて  24x7 - 2005/12/14(Wed) 11:47 No.1331

同一グループ内で改ページが発生しないようにしたいということでしょうか。あるグループのグループフッターのところで改ページが発生するように・・
これは、無理ですね。詳細セクションにどのぐらいのデータ量が表示されるか不特定なわけで、グループ数もいくつまで1ページ内に収まるかわかりません。
上記回答のようにグループ毎に改ページされることは容易ですが、1ページに複数のグループを表示させるためには予めそれぞれのグループ単位でどのくらいのデータ量(件数)が存在しているか判断する必要があると思います。その結果、1ページに収まるなら、表示して、収まらなければ、改ページという処理になると思います。でも、面倒ですね。


無題  なかじ - 2005/12/13(Tue) 14:14 No.1327

下記のような帳票があったとします

-------------------
Aグループヘッダー
A001 100
A002 200
A003 300
Aグループフッター
小計 600
Bグループヘッダー
B001 100
B002 200
B003 300
Bグループフッター
小計 600
総計 1200
-------------------

グループ集計結果から差額を引く  0olong - 2005/12/09(Fri) 16:21 No.1319

こんにちは
はじめて投稿します。
0olongと申します。

開発環境はクリスタルレポート9です
グループの出力時にある条件がヒットした場合に
差額のみを表示したいのですが
うまくいかなくて困っています。

下記のような帳票があったとします

-------------------
Aグループヘッダー
A001 100
A002 200
A003 300
Aグループフッター
小計 600
Bグループヘッダー
B001 100
B002 200
B003 300
Bグループフッター
小計 600
総計 1200
-------------------

例えば
Zグループに200円の金額が発生していた場合
AグループのA003から差し引きたいのです

-------------------
Aグループヘッダー
A001 100
A002 200
A003 100 ←集計結果300からZグループの200を引いた100にしたい
Aグループフッター
小計 400
Bグループヘッダー
B001 100
B002 200
B003 300
Bグループフッター
小計 600
総計 1000
-------------------

小計と総計も差額を考慮したいのですけど
このようなことは可能でしょうか?

Re: グループ集計結果から...  NZ-000 - 2005/12/09(Fri) 17:02 No.1322

こんにちは、NZ-000です。

いまいち曖昧でへぼな私には理解しずらいので質問させてもらいます。

/*---------------引用---------------*/
例えば
Zグループに200円の金額が発生していた場合
AグループのA003から差し引きたいのです
/*-----------------------------------*/

Zグループは固定なのですか?
動的に判断するなら判断基準がほしいですん。

AグループのA003は固定なのですか?
これもまた動的に判断するなら判断基準が知りたいですん。

つまり、ある条件というのがわからないとなんとも。
できそうとだけ答えておきまする。
Re: グループ集計結果から...  0olong - 2005/12/09(Fri) 17:49 No.1323

NZ-000さんありがとうございます
説明が下手ですいません;;

>Zグループは固定なのですか?
固定です
Zグループの金額は積算合計フィールドから取得しています。
頭文字Zのものを集計してます。

>AグループのA003は固定なのですか?
はい。「A003」固定です。

差額がZグループのほうが大きければ
逆に「A003」は非表示にしたいのです

グループフッターの非表示条件式に
---------------------------------------------
//Zグループに差額がある場合
if ({コード}='A003') then
  if ({A003の金額} - {Zグループ積算合計フィールド}) <= 0 then
    true
---------------------------------------------
といれたら非表示にはなりましたけど
グループ小計にはA003の金額が集計されています

非表示の場合は小計の対象としたくないのです
無理でしょうか?

Re: グループ集計結果から...  NZ-000 - 2005/12/09(Fri) 19:35 No.1324

むむむ、話の進み具合からして
A003の金額をZグループ積算合計フィールドから引いた金額することはできたのでしょうか。


非表示の場合に小計の対象としない設定があるのかはわかりません。
ただ対象にしたくないなら、
以下のような式フィールドを作成してそれを金額フィールドの変わりに利用すれば、
差額が0以下のとき0と扱われるので
小計の対象にならないように見せかけることができるのではと思われます。

if ({A003の金額} - {Zグループ積算合計フィールド}) <= 0 then 0
else ({A003の金額} - {Zグループ積算合計フィールド})
Re: グループ集計結果から...  NZ-000 - 2005/12/09(Fri) 19:51 No.1325

>A003の金額をZグループ積算合計フィールドから引いた金額することはできたのでしょうか。

  「金額すること」→ 「金額にすること」 
  
「に」が抜けていました。

余談で最初の質問の「A003の金額をZグループ積算合計フィールドから引いた金額にする」
というのは
同じく式フィールドを利用してできると思います。
こんな感じかな?
if {コード} = 'A003' then {金額} - {Zグループ積算合計フィールド} else {金額}


両方組み合わせれば目的の動作が得られるような気がする。
if {コード} = 'A003' then (if ({金額} - {Zグループ積算合計フィールド}) <= 0 then 0
else ({金額} - {Zグループ積算合計フィールド})) else {金額}
Re: グループ集計結果から...  0olong - 2005/12/09(Fri) 20:52 No.1326

金額フィールドに計算式だったんですかぁ
A003の金額も小計も差額分が反映されました

わかりやすいご説明ほんとうにありがとうございました
感謝感謝です^^

理由がわからない  初心者 - 2005/12/09(Fri) 16:42 No.1320

こんにちわ!理由がよくわからないため教えてください。
VB6.0、Oracle8.1、CrystalReport8.5
で開発していますが、CrystalReport上で作成した帳票を
VBに追加をすると理由もなく落ちます。
念のため再起動してもう一度試しに行ってみたのですが
落ちます。 別帳票で行ってはいないのですがなんでで
しょうか?

名前の通り初心者なので宜しくお願いします。

理由がわからない  初心者 - 2005/12/09(Fri) 16:50 No.1321

追加
 一応別帳票では追加できました。本当に追加したいものは
 追加できません。

エクスポートのファイル名について  ten - 2005/11/30(Wed) 15:05 No.1283

はじめまして

CrystalReportsV10をWindows2003Server+IIS6.0+SQLServer2000+ASPの環境で使用しています。

CrystalReportsの機能でプレビューをした後エクスポート機能でPDFファイル等にファイル名を入力して出力出来るのですが、このファイル名をデフォルトで設定しておくことは可能でしょうか?
asp内でどのように指定したらよいのかわかりません。

よろしくお願いいたします。
Re: エクスポートのファイ...  24x7 - 2005/12/02(Fri) 06:26 No.1285

ビューアのエクスポートアイコンからのエクスポートでは、ファイル名を固定にはできません。
Re: エクスポートのファイ...  ten - 2005/12/02(Fri) 15:08 No.1287

24×7さん、ご回答ありがとうございます。

ビューアのエクスポートでは、設定できないんですね。

では、ブラウザ上でボタンをクリックすることで自動的にPDFファイルを生成(ファイル名は動的に設定)&ローカルにダウンロードさせることは可能でしょうか?
もし可能でしたら、どのように指定するとできるかご教授いただけると幸いです。

よろしくお願いいたします
Re: エクスポートのファイ...  24x7 - 2005/12/03(Sat) 05:10 No.1290

ASPコードから指定することは可能です。
メーカーサイトの以下のサンプルASPを少し修正することでできました。http://support.businessobjects.com/communityCS/FilesAndUpdates/aspxmps10.exe.asp   
この中にSimpleReportExport.zipが含まれていますので、これをPDF形式に変更します。ファイルはすべて仮想ディレクトリにコピーしました。ASPコードの修正箇所は、3つです。2つの"ExportedReport.doc"を"ExportedReport.pdf"にして、ExportType = "31"とします。その結果、PDFで表示とPDFファイルに出力されました。

Re: エクスポートのファイ...  24x7 - 2005/12/03(Sat) 05:15 No.1291

Windows2003とIIS6.0では何か制限事項があったようなこと聞きました。上記のサンプルの中にSimpleExportIIS6IsolationMode.zipがあります。ファイル名からIIS6.0用かもしれません。Windows2003が無いので試していませんが、これも試してみてください。
Re: エクスポートのファイ...  ten - 2005/12/05(Mon) 09:56 No.1306

24×7さん、ご回答ありがとうございます。

SimpleReportExport.zipを試してみたのですが、SimpleReportExport.asp実行直後、ExportedReport.pdfにアドレスは変更されたのですが、「ページが見つかりません」が
表示されうまく動作しませんでした。
pdfファイルをサーバで生成する際の権限の関係かもしれません。

SimpleExportIIS6IsolationMode.zipも試してみました。
こちらは、pdfで表示されました。
ただし、ファイルの出力の設定がSimpleExportIIS6IsolationMode.asp中になかったので
ファイル出力は自動ではできませんでした。

SimpleReportExport.aspの方で、サーバの環境を変えてみてやってみます。

いろいろとありがとうございました。

ストアド  MC - 2005/11/29(Tue) 14:55 No.1276

はじめまして。
ご存知の方がいらっしゃれば、教えてください。

テーブルの変わりにストアドプロシジャが設定できるようですが、
これは、SQL Serverだけでなく、Oracleもできるのでしょうか?

SQL Serverと違って、Oracleはストアドの結果セットが返ってこないと
思うのですが、何か、できる方法があるのでしょうか?

よろしくお願いします。
Re: ストアド  24x7 - 2005/11/30(Wed) 07:16 No.1281

Oracleのストアドプロシジャも利用できるはずです。
Re: ストアド  MC - 2005/11/30(Wed) 09:20 No.1282

そうなんですね。

24x7さん、ありがとうございます。

IIFについて  Drop - 2005/11/28(Mon) 11:56 No.1274

おはようございます。
いつもお世話になります。

Crystal Report8で開発を行っております。

データベースフィールドを使用してレポートの表示を行おうとしています。
そのときに式を利用して表示しようとしているのですがうまくいきません。

状況といたしましては
MDBでSingle型のフィールドAをつくり、
それをクリスタルレポートでデータベースの追加を行い、
そのフィールドAをデータベースフィールドとしてレポートに貼り付けました。

そのフィールドAにはNull値が入ってくる可能性があるため
IIF ( IsNull({フィールドA}), 0, {フィールドA})というふうに記述しました。
ですが、結果は何も表示されませんでした。
IsNullでNullということはわかったのですが、
IIFのfalseの部分がうまくいきません。
falseの部分に数字(例えば123)などを記述すると
Null値が入ってきても0が表示される事がわかりました。
falseの部分にデータベースフィールドを入れると
うまく動作しないのでしょうか?

宜しくお願い致します。


Re: IIFについて  24x7 - 2005/11/30(Wed) 07:15 No.1280

IIFは利用しないほうがいいでしょう。
IIFの利用方法と異なりますが、以下のような式で試してみてください。
If IsNull({フィールドA}) Then
0
Else
{フィールドA}

サウザンドセパレータが付かない様にする方法を教えてください。  crystalking - 2005/11/10(Thu) 11:10 No.1155

cstr(year(today()),0) & "年"
この式を実行すると 2,005年 になってしまいます。
プロパティのサウザンドセパレータをFALSEにしてもだめでした。
教えてください。
Re: サウザンドセパレータ...  まや - 2005/11/24(Thu) 15:40 No.1258

cstr関数じゃなくてtotext関数を使えばいけると思います。
totext(変換前の数値,小数点以下の桁数,"桁区切りの文字","小数点の文字")
となるので、桁区切りの文字のところを "" にすればよいかと。
もう解決しちゃってたらすみません。。

Re: サウザンドセパレータ...  crystalking - 2005/11/28(Mon) 10:57 No.1273

ThankYou まや!!

8.5のサービスパック  はつ - 2005/11/25(Fri) 12:14 No.1265

Crystal Reports 8.5を使っています。
最新のSPをあてたら、エラーメッセージの内容が
表示されなくなってしまいました。
どなたか対応方法ご存知でしょうか?

データを2回出力する方法  まや - 2005/11/16(Wed) 16:27 No.1197

VB.NETに付属のものを使っています。

グループヘッダ1
 レコードA
 レコードB
 レコードC
グループフッタ1
--------------
グループヘッダ1
 レコードA
 レコードB
 レコードC
グループフッタ1

というように、1ページに同じ内容のデータを
上下に2回表示させたいのですが、なにかいい方法はないでしょうか?

あとできれば、1グループにつき8レコードずつ表示させたいので、
8レコードに満たない場合は、空行を、8レコード超の場合は改ページ、
という操作方法もあれば、教えてください。

宜しくお願い致します。
Re: データを2回出力する方法  24x7 - 2005/11/17(Thu) 00:50 No.1200

1ページに同じ内容のデータを上下で表示する方法ですが、サブレポートを挿入したらどうですか。メインレポートとサブレポートをグループで利用した項目でリンクします。例えば、サブレポートは、グループヘッダー、詳細、グループフッター以外は、非表示とします。このサブレポートをメインレポートのグループフッターに挿入します。メインレポートのグループフッターの「出力後に改ページ」をチェックします。
これで期待する結果になると思います。複数ページに跨っている場合も上の部分の表示後、下の部分が表示されます。上の表示の最終ページのすぐ後に下の1ページ目を表示したい場合、サブレポートの書式設定から「まとめて表示する」のチェックを外します。すると・・上の部分の最終ページのすぐ後に下の1ページ目を表示できます。
Re: データを2回出力する方法  24x7 - 2005/11/17(Thu) 00:53 No.1201

忘れていましたが、サブレポートは、メインレポートのグループフッターに挿入すると書きましたが・・グループフッターに何か表示されている場合、グループフッターの「その下にセッションを挿入」してください。グループフッターaとグループフッターbに分かれると思います。このグループフッターbにサブレポートを挿入します。
なお、サブレポートの中では、グループフッターを2つに分けることは不要です。

Re: データを2回出力する方法  24x7 - 2005/11/17(Thu) 01:42 No.1202

1グループ内で8レコード未満に空行を表示させる方法ですが、グループフッターを利用します。すでにこのレポートには、2つのグループフッターが挿入されているのでその上に7つのグループフッターを挿入します。
デザインイメージは以下のような感じですね。
グループヘッダー1
詳細
グループフッター1a
グループフッター1b
グループフッター1c
グループフッター1d
グループフッター1e
グループフッター1f
グループフッター1g
グループフッター1h [オリジナルのグループフッター1]
グループフッター1i  [サブレポート]
グループヘッダーに以下の式を挿入します。
WhilePrintingRecords;
NumberVar a:=0;
詳細セクションに以下の式を挿入します。
WhilePrintingRecords;
NumberVar a;
a:=a+1;
グループフッター1aから1gまでのセクションの非表示の条件式に式を挿入します。
例えば、グループフッター1aは、以下の通りです。
//グループフッター1a
WhilePrintingRecords;
NumberVar a;
Remainder(a,8) < 1
グループフッター1bは以下の通りです。
//グループフッター1b
WhilePrintingRecords;
NumberVar a;
Remainder(a,8) >= 2
これは、詳細セクションで表示された行数(レコード数)に応じて、グループフッターを非表示させるようにします。式の記述内容は、自信がないので適当に修正して試してください。8レコード超えることを想定して式を修正してください。

余談ですが、上記の式フィールドで利用したRemainder関数は、余りを計算できるものです。例えば、Remainder(a,8)=0 は、aを8で割って余りがゼロになるかという式になります。aの部分は、直接フィールドを参照することも可能です。

Re: データを2回出力する方法  24x7 - 2005/11/17(Thu) 01:49 No.1203

最後に、詳細に8レコードを超える場合、改ページさせる方法ですが、
詳細セクションの「出力後に改ページ」の条件式に以下の式を挿入します。
WhilePrintingRecords;
NumberVar a;
Remainder(a,8) =0;

これで、詳細には、8レコード毎に改ページが発生します。
但し、このレポートでは、1つのページに上下で同じデータ表示をするので期待する結果にはなりません。

ありがとうございました  まや - 2005/11/22(Tue) 17:16 No.1244

ご報告が遅くなって申し訳ございません。

結局、同じ内容を2度表示するよりも、8行ずつ表示させるほうを優先させることになってしまいました。
とりあえず、8行ずつは成功しましたので一応ソースあげときます。
何かのときに参考になれば幸いです。
-----------------------------------------------------------
詳細a (ヘッダ部分の表示)
 非表示   :whileprinthingreports;
               numbervar a;
               if onfirstrecord or previous ({グループ1}) <> {グループ1} then false
               else if remainder(a,8) <> 0 then true
 式フィールド:whileprintingrecords;
                numbervar a;
                if onfirstrecord or previous ({グループ1}) <> {グループ1} then a := 0
                else if remainder(a,8) = 0 then a := 0;
詳細b (詳細行の表示)
式フィールド:whileprintingrecords;
                numbervar a;
                a := a + 1;
詳細c (上段グループフッタ分の空白表示)
非表示   :whileprintingrecords;
               numbervar a;
               if (a = 0) or remainder(a,8) <> 0 then true;
グループフッタa (2行目の空行表示) 
非表示   :whileprintingrecords;
               numbervar a;
               remainder(a,8) < 1;
グループフッタb (3行目の空行表示) 
非表示   :whileprintingrecords;
               numbervar a;
               remainder(a,8) >= 2;
-----------------------------------------------------------
というようにグループフッタを増やしていって、最後のグループフッタに本物のグループフッタをいれればOKでした。
参考といいつつ、式がきたなくてごめんなさい。

とてもきれいなレポートを作ることが出来ました。
24x7様、どうもありがとうございました。


カスタム用紙の印刷について  もっくん - 2005/11/17(Thu) 17:14 No.1208

はじめまして。もっくんです。

レポート印刷で質問があるのですが、宜しくお願いします。

プリンタサーバーにカスタム用紙を登録したのですが、
レポート側で用紙サイズが指定できない為、デフォルトの印刷設定で印刷されてしまいます。
デフォルトの印刷設定を登録したカスタム用紙に設定すれば良いのですが、各クライアントの印刷設定をすべて変えるのは嫌なんです。。。
CrystalDecisions.Shared.PaperSizeのメンバ以外は設定できないのでしょうか?

以上、分かりづらくて申し訳ありませんが、解決方法などお分かりの方おりましたら、
宜しくお願い致します。

開発環境
C#.NET2003
Re: カスタム用紙の印刷に...  24x7 - 2005/11/19(Sat) 02:40 No.1224

これは難しい問題ですね。用紙サイズは、値としてWindowsOS環境に保持されていると思います。同一用紙サイズを定義してもその値が異なることがあります。試しにマイクロソフトに用紙サイズの値を取得できるVBコードがあるから調べてみてください。WindowsOSがすでに定義済みの用紙サイズは各クライアントでは同一値だと思いますが、カスタム用紙では各クライアントによって違ってくると思います。たとえ、同一値であってもそれは偶然だと思っている方が無難でしょう。
Re: カスタム用紙の印刷に...  もっくん - 2005/11/21(Mon) 09:28 No.1235

24x7様

ご返答ありがとうございます。

登録したカスタム用紙のサイズを
(int)mPrint.PrintOptions.PaperSizeで取得したところ、300でした。
これを、
mPrint.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)300;
とすると、なんと旨い事いくのです。

で、API関数のGetFormでカスタム用紙のサイズがをなんとか取得したのですが、
ページサイズの300は取得できませんでした。

もうちょっと調べてみます。
ありがとうございました。

Re: カスタム用紙の印刷に...  もっくん - 2005/11/22(Tue) 17:03 No.1243

API関数のGetPrinter、DeviceCapabilitiesあたりを使って、
ようやくできました(^-^ ;)

DeviceCapabilitiesの設定がむずかった。。

お騒がせいたしました。

非表示にしたフッタの領域  Takanosuke - 2005/11/18(Fri) 17:41 No.1215

すみません。助けてください。

 フッタを奇数ページに出力し、偶数ページは非表示にして、偶数ページでは詳細を多く出力するようにしたいと考えております。しかし、非表示設定を行ってもフッタの高さが確保されたままのようで、奇数ページと同一の領域にしか詳細を出力することができませんでした。

非表示にした場合に、領域も開放できるような方法はないでしょうか?

Re: 非表示にしたフッタの領域  24x7 - 2005/11/19(Sat) 02:33 No.1223

フッターはどこのフッターですか?ページフッター?領域を開放するという意味がわからんけど・・Crystal Reprots は、勝手に余ったページの領域に出力できないと思って改ページすることがあります。それを防ぐため「まとめて表示する」のチェックを外したり、ページの余白等を調整したりします。もう少し詳細なレポートのデザインがわからないとアドバイスができませんね。

2ページ以上のレポートで1ページ目は顧客情報等の固定データを表示するため、データ数が少なく、2ページ目以降は、固定データの表示が不要になるのでその領域にデータを表示したことがあります。このレポートでも非表示の条件式を利用しました。1ページ目と2ページ目以降が異なる内容で表示されるレポートです。
Re: 非表示にしたフッタの領域  Takanosuke - 2005/11/21(Mon) 14:57 No.1237

返事が遅くなり申し訳ございません。

フッターはページフッターの事です。

詳細セクションは複数列に出力を行う関係で、ページ幅の半分の幅にしています。
そこで、本来グループフッターに記述してグループごとにフッターを出力したかったのですが、このフッターがページ幅いっぱい使用した横長のものでしたので、ページフッターに記述するしかなくなりました。

こんな経緯なのですが、ページフッターを非表示にしてもページフッター分出力できずに困っています。
Re: 非表示にしたフッタの領域  24x7 - 2005/11/22(Tue) 09:59 No.1241

奇数ページと偶数ページの判定がうまく動作していないとか?

チャートの細部変更について  どみり - 2005/11/21(Mon) 17:49 No.1238

はじめまして。
CrystalReportで壁にぶつかっています。
皆様の知恵をお貸し下さい。

VS.net2003 でWEBアプリケーションを作成し、
その中にグラフを表示するため付属のCrystalReportsを使用しています。

とりあえずは、それっぽい表示は可能なのですが、
@グラフの色は指定できないのか?
A凡例の文字は自由に変えられないのか?
など、細かいところがうまく出来ません。

どなたかご存知の方いましたら、ご助言お願いいたします。

グループごとの改ページについて  はせ - 2005/11/18(Fri) 19:10 No.1217

はじめまして。はせと申します。
開発環境はWinXP+.Net2003+付属のクリスタルレポート、
言語はC#を使っています。


グループごとの改ページについて質問させていただきます。


まず、ページレイアウトは


ページヘッダ
    出力日時
グループヘッダ(種別1でグループ化)
    種別1    種別2    種別3
    種別4    種別5    種別6
詳細
    受付日1    処理日1    処理内容1    金額1
    受付日2    処理日2    処理内容2    金額2
グループフッタ
    金額の合計


となっており、次ページ以降も同じレイアウトで出力します。
この時、グループヘッダにある種別のどれかが変化した場合に
改ページの処理をさせたいのですが、どのような方法で実現できるかわかりません。
グループフッタの「出力後に改ページ」のチェックなし状態で式として
以下のコードを記述しましたが、種別1が変化した場合のみ改ページされる結果となりました。


WhilePrintingRecords
if NextValue (種別1) <> {種別1} or _
    NextValue ({種別2}) <> {種別2} or _
    NextValue ({種別3}) <> {種別3} or _
    NextValue ({種別4}) <> {種別4} or _
    NextValue ({種別5}) <> {種別5} or _
    NextValue ({種別6) <> {種別6} then
    formula = true
else
    formula = false
end if


解決策、他の制御方法など、ご存知の方いらっしゃいましたら
よろしくお願いいたします。

Re: グループごとの改ペー...  24x7 - 2005/11/19(Sat) 01:58 No.1221

グループヘッダーに複数項目を挿入しても表示されるデータは、同一グループ内の一番目のデータのみではないでしょうか?また、グループフッターは、同一グループ内の最後のデータのみしか表示することはできません。
そのため、同一グループ内である項目の値が変化したときの判定は、グループフッターではできないと思います。グループヘッダー/フッターは、グループ単位での変化をチェックすることは可能だと思います。各レコードの項目の変化を判定するのは、詳細セクションになると思います。

Re: グループごとの改ペー...  24x7 - 2005/11/19(Sat) 02:10 No.1222

実現する方法ですが、前提条件として、種別2から種別6までが階層構造のデータになっている必要があります。
例えば、都道府県のように 日本-北海道-札幌市-○○区-△△町-□□村 というデータ構造です。
その場合、種別1から種別6までのグループを個別に挿入します。
こんな感じです。
グループ1(種別1)
 グループ2(種別2)
  グループ3(種別3)
   グループ4(種別4)
     グループ5(種別5)
       グループ6(種別6)
グループヘッダー6に表示したい項目を挿入して、グループヘッダー1〜5までは、非表示にします。グループフッターも同様です。
そして、グループヘッダー6の非表示の条件式に上記の式を挿入して試してください。グループヘッダー6のレベルなら、それよりも上位のグループの項目の値の変化を判定することが可能になります。

種別2から6までが同一レベルのデータであれば、上記の方法は利用できません。
詳細セクションで判定することになります。
Re: グループごとの改ペー...  24x7 - 2005/11/19(Sat) 08:38 No.1225

よく考えるとレポートのデザインに問題ありませんか?同一グループ内で該当種別の値が変化すると改ページがいくつも発生することになります。でも、グループフッターは同一グループには1回しか表示できません。

グループヘッダー(種別1)

種別2〜6の値の変化で☆改ページが発生☆

種別2〜6の値の変化で☆改ページが発生☆

種別2〜6の値の変化で☆改ページが発生☆

グループフッター(種別1)

てな具合になりませんか?
やはり、種別1と他の種別2〜6の関係が明確じゃないとわかりませんね。

Re: グループごとの改ペー...  はせ - 2005/11/19(Sat) 14:13 No.1227

24x7様


御返答ありがうございます。


表示されるデータは仰る通りグループ内の先頭データのみです。
レポートのデザインに関してはフォーマットが決められているため残念ながら変更はできません。
また、各種別の関係ですが、種別1と種別2が最上位レベル、種別3は第2レベル、種別4と種別5は第3レベル、種別6が最下位レベルといった構造です。


当面は24x7様の返答内容をヒントに頑張ってみようと思います。


改行について  さがりん - 2005/11/15(Tue) 18:57 No.1188

CrystalReportXI(DB:Oracle)を使用しています。

(入力)
 あいうえお
 かきくけこ
 さしすせそ

上記のように入力したら、CR上でそのまま表示させたいのですが、
DB内の改行コードを自動でCRは認識できるのでしょうか?

CRの環境がないので、もしご存知の方がいらっしゃいましたら、
教えてください。
もし出来ない場合、何か方法があれば、それについても
ご教授ください。

Re: 改行について  Kimberly - 2005/11/19(Sat) 09:04 No.1226

さがりん様

Accessデータベースでは、改行コードが入っていても認識されて表示されました。但し、フィールドの「複数行に出力」は、チェックしてください。このチェックがないと最初の1行分しか表示されません。


非連結フィールド(数値)に・・・  SCC - 2005/11/17(Thu) 20:21 No.1210

はじめまして。SCCと申します。
Crystal Reportsの初心者です。

C#と.Net2003に付属のCrystal Reportsで開発しています。

画面から入力した値をCrystal Reportsの非連結フィールドに
セットし、そのセットされた値をレポートに出力し、
かつ、その値で、フィールドの表示・非表示を考えています。

そこで、画面から入力した値をCrystal Reportsの非連結フィールドに
セットする手法がわかりません。

ご存知の方、ご教授よろしくお願いします。

PrintToPrinterのエラーについて  さとし - 2005/11/17(Thu) 19:14 No.1209

はじめまして。
VB.NET2003+クリレポ10+XPという環境で開発しています。
慣れていないため色々調べたのですが行き詰まってしまいました・・・・

クリレポを別で作成しプレビューなしで印刷しようと思いReportDocumentを使用すればよいところまではわかりました。
しかしPrintToPrinterを実行すると
「DLL crpe32.dll の PEOpenEngineEx というエントリ ポイントが見つかりません。」
とういエラーが出てしまいます。

    Dim Rp As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    Rp.FileName = "path\xxxxx.rpt"
    Rp.PrintToPrinter(1, False, 0, 0)
以上のような書き方をしています。
うまくいけばプリンタ、用紙、向きなどの設定をしていくつもりです。

他には現システムがVB6+クリレポ4.6で作成されているので同じPCにインストールしてあります。(少し気になっております・・・)
参照設定は色々追加してしまいました。

ヒントやキーワード、別の印刷方法でもかまいませんので知っている方がいればよろしくお願いします。


| 1| 2| 3| 4| 5|