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

パラメータ値がはみ出してしまいます  KAZ - 2004/10/22(Fri) 10:30 No.286

こんにちは。KAZと申します。

現在、ASPからActiveX Viewerを利用してレポートをブラウザ上に表示させています。

今回、CrystalReports8.5からCrystalReports9へバージョンをアップさせたのですが、
レポートを表示したところ、パラメータフィールドの値がすべて表示され、指定しているオブジェクトサイズからはみ出してしまい困っています。
CrystalReports8.5の時は指定のオブジェクトサイズでパラメータ値が切られたので納まっていました。

CrystalReports9において、パラメータ値をオブジェクトサイズ内で収める方法をご存知の方がいらっしゃれば、ご教示願います。

よろしくお願いいたします。

インストールすると・・。  タグチ - 2004/10/21(Thu) 18:49 No.285

はじめまして、タグチといいます。
2004/09/27 の『フジ』さんの投稿と同じなのですが、

開発環境とテスト環境で印刷する用紙設定が違ってくるという現象が発生しています。
開発環境ではデザイン時に右クリック→デザイン→プリンタの設定で用紙サイズを設定し
デバッグでは設定したサイズでプレビュー、印刷ができます。
しかし、テスト環境へインストールすると用紙サイズがまったく違ってプレビュー、印刷されます。ロジックでは用紙サイズは設定していません。
対策方法などご存知の方はご教授ください。


用紙は『連続紙 たて4 1/2インチ』です。
ロジックで用紙設定出来ませんでしょうか?


初心者の質問  nao - 2004/10/18(Mon) 18:20 No.276

はじめまして、私はクリスタルレポートを使うのは初めてなのですが、使っていて気になることがあったので質問します。クリスタルレポートには一ミリごとに目盛がついていて大変わかりやすく線オブジェクトなどミリ単位で配置できるのはいいのですが、そこに配置するフィールドは一ミリ単位で配置することはできないのでしょうか?

Re: 初心者の質問  nao - 2004/10/18(Mon) 18:31 No.277

詳しく説明します。ミリ単位の帳票を作る必要があって、線オブジェクトやボックスオブジェクトでかなり細かい枠を作ったのですが、それにうまく当てはまるフィールドが書式の変更などで調整してもできません。書式の変更を使うよりさらに細かく調整する方法はあるのでしょうか?

Re: 初心者の質問  ひらちゃん - 2004/10/20(Wed) 00:21 No.280

はずしてるかも知れませんが、
右クリック->デザイナ->デフォルト設定で、グリッドに合わせるをはずすと出来たりしないですかね。
Re: 初心者の質問  nao - 2004/10/21(Thu) 14:45 No.284

ありがとうございます。その方法でできました。         すいませんかなり基本的な質問でしたね。              

教えてください!!  肩こり - 2004/10/20(Wed) 18:44 No.282

始めまして。
 .NET、クリスタルレポート、SQLServerで開発が始まりました。
 .NETは今回初めてです。さっぱりわからなくて困ってます。
 ODBCを使わず、INIファイルを取得しServerにログインし、
 DBからデータを取得しクリスタルレポートでプレビューしろとの事です。

 上位プログラムでWORKファイルを作成し、ODBC経由でサクッと
 作表するつもりだったのにー!!!

 どうすればいいんだろう???INIファイル取得は共通関数があるようなのですが
 どうすればいいか教えてください!


オブジェクトの微調整ができません…  oldwest - 2004/10/19(Tue) 17:57 No.279

初めて投稿します。

いまクリレポ上のオブジェクトの配置を微調整しようとしていますが,
うまくいきません。
2つのオブジェクトを選択して,
[書式]-[配置]-[上]などとすると,本来上を基準にしてy座標が
揃ってくれると思っていたのですが,合いません。
[グリッドオプション]のチェックも外したのですが…
また「オブジェクトのサイズと位置」で直接,値を入力しても思うように
反映されません。
何か制限があるのでしょうか?
ご存知の方が居られましたら,宜しくお願い致します。

Re: オブジェクトの微調整...  ひらちゃん - 2004/10/20(Wed) 00:26 No.281

おー、こんな機能は知らなかった・・・。
.NETのおまけですが、出来ました。
右クリックをしたオブジェクトの上のy座標に揃うみたいですね。

Crystal Reportsで改ページ後のヘッダー(クロス集計)が空白になってしまう  井口廣踏 - 2004/10/18(Mon) 17:54 No.275

初めての投稿になります

井口です。
 

現在、Crystal Report for Visual Studio .NET(.NETに標準でついていたもの)を使用して、帳票(PDF)を作成しています。 

「CrystalReportViewer」に配置した「グラフ」と「クロス集計」を、PDFに出力し「Adobe Reader」を起動するところまでは自力で出来ました。

しかし、PDFに出力後内容を見てみると1ページ目は正常(行ヘッダー、列ヘッダーが表示されている)に表示されているのですが、改ページされたページでは「クロス集計」の行ヘッダー、列ヘッダーが空白になってしまい困っています。 

「クロス集計」は列ヘッダー数が多いいためA4ページ(横)に収まらない分を列ヘッダー、行ヘッダーのある状態で改ページする方法を知っている方教えてください。
  

【開発環境】

OS                   : WindowsXP Pro(SP2)

.NET                 : Microsoft Visual Studio .NET 2002(VB使用)

IE                     : 6(SP2)

クリスタルレポート : Crystal Report for Visual Studio .NET

IIS                    : 5.0
Re: Crystal Reportsで改・..  井口廣踏 - 2004/10/19(Tue) 12:06 No.278

自己レスですいません。
井口です。

以下の内容を満たせる方法を探しています。
@クリスタルレポートを使って列をデータ連結時に作成できる
AA4用紙をはみ出る分の列は改ページ(ヘッダー、フッター付)される
BA4用紙をはみ出る分の行は改ページ(ヘッダー、フッター付)される

Webなどを検索しているのですが、見つかりませんわかる方いましたら「こんな風にやればできるかも?」でもいいので情報提供お願いします

詳細の1行ごとに別の処理  ヨシモト - 2004/10/07(Thu) 19:33 No.273

クリスタルレポートで詳細を1行ごとに背景、もしくわ罫線の変更は可能でしょうか?
また、その方法もご教授いただけたらうれしいです。
よろしくお願いします。
Re: 詳細の1行ごとに別の処理  猿町 - 2004/10/08(Fri) 23:14 No.274

ヨシモト様、

詳細の1行ごとに罫線の変更をすることはできません。
考えられる方法は、詳細を複数に分割して、罫線だけを別に挿入します。
その罫線が挿入した詳細をレコードの値、レコード番号等で切り替えて表示させます。但し、横罫線だけが有効です。
例えば、詳細から「セクションの下に挿入」を2回実行して、もう2つの詳細を挿入します。それぞれ異なる横罫線を挿入します。
レポートを表示する際に、そのレコード番号によって変更するようにします。
詳細a には、項目フィールドを挿入します。詳細bと詳細cは、それぞれ異なる横罫線を挿入します。
詳細bと詳細cのセクションエクスパートの非表示の条件式に
それぞれ以下の式を挿入します。
詳細b:
WhilePrintingRecords;
Remainder(RecordNumber,2) <> 0
詳細c:
WhilePrintingRecords;
Remainder(RecordNumber,2) = 0
その結果、奇数のレコード番号は、詳細b、偶数のレコード番号は、詳細cが表示されます。
横罫線のみであれば、このような方法で可能と思います。あとは、項目と横罫線の透き間をうまく調整するばよいかと思います。

あと、背景の変更ですが、背景とはどのようなものを指しているのかわかりません。
Crystal Reports で背景として思いつくのは、背景色ぐらいですが・・
絵(ピクチャー)でしたら変更することはできません。
ただ、Crystal Reports のバージョンと利用する開発ツールによって変更可能です。
.NET はわかりませんが、Crystal Reports 9 製品版と RDC を利用する場合、製品版にサンプルコードが含まれていますので可能です。



サブレポートのリンク先  ビギナー - 2004/10/04(Mon) 18:36 No.267

初めまして。クリレポ&VB.NET初心者です。
配置替えにて急にやる事になってしまい壁にぶち当たる毎日です。

当方、見積書をクリレポで作成していますが、DB→Dataset→クリレポまで
本を見ながらですが何とか辿り着きました。そこでなんですが、
メインレポートに関連する詳細な情報をサブレポートで表示しようと思いましたが、リンクする情報が2つあり、AND条件のみをサブで表示させたいのですが、どうしても
OR条件になってしまっているようです。

 メイン  ご注文主様
      顧客情報
      注文NO:(リンクする条件1)
      担当者:(リンクする条件2)

 サブ  注文NO:(リンクする条件1)
      担当者:(リンクする条件2)
      数量
      金額
      小計
      合計

色々試しているのですが・・・何かいい方法があればご教授願いたいのですが
よろしくお願いします。
Re: サブレポートのリンク先  猿町 - 2004/10/05(Tue) 12:48 No.270

ビギナー様、

.NETは、利用していませんが、製品版でも同じだと思いますので
サブレポートのデザイン画面でレコード選択式の内容を見てください。
{xxx.注文NO} = {?Pm-xxx.注文NO}
and
{xxx.担当者} = {?Pm-xxx.担当者}
となっていれば、問題ないと思いますが・・
メインとサブレポートをリンクしている場合、必ずAND条件で設定されていると思います。
あと、OR条件で表示されていると思われるデータをサブレポートだけプレビュー表示し、そのデータをサブレポートのパラメータの値として入力し、該当データが表示できるどうかですね。サブレポートのレコード選択式が上記のようにAND条件が設定されていれば、該当データがなしとなると思います。
Re: サブレポートのリンク先  ビギナー - 2004/10/05(Tue) 16:14 No.271

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

私の表現不足、下手な日本語の為ご迷惑をおかけします。

DB内に2つのテーブルがあります。
メインT  ご注文主様             サブT  注文主ID:(リンクする条件1) 
      顧客情報                    担当者:(リンクする条件2)     
      注文主ID:(リンクする条件1)        商品                    
      担当者:(リンクする条件2)         数量
     
メインT内容
   ID   ご注文主様名  顧客情報  担当者   
   01  ******* ****  4805
   01  ******* ****  4909
   01  ******* ****  5001
    ・       ・        ・      ・
    ・       ・        ・      ・
サブT
   ID   商品  数量  担当者  
   01   **  **  4805
    ・     ・    ・     ・
    ・     ・    ・     ・
    ・     ・    ・     ・

クリレポのメインレポートでメインTを表示し、サブレポートを挿入してサブTの内容を表示したいと考え、実際に作りサブレポートのリンクにて注文主IDと担当者を選択
しました。(IDは固有ですが、担当者は複数存在します)

結果として
   ID   ご注文主様名  顧客情報  担当者   
   01  ******* ****  4805
を見たときサブレポートには、
   01   **  **  4805
   01   **  **  4805
   01   **  **  4805
と実際は1つなのですが、メインTのIDの3つ分表示されてしまいます。
メインTにIDが合致するものがないとサブレポートには望み通り表示してくれるのですが・・・。
これの原因がどこにあるのか解らない状態です。
解る範囲で構いません。どうか知恵をお貸しください。
よろしくお願いします。


Re: サブレポートのリンク先  ビギナー - 2004/10/06(Wed) 13:09 No.272

お騒がせしました。
自分の簡単なミスでした。

わざわざ回答頂きありがとうございました。
これからも参考にしながら頑張ります。

ご教示願います  masa - 2004/09/18(Sat) 13:43 No.216

はじめまして、masaといいます。

CrystalReport for .NETで質問があります。

データベースフィールドに下線を引く設定をしたのですが、
プレビューで見ると、漢字とカタカナの間で線が切れて
しまいます。

株式会社 ホゲホゲ商事 御中
^^^^^^^^ ^^^^^^^^^^^^^^^^^
(^の部分が下線)

上記のようになってしまいます。

データベースフィールドの文字数は可変なので、
あらかじめ下に線を引いておくこともできません。
下線が途切れないように引く手段はあるのでしょうか?
ご存知の方がいらっしゃいましたらご教示願いませんでしょうか?
よろしくお願いいたします。
Re: ご教示願います  masa - 2004/09/29(Wed) 10:21 No.250

テスト返信です。
Re: ご教示願います  masa - 2004/10/05(Tue) 08:58 No.268

masaです。
下線の位置がずれているので、修正して再質問
させていただきます。

データベースフィールドに下線を引く設定をしたのですが、
プレビューで見ると、漢字とカタカナの間で線が切れてしまいます。

株式会社 ホゲホゲ商事 御中
^^^^ ^^^^^^^^^
(^の部分が下線)

上記のようになってしまいます。

データベースフィールドの文字数は可変なので、
あらかじめ下に線を引いておくこともできません。
下線が途切れないように引く手段はあるのでしょうか?
ご存知の方がいらっしゃいましたらご教示願いませんでしょうか?
よろしくお願いいたします。

Re: ご教示願います  masa - 2004/10/05(Tue) 09:01 No.269

masaです。
すみません、やっぱり下線の位置がずれてしまいます。

言いたいことは、「会社」と 「ホゲホゲ」の間で下線が
切れてしまうことなのです。

何度もすみません。
お分かりの方、ご教示願います。

2ページ目以降の表示について  ropross - 2004/10/01(Fri) 00:08 No.260

VS.net+CrystalReport For .NET (Windows2kSP4)
を使用して伝票を作成しています。
2ページ目以降の表示の方法がわからなくて悩んでいます。

現在の構成としては

メインレポート
ページヘッダー タイトル(見積書とか)
グループヘッダー 顧客情報、自社情報等
詳細 サブレポートを使用した明細行
グループフッター 合計等
ページフッター ページ番号

詳細部分(サブレポート)
グループヘッダー1a 明細の項目名 関数1
グループヘッダー1b 明細行のライン(縦線だけですが)
詳細 明細行 関数2
グループフッター 小計

となっております。

(関数1)//変数の初期化 (@init)
WhilePrintingRecords;
numberVar line_count := 36;
numberVar line := 0;

(関数2)//行数の計算(@control_line)
WhilePrintingRecords;
numberVar line_count;
numberVar line;
line := line + 1;
line := remainder(line, line_count);
(HPからほぼそのままコピーしました)

明細行は36行まで表示できるようになっており
35行までのデータのときは問題なくレイアウトどおり表示されます。
(1ページで表示されるため)
 しかし、36行目以上の明細データがある場合を印刷プレビューで
確認してみると
1ページ目 ページヘッダー、グループヘッダー
2ページ目 ページヘッダー、グループヘッダー、
詳細(グループヘッダー1a、グループヘッダー1b、詳細)
3ページ目 ページヘッダー、詳細(グループフッター含む)、グループフッター

と3ページに渡ってそれぞれ表示されてしまいます。
(何も指示してないから変になるのはわからなくも無いですが)

理想としては、2ページにわたる場合
1ページ目 通常レイアウトにて表示(グループフッターの合計金額は表示されない)
詳細(明細の36行目に「次ページへ」とかを表示させたい)
2ページ目 通常レイアウトにて表示(グループフッターの合計金額も表示)
詳細(36行目の項目内容が1行目にくる)
というようにしたいのですがどうすればいいのでしょうか?
この説明ではわかりにくかもしれませんが。

(これとは関係無く、サブレポートのグループフッターの小計の
位置はあまり良くないのかなぁ。メインのグループフッターに
入れるべきでしょうか?)
Re: 2ページ目以降の表示・..  猿町 - 2004/10/01(Fri) 13:01 No.263

ropross 様、

サブレポートを利用しないでレポートを作成してみてください。
サブレポートで表示する内容がメインレポートから見て
2ページ以上に跨るような場合、期待する結果にすることはできまん。
(試した限りでは・・)

上記に書かれているようにサブレポートの内容が2ページに跨ると、
1ページに収まりきらないと判断し自動的に改ページされてしまい、
その結果、2ページ目からサブレポートの内容が表示されます。
Re: 2ページ目以降の表示・..  ropross - 2004/10/01(Fri) 22:25 No.266

猿町様、回答ありがとうございます。

サブレポートを利用しないで少し試してみましたところまだ
途中ですが、できそうな感じがします。
どうもこういう場合はサブレポートを使うという固定観念を
持ってしまっているようで助かりました。

引き続きやってみます。

20536エラーについて  Hibi - 2004/10/01(Fri) 08:46 No.261

こんにちは。

以前、質問させていただいたHibiです。
また、よろしくお願いします。

Access2000のmdbファイルにODBC経由で接続しているクリスタルレポートがあります。
このクリスタルレポートをVB6から印刷したいのですが、

「エラー番号:20536 接続できません: ログオンパラメータが不正です。」

と表示されます。
プログラムは以下の通りです。

Dim Ret As Long
Rpt.ReportFileName = "(クリスタルレポートのフルパス名)"
Rpt.Destination = 0
Rpt.Action = 1

自分なりにいろいろ調べたのですが、「Connect」プロパティが必要なのかなと思っています。
しかし、Accessに対するパラメータの書き方がわかりません。

ちなみにクリスタルレポートのバージョンは4.6です。
すみませんが、よろしくお願いします。
Re: 20536エラーについて  Hibi - 2004/10/01(Fri) 17:30 No.265

自己レスです。

No.264に書いた内容で解決しました。

いろいろとお騒がせしました。

Accessへの接続で  Hibi - 2004/09/23(Thu) 01:25 No.231

Hibiと申します。
昨日からVB6に同封されているCrystalReportsを使用し始めた超初心者です。

ある人が作ったCrystalReportのファイルがあります。
そのファイルはAccess97のmdbに接続して使用しているのですが、
諸事情によりAccess2000のmdbファイルに接続しなおす事になりました。
CrystalReportのファイルを開いて接続先を変更するため、
「ロケーションの設定」を選択し、Access2000のmdbファイルを選んで「終了」すると、
「Microsoft Access パスワード」のダイアログが表示されます。
Access2000のmdbファイルにはパスワードなどの設定はしていないので、
そのまま「OK」を押しますが、再度、上記ダイアログが表示されます。
その為、先に進めず困っています。
どの様にしたら良いのでしょうか?

どうぞご教授を御願いします。
Re: Accessへの接続で  猿町 - 2004/09/23(Thu) 09:12 No.232

Hibi様、

VB6付属のCrystal Reports は古いバージョンなので、Access最新バージョンは接続できません。ODBCで試してみてください。
Re: Accessへの接続で  Hibi - 2004/09/23(Thu) 09:47 No.233

猿町様

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

> ODBCで試してみてください。

猿町様の仰る通り、新規作成時にODBCで接続はできました。
しかし、既存のファイルをODBCで接続するように変更する方法がわかりません。
新規の場合は上記の通り、出来るのですが・・・。

御手数ですが、よろしくお願いします。
Re: Accessへの接続で  猿町 - 2004/09/23(Thu) 11:42 No.234

Hibi様、

申し訳ありませんが、VB6バンドル版Crystal Reports は無いので確認することができません。
多分、データベースメニューから保存場所の設定を選んで、ODBCデータソースを選択します。あるいは、データベースのドライバの変換があったかもしれません。
どちらも既存のレポートを開いてからの操作になります。ODBCに変更する前には、念のためバックアップ用にファイルをコピーをしておいてくださいね。
ODBCデータソースを選択後、テーブル一覧が表示されるので一つずつ選択して、変更してください。
最後に、データベースの照合を実行することで変換できると思います。
表示される項目名称が正しくないかもしれませんが、そのような意味の項目があると思います。
Re: Accessへの接続で  Hibi - 2004/09/23(Thu) 21:43 No.236

猿町様

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

> 多分、データベースメニューから保存場所の設定を選んで、ODBCデータソースを選択します。

上記の「保存場所の設定を選んで」でつまずいています。
メニューの「データベース」に「ロケーションの設定」というものがあり、
ここでデータベースの変更ができるようなのですが、ファイルの変更はできるものの、「ファイル→ODBC」への変更はできないようです。
残念ながら諦めるしかないようです。

同バージョンが無いのにもかかわらず、御親切に説明していただきありがとうございました。
Re: Accessへの接続で  猿町 - 2004/09/24(Fri) 08:48 No.238

Hibi様、

大変失礼いたしました。
確認もしないで回答してしまい申し訳ありませんでした。

Re: Accessへの接続で  Hibi - 2004/10/01(Fri) 17:28 No.264

だいぶ時間が経過したのですが、解決したので一応報告します。

> VB6付属のCrystal Reports は古いバージョンなので、Access最新バージョンは接続できません。

とのことだったのですが、下記サイトよりバッチを当てたらAccess2000でも接続できました。

http://www.agtech.co.jp/download/update/crystalreports/details/7pnewdao.html

いろいろお騒がせしましたが、ありがとうございました。
特に猿町様には、いろいろとご教授を頂き大変感謝しています。

フォントの変更  - 2004/09/29(Wed) 10:16 No.249

はじめまして。
いつも参考にさせていただいてます。

今回、複数のエンジニアが仕様もままならないまま作りこんだレポートの
統一作業を振られました。
作業はゴシック体や明朝体、Pゴシックなどという現状でバラバラになった
レポート内の文字列を、すべて明朝体に統一するという簡単そうな
作業なんですが、いざ、複数選択してフォントを変更すると、仮に選択したコントロ
ールの中の横位置が中央揃えだったり右揃えだったりすると、もともと左揃えだった
コントロールまで右揃えになってしまいます。

どうにか簡単に設定する方法はないでしょうか?
ご教授ください。お願いします。
Re: フォントの変更  猿町 - 2004/09/29(Wed) 15:03 No.251

R様、

Crystal Reports 9 製品版では、Report Designer Component を利用したプログラムでフォント名を変更することが可能です。その変更したレポートを再保存することもできます。横位置の左、右、中央揃えをどれか一つに統一することはできないかもしれません。.NETバンドル版はわかりませんが、VBバンドル版ではどちらもできません。
Re: フォントの変更  - 2004/09/29(Wed) 15:55 No.252

猿町様

ご回答、ありがとうございました。
私が使用しているのは、どうやらNETバンドル版です。

なにやらまだまだ勉強不足のようで・・・。
Report Designer Component なるものすら発見できませんでした。
せっかく回答をいただいたのに。

また、納期も差し迫ってますので、ここは力作業で乗り切って、
余裕が出来たときにReport Designer Component を調べてみたいと思います。

ありがとうございました。
Re: フォントの変更  ひらちゃん - 2004/09/29(Wed) 16:09 No.254

ご無沙汰です。というか、初めましてかも。

.NETのおまけしか使ってませんが、複数選択したときの動作は
ほんとに、むかむかですね。

僕も前にやろうとして出来なかったので、ロケットマウスで
マウスの位置のフォントを変えるようなマクロ(?)を作って
ちまちまとやりました。

何かいい方法はないんでしょうかね。
Re: フォントの変更  猿町 - 2004/09/29(Wed) 16:10 No.255

R様、

.NETバンドル版は、利用していないのでよくわかりません。
ただ、Crystal Report製品版と.NET言語を一緒に利用すると製品版のReportDesigner Componentの開発手法も利用することができます。
Re: フォントの変更  猿町 - 2004/10/01(Fri) 12:04 No.262

R様、ひらちゃん様、

以下のメーカーサイトにサンプルコードがありますので参照してみてください。
http://support.businessobjects.com/communityCS/FilesAndUpdates/vbnet_win_samples.exe.asp
.NETを使ってないのでコードの内容は確認していませんが、
含まれているワード文書にvbnet_win_changefont.zip がリストされています。
多分、このサンプルが参考になるのではないでしょうか。

教えてください  なべ - 2004/09/30(Thu) 11:32 No.257

クリスタルレポート Ver8.0.1.0でA4横サイズの帳票を作成しています。
上から11cmのところに←マークを入れたいのですが可能ですか?
内容は注文商品の明細などがあり、矢印を入れると注文の数により
←位置が変わってしまいます。
最近はじめたばかりでどうしたらよいかわかりません。
ご教授ください。お願いします。
Re: 教えてください  猿町 - 2004/09/30(Thu) 12:59 No.258

なべ様、

1ページ単位のレポートである場合、以下のような方法はどうでしょうか。
その前に用紙の上から11cmの場所がレポートのどのセクションで挿入できるかで出来ない可能性もあります。
ページヘッダー、あるいは、グループヘッダーに←マークを挿入してデザイナすることができれば可能と思います。
ページヘッダー、グループヘッダーにすでにオブジェクトが挿入されている場合、
その下にセクションを挿入して、←マークのみ挿入したセクションにします。
この←マークは、テキストフィールドで挿入するものと想定しています。
デザインのイメージはこんな感じになると思います。

レポートヘッダー 

ページヘッダーa  xxxxx xxxxx xxx xxx
ページヘッダーb
*矢印マークの位置を調整しながら、行を挿入します。*

                                                             ← 11cmのところ
詳細        xxxxx xxxxx 9999 999

(グループヘッダーでも可能です。)
この後、セクションエキスパートからページヘッダーbの続くセクションをアンダーレイをチェックします。
その結果、詳細セクションの表示部分がページヘッダーbから表示が始まります。
こんな感じです。

レポートヘッダー 

ページヘッダーa   xxxxx  xxxxx  xxx   xxx
(ページヘッダーb)  xxxxx  xxxxx  9999 999 
詳細          xxxxx  xxxxx  9999 999
                          xxxxx  xxxxx  9999  999
                          xxxxx  xxxxx  9999  999   ← 11cmのところ

ページヘッダーbは、詳細が重なって表示されます。
アンダーレイ機能で重なって表示されるため、ページヘッダーbはデータ数が変動しても固定で表示できると思います。
1ページ単位のレポートを想定しているので複数ページに跨って印刷する場合、
できないかもしれません。参考にしてお試しください。
Re: 教えてください  なべ - 2004/09/30(Thu) 19:26 No.259

ご回答、ありがとうございます。
やってみます!


DLLのロードエラー  じん - 2004/09/28(Tue) 16:13 No.248

みなさん、こんにちは。
Win2K SV+Metaの環境にCRPをインストールし、レポートの開発作成はできるのですが、いざリフレッシュすると「P2BBTRV.DLLが見つかりませんでした」のエラーが表示されてしまいます。P2BBTRV.DLLはきちんとインストールされています。
なぜでしょうか?どなたかご教授ください。
よろしくお願いいたします。

じん@北海道
Re: DLLのロードエラー  猿町 - 2004/09/29(Wed) 16:01 No.253

じん様、

Meta環境とは、Citrixあるいは、TerminalServicesのことですよね。
メーカーのサイトにドキュメントを発見したのでリンクを転記しておきます。
http://support.businessobjects.com/communityCS/TechnicalPapers/cr_citrix_terminal_servers.pdf  
この中で%systemroot%Crystal フォルダのファイルを \Winnt\System32 にコピーするという記述があります。参考にしてください。 
Re: DLLのロードエラー  じん - 2004/09/29(Wed) 16:56 No.256

猿町さん、ありがとうございました。
OKでした。感謝します。


グループのトータル数  有馬 - 2004/09/27(Mon) 13:14 No.245

クリスタルレポート8で、グループのトータル数を出す方法ありませんか??現在のグループ番号なら”特殊フィールド”の”グループ番号”でとれるのですが、トータル数がとれません。ご存知の方よろしくお願いします。
Re: グループのトータル数  有馬 - 2004/09/27(Mon) 19:43 No.247

解決しました。お騒がせして申し訳ないです。


ページ設定に連続紙を設定したい。  フジー - 2004/09/27(Mon) 15:42 No.246

現在VB.NET+クリスタルレポートで開発中です。
開発環境とテスト環境で印刷する用紙設定が違ってくるという現象が発生しています。
開発環境ではデザイン時に右クリック→デザイン→プリンタの設定で用紙サイズを設定し
デバッグでは設定したサイズでプレビュー、印刷ができます。
しかし、テスト環境へインストールすると用紙サイズがまったく違ってプレビュー、印刷されます。ロジックでは用紙サイズは設定していません。
なぜこのような現象が発生するのでしょうか?
対策方法などご存知の方はご教授ください。

連続紙 たて4 1/2インチのためロジックでは用紙設定ができないと思うのですが・・・
設定方法などご存知の方ご教授ください。よろしくお願いします。

レイアウトの微調整について  さくら - 2004/09/24(Fri) 14:33 No.240

初めまして。仕事でクリスタルレポートを使うことに
なりましたが、あまり使いやすくなくて困っています…

線オブジェクトやテキスト文字など
をShiftを押しながら微調整するのですが
いざドラッグして位置を決めて指を話すと
動いていないと言う現象が起こっています。

微調整は出来ないのでしょうか?
Re: レイアウトの微調整に...  - 2004/09/27(Mon) 10:25 No.242

まずはグリッドを調節してみてください。グリッドにあわせて調整してくれるのでレイアウトは割としやすいと思われますが・・。グリッドが邪魔なのであれば ”グリッドにあわせる”のチェックをはずせばいいと思います。

Re: レイアウトの微調整に...  さくら - 2004/09/27(Mon) 10:40 No.243

有り難うございました。グリッドのチェックをはずしたところ
微調整が出来ました。「デフォルト」というところにグリッド
調整があったので発見できませんでした。
作業もとてもはかどるようになりました。
本当に有り難うございます。

Re: レイアウトの微調整に...  - 2004/09/27(Mon) 11:47 No.244

僕も始めたばかりなんですよ。この掲示板にはかなり助けられています。お互い頑張りましょう。


詳細増加とグループ追加  むらちゃん - 2004/09/15(Wed) 20:30 No.205

レポートヘッダ
ページヘッダ
グループヘッダ1
グループヘッダ2
詳細
グループフッタ2
グループヘッダ3
詳細2
グループフッタ3

グループフッタ1
レポートフッタ
ページフッタ

黒字でのところを
赤文字の詳細2を追加しようとしています。

セクションの書式で挿入をしようとすると
詳細行を増やすには詳細のところに合せて挿入しなければ
詳細行が増えません。
これで詳細行を増やしても
詳細2お挟み込み込むようなグループヘッダ、フッタが
うまく作れません。
どうしたらいいでしょうか?

よろしくお願いいたします。
Re: 詳細増加とグループ追加  猿町 - 2004/09/17(Fri) 02:39 No.207

むらちゃん様、

多分、詳細2を挟み込むようにグループを挿入することはできないと思います。
この場合、グループヘッダ3、詳細2、グループフッタ3で表示したい部分を
サブレポートで実現することになると思います。
具体的なレポートの表示イメージが湧かないのですが・・・

例えば、メインのレポートは以下のようにデザインします。
グループヘッダ1 
グループヘッダ2
詳細1
詳細2
グループフッタ2
グループフッタ1

メインレポートの詳細2にサブレポートを挿入します。
データベースはメインのレポートと同じものを利用します。
サブレポートのデザインは、以下のようなイメージにします。

グループヘッダ (赤字のグループヘッダ3)
詳細       (赤字の詳細2)
グループフッタ (赤字のグループフッタ3)

それ以外の部分は非表示にします。
あと、メインとサブレポートはグループ1とグループ2で利用している項目で
リンクします。
その結果、以下のようなイメージで表示されるはずです。

グループヘッダ1 
グループヘッダ2
詳細1
詳細2 サブレポート グループヘッダ (赤字のグループヘッダ3)
              詳細       (赤字の詳細2)
             グループフッタ  (赤字のグループフッタ3)
グループフッタ2
グループフッタ1

こんな方法しか思いつきませんでした。
以上、お試しください。
Re: 詳細増加とグループ追加  むらちゃん - 2004/09/17(Fri) 15:21 No.211

詳細
 詳細a
 詳細b
というような感じではできました。

詳細2にグループヘッダがうまくつけられませんでした。
Re: 詳細増加とグループ追加  むらちゃん - 2004/09/17(Fri) 15:29 No.212

具体的な帳票のレイアウトです。

-------------------------------------------------------
                           ヘッダヘッダヘッダ                                          |
-------------------------------------------------------
本|名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
体|名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
   |名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
   |名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
------------------------------------------------------|
------------------------------------------------------|
追|名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
加|名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
   |名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
  ---------------------------------------------------|
   |名前|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
------------------------------------------------------|
------------------------------------------------------|
   |合計|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
------------------------------------------------------」

こういう感じです。
ある項目の枝番から ゼロのときの本体表示
1〜999のときに各追加項目を繰り返し表示
−1のときに 合計行を最後に表示します。

データセットには
表示する順番で値が並んでいるというのが前提なので
表示に関して言えば、頭からなめていけばいいのですが
上のように 本体と追加と合計の間に
横線を追加しなければなりません。


たて項目の表示は
アンダーレイの設定でできそうです。

おしえてください。
よろしくお願いいたします。

かなり急ぎです汗
Re: 詳細増加とグループ追加  猿町 - 2004/09/20(Mon) 08:24 No.219

むらちゃん様、


最初の質問のレポート、ページ、グループ、詳細等と上記の帳票レイアウトの関係
が見えないため、上記の帳票レイアウトから考えられる方法で回答します。
例えば、本体、追加、合計が同一グループ(枝番フィールド)でグループ挿入できる
と仮定して、枝番でグループを挿入することで罫線を挿入することでできるのではないでしょうか。
そのときに、以下の式フィールドでグループを挿入します。
WhileReadingRecords;
if {xxx.枝番} = 0 then
"本体"
else if {xxx.枝番} >= 1 and {xxx.枝番} <= 99 then
"追加"
else if
{xxx.枝番} = -1 then
"合計"
その結果、枝番は3つに分類でき、さらにグループの変更オプションから
指定順序で本体、追加、合計の順で設定します。
このグループヘッダーにもう一つセッションを下に挿入します。
グループヘッダーaに罫線を挿入します。
グループヘッダーbに以下の式を挿入します。
if {@上記の式フィールド名}= "本体" then "本  体"
else if {@上記の式フィールド名}= "追加" then "追 加"
else if {@上記の式フィールド名}= "合計" then "合 計"
この式フィールドの書式設定で複数行に出力のオプションをチェックします。
また、横幅を1文字表示できるサイズに調整します。
グループヘッダーbで続くセクションをアンダーレイのオプションをチェックします。
次に、詳細にもセクションを下に挿入します。詳細aに表示するフィールドを挿入し、
詳細bに罫線を挿入します。その結果、以下のようなデザインイメージになります。
(枝番でグループ)
グループヘッダーa ------------------------------------------
グループヘッダーb  式フィールド(本体、追加、合計の表示)
詳細a            表示するフィールド
詳細b            ------------------------------------
グループフッター     ----------------------------------------
このままでは、詳細の罫線とグループフッターの罫線がダブって表示されるところがあります。
そこで、以下の式を詳細bの非表示のオプションの条件式に挿入します。
OnLastRecord  or {@グループヘッダーbに挿入した式フィールド名}<>next({@グループヘッダーbに挿入した式フィールド名})

ページヘッダー、フッター、他のグループ、改ページの条件、改ページの条件等に
ついては考慮していませんが、上記の帳票レイアウトに近い表示ができると思います。

Re: 詳細増加とグループ追加  むらちゃん - 2004/09/25(Sat) 14:14 No.241

ありがとうございました〜
クリスタルレポートはいろいろ研究中です!

それでは またよろしくお願いします。

項目数について  ebi - 2004/09/23(Thu) 18:59 No.235

初めて質問します。
CrystalReport for .NETを使用しています。

データベースの項目を全て横に並べて印刷したいのですが、
項目数が多いためA3用紙でも収まりません。
こうした場合は、どの様にすると実現できるのでしょうか?
幾つかのレポートに分散して設定するようになるのでしょうか?

ご教授お願いいたします。
Re: 項目数について  猿町 - 2004/09/23(Thu) 23:12 No.237

ebi様、

どの用紙サイズに限らず、レポートのデザインで1ページにすべての項目を表示できれば印刷も可能です。しかし、その用紙サイズで収まりきれない項目が存在するのであれば1ページで印刷することはできません。
複数ページに跨っても構わなければ、分散する以外方法はないかと思います。
Re: 項目数について  ebi - 2004/09/24(Fri) 08:54 No.239

猿町様

回答ありがとうございます。
やはり分散しないとできないのですね。
それが分かってよかったです。
別の方法での印刷を考えます。
ありがとうございました。

左右でレイアウトの違う帳票は作成できますか?  masa - 2004/09/21(Tue) 17:08 No.221

masaといいます。
CrystalReport for .NETで質問があります。


左半分と右半分で異なるレイアウトの帳票を作成しなければ
なりません。
帳票を縦に半分に区切ることはできるのでしょうか?

説明がわかりにくく申し訳ありませんが、
ご存知の方はご教示願います。
宜しくお願い致します。
Re: 左右でレイアウトの違...  もり - 2004/09/21(Tue) 17:11 No.222

はじめまして。もりと申します。
サブレポートを使用したらいかがですか?
一応、実現可能であると思われます。
Re: 左右でレイアウトの違...  猿町 - 2004/09/22(Wed) 12:16 No.229

masa様、

もり様の言われるようにサブレポートで実現可能ですが、複数ページに跨って表示するようなレポートではどちらか先の改ページの条件に到達したときにもう一つのレポートも改ページされて期待する結果にならないこともあります。
そのため、左右異なるレポートは、同一条件で改ページが発生するようなものでなければいけないと思います。
Re: 左右でレイアウトの違...  masa - 2004/09/22(Wed) 17:26 No.230

もり様 猿町様

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

サブレポートで作成してみましたが、猿町様のご指摘通り
複数ページに跨る場合は、改ページ条件が同じではないため
結果がおかしくなります。

またいろいろ使ってみて考えてみます。

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

ページ番号について  有馬 - 2004/09/21(Tue) 18:24 No.223

クリスタルレポート8で質問があります。

レポートヘッダ
ページヘッダ
グループヘッダ1
詳細a
詳細b  
詳細c
グループフッター
ページフッター
レポートフッター

の構造のレポートで、フィールドエクスプローラの特殊フィールドの「ページ数(N/M)」を使ってレポートの一番下の部分に出力させて、
一番上の部分にはグループ1のレポートも「ページ数(N/M)」を使って表示させたいのですが、うまくいきません。
グループフッターのセクションの書式で「ページ番号をリセット」にするとレポート上部の表示はうまくいくのですが、下部の表示も同じようになるし、うまくいきません。こ
どなたかわかる方いらっしゃればご教示ねがいます。
Re: ページ番号について  猿町 - 2004/09/21(Tue) 23:04 No.224

有馬様、

本掲示板のNO173.にも同様な質問があります。
いろいろ試しましたが、うまく表示できる方法が見つかりませんでした。
問題はレポートの総ページ数、あるいは、グループ単位の総ページ数の求め方です。
どちらかひとつは特殊フィールドで表示可能ですが、もう片方の総ページを求める方法が見つかりませんでした。
猿町様へ  有馬 - 2004/09/22(Wed) 09:22 No.225

わざわざお調べいただいたようで、ありがとうございます。
本掲示板をみてみると猿町様はかなりお詳しいようで。参考になるものも多く助かります。ありがとうございました。
Re: ページ番号について  猿町 - 2004/09/22(Wed) 10:08 No.227

有馬様、

最近、製品版Crystal Reports 9 を利用していろいろといじってます。
でも、.NET関連は全然わからないので.NET関連は回答は遠慮しています。

本件は、残念ながら、未だにわかりません。
一度、外部に値を保持することができれば、可能であると思いますが・・

猿町様  有馬 - 2004/09/22(Wed) 10:16 No.228

そんなに詳しく理解できててうらやましいです。。
”外部に値を保持する”ですか。試してみます!!


複数帳票印刷時のページ毎のフッタ  もり - 2004/09/21(Tue) 13:09 No.220

はじめまして。もりと申します。
現在、1Actionで複数帳票を印刷する部分を担当しており、問題が発生しております。
サブレポート内にグループヘッダ/フッタを追加し、2ページにわたる情報を作成し、印刷したのですが、
ヘッダに関しては、なんとかページ毎に出力することができたのですが、
フッタは、2ページ目の最後にしか出力されませんでした。
どのようにすれば、1ページ目のフッタとして出力されるのか、ご教授願います。
Re: 複数帳票印刷時のペー...  猿町 - 2004/09/22(Wed) 09:59 No.226

もり様、


サブレポートにグループヘッダとフッタを挿入して、そのグループの表示が2ページ以上に跨る場合、グループヘッダはページ毎に表示されるがグループフッタは最後のページしか表示されないという問題でしょうか。
ページ毎にグループヘッダを出力のオプションを利用しているわけですね。
このオプションを設定してもグループフッタは、グループヘッダのようにページ毎に表示することはできません。
同一グループ内の最後のデータを表示した後にグループフッタを表示することになります。
そこで、2ページ以降のページ毎にグループフッタの内容を表示する方法ですが、
例えば、詳細セクションを利用します。この詳細セクションにグループフッタの内容をコピーし、挿入します。
ただ。デザインのイメージが分かりませんので、新しく挿入した詳細セクションで実現可能であるか自信はありません。
あと、1ページに表示する件数を固定にします。これは、グループフッタの内容を詳細セクションで表示させるために、同一ページ内で表示する最後のデータを判別できるようにします。
以下は、本掲示版のNo.195の応用です。(1ページに20行(レコード)の場合)
グループヘッダに以下の式フィールドを挿入します。
NumberVar lineNumber := 20;
NumberVar lineCounter := 0;


次に詳細aに以下の式フィールドを挿入します。
NumberVar lineNumber;
NumberVar lineCounter;
lineCounter := lineCounter + 1;
lineCounter := Remainder(lineCounter, lineNumber);


詳細bの出力後に改ページのオプションの条件式に以下の式を挿入します。
WhilePrintingRecords;
NumberVar lineNumber;
NumberVar lineCounter;
// 余り0の場合、
If Remainder(lineCounter, lineNumber) = 0 Then
// グループ内の最後のデータ ?
(If lineCounter = Count({xxxx.field1},{xxx.grfield1}) Then
// 改ページしない
   False
  Else
// 改ページする
   True
)
Else
// 改ページしない
False


さらに詳細bの非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
NumberVar lineNumber;
NumberVar lineCounter;
// グループ内のレコード件数が20以下か?
If Count({xxxx.field1},{xxx.grfield1}) < lineNumber Then
True
// グループ内の最後のデータか?
Else if lineCounter = Count({xxxx.field1},{xxx.grfield1}) Then
True
Else
// 1ページで表示可能な場合も非表示
lineCounter < lineNumber


この結果、以下の表示イメージとなると思います。
同一グループの内容が1ページで表示される場合、
グループヘッダ
詳細a
詳細b (非表示)
グループフッタ


同一グループの内容が2ページ以上で跨って表示される場合、
(1ページ目〜最終ページ−1まで)
グループヘッダ
詳細a
詳細b (ページの最後のデータのみ表示)


(最終ページ)
グループヘッダ
詳細a
詳細b (非表示)
グループフッタ


簡単なレポートで試したので複雑なもので期待されるような表示できるかわかりません。
上記を参考にして、応用して見てください。


教えてください。  - 2004/09/17(Fri) 17:34 No.213

テキストオブジェクトを縦書きにすることはできないのでしょうか?
ver.8.5を使用しています。

よろしくお願いします。
Re: 教えてください。  むらちゃん - 2004/09/17(Fri) 19:17 No.214







むのあとに改行 らのあとに改行・・・
テキストオブジェクトをたてに長くすればいいんじゃないでしょうか

Re: 教えてください。  猿町 - 2004/09/17(Fri) 22:54 No.215

い 様、

Crystal Reports 9 では、挿入されたテキストオブジェクトの書式設定から複数行に出力をチェックし、そのオブジェクトの横幅を1文字のみ表示できるように調整します。さらに、テキストオブジェクトのフォントは、縦書きフォントを選択し、
書式設定からテキストの回転を270度とすることでできました。
但し、縦書きフォントは全角文字のみ対象のため、半角文字は270度回転された状態で表示されますので注意してください。

Re: 教えてください。  むらちゃん - 2004/09/19(Sun) 16:10 No.217

便乗質問で申し訳ないです。

縦書きフォントって名称を教えていただけませんでしょうか?
よろしくお願いいたします。

Re: 教えてください。  猿町 - 2004/09/20(Mon) 01:13 No.218

い 様、

縦書きフォントは、MSワード等でも利用できる Windows 標準に存在しているものではないでしょうか。@から始まるフォント名が縦書きフォントです。
例えば、@MS P ゴシック とか・・

Left内をバイト数で数えたい  しんちゃん - 2004/09/16(Thu) 13:18 No.206

クリスタルレポートのLeft  Right  Mid関数は、何文字目というふうに文字数で
数えますよね。

印字先の領域を考慮して、全角、半角が混在したときにバイト数で数えたいの
ですが、よい方法はないでしょうか。
Re: Left内をバイト数で数...  猿町 - 2004/09/17(Fri) 09:23 No.208

しんちゃん様、

以前、メーカーのサイトにバイト数を取得できる関数がダウンロードできるページがありました。
でも、今は見当たりませんね。
バイト数を求める方法は、自作でユーザー定義関数を作成することで可能です。
詳細な手順はわかりませんが、製品版のCrystal Reports の開発者ガイドに説明がありますので見てはいかがですか。
Re: Left内をバイト数で数...  しんちゃん - 2004/09/17(Fri) 13:28 No.209

猿町様ありがとうございます。

結局、長いステップで見た目もよくないですが、強引に作成しました。
いろんな関数が充実していれば工数も削減できるんですがねえ。

Re: Left内をバイト数で数...  猿町 - 2004/09/17(Fri) 14:24 No.210

しんちゃん様、

すごいです。バイト数を取得する関数なしで作成することができましたか。
それは、文字列の文字を一つずつ文字コードに変換して
半角、全角を区別しているのですかね。
今後のためにも教えてください。

ParameterFieldについて  ぎょたく - 2004/09/15(Wed) 09:48 No.200

こんにちは。
ASP(非.NET)からCrystalReportViewer(COM)を利用してレポートをブラウザ上に表示させています。
レポート上でParameterFieldが定義されているのですが、ユーザにパラメータ値を入力させずに、プログラム(ASP)からこのパラメータに値を渡してレポートを表示するにはどうすればよいのでしょうか。
Re: ParameterFieldについて  猿町 - 2004/09/15(Wed) 14:22 No.202

ぎょたく様、

Report Application Server についてはわかりませんが、RDCを利用したASPコードを記述しているものと思います。
この場合、以下のような記述でパラメータの値をコードから渡すことができます。
Session("oRpt").ParameterFields.GetItemByName("StringParam").AddCurrentValue(CStr("ABCDEFGHIJ"))

パラメータのデータタイプに応じて、代入値を変換することで設定が可能です。
日付の場合、以下の通りです。
Session("oRpt").ParameterFields.GetItemByName("DateParam").AddCurrentValue(CDate("2004/09/15"))
Re: ParameterFieldについて  ぎょたく - 2004/09/15(Wed) 16:06 No.204

猿町さん:

Report Application Server(RAS)はReport Designer Component(RDC)とは別物です。
ですが、猿町さんからのコメントも参考にしながらWebで調べまくった結果、ようやく
望み通りの動作が実現できました。
将来、どなたかの参考になるかもしれませんのでソースを残しておきます。

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

<%@CodePage=65001%>
<%
Option Explicit
Response.ContentType = "text/html; charset=utf-8"

Response.ExpiresAbsolute = Now() - 1

Dim strReportName
strReportName = Request.QueryString("ReportName")

Dim objectFactory
Dim clientDoc
Dim viewer

Set objectFactory = CreateObject("CrystalReports.ObjectFactory.2")
Set clientDoc = objectFactory.CreateObject("CrystalClientDoc.ReportClientDocument")
Set viewer = objectFactory.CreateObject("CrystalReports.CrystalReportViewer")

clientDoc.Open strReportName
clientDoc.DatabaseController.Logon "user1", "pass1"

Dim NewParam
Set NewParam = ObjectFactory.CreateObject("CrystalReports.ParameterField")
With clientDoc.DataDefinition.ParameterFields
.Item(0).CopyTo NewParam
Dim NewVal
Set NewVal = ObjectFactory.CreateObject("CrystalReports.ParameterFieldDiscreteValue")
NewVal.Value = CStr("param1")
NewParam.CurrentValues.Add NewVal
clientDoc.DataDefController.ParameterFieldController.Modify .Item(0), NewParam
End With

viewer.Name = "page"
viewer.IsOwnForm = true
viewer.IsOwnPage = true
viewer.IsDisplayGroupTree = false
viewer.HasCrystalLogo = false

viewer.URI = "pageViewer.asp?ReportName=" + Server.URLEncode(strReportName)

viewer.ReportSource = clientDoc.ReportSource
viewer.ProcessHttpRequest Request, Response

%>

ログイン画面を表示させたくない  ぎょたく - 2004/09/15(Wed) 09:30 No.199

こんにちは。
ASP(非.NET)からCrystalReportViewer(COM)を利用してレポートをブラウザ上に表示させています。
このときにRefreshメソッドを呼び出すとユーザIDとパスワードの入力プリンプトが表示されるのですが、ユーザはすでにこのWebアプリにはログインしているので、再度入力させる必要はありません。
単純にEnableLogonPromptプロパティをfalseにしたらエラーが出てしまいます。
プログラム内部(レポート自体でも可)でユーザIDとパスワードをセットするにはどうすればよいのでしょうか?
Re: ログイン画面を表示さ...  猿町 - 2004/09/15(Wed) 14:36 No.203

ぎょたく様、

ASPコードでユーザー名、パスワードの設定は行なっていますか。
例えば、こんなかんじです。
Set mainReportTableCollection = Session("oRpt").Database.Tables
For Each mnTable in mainReportTableCollection
With mnTable.ConnectionProperties
   .Item("user ID") = "user"
   .Item("Password") = "password"
   .Item("DSN") = "Pubs Sample Database"
   .Item("Database") ="pubs"
End With
Next

バージョン  ぎょたく - 2004/09/15(Wed) 09:49 No.201

すみません。下記2つの書き込み。
CrystalReports9 Advanced + Report Application Server
です。

罫線について  ari - 2004/09/09(Thu) 20:29 No.193

--------------
--------------
--------------
--------------
上記のように、帳票ではじめから罫線を引いておく方法を教えて下さい。
データが0件の場合でも表示させたいです。
テーブルからデータをただ引っ張ってくるだけなんすが・・・。

Re: 罫線について  猿町 - 2004/09/14(Tue) 06:32 No.195

ari様、


レポートに罫線を予め引いておく方法ですが、
Crystal Reports 9 では、ページヘッダーに罫線を引くことでできます。
1. ページヘッダーの領域に罫線を必要な行数分挿入します。
2. この時、行間は、詳細で表示したいデータの高さに合わせます。
3. ページヘッダーには、以下の式フィールドを作成し、挿入します。
(例えば、1ページに20行表示する場合)
WhilePrintingRecords;
NumberVar lineNumber := 20;
NumberVar lineCounter := 0;
4. 1ページに表示する行数を計算する式を作成し、詳細に挿入します。
WhilePrintingRecords;
NumberVar lineNumber;
NumberVar lineCounter;
lineCounter := lineCounter + 1;
lineCounter := Remainder(lineCounter, lineNumber);
5. ページヘッダーの続くセクションをアンダーレイのオプションをチェックします。
6.詳細の出力後に改ページのオプションの条件式に以下の式を挿入します。
WhilePrintingRecords;
{@上記4の式フィールド名} = 0
固定行数は、予め上記の変数lineNumberに設定することで変更可能です。
また、グループヘッダーでも同様に罫線を挿入して実現することもできます。

Re: 罫線について  ari - 2004/09/14(Tue) 14:57 No.198

ありがとうございます。勉強になりました。

ページ番号の計算方法  ゴルゴ - 2004/09/02(Thu) 18:35 No.173

よろしくお願いいたします。

グループ毎のページ番号(N/M)と全体のページ番号(N/M)を表示したいと考えています。

しかし、グループ毎のページ番号はグループフッタの設定で出力後にページ番号をリセットすれば出ますが、全体ページも同じようにクリアされてしまいます。

二つのページ番号を出力するにはどうしたら良いでしょうか?

ご教授下さい。
よろしくお願い致します。
Re: ページ番号の計算方法  猿町 - 2004/09/02(Thu) 23:48 No.175

ゴルゴ様へ、

どちらかのページ番号は、式フィールドを利用してカウント・アップしてください。
例えば、全体のページ番号は、3つの式フィールドを利用します。
1.レポートヘッダーに挿入する式フィールド
WhilePrintingRecords;
NumberVar 全体ページ番号:=0;
2.ページヘッダーあるいは、ページフッターに挿入する式フィールド
WhilePrintingRecords;
NumberVar 全体ページ番号;
全体ページ番号:=全体ページ番号+1;
3.全体ページ番号を表示する箇所に挿入する式フィールド
WhilePrintingRecords;
NumberVar 全体ページ番号;
この例の場合、3.の式フィールドはいりませんね。
2.の式フィールドでカウント・アップして、そのまま表示することがでます。
お試しください。
Re: ページ番号の計算方法  ゴルゴ - 2004/09/03(Fri) 10:56 No.177

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

もう一つ質問させて下さい。
回答頂いた方法で全体のページ番号が取得できましたが、
ページ総数の取得方法を教えて下さい。
N/Mの方式で表示したいと考えています。

どうか、よろしくお願いいたします。
Re: ページ番号の計算方法  猿町 - 2004/09/03(Fri) 12:22 No.179

前回の回答は、ちょっと説明が間違ってましたね。
>2.ページヘッダーあるいは、ページフッターに挿入する式フィールド
>WhilePrintingRecords;
>NumberVar 全体ページ番号;
>全体ページ番号:=全体ページ番号+1;
これは、各ページのページ番号を表示します。
それと同時にページ全体の総ページ数は、以下のように表示します。
WhilePrintingRecords;
NumberVar 全体ページ番号;
全体ページ番号:=全体ページ番号+1;
全体ページ番号 & "/" & Totalpagecount
式フィールドのTotalPageCount関数を利用します。
お試しください。

Re: ページ番号の計算方法  ゴルゴ - 2004/09/03(Fri) 19:48 No.181

猿町さん、ご回答ありがとうございます。

ご回答頂いた式フィールドは全体ページの為に使用します。
グループ毎のページに特殊フィールドを使用していて、
グループフッターで出力後にページ数をリセットしています。
その関係でTotalPageCountもクリアされてしまいます。
レポートヘッダでTotalPageCountを変数に格納して表示してみましたが、
駄目でした。

式でトータルページ数を取得する方法は無いのでしょうか?

何度も質問してしまって申し訳ありませんが、
ご教授よろしくお願いいたします。
Re: ページ番号の計算方法  猿町 - 2004/09/03(Fri) 22:17 No.182

ゴルゴ様へ、

ページのリセットしてましたね。
それでは、レポートヘッダーにTotalPageCount関数を利用した式フィールドを挿入します。その結果を変数に代入して、その変数を表示したい箇所で参照するようにしてお試しください。
レポートヘッダーなら、一番最初に処理が行なわれて、ページの総数ページを計算してくれるはずです。一度、変数に代入し保持すれば、グループでのページのリセットが発生しても関係ありません。
Re: ページ番号の計算方法  ゴルゴ - 2004/09/04(Sat) 00:30 No.187

猿町さん、ご回答ありがとうございます。

色々やってみましたが、レポートヘッダで変数に入れてもクリアされてしまいます。
評価時期とかを入れても駄目なようです。

もうちょっと細かいアドバイス等ありましたら、ご教授願います。
やり方が悪いのでしょうか?

よろしくお願いいたします。
Re: ページ番号の計算方法  猿町 - 2004/09/14(Tue) 07:54 No.197

ゴルゴ様へ、

すみません。TotalPageCount関数を利用しても駄目でした。
レポートにグループ毎のページ番号(N/M)と全体のページ番号(N/M)を表示することはできないようです。


無題  TAKE - 2004/09/04(Sat) 20:25 No.191

後ろにいってしまったので、もう一度掲載させて頂きました。

申し訳ありませんが、教えてください。

行単位の集計ですが、

 L1    | L2           | L3       |
--------------------
0001 |          12  |       32 |
0001 |          20  |       32 | 
0002 |          15  |       15 |

L1がKEY で、KEY単位のL2の集計結果をL3に設定したいです。
L2がDBの検索結果を加工した結果なのでL3までSQLで計算するのは
つらいので、L3はクリスタルレポートで計算したいです。

よろしくお願い致します。
Re: 無題  猿町 - 2004/09/14(Tue) 06:49 No.196

TAKE様、


L1    | L2           | L3       |
--------------------
0001 |          12  |       32 | < この部分は無理でしょう。
0001 |          20  |       32 | 
0002 |          15  |       15 |

L1    | L2           | L3       |
--------------------
0001 |          12  |       12 | < これなら可能でしょう。
0001 |          20  |       32 |  
0002 |          15  |       15 |

この場合、積算合計フィールドを利用してみてください。
L2のフィールドを選択して、積算合計フィールドを挿入します。
集計するフィールドは、L2。
集計のタイプは、合計。
評価は、各レコードごと。
リセットは、フィールドの変更時でL1。


ページ合計の求め方  Luci - 2004/09/09(Thu) 19:53 No.192

始めまして。
クリスタルレポートでのページ合計の求め方がわからず悩んでおります。

≪条件≫
・グループ毎に金額を明細表示させます。
  Aグループ
     \100
     \200
     \300
     \400
     \500
  Bグループ
     \400
     \500
     \600

・グループが同じでもページが変わる毎に小計として頁計を求めます。
  Aグループ
     \100
     \200
     \300
  頁計 \600
>改ページ
  Aグループ
     \400
     \500
  頁計 \1000
>改ページ
  Bグループ

以上の場合に頁計を求める方法がわかりません。
ご存知の方がいらっしゃいましたら教えて下さい。
お願いします。
Re: ページ合計の求め方  Luci - 2004/09/13(Mon) 17:36 No.194

明細の値を配列に覚えておき、頁毎に合計を計算して対応しました。

無題  猿町 - 2004/09/03(Fri) 22:52 No.184

TAKE様、

フィールドの書式設定の非表示オプションの条件式を利用することで
できると思います。
こんなかんじです。
//L1の場合
WhilePrintingRecords;
{xxx.L1} = Previous({xxx.L1})
なお、非表示オプションのチェックは不要です。

//L2の場合
WhilePrintingRecords;
{xxx.L1} = Previous({xxx.L1}) AND {xxx.L2} = Previous({xxx.L2}) 
なお、非表示オプションのチェックは不要です。

それぞれのフィールドの非表示の条件式を利用することになります。
Re: 無題  猿町 - 2004/09/03(Fri) 22:53 No.186

この書き込みは、NO.183の返信です。
何度も投稿ミスして申し訳ございません。
Re: 無題  TAKE - 2004/09/04(Sat) 18:28 No.188

猿町様

回答ありがとうございました。
早速、試してみます。

Re: 無題  TAKE - 2004/09/04(Sat) 19:37 No.190

猿町様

うまくいきました。ありがとうございます。

集計について教えてください  TAKE - 2004/09/04(Sat) 19:18 No.189

また教えて下さい。

行単位の集計ですが、

 L1    | L2           | L3       |
--------------------
0001 |          12  |       32 |
0001 |          20  |       32 | 
0002 |          15  |       15 |

L1がKEY で、KEY単位のL2の集計結果をL3に設定したいです。
L2がDBの検索結果を加工した結果なのでL3までSQLで計算するのは
つらいので、L3はクリスタルレポートで計算したいです。

よろしくお願い致します。



教えて下さい  TAKE - 2004/09/03(Fri) 22:35 No.183

教えてください。

列単位に前の行と同一レコードを非表示にしたいのですが、出来るでしょうか?

 L1    | L2           | L3       |
--------------------
0001 | AAAAA   |   001   |
0001 | AAAAA   |   002   | 
0002 | AAAAA   |   001   | 



 L1    | L2           | L3       |
--------------------
0001 | AAAAA   |   001   | 
         |                |   002   | 
0002 | AAAAA   |   001   |

という具合にしたいのですが・・・・

更に、L1がKEYなのでL2が全ての行一緒でも
KEY(L1)の先頭行は全て表示したいです。

よろしくお願いします。

Re: 教えて下さい  猿町 - 2004/09/03(Fri) 22:52 No.185

TAKE様、

フィールドの書式設定の非表示オプションの条件式を利用することで
できると思います。
こんなかんじです。
//L1の場合
WhilePrintingRecords;
{xxx.L1} = Previous({xxx.L1})
なお、非表示オプションのチェックは不要です。

//L2の場合
WhilePrintingRecords;
{xxx.L1} = Previous({xxx.L1}) AND {xxx.L2} = Previous({xxx.L2}) 
なお、非表示オプションのチェックは不要です。

それぞれのフィールドの非表示の条件式を利用することになります。

PrintReportとPrintToPrinter  みめんと - 2004/08/31(Tue) 15:12 No.171

こんにちは。大変に参考にさせていただいております。

質問なのですが、現在外字の関係でPrintReportを使って印刷をしております。
私の作っているプログラムでは、ユーザーがプリントダイアログの印刷ボタンを押して実際に印刷をしたのか、それともキャンセルボタンを押して印刷を中断したのかで、別の処理を行うので、PrintReportですとそのあたりの処理が全てCrystalReportsのクラスライブラリ任せになりまったく把握ができません。

1.PrintReportを使って、クラスライブラリが開いたプリントダイアログのウィンドウハンドル取得や、ダイアログでユーザーがどういう入力を行ったかを把握する方法
2. PrintToPrinterで、外字を確実に印刷する方法

1か2のどちらかで良い方法はないでしょうか。
これらの方法が無理となるといよいよプリンタの状態監視しかなかったりするのですが・・・
Re: PrintReportとPrintTo...  猿町 - 2004/09/03(Fri) 00:13 No.176

みめんと様へ、

1.の印刷ダイアログのキャンセルをハンドルする方法ですが、Crystal Reortsではできません。これは、.NETも同じだと思います。.NETは使っていませんが、VB等でもできませんでした。VB6/RDCで印刷した場合、レポートのプリントジョブの状態をチェックすることはできます。印刷後、(ページ数が少ないと意味がないかも)PrintingStatusオブジェクトのProgressプロパティの内容から状態が確認できます。
キャンセルされていれば、キャンセルの状態がリターン値になります。

2.ですが、質問の内容がよくわかりません。外字の印刷で問題があるのでしょうか?あと、Crystal Reports のバージョンによっても違ってくると思います。
Crystal Reports 9 ではOS環境により文字化けしました。
Re: PrintReportとPrintTo...  みめんと - 2004/09/03(Fri) 11:07 No.178

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

VS.NET付属のCrystal ReportsでPrintToPrinterを用いたところ、外字の一部が文字化けしました。
Re: PrintReportとPrintTo...  猿町 - 2004/09/03(Fri) 12:29 No.180

みめんと様へ、

メーカーのサイトにパッチがありますので試したらいかがですか。
.NET環境が無いので試していないので現象が回避しているか不明ですが・・
パッチは、NET2002と.NET2003の2種類がありました。
.NET2002は、
http://support.businessobjects.com/communityCS/FilesAndUpdates/crnet10win_jp.zip.asp
です。
.NET2003は、
http://support.businessobjects.com/communityCS/FilesAndUpdates/crnet11win_jp.zip.asp
です。

帳票出力について。  まち - 2004/09/02(Thu) 19:08 No.174

はじめまして、まちと申します。

以前フジーさんが同じ質問をされていたのですが、途中で終わってしまっていましたので再度質問させていただきます。

クリスタルレポートを使用して、帳票を出力することになったのですが、
MDBのテーブルのデータをテキストボックスのみを配置したクリスタルレポートのテキストボックスに結びつけて以下のような表示の表にしたいのですが、できるのでしょうか。

code | message  |   code | message
-----------------------------
0001 | xxxxxxx   |   0004 | xxxxxxxx
0002 | xxxxxxx   |   0005 | xxxxxxxx
0003 | xxxxxxx   |   0006 | xxxxxxxx

こんな感じです。

HPのほうで、DataSetをドラッグアンドドロップしているところを、コードで行う方法をご教授願います。
言語はVB.NETです。
よろしくお願いします。




CrystalReportsバージョンアップについて(7→9)  初心者 - 2004/08/23(Mon) 15:38 No.162

はじめまして。クリスタルレポートは殆ど初心者です。
(VB4付属のものは使ったことがあるのですが、余りにも変わっていて
 以前の知識は役に立たないと思います。)
先週から色々試しながら開発を行っているのですが、どうしても
上手くいかず困っていたところ、この掲示板に出会いました。
お忙しいところ申し訳ございませんが、どなたかご教授頂けませんでしょうか?
宜しくお願い致します。

開発環境
 OS:Windows2000 SP4
 言語:ASP(HTML・VBS・JavaScriptを組み合わせて使用。.NETではありません。)

質問内容
 「CrystalReportsの7から9へのバージョンアップ方法について」

 現在、CrystalReports7で動作しているWEBシステムを、9で動作できるよう
 バージョンアップ対応を行っているのですが、上手くいきません。
 修正を行ったプログラムを動作させると、実行時エラー等は発生しないの
 ですが、WEB画面にCrystalReportsの枠のみ表示され、内容が表示されません。
 (枠の中には、WEB上で画像等の読み込みに失敗したときに表示されるような
  ×マークが表示されます)


 修正した箇所は以下の通りです。
  (1)参照するDLLの変更(「CRViewer.dll」から「crviewer9.dll」に変更)
  (2)プロパティ名をバージョンアップ対応
    (プロパティ「Has Stop Button」を「EnableStopButton」に変更する、等)
  (3)9になって無くなったプロパティ「MorePrintEngineErrorMessages」を
    記述してある部分を全てコメント化
  (4)プロパティ「ParameterPromptingEnabled」を記述した部分でエラーが
    発生したが、恐らくこのプロパティも9で無くなったものと
    思われたためコメント化
  (5)CrystalReportsオブジェクトの変更
   (今まで「Server.CreateObject("Crystal.CRPE.Application")」と
    していた記述を
   「Server.CreateObject("Crystalruntime.Application.9")」に変更)
  (6)7で作成した「.rpt」ファイルを9上で開いて上書き保存し、
    9対応させる

  (実際のコーディングの一部)
    ------------ 修 正 前 ------------------
    <OBJECT ALIGN = LEFT ID="CRViewer"  WIDTH=100% HEIGHT=95%
     CLASSID="CLSID:C4847596-972C-11D0-9567-00A0C9273C2A"
     CODEBASE="/viewer/activeXViewer/CRViewer.dll#Version=1,2,0,30">
     <PARAM NAME="Report Name" VALUE="rptserver.asp">
       <PARAM NAME="Show Group Tree" VALUE=1>
       <PARAM NAME="Show Toolbar" VALUE=1>
     <PARAM NAME="Has Group Tree" VALUE=1>
     <PARAM NAME="Has Navigation Control" VALUE=1>
     <PARAM NAME="Has Stop Button" VALUE=1>
     <PARAM NAME="Has Print Button" VALUE=1>
     <PARAM NAME="Has Zoom Control" VALUE=1>
     <PARAM NAME="Has Close Button" VALUE=0>
     <PARAM NAME="Has Progress Control" VALUE=1>
     <PARAM NAME="Has Search Button" VALUE=1>
     <PARAM NAME="Has Refresh Button" VALUE=1>
     <PARAM NAME="Can Drill Down" VALUE=1>
     <PARAM NAME="Has Animation Control" VALUE=1>
    </OBJECT>


    ------------ 修 正 後 ------------------
    <OBJECT ALIGN = LEFT ID="CRViewer"  WIDTH=100% HEIGHT=95%
     CLASSID="CLSID:8767A745-088E-4CA6-8594-073D6D2DE57A"
        CODEBASE="/crystalreportviewers/ActiveXViewer/
         crviewer9.dll#Version=9,2,1,175"">
     <PARAM NAME="Report Name" VALUE="rptserver.asp">
     <PARAM NAME="DisplayGroupTree"         VALUE=1>
     <PARAM NAME="DisplayToolbar"           VALUE=1>
     <PARAM NAME="EnableGroupTree"          VALUE=1>
     <PARAM NAME="EnableNavigationControls" VALUE=1>
     <PARAM NAME="EnableStopButton"         VALUE=1>
     <PARAM NAME="EnablePrintButton"        VALUE=1>
     <PARAM NAME="EnableZoomControl"        VALUE=1>
     <PARAM NAME="EnableCloseButton"        VALUE=0>
     <PARAM NAME="EnableProgressControl"    VALUE=1>
     <PARAM NAME="EnableSearchExpertButton" VALUE=1>
     <PARAM NAME="EnableRefreshButton"      VALUE=1>
     <PARAM NAME="EnableDrillDown"          VALUE=1>
     <PARAM NAME="EnableAnimationControl"   VALUE=1>
    </OBJECT>

以上です。
上記の手順で間違っている部分や、まだ不足している手順等がありましたら
ご指摘頂けませんでしょうか?
また、こういったバージョンアップの方法等は確立されている
ものなのでしょうか?
お手数をお掛けして申し訳ございませんが
ご回答の程、宜しくお願い申し上げます。

Re: CrystalReportsバージ...  猿町 - 2004/08/26(Thu) 07:12 No.164

以下のメーカーのサイトにサンプルプログラムがありますよ。
http://support.businessobjects.com/communityCS/FilesAndUpdates/aspxmps9.exe.asp 
もうひとつ関連していそうな記事を見つけました。
http://support.businessobjects.com/library/kbase/articles/c2011492.asp  
この記事では、crystalreportviewers の仮想ディレクトリが作成されないと書いてあります。

>OBJECT ALIGN = LEFT ID="CRViewer"  WIDTH=100% HEIGHT=95%
>     CLASSID="CLSID:8767A745-088E-4CA6-8594-073D6D2DE57A"
>        CODEBASE="/crystalreportviewers/ActiveXViewer/
>         crviewer9.dll#Version=9,2,1,175"">


上記の修正後、crviewer9.dll を参照している仮想ディレクトリが存在していますか?
インターネット インフォメーション サービスの既定のWebサイトの中です。
サンプルでは、参照先は、/Viewer9/ActiveXViewer/ となっていました。
Re: CrystalReportsバージ...  初心者 - 2004/08/26(Thu) 09:02 No.166

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

これからお教え頂いたサイトを見てみたいと思います。
仮想ディレクトリについては作成してありますので、
大丈夫だと思います。

お忙しいところどうもありがとうございました。
Re: CrystalReportsバージ...  猿町 - 2004/08/26(Thu) 23:16 No.168

 初心者様へ

もう一つ記事を見つけました。
http://support.businessobjects.com/library/kbase/articles/c2015108.asp  
あと、トラブルシューティングの記事もありました。
http://support.businessobjects.com/library/kbase/articles/c2004405.asp 
ご参考まで。
Re: CrystalReportsバージ...  初心者 - 2004/08/27(Fri) 16:30 No.170

猿町様へ

度々ヒントを下さいまして、誠にありがとうございます。
当方、まだ不具合を解決できておらず、ソースコードに限らず、
環境面等、色々な方面から検証しているため、本当に助かります。
これから調べてみたいと思います。
どうもありがとうございます。

無題  猿町 - 2004/08/26(Thu) 23:15 No.167

初心者様へ

もう一つ記事を見つけました。
http://support.businessobjects.com/library/kbase/articles/c2015108.asp  
あと、トラブルシューティングの記事もありました。
http://support.businessobjects.com/library/kbase/articles/c2004405.asp 
ご参考まで。
Re: 無題  猿町 - 2004/08/26(Thu) 23:18 No.169

また、間違って投稿してしまいました。ごめんなさい。
これは、No.166 の返信です。

総合計の表示について  ZERO - 2004/08/19(Thu) 14:44 No.156


はじめまして。クリスタルレポートの初心者です。

今、集計表をクリスタルレポートで作成しています。


各支社毎に[分類]がありまして、支社毎に合計を出力します。
また、レポートの最後には、全社の合計を[分類]毎に計算し出力します。


●イメージ
 支社    分類   点数 
 東京支社  A      70
                B         80
                C          65
                D          90
               合計     305
                       ・
              ・
              ・
  全支社   A     600
         B     800
         C     400
         D     900
        合計    3700 


この場合の、レポートの最後の[分類]毎に出力する方法が良く分かりません。
ご存知の方、ご教授ください。

Re: 総合計の表示について  猿町 - 2004/08/20(Fri) 13:09 No.159

この場合、式フィールドを利用して、分類毎に集計する方法でできると思います。
こんな感じで式フィールドを詳細セクションに挿入します。

//集計したい分類の数分の変数を用意する必要があります。
WhilePrintingRecords;
NumberVar a;
NumberVar b;
NumberVar c;
NumberVar d;
if {xxx.分類}="A" then
a:=a+{xxx.点数}
else if {xxx.分類}="B" then
b:=b+{xxx.点数}
else if {xxx.分類}="C" then
c:=c+{xxx.点数}
else if {xxx.分類}="D" then
d:=d+{xxx.点数}

上記の変数で集計された値を表示するための式フィールドを
分類の数分を用意して、レポートの最後に、以下の式を挿入します。
変数a の場合、以下のようになります。
WhilePrintingRecords;
NumberVar a;

あと、上記で利用している変数の初期化の宣言をレポートの先頭に挿入します。
WhilePrintingRecords;
NumberVar a:=0;
NumberVar b:=0;
NumberVar c:=0;
NumberVar d:=0;

集計結果を表示する式フィールド以外は計算のみに利用しているだけなので
非表示にします。
Re: 総合計の表示について  ZERO - 2004/08/24(Tue) 13:43 No.163


猿町 さんありがとうございました。

それぞれの分類ごとに変数を用意するということでできるんですね〜

ただ・・・
上の説明では書いていませんでしたが、分類はDBのマスタ上から取ってくるため、
数は可変なんです。
そういう場合は、やはり無理なのでしょうか・・・
Re: 総合計の表示について  猿町 - 2004/08/26(Thu) 08:55 No.165

そうですか、可変ですね。
その場合、サブレポートを利用してみましょう。
全支店の表示部分をサブレポートで表示するようにします。
このサブレレポートは、メインレポートと同一データベースを利用します。
挿入する場所は、メインレポートのレポートフッターで試してください。
サブレポートの場合、分類でグループを挿入します。
そして、集計したいフィールドとそのグループ毎の集計を挿入します。
ここまでは、グループで利用するフィールドが異なるだけで
メインレポートと同一手順で作成できると思います。
あとは、デザインを整えるために
レポートヘッダーに全支社を挿入します。これはテキストですよね。
これもデータベースからですか?
グループフッターに分類フィールドを挿入します。
レポートヘッダー、フッターとグループヘッダー以外は非表示にします。
その結果、サブレポートは、以下の表示イメージになると思います。

レポートヘッダー   全支社
グループフッター   A     600
グループフッター   B     800
グループフッター   C     400
グループフッター   D     900
レポートフッター   合計    3700 

メインレポートのデザインと合わせるように位置をずらすことで
問題ないと思います。
全支店をAの横に表示したい場合は、全支店をグループフッターに移動します。
この全支店の書式エディタから非表示の条件式に以下の式を書きます。
(非表示のチェックは不要です。)
WhilePrintingRecords;
GroupNumber <> 1;
これで、Aの行以外の全支店は非表示になります。

最初の回答は考えが足りませんでした。申し訳ございません。
お試してみてください。


Re:総合計の表示について  猿町 - 2004/08/20(Fri) 13:05 No.157

この場合、式フィールドを利用して、分類毎に集計する方法でできると思います。
こんな感じで式フィールドを詳細セクションに挿入します。

//集計したい分類の数分の変数を用意する必要があります。
WhilePrintingRecords;
NumberVar a;
NumberVar b;
NumberVar c;
NumberVar d;
if {xxx.分類}="A" then
a:=a+{xxx.点数}
else if {xxx.分類}="B" then
b:=b+{xxx.点数}
else if {xxx.分類}="C" then
c:=c+{xxx.点数}
else if {xxx.分類}="D" then
d:=d+{xxx.点数}

上記の変数で集計された値を表示するための式フィールドを
分類の数分を用意して、レポートの最後に、以下の式を挿入します。
変数a の場合、以下のようになります。
WhilePrintingRecords;
NumberVar a;

あと、上記で利用している変数の初期化の宣言をレポートの先頭に挿入します。
WhilePrintingRecords;
NumberVar a:=0;
NumberVar b:=0;
NumberVar c:=0;
NumberVar d:=0;

集計結果を表示する式フィールド以外は計算のみに利用しているだけなので
非表示にします。
Re:総合計の表示について  猿町 - 2004/08/20(Fri) 13:11 No.160

ごめんなさい。返信方法を間違えてしまいました。
この書き込みは破棄してください。
申し訳ございません。

データベースフィールドへの追加  しんちゃん - 2004/08/16(Mon) 16:27 No.154

初めまして。前任者から引き継いでクリスタルレポートを利用しています。

データベースフィールドの設定が完了しているプログラムがあります。
1)このうちのひとつの項目(文字型)の桁数を増やしたいのですが、どのようにして
 増やせばよいかわかりません。

2)最後にひとつ項目を増やしたいのですが、どのようにして増やせばよいか
 わかりません。

どなたか御指導願えませんでしょうか。よろしくお願いいたします。
Re: データベースフィール...  猿町 - 2004/08/20(Fri) 13:08 No.158

この質問内容は、データベースのフィールドですか?
私の理解が正しければ、クリスタルレポートからデータベースのフィールド追加、削除等の操作はできません。

プレビュー起動時にサブレポートのタブを表示する方法について  初心者 - 2004/08/18(Wed) 10:31 No.155

はじめまして。VB.NETと.NET2003のクリスタルレポートを利用しています。

今まで複数の帳票をそれぞれ別フォームでCrystalReportViewerを使用し表示させていたのですが、
今回の仕様でサブレポートを利用し、一画面で複数帳票を表示させることになりました。
そこで質問なのですが、メインレポート起動時にサブレポートのタグを表示させることは可能でしょうか?
CrystalReportViewerでメインレポートを表示した後、DrillDownイベントではタグが表示されるのですが・・・

ご存知の方がいらっしゃいましたら、ご教授ください。
宜しくお願いします。

P.S
各レポートごとにrptファイル、データセットは個別に用意しています。


フィールド定義ファイルと印刷ダイアログ  素人 - 2004/08/11(Wed) 21:14 No.153

クリスタルレポート9.0と.Netで開発してます。

コード上から印刷ダイアログを出して、クリスタルポートに設定を反映させる方法
とフィールド定義ファイルの場所を指定してデータベースの照合を行う方法を
探しています。

ご存知の方がいらっしゃいましたら、どうかご教示ください。
お願いします。


初めましてで失礼なんですが・・・  フジー - 2004/08/04(Wed) 14:09 No.146

初めましてフジーと申します。
このたびクリスタルレポートにより帳票を出力することになったのですが。
このHPに書かれていることの応用になると思うのですが。コードで生成したDataSet
をあらかじめテキストボックスのみを配置したクリスタルレポートのテキストボックス
に結びつける(?)というのは可能なのでしょうか?

このHPでいうとDataSetをドラッグアンドドロップしているところ。をコードで行う方法をご教授願います。
Re: 初めましてで失礼なん...  猿町 - 2004/08/04(Wed) 15:19 No.147

フジー様

質問内容から.NETを使っていますか?NETは使ったことがないからわかりませんが、VB6とCRのRDC機能と組み合わせで実現できます。
多分、.NETもCRのRDC機能を利用することができるので可能じゃないでしょうか。

Re: 初めましてで失礼なん...  フジー - 2004/08/04(Wed) 17:08 No.148

はい、VB.netで開発中です。

RDC機能というものを詳しく知らないのですが

RDC機能を使用すればデザイナではテキストボックスを配置のみの作成、
コードでのDataSetを割り当てられるのでしょうか?

もしよろしかったらRDC機能の概要、もしくは解説HPなどありましたら
ご教授お願いします。
Re: 初めましてで失礼なん...  猿町 - 2004/08/05(Thu) 12:46 No.150

フジー様

.NETは利用していないので、RDCと組み合わせたことがありません。ただ、.NETでもRDCは使えるはすです。.NETのCRにReport Designer Component (Craxdrt)が含まれていることが必要ですが・・(もってないので不明)
製品版クリスタルレポートのRDCとVB6の組み合わせできるのは確認済みです。同じ手法がそのまま、NETで利用できるかは不明です。
RDCとVB6の組み合わせでは、レポート定義ファイルを利用して、テキストフィールドをレポートに挿入し、VB6コードでレコードセットを引き渡すだけです。
お役に立てずに申し訳ございません。
Re: 初めましてで失礼なん...  フジー - 2004/08/11(Wed) 15:01 No.152

返事が遅れましてまことに申し訳ございません。
この件は上司との話し合いで解決いたしましたので
その旨を報告させていただきました。

直接印刷について  ニック - 2004/08/02(Mon) 19:39 No.140

CrystalReportでプレビューの画面を表示せず、直接印刷したいのですが
プレビュー画面の非表示で知っている方教えてください
<開発環境>
XP SQLserver2000 VB.NET CrystalReport7.0 です
DataSetを使用して、ダミーテーブルを作成し、そこにデータを設定し 印刷する

OLEでデータ接続、及び読み出し
            READCMD.Connection = oleconnection4
            oleconnection4.ConnectionString = ConString
            oleconnection4.Open()

DataSetのテーブルにデータ設定
                dtrow = dtset.NewRow()
                '商品名
                dtrow("SYOHINMEI") = SYOHINMEI

                dtset.Rows.Add(dtrow)
            CrystalReportViewer1.ReportSource = cr
            'AP起動
            'PrintDocument1.Print()
とプログラミングしています
自動でプリントまでは、しますが 画面が出てしまいます
Re: 直接印刷について  猿町 - 2004/08/06(Fri) 13:03 No.151

CR7と.NETの組み合わせで動かしたことはありませんが、PrintToPrinter メソッドを利用することで直接印刷することができます。
以下は、サンプルコードです。こんな感じです。

Private Sub CommandButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandButton1.Click
 
 Dim crDoc as CrystalDecisions.CrytalReports.Engine.ReportDocument
 Set crDoc = New CrytalDecisions.CrystalReports.Engine.ReportDocument
 crDoc.Load("C:\Report1.rpt")
 crDoc.PrintToPrinter(1, False, 0,0)
 
 Set crDoc = Nothing


End Sub


 


レポートの直接印刷について  ニック - 2004/08/04(Wed) 17:50 No.149

毎度毎度の質問ばかりで済みません

現在作成しているプログラムで、実行されたら、データベースより
データを検索し、CrystalReportを使用して 印刷を行い 終了する物を作っています(用は画面が無く、プレビューの表示も入りません)

こういうプログラムを作成する時に、Form1を使用せず、Moduleと
CrystalReportとDataSetのみで可能なのでしょうか?
DataSetにこの帳票だけに使用するテーブル(データベースには無いテーブル)を作成し、データベース(SQLServer2000)を読込み、DataSetで作成したテーブルに、DataSet.Rows.Add(dtrow)を行い
指定されたプリンターに出力するものです

似たような物を作成した方、または こうすれば出来るとご存知の方
よろしくお願いします

チャートについて  弥太郎 - 2004/07/23(Fri) 08:45 No.127

はじめまして、クリスタルレポート9で開発しております。
チャートの作り方がよくわからないので教えてください。

テーブルに「地域」「1月」「2月」「3月」「4月」というフィールドがあって

フィールド:地域|1月|2月|3月|4月|
レコード1:東京|10  |12  |13 |16 |

このテーブルから下記のような折れ線のチャートを作りたいのですが

20 |   _
   |  /
10 |/
   |
0  |_____________
    1月 2月 3月 4月

うまくいきません。たぶんチャートエキスパートのレイアウトのところの
データで「表示する値」の指定が悪いのではないかと思っていろいろためして
いるのですが・・・
すみませんが、わかるいらっしゃいましたら回答お願いいたします。

Re: チャートについて  猿町 - 2004/07/24(Sat) 06:52 No.128

最近、使い始めたものです。
試してみたけど私も駄目でした。
X軸は、直接データベースのフィールド名を利用するものではないようです。
レコードのデータ値から取得しています。
例えば、以下のデータの持ち方だとご希望のチャートができました。
フィールド [地域] [月] [件数]
レコード1 東京   1    10 
レコード2 東京   2    12 
レコード3 東京   3    13 
レコード4 東京   4    16

あまり役立ちませんね。 すみません。

Re: チャートについて  弥太郎 - 2004/07/29(Thu) 15:42 No.135

猿町様
返信ありがとうございます。
返事が遅くなってもうしわけありません。

わたしもテスト的に同じようなテーブル構造で
試してできることは確認しております。
やはりデータベースの構造を変えないとできないのでしょうかね?

できれば、構造を変えないでやりたいのですが・・・
ご存知のいらしゃいましたら、よろしくお願いします。
Re: チャートについて  猿町 - 2004/07/30(Fri) 08:00 No.136

弥太郎様

データベースの構造を変えないで実現する方法は難しいと思います。
でも、1つテーブルを作成すると期待通りのチャートが作れます。
少し面倒ですが、サブレポートを利用して、チャートを表示します。
まず手順は、以下の通りです。
1. レコード件数分のデータを保存する配列を作成します。
StringVar Array 地域データ;  
Redim 地域データ[1];
2. 1レコード内の各フィールドの値を保存する配列を作成し、保存します。
StringVar Array 月データ;
Redim 月データ[12]; //12ヶ月分
月データ[1]  := ToText({xxx.1月});   
月データ[2]  := ToText({xxx.2月});   
月データ[3]  := ToText({xxx.3月}); 
月データ[4]  := ToText({xxx.4月}); 

3. 2.で作成した配列の内容を繋いで、その値を1.で作成した配列に保存します。
そうすることで、二次元配列のようなものができる。
地域データ[1]:=月データ[1]+月データ[2]+月データ[3]+月データ[4]・・
4.サブレポートにこの配列を渡すための式フィールドを作成します。
WhilePrintingRecords;
StringVar Array 地域データ[1];
5. 新しくテーブルを追加します。
名称 値
1月   1
2月   2
3月   3
4月   4
6.このテーブルを利用してサブレポートを作成します。
7. 4.で作成した式フィールドでサブレポートとリンクします。
8.チャートで表示する値のための式フィールドを作成します。
これを実現するためにどうしても1つテーブルが必要になりました。
テーブルを作らないでよい方法がわかりませんでした。
どうもレコードが存在しないとうまく作れないのがCrystal Reportsの特徴?のようですね。
この式の内容は、メインレポートから渡された配列の内容をこのテーブルの値を
インデックスとして取得します。
WhileReadingRecords;
StringVar 表示データ :={?Pm-@式}[{新テーブル名.値}];
If IsNumeric(表示データ) Then ToNumber(表示データ) Else 0
9.新しいテーブルの月の名称と8.で作成した式フィールドでチャートを作成します。
表示する値に式フィールドを指定して、集計なしとします。
X軸がソートされてしまうので指定順序で1月、2月、順に指定すると期待通りのチャートができます。
レコード件数が増えても地域データの配列と、配列をサブレポートに引き渡す式フィールドを増やすことで可能になると思います。

Re: チャートについて  猿町 - 2004/07/30(Fri) 09:08 No.137

読み返すといろいろ間違った記述が多くて申し訳ございません。ごめんなさい。
サブレポートに渡す、1レコード分の配列の内容は、10,12,13,16 と各フィールドのデータの間に区切り文字を挿入するように式フィールドを作成します。
サブレポートでは、この配列の内容を読み出すために Split関数で個別に取得する
式フィールドを作成します。
WhileReadingRecords;
StringVar 表示データ :=Split({?Pm-@式},",")[{新テーブル名.値}];
If IsNumeric(表示データ) Then ToNumber(表示データ) Else 0
この式フィールドがチャートの作成に重要な部分になります。  
お試しください。

Re: チャートについて  猿町 - 2004/07/31(Sat) 11:12 No.138

また、また訂正します。新規にテーブルを追加しなくてもできます。
サブレポートを作成するテーブルは何でも構いません、レコード件数が12件以上あるものを利用します。データ値が1から12の数値があれば便利です。
そんな都合のよいデータ値が無い場合、レコード選択式で12件分のレコードを選択します。そして、チャートの表示する値で利用する式フィールドに以下の式を書きます。
WhileReadingRecords;
StringVar 表示データ :=Split({?Pm-@式},",")[RecordNumber];
If IsNumeric(表示データ) Then ToNumber(表示データ) Else 0
この結果、チャートを作成するときに12回分の処理が行われて期待されるチャートが表示されます。
Re: チャートについて  弥太郎 - 2004/08/04(Wed) 08:49 No.145

猿町様

返信ありがとうございます。
サブレポートは使ったことがありませんが、
手順を参考にチャレンジしてみたいと思います。

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

ASPからのCrystalReport実行時エラー  ジジ - 2004/08/03(Tue) 17:36 No.144

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

ASPでCrystalReportを使用してレポートを画面表示しています。
実行時に「CRAXDRT Error Occured on Server -2147192179:データベースDLLがエラーを検出しました。」のエラーが出力されます。
以前には出なかったエラーなのですが、急にエラーとなってしましました。
エラーの内容に付いてわかる方がいらっしゃいましたら、
お教え願えませんでしょうか。

Crystal Reports ActiveX Designer エラーについて  スズ - 2004/08/03(Tue) 11:56 No.143

初めて投稿させていただきます。

ASPでクリスタルレポートを利用してグラフ表示を行っていますが、
Session("oRpt").ReadRecords
のプログラム行で以下のエラーメッセージが表示されるようになって
しまいました。

Seagate Crystal Reports ActiveX Designer エラー '80047616'

色々とWEB検索してエラー原因を探しているのですがヒットするページが
見当たりません。

何か同じ現象が出て解決された方がおりましたらご教授願いますでしょうか。

| 1| 2| 3| 4| 5|