クロス集計を教えて下さい。
プー - 2004/11/04(Thu) 10:51 No.308
- クリスタルレポート10(VB.NET)での質問をさせてください。
日付がキーのデータを、横方向に曜日列を配置して1週間分を一度に出力したいのですが、そのような事は可能でしょうか?
レコードは必ず毎日存在するとは限らず、データのない曜日列は空白列で
表示したいのですが、ヘルプにも載っておらず、ネットでもなかなか見つかりません。
どうかよろしくお願いします。m(_ _)m
- Re: クロス集計を教えて下...
Kimberly - 2004/11/04(Thu) 15:24 No.310
- ブー様
手っ取り早いのは、式フィールドを7つ分作成して横並びに配置します。
それぞれの式フィールドの内容は、以下のようにします。
//日曜日
WhilePrintingRecords;
If DayOfWeek({xxxx.日付}) = 1 Then
{xxxx.売り上げ金額}
Else
0
曜日毎に式フィールド作成して、それぞれの値を表示します。
但し、表示イメージはこんな感じだと思います。
日曜日 月曜日 火曜日 ・・・
\0 \123 \0
\99 \0 \0
\0 \0 \87
さらに、それぞれの曜日の式フィールドの書式設定の非表示のオプションの条件式にゼロの値なら、非表示とすることで空欄で表示することができます。
{@日曜日の式フィールド}=0
その結果、こんな感じで表示することができます。
日曜日 月曜日 火曜日 ・・・
\123
\99
\87
もう少し賢い方法があると思いますが・・
テーブルのデータの持ち方などの詳細がわからないので、これ以上はわかりません。
- Re:ありがとうございました。
プー - 2004/11/05(Fri) 10:39 No.313
- Kimberly 様
教えていただいたコード大変参考になりました。ちゃんと出来ました。
ありがとうございました。m(_ _)m
パラメータの離散値設定について
ビギナー - 2004/11/04(Thu) 10:34 No.307
- こんにちは。
前回はご迷惑おかけしました。またまた質問がありまして投稿させていただきます。
特定のレコードだけをビューワに出力したいと思いまして、パラメータフィールドにて離散値を選択し、パラメータの値をプログラムで設定したのですが・・・。
最初にしたいのはビューワに読み込む際は、抽出条件を無しにしたいのです。
コーディングで何かしらの値を設定するとレコードは表示されるのですが、最初は制限をかけたくないのです。
ワイルドカードみたいなものを設定して抽出条件をレコード全体のようにしたいのです。
色々試してみたのですが、条件をコーディングしないと「パラメータの入力」ダイアログで表示されてしまいます。
パラメータを作成すると必ず値を設定しなくてはならないのですか?
そこでなんですがパラメータの離散値の値を設定しない場合にワイルドカード(条件無し)みたいものってあるのでしょうか?
教えてください。
自分がやってみたプログラムです。
Dim rp As New rptMainReport
Dim pf As New CrystalDecisions.Shared.ParameterField
Dim pfs As New CrystalDecisions.Shared.ParameterFields
Dim dv As New CrystalDecisions.Shared.ParameterDiscreteValue
pf.ParameterFieldName = "prmMain_busho"
dv.Value = ’←ここに抽出条件(全体)入れたいのです
pf.CurrentValues.Add(dv)
pfs.Add(pf)
CrystalReportViewer1.ParameterFieldInfo = pfs
rp.SetDataSource(DsMainPrint1)
CrystalReportViewer1.ReportSource = rp
環境)VB.NET、CR9
- Re: パラメータの離散値設...
Kimberly - 2004/11/04(Thu) 13:12 No.309
- ビギナー様
パラメータの値で抽出条件を変更しているのでレポートのレコード選択式が利用していると思いますが・・
その場合、以下のようにレコード選択式を変更してお試しください。
if {?prmMain_busho}="" Then
{xxxx.yyyy}={xxxx.yyyy}
Else
{xxxx.yyyy}={?prmMain_busho}
パラメータの値が省略されたら、全件抽出できるとおもいます。
{xxxx.yyyy}={xxxx.yyyy}は、他に考えが出ませんでしたので・・
コードは、パラメータの値は、ブランクを設定しておきます。
- Re: パラメータの離散値設...
ビギナー - 2004/11/04(Thu) 17:17 No.312
- Kimberly様
レコード選択式を教えて頂いた通りにやってみたところうまく抽出ができ
無事解決です。
ありがとうございました。
PDFへの出力ではなく、PDFの表示について
taro - 2004/11/04(Thu) 15:44 No.311
初めての投稿になります、本田です。
現在、Crystal Report for Visual Studio .NET(.NETに標準でついていたもの)を使用して、帳票を作成しています。
「CrystalReport」に図面Pdfファイルを表示させ、文字情報を付与し、
出力させたいのですが、いろいろと調べてますがわかりません。
Adobe ActiveX Controlを参照設定しましたが、
フォームには貼り付けられてもCRには貼り付けできません。
ツールボタンが使用不可状態になってしまいます。
CR上にPdfファイルを表示する方法を教えて頂けないでしょうか?
よろしくお願いします。
【開発環境】
OS : WindowsXP Pro(SP2)
.NET : Microsoft Visual Studio .NET 2002(VB使用)
クリスタルレポート : Crystal Report for Visual Studio .NET
縦が固定で横が可変のレポート
うに - 2004/11/02(Tue) 17:39 No.304
はじめまして、うにと申します。
CrystalReportでいくつか帳票を作成していましたが、
タイトルのような帳票は今まで作成したことがありませんでした。
お客様からどうしてもこのレイアウトで出力してほしいといわれています。
例1/
| 1ページ目 |
------------------
列1 列2 合計
値 値 値
値 値 値
------------------
例2/
| 1ページ目 | 2ページ目 |
----------------------------------
列1 列2 列3 列4 合計
値 値 値 値 値
値 値 値 値 値
----------------------------------
横の列の数が可変なためにクロス集計で出力しようとしています。
実現する方法があるのかないのかもわからず、
検索などをしているのですが途方に暮れています。
また、その際にヘッダーやフッターなどを表示する方法も不明です。
一応公式FAQに似たようなことは書いてありますが、あらかじめページ数が分かっていないと設定できないようです。
http://japan.crystaldecisions.com/support/crystalreports85/faq.asp
追加で必要な情報がありましたら書き込みますので何卒よろしくお願いします。
- Re: 縦が固定で横が可変の...
Kimberly - 2004/11/03(Wed) 14:36 No.306
- うに様
以下のサイトにクロス集計で横方向にページ番号を付与する方法が記述されています。Crystal Repors 9 ですが、他のバージョンでも可能だと思います。
http://support.businessobjects.com/library/kbase/articles/c2011806.asp
但し、この方法は、1、1−1、1−2、・・・・、2、2−1、・・という形式で横方向に表示させています。例えば、グループ毎にクロース集計を表示する場合、縦方向にもページが存在することを想定しているためと思います。縦方向が1ページで収まる場合、上記のサイトの手順で、さらに式フィールドの内容を以下のように変更すると、1、2、3、・・と横方向にページ番号を付与することができます。
WhilePrintingRecords;
global numbervar PageNum;
PageNum:= PageNum + 1;
"Page # " + totext(PageNum,0)
試してみてください。
なお、Crystal Reports 10 から横方向のページ番号の関数がありますので、上記の手順は不要になります。
文字列フィールドの文字制限
ゆーこ - 2004/10/29(Fri) 13:01 No.298
- はじめまして。ゆーこと申します。
最近私の方へクリスタルレポート(var7)の修正依頼があって始めて触ってます。
依頼の内容は、印刷されないフィールドがあるというもの
確認してみると、文字数が多いとき印刷されない用です
テーブル(oracle使用)では VARCHAR2(24)で定義してあります。
SQLのSELECT文を実行してもちゃんと表示されるのですが、クリスタルレポートには20文字までのものだけを印刷しています
ちなみに式フィールドで、文字数をlengthでチェックしたところ、21文字のはずが、0と帰ってきました・・・
フィールドの大きさを広げても表示しません
こんなことってあるんでしょうか?
ちょっとお手上げ状態です。どうか教えてください
- Re: 文字列フィールドの文...
猿町 - 2004/11/02(Tue) 07:05 No.302
- ゆーこ様、
同一環境がないから試せませんが、ODBCドライバを利用してみたらどうですか。
以下のメーカーのサイトに2000文字以上だと、正しい長さで表示されないという記事があります。Nativeが駄目なら、ODBCだとうまくいくかもしれません。
http://support.businessobjects.com/library/kbase/articles/c2003061.asp
- Re: 文字列フィールドの文...
ゆーこ - 2004/11/02(Tue) 17:57 No.305
すみません。マジボケでしたそして解決しちゃいました。
実は、レポートのテーブルを変更して、(保存先を変更)
エリアスを元の名前にしていたのですが、それだともともと定義していた
20文字がデータ長でずっと変わりませんでした。
テーブルを削除して、もう新しいテーブル追加し、エリアス名も変更し、フィールドを追加しなおしたら24文字で表示できました。
保存先の変更だけだとデータ長って変わらないんですね・・・
もっとやったこともちゃんと書けばよかったです。
猿町 様 ありがとうございました。
テーブルの動的な追加
山 - 2004/10/29(Fri) 11:31 No.297
初めまして、山と申します。
この度、始めてクリスタルレポートの開発をすることになり、こちらにお邪魔させていただきました。
まったくクリスタルレポートの入り口すら分からなかったのですが、こちらのホームページのおかげでかなり理解することができました。
さて、ここで質問なのですが、あらかじめテーブルのフィールド名やフィールド数が分かっている場合は問題ないのですが、動的にテーブルを追加することは可能ですか?
今現在、プログラム実行中にTable(DataSetは始めからあり)を作成して、それをクリスタルレポートで印刷しようと検討しております。
クリスタルレポートのソースなどを表示して修正できるものなのでしょうか?
動的に作成するため当然、デザインも動的にプログラム内部で作成する必要があるので無理なのでしょうか?
文章がヘタなのでわかりにくいと思いますが、どうぞお教え願います。
- Re: テーブルの動的な追加
猿町 - 2004/11/02(Tue) 07:10 No.303
- 山様、
.NETを開発環境として利用している場合、実現することはできません。
予めデザインされたレポートをそのまま表示、印刷に利用することになります。
横に並べて表示の列変更時の再表示
hoso - 2004/10/21(Thu) 10:34 No.283
- はじめまして。質問なのですが、
”複数のレコードを横に並べて表示”で表示列が変わったら、そのグループヘッダー表示を再表示させたいのですが、どのようにすればできるでしょうか?
以下のようにしたいのです。
ページヘッダー
------------------------------------------
グループヘッダー@ グループヘッダーA
1-1 詳細 2-3 詳細
1-2 詳細 2-4 詳細
グループヘッダーA 2-5 詳細
2-1 詳細
2-2 詳細
-------------------------------------
以上です.宜しくお願いします。
- Re: 横に並べて表示の列変...
猿町 - 2004/10/29(Fri) 08:56 No.296
- hoso様、
表示イメージから推測するとできないと思います。
詳細の「複数の列で書式設定」にチェックしていると思いますが・・
試してみると以下のように表示されました。
ページヘッダー
---------------------------------
グループヘッダー@
1-1 詳細
1-2 詳細
グループヘッダーA
2-1 詳細 2-4 詳細
2-2 詳細 2-5 詳細
2-3 詳細
-------------------------------------
グループは、1つでグループ@とAは、値が異なるグループであると想定しています。グループ毎にまとめて表示するため、1-1 詳細の右横の列は、グループが異なるグループAのデータは表示されないと思います。
- Re: 横に並べて表示の列変...
hoso - 2004/10/31(Sun) 16:53 No.300
- 猿町様、レス有難うございます。
やはり今のままのデータでは無理そうですね。
列が変更になったという情報がCrystalReportに
あれば、データセットを細工して表示することは
何とかできそうなのですが、
そうゆうものはありませんでしょうか?
- Re: 横に並べて表示の列変...
猿町 - 2004/11/02(Tue) 06:58 No.301
- hoso様、
そうですね。列が変更になった情報があれば、なんとかなるかもしれませんが・・
試したけど、以下のようなイメージで出力できましたが、
列が変更になったときに再度、同一のグループヘッダーAを2列目のページ
先頭に出力することができません。
ページヘッダー
-----------------------------
グループヘッダー@ 2-3 詳細
1-1 詳細 2-4 詳細
1-2 詳細 2-5 詳細
グループヘッダーA 2-6 詳細
2-1 詳細 グループヘッダーB
2-2 詳細 3-1 詳細
-------------------------------------
列が変更になったことを判断する方法がないのでこれ以上は無理かもしれません。
再度質問します
nao - 2004/10/27(Wed) 19:59 No.293
- ごめんなさい。またまた質問します。
クリスタルレポートにデータベースのデータを表示するのですが、表示するデータのなかに
画像のファイルパスがあり、それをクリスタルレポートに画像として表示したいのですが
どういうやり方をすればいいのでしょうか。
今考えているやり方が、データベースから画像のファイルパスのテキストを取り出し、
それをイメージファイルにした後、それをデータセットに格納して表示しようとしたのですが
うまくいきません。
何かいい方法はないでしょうか。
なにかヒントになるものがあれば教えてください。お願いします。
- Re: 再度質問します
nao - 2004/10/29(Fri) 17:18 No.299
自己レスです。問題解決しました。http://groups.yahoo.com/group/CrystalReportsDotNet/message/2214ここにそのままやり方がのっていました。どうもご迷惑おかけしました。
入門のとおりにしたのですが
nao - 2004/10/27(Wed) 15:55 No.291
すいません。再度基本的な質問です。入門編を見て、DataSetをつくり、それをクリスタルレポートに表示できるようにしているのですが、データグリッドには表示できてもクリスタルレポートには表示できませんでした。CrystalReport Rep = new CrystalReport();
RepDataset Repds = new RepDataset();
Repds.Clear();
RepDataset.table1Row TR = (RepDataset.table1Row)Repds.table1.NewRow();
TR.BeginEdit();
TR.element1= "1";
TR.EndEdit();
Repds.table1.Rows.Add(TR);
Rep.SetDataSource(Repds);
dataGrid1.DataSource = Repds.table1;
crystalReportViewer1.ReportSource = Rep;という風にしたのですがなにかおかしいんでしょうか?
- Re: 入門のとおりにしたの...
nao - 2004/10/27(Wed) 19:43 No.292
- 自己レスです。問題解決しました。データベースの追加のときに選ぶデータベースの項目が間違っていたみたいです。ご迷惑おかけしました。
レポートの互換性について
ぱんだ - 2004/10/22(Fri) 17:28 No.287
- いつもお世話になっております。ぱんだと申します。
現在、クリスタルレポートのバージョン6で作ったものを8.5にバージョンアップさせる
作業をしているのですが、「6」で作られたものの中に「RT」という関数や
「ResetTotal」といった関数が使用されており、「8.5」のバージョンでプレビュー
しようとしても、エラーになってしまいます。
ヘルプなどを参照してみましたが、関数の互換性については書かれておりませんでした。
「RT」や「ResetTotal」に代わる関数やその他対応方法をご存知の方が
おられましたら、教えていただけないでしょうか?
よろしくお願いいたします。
- Re: レポートの互換性について
ぱんだ - 2004/10/23(Sat) 12:06 No.288
- 自己レスです。
まだ調べている途中なのでなんともいえませんが、
どうやら、積算合計の機能を使えばなんとかなりそうな・・・。
- Re: レポートの互換性について
Kimberly - 2004/10/23(Sat) 14:22 No.289
- ぱんだ様
はい、そのとおりです。
RT関数は、バージョン7から廃止されてありません。
積算合計フィールドがそれに代わるものになります。
- Re: レポートの互換性について
ぱんだ - 2004/10/23(Sat) 14:50 No.290
- Kimberly様ありがとうございます。
無事解決することができました。
社内にVer6とVer8.5はあったのですが、Ver7が見つからなかったので、
資料が見当たらなかったのです・・・(^^;)
パラメータ値がはみ出してしまいます
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
いろいろお騒がせしましたが、ありがとうございました。
特に猿町様には、いろいろとご教授を頂き大変感謝しています。
フォントの変更
R - 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: フォントの変更
R - 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
詳細1
グループフッタ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の行以外の全支店は非表示になります。
最初の回答は考えが足りませんでした。申し訳ございません。
お試してみてください。