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

式フィールドの値の取得について  nakky - 2004/12/03(Fri) 21:45 No.377

はじめまして、こんばんわ。
クリスタルレポート初心者ですので単純な質問かもしれませんが、
どなたか教えていただけると光栄です。

業務でクリスタルレポートのコンバージョンをしています。
そこでページヘッダーにあるフィールドに今まではプログラムから直接値を編集していたようなのですが、
今のところ直接編集する方法が見つかりません。
プログラムの都合上できればその方法を変えたくないのです。
どなたかプログラムから直接値を編集する方法がありましたら教えてください。
よろしくお願いいたします。

開発環境
windows2000Pro
VisualBasic.NET 2003
CrystalReport9   

Re: 式フィールドの値の取...  Kimberly - 2004/12/04(Sat) 09:14 No.378

nakky様

レポートに挿入された式フィールドの内容を変更するには、以下のような記述でできます。
Report.DataDefinition.FormulaFields.Item("式フィールド名前").Text = "{テーブル名.フィールド名}"
Re: 式フィールドの値の取...  nakky - 2004/12/06(Mon) 12:20 No.379


kimberly様

ありがとうございました。
無事に出力されました。


メーカ  クリファン - 2004/12/02(Thu) 10:43 <URL> No.376

メーカでもようやくイベントがはじまったみたいですね。http://japan.businessobjects.com/events/

パラメータ離散値について  ビギナー - 2004/11/25(Thu) 20:06 No.370

こんばんわ。
またまたパラメータの離散値設定について質問させてください。

パラメータの離散値に何かしらの同じ値が含まれるレコードのみを抽出したのですが、
たとえば頭文字に"A"となっているものだけを抽出するとなるとコード選択式
ではどのように書いたらよいのでしょうか?

クエリなどで"フィールド名 LIKE 'A%'"と書けばその条件に合うものだけ抽出できルはずですが、CRではこのような書き方ではエラーになってしまいます。
何かしらいい方法がありませんでしょうか?どうかご教授お願いします。

’コード選択式
if{?prm商品名}  = "A" then
({T_マスタ伝票.商品名} LIKE 'A%')
'else
{T_マスタ伝票.商品名}= {T_マスタ伝票.商品名}

(開発環境)
Microsoft Visual Studio .NET 2002:VBを使用してます。
Crystal Report for Visual Studio .NET


Re: パラメータ離散値について  Kimberly - 2004/11/27(Sat) 07:56 No.372

ビギナー様

LIKE の代わりに STARTSWITH ではいかがでしょう。
Re: パラメータ離散値について  Kimberly - 2004/11/27(Sat) 08:14 No.373

ビギナー様

こんな感じの式で期待される結果が出力できると思います。

’コード選択式
if{?prm商品名}  = "A" then
({T_マスタ伝票.商品名} LIKE {?prm商品名} & "*" )
'else
{T_マスタ伝票.商品名}= {T_マスタ伝票.商品名}

また、例えば、LIKE "A?R*" と指定した場合、
1文字目が"A"から始まり、3文字目が"R"のデータを取得できます。
? は、1文字の意味、*は、複数文字の意味になります。

Re: パラメータ離散値について  ビギナー - 2004/12/01(Wed) 09:22 No.375

kimberly様

返信おくれて申し訳ございません。
ご教授いただいた選択式で望み通りの動きをしてくれました。
いつもながら、大変感謝しております。

また何かありましたらご教授おねがいします。

改ページと境界線について  むろ - 2004/11/30(Tue) 09:54 No.374

はじめまして。
とても単純な質問かもしれませんが・・・投稿させていただきます。。。

1つは改ページについてなのですが、ページフッターにページ数(N/M)を挿入しているのですが、出力するとページ数だけが2ページ目に印刷されてしまうのです。セクションの書式を非表示にしてみたりいろいろ試したのですが・・・うまくいきません。

もう1つの質問は境界線についてです。挿入した項目の書式エディタで境界線をシングルに設定したのですが、項目が空の場合は非表示になってしまいます。境界線を常に表示したい場合は何か方法があるのでしょうか?

初心者なので、簡単な質問をしているかもしれませんが是非教えてください!
よろしくお願いします!


サブレポートの情報をメインフォームに渡す方法をご教授ください。  【クリスタルレポート初心者】 - 2004/11/19(Fri) 19:01 No.357

コトミといいます。
初めて投稿します。宜しくお願いします。
書き方に不備があればご指摘ください。

1帳票内で2つ以上の明細データを部門別に改ページして表示したいのですが、
タイトルの表示方法がわかりません。


実現方法は、下記のようにしています。
@メインレポートに、
 「Aの明細データ」「Bの明細データ」「Cの明細データ」をサブレポート
  として貼り付けている。
Aサブレポートは、部門別で改ページするよに設定している。
Bデータは、各サブレポートのみに渡している。
※どうしてもメインフォームのタイトル部分に部門を表示することができません。
 1ページ目に部門Aと表示され
 2ページ目に部門Bと表示したいのですがどうしたら実現できますか?
 ご教授ください。


やり方がまずければご指摘願います。
【開発環境】
 ・クリスタルレポート9
 ・WINDOWS XP
【プログラム内容】
 ・CDOにより各サブレポートのデータベースフィールドを作成して
   配列データをそれぞれに渡しています。
  ※改ページは各サブレポートの設定で行っています。


============================
帳票出力イメージ
============================
----------------------------------------------------------
部門:A ← このタイトルを変えたい!


「Aの明細データ」       「Bの明細データ」
|部門|コード | 名称    |     |部門|コード | 名称    | 
|----|-------|---------|     |----|-------|---------|
|A  |001    | 名称001 |     |A  |101    | 名称101 |
|A  |002    | 名称002 |     |A  |102    | 名称102 |
|A  |003    | 名称003 |     |A  |103    | 名称103 |
|A  |004    | 名称004 |     |A  |104    | 名称104 |
|A  |005    | 名称005 |
|A  |(空白) |(空白)   |   
|A  |(空白) |(空白)   |     「Cの明細データ」
|A  |(空白) |(空白)   |     |部門|コード | 名称    | 
|A  |(空白) |(空白)   |     |----|-------|---------|
|A  |(空白) |(空白)   |     |A  |201    | 名称101 |
|A  |(空白) |(空白)   |     |A  |202    | 名称202 |
|A  |(空白) |(空白)   |     |A  |203    | 名称203 |


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


 


============================
データ
============================
「Aの明細データ」
|部門|コード | 名称    |     
|----|-------|---------| 
|A  |001    | 名称001 |   
|A  |002    | 名称002 |    
|A  |003    | 名称003 |   
|A  |004    | 名称004 |
|A  |005    | 名称005 |
|B  |011    | 名称011 |   
|B  |012    | 名称012 |    
|B  |013    | 名称013 |   
|B  |014    | 名称014 |


「Bの明細データ」
|部門|コード | 名称    |     
|----|-------|---------| 
|A  |101    | 名称101 |   
|A  |102    | 名称102 |    
|A  |103    | 名称103 |  
|A  |104    | 名称104 |
|B  |111    | 名称111 |   
|B  |112    | 名称112 | 


「Cの明細データ」
|部門|コード | 名称    |     
|----|-------|---------| 
|A  |201    | 名称201 |   
|A  |202    | 名称202 |    
|A  |203    | 名称203 |  
|B  |211    | 名称211 |   
|B  |212    | 名称212 | 


分かりずらくてもうしわけありません。

Re: サブレポートの情報を...  Kimberly - 2004/11/22(Mon) 14:33 No.361

【クリスタルレポート初心者】様

同一ページ内に3つのサブレポートを表示するということでしょうか。
また、そのサブレポートが改ページを伴うというものでしょうか。
これは、難しいと思います。
どのサブレポートも固定行で表示して、必ず1ページに収まるようなレポートであれば可能ですが・・
サブレポートはページヘッダー、フッターがないので改ページはメインレポートに依存して発生します。そのため、例えば、Bのサブレポートはデータ量によって同一ページにCのサブレポートを表示しない可能性があります。
Re: サブレポートの情報を...  【クリスタルレポート初心者】 - 2004/11/23(Tue) 11:28 No.362

【Kimberly様】
返信ありがとうございます。

はい、そう考えていましたがご指摘の通り無理があるみたいです。
下記で行いたいと思います。
@ご指摘の通り、どのサブレポートも固定行で表示して、必ず1ページに収まるようにする。
Aサブレポートを使わないで、メインレポートに全て固定行で表示する。

ありがとうございました。
いろいろ試して良い方法でやりたいと思います。
また、投稿の再には宜しくお願いいたします。


>同一ページ内に3つのサブレポートを表示するということでしょうか。
>また、そのサブレポートが改ページを伴うというものでしょうか。

Re: サブレポートの情報を...  【クリスタルレポート初心者】 - 2004/11/23(Tue) 12:01 No.363

@どのサブレポート(A、B、C)も固定行で表示して、必ず1ページに収まるようにする。
でやってみました。

一つ問題がありまして、
BとCのサブレポートをメインレポートに貼り付けて出力してみたのですが
1頁目は、Bの下にCのデータが表示されるのですが
2頁目以降が、Bのデータに重なって表示されてしまいます。
(※CのサブレポートがBのサブレポートと重なって表示されている)

いろいろ試したのですが、どうしても解決できません。
BとCを一つにして一つのサブレポートにした方がいいのでしょうか?

「レポート作成内容」
メインレポートの詳細セクションに
・左側にAサブレポート       ・右側の上にBのサブレポート
                                     ・右側の下にCのサブレポート
として作成しています。

ご教授ねがいます。

宜しくお願いいたします。






Re: サブレポートの情報を...  Kimberly - 2004/11/23(Tue) 14:54 No.364

【クリスタルレポート初心者】様

試してないので間違っているかもしれませんが・・
詳細セクションは、2つに分けてBとCのサブレポートをそれぞれ分けて挿入します。
その結果、BとCのサブレポートはデータ量に影響されずに重なることはないかと思います。でも、問題は、Aのサブレポートです。
どちらの詳細セクションに挿入しても期待する表示イメージにならない。挿入箇所によってBとCどちらかのサブレポートと横並びになってしまいます。
Re: サブレポートの情報を...  Kimberly - 2004/11/23(Tue) 15:57 No.365

コトミ様

期待される出力イメージにはほど遠いですが、こんな感じのレポートではいかかでしょう。ただし、勝手な解釈をしているところもありますのでゴメンナサイ。
前提条件として、部門別に改ページを行っています。
1.メインレポートは、Aの詳細データを利用します。うる
2.Aの詳細データの部門の項目をグループとして挿入します。
3.グループヘッダーにAのサブレポートを挿入し、メインとのリンクは部門を選択します。
4.また、グループヘッダーには、Bのサブレポートを挿入し、メインとのリンクは部門を選択します。
5.グループフッターには、Cのサブレポートを挿入し、メインとのリンクは部門を選択します。
6.詳細セクションは、非表示とします。
7.メインのグループフッターで出力後に改ページをチェックします。
その結果、少し似たような出力イメージになります。但し、Aのサブレポートのデータ量によっては、BとCの空間が広がるかもしれません。
あと、部門でグループしているので改ページしたら、部門名は変更できます。
Re: サブレポートの情報を...  【クリスタルレポート初心者】 - 2004/11/24(Wed) 19:35 No.368

Kimberly】様
何度もご返事いただきありがとうごうざいました。
返事が遅れて申し訳ありません。

なんとか解決することができました。
(すみません。掲示板を見た時には解決していました。)
方法は、
Bのサブレポートのグループヘッダー「部門でグループしている所」に
Cと重ならないように空白をあけて対応しました。

Kimberly様よりご教授いただいた方法の方が各サブレポートの表示が
統一されそうなのでいいかもしれません。
今ので問題が発生した場合に一度挑戦させていただきたいと思います。

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

1.メインレポートは、Aの詳細データを利用します。うる
2.Aの詳細データの部門の項目をグループとして挿入します。
3.グループヘッダーにAのサブレポートを挿入し、メインとのリンクは部門を選択します。
4.また、グループヘッダーには、Bのサブレポートを挿入し、メインとのリンクは部門を選択します。
5.グループフッターには、Cのサブレポートを挿入し、メインとのリンクは部門を選択します。
6.詳細セクションは、非表示とします。
7.メインのグループフッターで出力後に改ページをチェックします。
その結果、少し似たような出力イメージになります。但し、Aのサブレポートのデータ量によっては、BとCの空間が広がるかもしれません。
あと、部門でグループしているので改ページしたら、部門名は変更できます。


サブレポート使用時の改頁について  ナオキ - 2004/11/20(Sat) 03:52 No.358

ナオキと申します
始めまして。お世話になります。

現在、サブレポートを2つ使用したレポートを作成しております。
主表の情報に対して、従属する2つの異なった情報をサブレポート側で表現しております。

主レポート、サブレポートA,サブレポートBの順で出力されるのですが
主レポート+サブレポートAでちょうど1頁となる場合
かつ
サブレポートBのデータ件数=ゼロの場合に
次頁に主レポートのみ表示されます。

データが無い場合は非表示とし、サブレポートABを貼り付けている
主レポートの詳細セクションは、"まとめて出力"としているのですが
どうしても不要な1頁が出力されます。

この改頁を抑止する方法は無いのでしょうか?

ご存知の方、教えてください。
宜しくお願いします。

Re: サブレポート使用時の...  Kimberly - 2004/11/24(Wed) 09:02 No.366

ナオキ様

例えば、サブレポートBのデータ件数を、レポートヘッダーに同一サブレポートを挿入して、予め取得し、件数を式フィールドの共有変数に保持します。
その共有変数の値を非表示の判断に利用することが可能と思います。
データが存在する際のサブレポートBの表示は、今のデザイナのままとします。
また、レポートヘッダーに挿入したサブレポートBは計算のために利用するのでできるだけ小さくして挿入してレポートの表示に邪魔にならないようにします。
但し、このサブレポートBを非表示とすると計算されないので、非表示とすることはできません。

//レポートヘッダーのサブレポートBで利用する式フィールド
WhilePrintingRecords;
Shared NumberVar SubReportB:=Count({テーブル名.フィールド名});

メインレポートでは、以下の式をセクション、フィールド等の非表示の条件式で利用することができると思います。
//共有変数の値のチェック
WhilePrintingRecords;
Shared NumberVar SubReportB;
If SubReportB <> 0 Then
False
Else
True

レポートのデザインの詳細がわかりませんので、的確なアドバイスにならないかもしれませんが・・お試しください。
Re: サブレポート使用時の...  ナオキ - 2004/11/24(Wed) 12:46 No.367

Kimberly様
レス有難う御座います。

試行錯誤していたのですが、各々のサブレポートの
実行前に、データの有無を確認できない事にはどうしようも無い
事に思い至り、主レポートの駆動表に、サブレポートA,Bの
対象件数をほうり込む事で対応しました。

ご教授頂いた方法は、機会を作って確認したいと思います。

有難う御座いました

クロス集計の列を途中から変えたいとき  ともこ - 2004/11/18(Thu) 09:40 No.349

こんにちわ。始めまして。
CrystalReports9を使い始めたのですが、なかなかうまくできません。教えてください。。゛(ノ><)ノ

【帳表表示イメージ】
商品  1月サマリ 2月サマリ  1/1   1/2  ・・・ 2/29
AA    100      200    10     5  ・・・  20   
BB    200      500    20    10  ・・・  10
CC    300     1000    30    20  ・・・  10

クロス集計を使ってみたんですが、月サマリと日付表示を同じ帳票に表示させる方法が見つかりませんでした(別々になら作れました)。かなり困っています。誰か助けてください(ToT)

Re: クロス集計の列を途中...  Kimberly - 2004/11/19(Fri) 09:39 No.353

ともこ様

レポート全体が1ページに収まるデータ量であれば、月サマリと日付表示をそれぞれ横並びでサブレポートで挿入してみたらどうでしょうか。
すでに別々にレポートを作成しているので、この2つのレポートを挿入できるメインのレポートを作成してみたらどうでしょう。この時、データベーステーブルを選択してもフィールドは何も挿入しない。また、メインとサブレポートのリンクはしないようにします。
Re: クロス集計の列を途中...  ともこ - 2004/11/22(Mon) 09:24 No.360

Kimberlyさん、本当にどうもありがとうございます。
サブレポートですね。。もっと勉強しなくっちゃ。
おっしゃる通り、1ページに収まるか相手先へ確認して対応してみます。
また何かあったら質問させてくださいねo(^o^)o

これからもこの掲示板、のぞかせていただきますぅ☆

同じ帳票を2つ表示させる  ゆり - 2004/11/19(Fri) 16:48 No.356

前回はお世話になりました。
また今回も分からない点がありご教授ください。

同じ帳票をページの上下2個所に表示させたいのですが、やり方がさっぱり分かりません。
ご存知の方教えてください。宜しく御願い致します。
Re: 同じ帳票を2つ表示させる  Kimberly - 2004/11/20(Sat) 08:50 No.359

ゆり様

同一レポートを上下2箇所に表示させることはできないので、同一レポートをサブレポートとして挿入する方法が考えられます。
レポートのデザインによりますが、このレポートが1ページ毎に上下同一内容を表示する領収書で、上部(正)、下部(控)とした場合、サブレポートを詳細あるいは、グループに挿入し、メインとサブレポートは同一内容のデータが表示できるようにリンクします。ポイントは、同一内容のデータが取得できるようにメインとサブをリンクする項目を探すことになります。
すでにレポートが存在しているので、レポートファイルを複写して、どちらか一つをメインとし、片方をサブレポートとして、ファイルを挿入することができます。

グループフッターの非表示制御  ゆり - 2004/11/18(Thu) 14:48 No.350

初めまして。
CrystalReport10を使っていてうまくいかない点があるのでご教授ください。

今作成しているレポートは単純なもので、グループヘッダー1,グループヘッダー2のみがあります。
グループヘッダー1のフッターには何も表示しないで、グループヘッダー2のフッターには合計値を表示しています。
今やりたいことは、このグループヘッダー2のフッターの合計表示をある特定のレコードが表示された場合には非表示にしたいのです。
合計値を表示させているデータベースフィールドを式フィールドにして制御をすれば出来るのですが、その下に表示している線が消えません。
グループフッター2を非表示にする方法をご存知の方教えてください。宜しく御願い致します。
Re: グループフッターの非...  Kimberly - 2004/11/19(Fri) 09:33 No.352

ゆり様

ある特定のレコードは、同一グループ2内に含まれているわけですよね。
ある特定のレコードの内容によりますが、フィールド項目の値であれば、
以下の式をグループ2のフッタ、あるいは、合計表示フィールドの非表示の条件式に挿入します。

WhilePrintingRecords;
{テーブル名.ある特定の項目} >= 100 and  {テーブル名.ある特定の項目} < 200

上記は、ある特定の項目の値が100以上、200以下の場合、該当項目を非表示にできます。
文字列、論理値等のデータ型でも利用可能です。

Re: グループフッターの非...  Kimberly - 2004/11/19(Fri) 11:22 No.354

>文字列、論理値等のデータ型でも利用可能です。
言葉が足りませんでしたが、これは、フィールド項目のデータ型を意味します。
どのデータ型でも特定の項目の値を判断して、表示・非表示の切り替えをすることが可能です。
Re: グループフッターの非...  ゆり - 2004/11/19(Fri) 16:43 No.355

Kimberly さんありがとうございました。
無事に解決しました。

WhilePrintingRecords;
if {テーブル名.ある特定の項目} >= 100 then
    true
のような感じでやったら上手く出来ました。



初心者です。  八代将軍 - 2004/11/17(Wed) 08:45 No.337

こんにちは。はじめまして。私はVB6.0を使って2年ほどプログラムに携わってきたのですが上司からの指示でクリスタルレポート10を使って帳票を出力することになりました。
業務内容はまずAccess2000のデータベースがあり、いわゆる個人データのような物です。都道府県ごとにこのAccessファイル(mdb)が存在するため47つあります。

このデータベースの内容をVBからクリスタルレポートを使って帳票(この様式もあらかじめ作っておいたほうがよいのかどうかもわからないです。)に出力するんですが、抽出条件で男のみ出力とか個人コード何番〜何番まで出力とかできるようにしないといけないんです。

どんなささいなことでもいいのでアドバイスいただけたらうれしいです。誰も助けてくれないので困っています。よろしくお願い致します。
Re: 初心者です。  八代将軍 - 2004/11/17(Wed) 08:46 No.338

補足ですがAccessへの接続はADOを使っています。

Re: 初心者です。  Kimberly - 2004/11/17(Wed) 12:27 No.341

八代将軍様

>補足ですがAccessへの接続はADOを使っています。

これって、VBからのDB接続方法ですよね。
Crystal Reports 10 から47つのDBに対してADO接続するのでしょうか?
それは無理でしょう。

レポートの表示内容がすでに決まっていて、抽出条件のみが変化するのであれば、VBと組合わせて使うわけですから、抽出条件の設定と47つのDBからのデータ検索はVBで行い、その結果をレコードセットに挿入し、Crystal Reports に引き渡す方法がより作成し易いかもしれません。
Crystal Reportsは47つのDBを意識することなく、抽出条件の設定も行わないのでCrystal Reports とのインターフェース部分の処理は簡単になると思います。
47つのDBがあるのでVBの処理は複雑かもしれませんが・・
Re: 初心者です。  八代将軍 - 2004/11/17(Wed) 16:12 No.344

Kimberlyさまありがとうございます。
一応データベースが1つだけに固定されている場合は出力できました。しかし例のようにデータベースがいくつもありますので(形式は同じです。)VB側DBからのデータ検索はVBで行い、その結果をレコードセットに挿入し、Crystal Reports に引き渡す方法を教えていただけないでしょうか?
Re: 初心者です。  Kimberly - 2004/11/18(Thu) 00:24 No.346

八代将軍様

VBプログラマでないので詳細な処理はわかりませんが、指定された抽出条件からループで47つのDBを検索し、合致したデータをその都度、レコードセットに追加していけばいいのではないですか。
47つのDBから抽出条件に合致したデータの追加が終われば、
以下のようなコードを利用してレポートを表示することができるはずです。

'保存データを破棄する
CrystalReport.DiscardSavedData
'レコードセットを引き渡す
CrystalReport.Database.Tables.Item(1).SetDataSource  レコードセット, 3
CRViewer1.ReportSource = CrystalReport
CRViewer1.ViewReport

上記は、1つ目のテーブルにレコードセットを渡す処理になります。
Re: 初心者です。  八代将軍 - 2004/11/18(Thu) 08:39 No.347

Kimberly さま 丁寧な回答ありがとうございます。
まだうまくいっていません。Kimberly さまのいう47つのDBを検索し、合致したデータをその都度、レコードセットに追加していけばいいとのことでしたがちょっと意味あいが違いまして・・・。
47では多いので2つで考えますと、a.mdb というファイルとb.mdb というファイルがあり、テーブル、フィールドの構成は全く同じでデータの中身が異なるとします。
既に作成済みのレポート様式にあるときはa.mdbの内容を使って出力、あるときは
b.mdbのほうで出力するという命令をVBでどうするかということが問題となっています。
レポートを作成する際、レポートウィザードを使って a.mdbのほうを指定して作成したのがまずいのでしょうか?誰も聞く人もいなくて困っています。
何度も質問すいません。
Re: 初心者です。  Kimberly - 2004/11/19(Fri) 09:24 No.351

八代将軍様

勘違いかもしれませんが、データの抽出条件から47つのDBを併せた結果をレポートに表示するものと理解していました。都道府県別に1つずつDBからデータを抽出してレポートを表示できればいいのですね。
レポートのデザイン時のデータベースの接続方法がわかりませんが、mdb を直接参照している場合、以下のような記述をします。
CrystalReport.DiscardSavedData
For i = 1 To CrystalReport.Database.Tables.Count
    CrystalReport.Database.Tables.Item(i).ConnectionProperties.Item("Database Name") = App.path & "\" & "データベース名.mdb"
Next i
都道府県毎にmdbファイル名を変更してください。

クロス集計の小計の非表示  YK - 2004/11/10(Wed) 14:09 No.326

クリスタルレポート9のクロス集計についての質問です。
商品に対し、属性A、属性Bは一意の値です。
それに対し、属性Cが複数あるというモデルです。
クロス集計作成時に、行に商品名、属性A、属性Bというふうに選択すると、以下のようなフォーマットにはならず、属性A・属性Bごとにも小計が表示されてしまいます。以下のように出力するにはどうしたらよいでしょうか。
初歩的な質問かもしれませんが、どうぞ宜しくお願いします。












































商品名属性A属性B属性C11月個数12月個数
Item001AAA001BBB001A1001000
B2002000
Item002AAA002BBB002A3003000
C4004000
合計100010000
Re: クロス集計の小計の非表示  なる - 2004/11/18(Thu) 09:27 No.348

小計の非表示が出来ますので、これで解決してください☆

改ページ制御について  KEN - 2004/11/17(Wed) 10:28 No.339

はじめまして。

現在、クリスタルレポート(version8)を使用して、帳票の作成を行っております。
当該ホームページにある ”グループごとにページを分ける” 事を行っているのですが、(「グループフッター」の「セクションの書式」で、「出力後に改ページ」をチェックする。 )

最終グループの出力後、明細データが無いのにも関わらず、ページヘッダが出力されてしまいます。(最後にヘッダのみ出力される余分な紙が一枚出てしまう)

また、最終ページのみ、明細件数の合計を出力しなければならない(合計 XX件といった具合に出力しなければならない)のですが、クリスタルレポートでは、"最終明細を出力した" あるいは、"最終ページ"である事を判断する機能はないのでしょうか。

どなた様か最終ページの制御をうまく行う方法をご存知でしたらご教授いただけないでしょうか。
よろしくお願い致します。
Re: 改ページ制御について  Kimberly - 2004/11/17(Wed) 12:11 No.340

KEN様

本サイトの「改ページと総合計について No.327」に同様な書き込みがありますよ。
最終ページに明細件数の合計の表示ですが、この明細件数の合計は、グループ毎なのでしょうか。文面を拝見すると最終ページのみと書いてあるのでレポート全体の件数ですか?
グループ毎なら、グループフッター、レポート全体ならレポートフッターで表示できるのではないでしょうか。
余分な改ページを取り除けば問題ないと思います。


Re: 改ページ制御について  KEN - 2004/11/17(Wed) 14:44 No.342

Kimberly

ありがとうございます。
解決致しました。
(「改ページと総合計について No.327」とは意図していた内容とは若干違ったのですが、大変参考になりました。本当にありがとうございます。)

因みに合計件数というのは、レポート全体の件数を指していたのですが、ただレポートフッタに合計フィールドを記載するだけでは、毎ページ出力されてしまいます。

そこで、予め、出力件数の取得を行い(当帳票は、DBより抽出されたデータを明細に出力を行うためADOのレコードセットオブジェクトより件数を取得)、特殊フィールドのレコード番号(非表示にしてある)と予め取得した件数が一致したとき、最終レコードが出力されたと判断し、フッタの出力を行うように制御致しました。

(なにか、もの凄く回りくどい事をしているような気がするのですが…とりあえずこの方法で最終ページのみ件数が出力することができました)
Re: 改ページ制御について  Kimberly - 2004/11/17(Wed) 15:16 No.343

KEN様

解決しているのであればいいのですが・・
ちょっと気になる点があるので追記しておきます。
レポートフッタは1度しか表示はしません。そのため、レポートフッタに挿入された項目は最後のページのみに表示されるはずです。ページ毎に表示するのは、ページヘッダ、ページフッタになります。記述の誤りではないかと思います。
最後のデータであるか判断する方法としては、NextIsNull関数を利用することで可能であると思います。フィールド、セクションの非表示の条件式に以下のように入力します。
WhilePrintingRecods;
NextIsNull({xxxx.yyyy});

条件の結果が偽なら、表示、真なら、非表示となります。
Re: 改ページ制御について  KEN - 2004/11/17(Wed) 17:22 No.345

Kimberly

申し訳ありません。ご指摘の通りでした。
ページフッタの設定を行っておりました。
(合計はページの最下部に出力する仕様であったため、勘違いしていました。レコードフッタを最下部に出力する様にしたところうまく行きました)

余計なロジックを削除し、コードもきれいになりました。
誠にありがとうございます。

(今まで、帳票は、サーバー側でファイルを作成し、オーバーレイをあてるものだったのですが、今回から、クリスタルレポートを使用しての作表となってしまい、不慣れなため、こうした初歩的な質問・ミスでご迷惑をおかけしました。また、疑問等が発生した場合、お忙しい中申し訳ありませんが、ご教授いただけたら幸いです。)

<長文失礼いたしました>

ある条件時にレコードに文字を表示する  ビギナー - 2004/11/13(Sat) 10:14 No.331

こんにちは。
またまた質問があります。ご存知の方がいらっしゃいましたらご教授お願いします。

帳表作成時、表示するレコードに納品期日があります。それをレポートの出力日付等で比べて、来月が納期予定になっているもののレコードの脇にでも’次月’と表示させたいのですが何か良い方法がありませんでしょうか?

’************
出力日付 2004/10

帳表表示レコード
商品  個数  単価    合計    納期    期日
AA    2   \1000  \2000  2004/12
BB    3   \1000  \3000  2004/11   次月
CC    3   \1000  \3000  2005/01   

毎月出す注文状況の帳票で来月が納期になっているものに何かしら注意を与える
ような文字かマークを表示させたいのです。それ以外は空白に出来たらと思っています。
何か良い知恵をお貸しください。お願いします。

(開発環境)
Microsoft Visual Studio .NET 2002:VBを使用してます。
Crystal Report for Visual Studio .NET
Re: ある条件時にレコード...  Kimberly - 2004/11/13(Sat) 16:14 No.334

ビギナー様

期日の列に以下の式フィールドを挿入してお試しください。
WhilePrintingRecords;
//出力日が12月の場合
if  month(PrintDate)  = 12 then 
(
if year(PrintDate)+1 =  year({xxxx.納期}) and month({xxxx.納期}) =1 then
"次月"
else
""
)
//出力日が12月以外の場合
else
if year({xxxx.納期}) &month({xxxx.納期})  > year(PrintDate) & month(PrintDate) then
"次月"
else
""
うまく動くか心配ですが、こんなように記述します。
Re: ある条件時にレコード...  ビギナー - 2004/11/15(Mon) 14:31 No.335

Kimberly
いつもありがとうございます。

ご教授いただいたように式フィールドに入れたやってみたところ少しですが私なりの
アレンジを加えてやってみたところ希望通りの事が実現できました。

if year({xxxx.納期}) &month({xxxx.納期})  = year(PrintDate) & month(PrintDate)+1  then
"次月"
else
""
出力日付の翌月が納期のみ表示したかったもので、これでいいのでは?と変えてみました。

ほんといつもありがとうございます。また何かありましたらお知恵お貸しください。
Re: ある条件時にレコード...  Kimberly - 2004/11/16(Tue) 14:42 No.336

ビギナー様

年が跨った場合を想定した式でした。
12月に出力したときに、翌年1月のデータに"次月"を表示しよう試みた式でした。


無題  Kimberly - 2004/11/13(Sat) 16:11 No.332

ビギナー様

期日の列に以下の式フィールドを挿入してお試しください。
WhilePrintingRecords;
//出力日が12月の場合
if  month(PrintDate)  = 12 then 
(
if year(PrintDate)+1 =  year({xxxx.納期}) and month({xxxx.納期}) =1 then
"次月"
else
""
)
//出力日が12月以外の場合
else
if year({xxxx.納期}) &month({xxxx.納期})  > year(PrintDate) & month(PrintDate) then
"次月"
else
""
うまく動くか心配ですが、こんなように記述します。
Re: 無題  Kimberly - 2004/11/13(Sat) 16:14 No.333

すみません。
この書き込みは、No.331の返信です。

改ページと総合計について  たろ - 2004/11/10(Wed) 16:23 No.327

 はじめまして。


クリスタルレポートの7総合計と改ページについて質問があります。
現在グループフッターのセクションの書式で「出力後に改ページ」にチェックを入れて、
グループごとに帳票を出力しています。


今度、総合計を表示したいということで、レポートフッターに総合計の項目を増やしたのですが、
このままの設定だと最後のグループを表示した後、改ページをして次のページの先頭に総合計が
表示されてしまいます。


これを最後のページだけは改ページをしないで総合計を表示したいのですが、
その方法がわかりません。
どなたかわかる方、よろしくお願いします。

Re: 改ページと総合計について  猿町 - 2004/11/11(Thu) 02:56 No.328

たら様、

レポートフッターに挿入された総合計の項目だけが次ページに表示されてしまうわけですよね。この場合、グループフッターのセクションの書式の「出力後に改ページ」のチェックを外して、条件式に以下の式を挿入します。

WhilePrintingRecords;
Not OnLastRecord;

もしかして、Crystal Reports 7 には、OnLastRecord関数がないかもしれません。
その場合、以下の式を挿入します。

WhilePrintingRecords;
Not NextIsNull ({xxxx.yyyy});

NextIsNull関数で次のデータが存在するかどうかチェックできます。指定するフィールドは、例えば、グループで利用しているフィールドで問題ないと思います。
 
Re: 改ページと総合計について  猿町 - 2004/11/11(Thu) 03:00 No.329

たろ様、

ごめんなさい、お名前を間違えて記述してしましました。
これを含めて何度、間違ってレスしたかわかりません。

ご覧頂いている方々へ
大変申し訳ございません。
ちょっとウタウタしながらレスしていました。
Re: 改ページと総合計について  たろ - 2004/11/11(Thu) 12:57 No.330

猿町様


お返事ありがとうございます!!
早速試したところ、


> WhilePrintingRecords;
> Not OnLastRecord;


の方法で解決が出来ました!!!
本当にありがとうございます。


名前の件ですが、実は僕もよくやっちゃいます。
いや、人の名前ではなく自分の名前ですが・・・(笑)。
特にケータイメールで自分の名前を書くときに、やっちゃいます。
「たら」とか「たれ」とか・・・。


無題  初心者 - 2004/11/09(Tue) 13:49 No.320

過去ログを探してももひとつピンときません。
かなり初歩的な質問でもうしわけありません。
日付データがnullのときに
そのままフィールドを貼り付けると
1900/01/01 が表示されます。
nullの時はなにも表示しない というふうにしたいのですが

非連結フィールドを置いて 式に
if {tbl.NITI} < #1900/01/02# then
formula = ""
else
formula = {tbl.NITI}

とすると、文字列しかだめよ としかられます。
よろしくお願いします。
vb.net2003 とおまけのクリスタルレポート SQLserver
Re: 無題  通りすがり - 2004/11/09(Tue) 15:47 No.321

はじめまして。通りすがりです。

nullのデータを貼り付けたら、空白表示されますが。。

ちゃんとデータベースを確認しましたか?

SQLserver上で再度日付データのところを日付と時刻を確認してみてください。
案外、0000/00/00 と入っていたりして。。。
Re: 無題  初心者 - 2004/11/10(Wed) 12:33 No.325

通りすがり さま
早速の Res ありがとうございます。

データを調べてみたところ
しっかりと "0:00:00" が入っていました。

データの入力部分を直すことで解決できそうです。
ありがとうございました。 

パラメータの離散値設定について  ビギナー - 2004/11/08(Mon) 19:42 No.318

こんばんわ。
またまたパラメータの離散値設定について質問させてください。

前回、パラメータの離散値の値を設定しない場合にワイルドカード(条件無し)みたいものってあるのでしょうか?(no.307)という質問をさせていただき、レコード選択式を使ってパラメータの値を省略するという方法をご教授いただきました。

もう少し条件を増やしたいと思いまして、質問させて頂きます。
この離散値には何かしら値が入っているものに対しては抽出及び省略出来てはいるのですが、値が空白(NULL)もあり、それがうまく含まれていないようなのです。省略時に値が空白のものも含みたいのですが、選択式を色々いじってやってはみるもののうまくいきません。
何かしらいい方法がありませんでしょうか?どうかご教授お願いします。

’コード選択式
if{?prm実行}  = "" then
{T_マスタ伝票.実行月} = {T_マスタ伝票.実行月} ←ここにNULLも含める様な
式を追加すればよいのでしょうか?
else
{T_マスタ伝票.実行月} = {?prm実行}

(開発環境)
Microsoft Visual Studio .NET 2002:VBを使用してます。
Crystal Report for Visual Studio .NET



 

Re: パラメータの離散値設...  Kimberly - 2004/11/09(Tue) 09:56 No.319

ビギナー様

以下のレコード選択式で期待される結果になるかお試しください。
'コード選択式
if{?prm実行}  = "" then
IsNull({T_マスタ伝票.実行月}) or {T_マスタ伝票.実行月} = {T_マスタ伝票.実行月} else
{T_マスタ伝票.実行月} = {?prm実行}

Re: パラメータの離散値設...  ビギナー - 2004/11/09(Tue) 16:21 No.322

 こんにちわ。
 Kimberly様 ご教授ありがとうございます。
 この方法でやってみたところうまく実行されました。
 
 ちょっと欲が出できていろいろなレポートを1つにまとめようと色々いじってみています。ご教授いただいた方法しかできないのですが(笑)
うまく組み合わせれば可能では?って初心者の考えなのですが。。。
今のところ5種類のレポートをパラメータに値を入れることで実行できるように
レコード選択式を作ってみましたが3つ目パラメータまではうまくいってるようですが
4つ目から動いてくれません。
ちょっと簡単に聞きすぎかもしれませんが何か間違っているところがあればご指導
お願いします。

’//範囲
{T_マスタ伝票.SCC指示番号} = {?prm指示番号} and 
’//離散
if{?prm部署} = "" then
{T_マスタ伝票.部署区分} = {T_マスタ伝票.部署区分}
else
{T_マスタ伝票.部署区分} = {?prm部署} and
’//離散
if{?prm工期} = "" then
{T_マスタ伝票.工期2} ={T_マスタ伝票.工期2}
else
{T_マスタ伝票.工期2} = {?prm工期} and
’//離散
if{?prm完成} = "" then
IsNull({T_マスタ伝票.完成月}) or {T_マスタ伝票.完成月} = "" or {T_マスタ伝票.完成月} = {T_マスタ伝票.完成月}
else
if{?prm完成} = "Is Null" then
IsNull({T_マスタ伝票.完成月}) or {T_マスタ伝票.完成月} = ""
else
{T_マスタ伝票.完成月} = {?prm完成} and
’//離散
if{?prm実行}  = "" then
IsNull({T_マスタ伝票.実行月}) or {T_マスタ伝票.実行月} = "" or {T_マスタ伝票.実行月} = {T_マスタ伝票.実行月}
else
{T_マスタ伝票.実行月} = {?prm実行}


あと聞きたいのがVB.NETでパラメータを指定していますが、レコード選択式の並びを
何かしら変えると抽出できたり出来なかったしているようですが、決まりみたいなのがあるのですか?
どうかご教授ください。




Re: パラメータの離散値設...  Kimberly - 2004/11/10(Wed) 00:34 No.323

ビギナー様

>あと聞きたいのがVB.NETでパラメータを指定していますが、レコード選択式の並びを
>何かしら変えると抽出できたり出来なかったしているようですが、決まりみたいなのがあるのですか?
>どうかご教授ください。

実経験から以下の2つの結果は異なると思います。
1. IsNull({xxxx.yyyy}) or {xxxx.yyyy}={?パラメータ}
2. {xxxx.yyyy}={?パラメータ} or IsNull({xxxx.yyyy})

法則はよく理解していませんが、期待する結果は、1.でした。
Re: パラメータの離散値設...  ビギナー - 2004/11/10(Wed) 10:54 No.324

 Kimberly様

レスありがとうございます。
今回は時間がもう無いということで1つにまとめるのは諦めることに・・・(泣)
まだまだ作るレポートが山積みなんです。
ですが、ちょっと私的に納得できませんので勉強を続けます。

解らないことがありましたらまたお邪魔させていただきますのでよろしくお願いします。

表示されないの(;o;)  まりこ - 2004/11/08(Mon) 18:13 No.317

始めましてです。最近クリレポの仕事をしているまりこです。
下記の要件、どうしても原因が分からないの。。。

要件
  とある詳細行だけレコードごと表示しないの

環境
  OS  Windows98
    CrystalReports8.5
    Database  ODBC MicroSoft Text Driver 4
   
状況
  @テキスト件数は数百件
  A@のうち1件だけ表示しない
  Bテキストの上行を数件削除するとAのレコードは表示する
  C表示しない時はデザイン時の参照データにも表示されない
  D表示しないレコードは空白行として出力される
  Eプリンタードライバーを最新にしても駄目

もぉ〜気が狂いそうなの
誰か私を助けて(>o<)

改ページに制限?  ゆずっち - 2004/11/05(Fri) 17:16 No.314

環境は、WindowsXP、Oracle、VisualBasic6、CrystalReport8で、かなり昔のバージョンのVBとクリスタルレポートで作ったものを、何度かバージョンアップして使ってます。

VBでデータを抽出し(データセット)、ラベルの印刷しているのですが、データが残っているのに、必ずある決まったページ数になると処理をやめてしまいます。エラーメッセージ等はありません。
VisualBasicのソースを見てもそんな記述はなさそうなので、クリスタルレポートのほうを疑っているのですが、MAXページ数の設定とかがあるのでしょうか?
このような現象を解決したかた、もしくは何か原因にお気づきのかた、教えてください!
よろしくお願いします。
印刷スプール中、クリスタルレポートが応答なしになる  ゆずっち - 2004/11/08(Mon) 15:48 No.316

上の環境(開発環境)では、問題なく動いたのですが、
その後、問題の出る環境(DELL社のパソコン、Win2000)で、VBを介せずにクリスタルレポートのRPTファイルを直接起動して調査を行いました。

select文で抽出したデータを、「サンプルプレビュー」で画面に表示すると21ページ表示されるのに、それを印刷すると、「レポートの出力」ウインドウで、「20ページを出力しています。」のメッセージのまま、クリスタルレポートが固まってしまい、プリンタのスプールエラーになります。クリスタルレポートの応答もなく、落とさないといけません。印刷物は20ページの文字の途中などで切れて終わっています。

20ページ以下のデータで印刷したり、21ページのみページ指定した場合は、この現象は起きません。正常な場合は、「レポートの出力」ウインドウは閉じて終了します。
Ver7でも、Ver8でも同じ現象が起きています。


バイト数の取得  KAZ - 2004/10/28(Thu) 14:44 No.294

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

質問なのですが、クリスタルレポートでバイト数を取得する関数というのは存在するのでしょうか??

文字数を取得するLenはあるのですが、バイト数に関してはヘルプで探してみても見つかりません。

どなたかご存知であれば、お教え願えないでしょうか。
よろしくお願いいたします。
Re: バイト数の取得  猿町 - 2004/10/29(Fri) 08:17 No.295

KAZ様、

テキストのバイト数を取得する関数はありません。昔、古いバージョンでは、存在していた記憶がありますが、Crystal Reports 7 からなくなりました。メーカーのサイトにバイト数を取得することができるユーザー定義関数がダウンロードできたのですが、今は見当たりません。また、試したことはありませんが、ユーザー定義関数は、VB等でDLLファイルを作成することで Crystal Reports で利用可能になります。
Re: バイト数の取得  KAZ - 2004/11/05(Fri) 17:18 No.315

猿町様

遅れましたが、レスありがとうございます。

そうですか、関数はないんですか…
ということで、自分で式を作って、無理やりバイト数っぽく数値を取得して
対応しました。
(アスキーコード取得して、当てはまるものを1バイトにするというような処理)

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


クロス集計を教えて下さい。  プー - 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

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

フォントの変更  - 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

猿町様

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

| 1| 2| 3| 4| 5|