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

同じ項目を横に並べて出力したいのですが  YAMA - 2006/12/10(Sun) 22:02 No.2774

お世話になっております。前回は御礼も言わず失礼しました。あの案件は
まだ、進行中ですのでまた宜しくお願いします。

初心者ですが宜しくお願いします。

環境:環境 CRYSTAL REPORTS 9

レイアウト

以下の2つのパターンについて教えてください。

パターン1
ヘッダ

詳細
-------------------------------------------------------------
A   B    C  A    B   C  A  B  C  A  B  C
-------------------------------------------------------------
A1    B1    C1    A21 B21  C21

      〜                    〜         〜        〜   
A20 B20  C20 A40 B40  C40 

というよに同じ項目のレコードを縦20行を横4列に出したいのですがどのよう
にすれば宜しいでしょうか。

パターン2

ヘッダ

詳細
-------------------------------------------------------------
A   B    C  A    B   C  A  B  C  A  B  C
-------------------------------------------------------------
A1    B1    C1    A2  B2     C2  A3    B3  C3    A4   B4   C4  
A5    B5    C5    A6  B6     C6  A7    B7  C7    A8   B8   C8
 
      〜                    〜         〜        〜   
A77 B77  C77 A78 B78  C78  A79   B79 C79 A80 B80 C80

というよに同じ項目のレコードを横4列に20行出したいのですがどのよう
にすれば宜しいでしょうか。
  
お解りでしたらお教えください。

宜しくお願いします。
Re: 同じ項目を横に並べて...  24x7 - 2006/12/12(Tue) 08:43 No.2778

詳細セクションの「複数の列で書式設定」で試してください。
1列に4つの項目(A、B、C)をデザインします。1ページに4列が表示できるようにレイアウト タブから詳細の幅サイズを指定します。
あと、20行で改ページが発生させるように変数(行数カウンタ)を利用したり、レコード件数を利用したりします。


改ページ後の明細部出力について  YAMA - 2006/11/20(Mon) 17:16 No.2647

先程はありがとうございました。宜しくお願いします。

環境 CRYSTAL REPORTS 9

お教え願いたいのですが。

レポートレイアウト

ヘッダ部
--------------------------------------------
A       B      C      D     
               E        F 
--------------------------------------------
A1      B1     C1     D1 明細部1     
               E1       F1 明細部2
               E2       F2 
             ・ 
             ・
A1      B1     C1     D1 明細部1     
               E1       F1 明細部2
               E2       F2 
             ・
             ・  
現在、明細部1をグループ2に設定、明細部2を詳細に設定しています。
そこで質問なのですが、

(1)1ページに出力する明細行を明細部1+明細部2=28にして、
   改ページしたいのですが。

1.1 明細部1と明細部2に式フィールド{@RecordCount}を作成して
   WhilePrintingRecords;
   NumberVar pCount;
   pCount := pCount + 1;
   を設定しています。
1.2
   詳細部分の「出力後に改ページ」条件式に
       WhilePrintingRecords;
       if {@RecordCount} = 28 then
       true
   を設定しています。
      
※ページヘッダで pCountは初期化しています。

上記の時、pCountが28で終了の時、明細部1が次ページに出力されて
しまいます。
このやり方ではこの現象が出るのはわかるのですが、どのように修正したら
いいのかが解りません。お教えいただければと思います。
また、他にやり方があればお教えください。

(2)クリレポの最終ベージを取得したいのです。クリレポで作成されるファイル名
   の一部に使用する為です。TOTALPAGECOUNTを利用すること、
  非同期なので一度最終ページに移動しないといけないとは解ったのですが、
  最終ページに移動する方法が解りません。おわかりの方は、お教え下さい。

また、質問内容がおかしいかもしれませんが、その時はご指摘ください。

申し訳ありませんが、宜しくお願いします。
Re: 改ページ後の明細部出...  24x7 - 2006/11/20(Mon) 23:40 No.2650

(1)ですが、
詳細1と詳細2の式フィールドは個別に作成していますよね。
同一式フィールドを挿入は避けたほうがいいです。

継続してデータが存在していれば、次ページに詳細内容が表示されると思いますが・・

> pCountが28で終了の時、明細部1が次ページに出力されて
> しまいます。

とはどのような意味ですか?最終データにも関わらず改ページされて、空欄が表示るということですか?
その場合、改ページを発生させる条件式に最終データ有無又は、次のデータが存在するか確認してみてください。
詳細2の出力後に改ページの条件式には、例えば、こんな感じです。

WhilePrintingRecords; 
if {@RecordCount} = 28 then
 if not Onlastrecord then
      true
  else
      false
else
 false

(2)ですが、デザイナ環境では無理だと思います。YAMAさんが言われた通り、最終ページまで移動しないと取得できません。
Re: 改ページ後の明細部出...  YAMA - 2006/11/21(Tue) 15:49 No.2655

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

(1)ですが
> pCountが28で終了の時、明細部1が次ページに出力されて
> しまいます。
の意味ですが、
明細部1とそれに付属する明細部2が、改ページ条件である
明細部1+明細部2=28行でぴったり終了した時、明細部1が
次ページに出力されてしまうということです。
レコードが終了した時という意味ではないです。
また、明細部2は複数ページにまたがることがあります。
その時は、次ベージにも1行目に明細部1を出力します。
解りにくくて申し訳ありません。
解りましたらお教え願いますようお願いします。
Re: 改ページ後の明細部出...  24x7 - 2006/11/21(Tue) 23:21 No.2657

改ページの条件を Remainder(pCount,28)=0 で試してみてください。
これは、28の倍数で改ページするという意味になります。

Re: 改ページ後の明細部出...  YAMA - 2006/11/23(Thu) 21:04 No.2672

ご回答ありがとうございました。
Remainder(pCount,28)=0を利用させていただきました。
改ページは確かに出来るのですが、依然として、
明細部1+明細部2=28行でぴったり終了した時、
明細部1が次ページに出力されてしまいます。
グループ挿入のオプションで「改ページ後に出力する」に
チェックしているのですが、これだと常に出力されてしまうでしょうか?
ドリルダウンの非表示に式を定義し、前データと現データのキー部を比較して
条件で非表示にしようと考えたのですが、前データと現データが
同じ場合でも出力する事もありますし、違う場合でも出力する事が
あるので式が組めません。完全に行き詰っています。
何か良い知恵がありましたらお力をお貸しください。
宜しくお願いします。

Re: 改ページ後の明細部出...  24x7 - 2006/11/23(Thu) 23:25 No.2673

過去の書き込みを読み直すとよくわからないレポートです。
詳細部1と詳細部2はそれぞれ1レコードずつのペアじゃないのでしょうか。
そうでなれば、ピントがずれた回答をしていたことになります。

>グループ挿入のオプションで「改ページ後に出力する」に
>チェックしているのですが、これだと常に出力されてしまうでしょうか?

「改ページ後に出力する」は、グループ挿入のオプションにはないと思いますが・・
セクションエキスパートではないですか。
これは、設定箇所が出力されたら、必ず実行されます。
Re: 改ページ後の明細部出...  24x7 - 2006/11/24(Fri) 00:00 No.2674

おっと、失礼いたしました。
質問内容を完全に読み飛ばしていました。申し訳ない。

グループヘッダー(多分、上記の明細部1)に以下の式フィールドを挿入します。
//固定行数のカウント変数の初期化
WhilePrintingRecords;
NumberVar pCount:=0;
NumberVar 固定行数:=28;

詳細セクション(明細部2)に以下の式フィールドを挿入します。
//カウントの更新
WhilePrintingRecords;
NumberVar pCount;
pCount := pCount + 1;

セクションエキスパートから詳細セクションの「出力後に改ページ」の条件式に以下の式を挿入します。
//改ページ条件に一致しているか
WhilePrintingRecords;
NumberVar pCount;
NumberVar 固定行数;
Remainder(pCount,固定行数-1)=0

さらに「グループの変更オプション」から「ページごとにグループヘッダーの出力」をチェックします。

これで、期待されたレポートの表示イメージに近づけると思います。

Re: 改ページ後の明細部出...  24x7 - 2006/11/24(Fri) 00:05 No.2675

ポイントは、「グループの変更オプション」から「ページごとにグループヘッダーの出力」です。
同一グループ(明細部1)内で改ページが発生した際、必ずグループヘッダーを表示させるための設定になります。そして、詳細セクション(明細部2)の改ページの発生は、グループヘッダー1行分を引いた値で行ないます。
Re: 改ページ後の明細部出...  YAMA - 2006/11/27(Mon) 19:17 No.2696

返事が遅れて申し訳ありません。
ご回答ありがとうございます。
早速、試してみたのですがやはり明細部1が出力されてしまいました。
他に何か気付いた点などありましたらお教えください。
いろいろ教えていただきありがとうございます。
ここは、初心者にもとても親切で嬉しいです。

Re: 改ページ後の明細部出...  24x7 - 2006/11/27(Mon) 23:14 No.2700

明細部1(グループ)の次ページに表示されるのは、最終データが表示された後ですよね。改ページ後、明細部1だけ表示されて、後は空白の状態ということですか?最終データ前では、改ページされて明細部1が表示されることが期待した結果ですよね。この場合、グループヘッダーの非表示の条件式に最終データであるかチェックしてみてください。
WhilePrintingRecords;
OnLastRecord;

Re: 改ページ後の明細部出...  NZ-000 - 2006/11/27(Mon) 23:15 No.2701

グループフッターが怪しい・・・(グループフッターだけのときもヘッダー表示されるんだったかなぁ)。
明細部1?のフッターを非表示にしてみたらどうだろう。

とりあえず明細部1が次ページに表示されるときに次に何が表示されているのかを調べてみるとヒントになると思いますよ。

あと、そのセクションの役割を示すのではなく、セクション名(グループフッター1とか詳細とかページフッターとか)で示した方(もしくは両方)が誤解を生みにくいです。
私は最初、詳細を二つに分けているものとばかり思っていましたから。
Re: 改ページ後の明細部出...  NZ-000 - 2006/11/27(Mon) 23:17 No.2702

ピンポイントでかぶった@@;
Re: 改ページ後の明細部出...  YAMA - 2006/11/28(Tue) 22:16 No.2715

回答ありがとうございます。
OnLastRecord;は使用してさせていただきました。
最終ページにはグループヘッダは出力されません。
しかし、レコードの途中にグループヘッダに対する詳細行が改ページ行数になると
(グループヘッダに対する詳細行が終了する時が、丁度、改ページ行の場合です)
次ページに同じグループヘッダが出力され、その次には次のグループヘッダが
出力されます。
Re: 改ページ後の明細部出...  YAMA - 2006/11/29(Wed) 21:21 No.2727

宜しくお願いします。
グループフッタは非表示にしていますが、やはり同様の現象が起こります。
期限がせまり厳しい状態です。
何か解りましたら宜しくお願いします。
Re: 改ページ後の明細部出...  24x7 - 2006/11/29(Wed) 23:11 No.2728

>しかし、レコードの途中にグループヘッダに対する詳細行が改ページ行数になると
>(グループヘッダに対する詳細行が終了する時が、丁度、改ページ行の場合です)
>次ページに同じグループヘッダが出力され、その次には次のグループヘッダが
>出力されます。

これは、同一グループ内の最終データがそのページの最後行で収まるときに改ページが発生したわけですね。
この場合、グループヘッダーの非表示の条件式を以下のように修正します。

//同一グループ内の最後又は最終データの時は非表示
WhilePrintingRecords;
OnLastRecord or ( {グループで利用した項目} <> Next({グループで利用した項目}) )
Re: 改ページ後の明細部出...  YAMA - 2006/12/11(Mon) 22:19 No.2775

お世話になっております。

宜しくお願いします。

>//同一グループ内の最後又は最終データの時は非表示
>WhilePrintingRecords;
>OnLastRecord or ( {グループで利用した項目} <> Next({グループで利用した項目}) )

この通りにやったのですが、NEXTデータのグループのヘッダも非表示になってしまいました。

何かお解りでしたらお教え願いますよう宜しくお願いします。

Re: 改ページ後の明細部出...  24x7 - 2006/12/11(Mon) 23:21 No.2776

非表示にしたい条件を洗い出して、それを非表示の条件式に表現してください。
例えば、改ページしてもグループヘッダーを非表示にする条件
1. 最終データでない。
2. 同一グループ内でデータが存在する。
又は、改ページしてもグループヘッダーを表示する条件
1. 同一グループ内の詳細行が最大行に到達した。
2. 次のグループのデータが始まった。

他にも考えられる条件はありますか?
過去の書き込みで同一グループ内の詳細行がちょうど最大で終わる時、又は次のグループに移るので改ページが発生した時に次のグループの最初の1ページがうまく動作していないのでしょうかね。

プリンタ設定について  ぽこぺん - 2006/12/06(Wed) 20:45 No.2759

初めて投稿します。
WindowsXPでVB6.0,CrystalReportsを使用しています。

CrystalReportsのページ設定でプリンタの設定(用紙サイズ変更など)を行い、
保存しました。保存したrptファイルを他PC(WindowsXP)にコピーし、印刷を実行したところ、印刷設定が元に戻っていました。
2台のPCは同じプリンタドライバがインストールされています。

設定を保存する方法はあるのでしょうか?
Re: プリンタ設定について  24x7 - 2006/12/08(Fri) 23:52 No.2770

マイクロソフトのサイトにWindows環境が持つ用紙サイズの一覧を表示できるプログラムがあります。これを利用して、2つのPCのそれぞれの用紙サイズの値を調べてみてください。Crystal Reports は用紙サイズの名称で保存していない、その値を保存しています。そのため、2つのPCで同一ドライバを持っていても値が異なれば期待した用紙サイズになりません。

Re: プリンタ設定について  24x7 - 2006/12/08(Fri) 23:55 No.2771

http://support.microsoft.com/kb/282474/ja
Re: プリンタ設定について  24x7 - 2006/12/09(Sat) 00:04 No.2772

用紙サイズの値がPCで異なっても大丈夫なように用紙サイズ名称をレポートに保存する仕組みをつくります。それぞれの環境では、レポートに保存したその用紙サイズの名称からその環境の用紙サイズの値を逆引きしてVBコードに設定します。マイクロソフトのサイトに掲載されたコードが役立ちますよ。

今回の質問内容が上記の方法で解決できるかどうか、又は一致した問題であるか不明です。

Re: プリンタ設定について  24x7 - 2006/12/09(Sat) 00:06 No.2773

レポートのプロパティは、VBコードから読み書きできるので、そこを利用して、用紙サイズの名称を保存します。

レイアウトについて  わんころ - 2006/12/07(Thu) 11:58 No.2764

こんにちは、わんころです。

レポートのレイアウトでわからなくて困っています。

環境:Windows XP 、VisualBasic2005 & VS2005付属のCrystalReports

表示させたいレポートのレイアウトは以下のとおりです。

 −−−−−−−−−−−−−−−−−−−−−−−−−−−−
|項目名|○:経験実績のあるもの                      |
|−−−−−−−−−−−−−−−−−−−−−−−−−−− |
|     |名前   |実績|名前   |実績|名前   |実績|
|     |−−−−−−−−−−−−−−−−−−−−−−− |
|     |名前   |実績|名前   |実績|名前   |実績|
| 項目 |−−−−−−−−−−−−−−−−−−−−−−− |
|     |名前   |実績|名前   |実績|名前   |実績|
|     |−−−−−−−−−−−−−−−−−−−−−−− |
|     |名前   |実績|名前   |実績|名前   |実績|
 −−−−−−−−−−−−−−−−−−−−−−−−−−−−

詳細部分の左側「項目」のところを固定にして、右側「名前」「実績」部分を
可変にしたいのです。
右側の横に複数のレコードを並べて表示することはわかったのですが、
左側を固定表示にする方法がわかりません。

左側「項目」部分をページヘッダーに持たせ、セクションエキスパートにて
「続くセクションをアンダーレイ」にチェックを入れ、右側を詳細部分にして
セクションエキスパートにて「複数の列で書式設定」にチェックを入れてみましたが


 −−−−−−−−−−−−−−−−−−−−−−−−−−−−
|項目名|○:経験実績のあるもの                      |
|−−−−−−−−−−−−−−−−−−−−−−−−−−− |
|     |     名前   |実績|     名前   |実績|
|     |−−−−−−−−−−−−−−−−−−−−−−− |
|     |     名前   |実績|     名前   |実績|
| 項目 |−−−−−−−−−−−−−−−−−−−−−−− |
|     |     名前   |実績|     名前   |実績|
|     |−−−−−−−−−−−−−−−−−−−−−−− |
|     |     名前   |実績|     名前   |実績|
 −−−−−−−−−−−−−−−−−−−−−−−−−−−−

と「名前」の前に余計な空白が入り上手くいきませんでした。

どなたか上手く表示させる方法をご存知の方いらっしゃいましたら
ご教授お願いいたします。
Re: レイアウトについて  NZ-000 - 2006/12/07(Thu) 13:31 No.2765

余計な空白というのは項目表示のための空間のことでしょうね。
CrystalReportsではセクションの横幅を動的に変更できませんので、
このやり方(アンダーレイを駆使する)では実現できないと思います。

例えば、左側の項目のみをデザインした(親)レポートと、右側のレコードごとのデザインを行った(サブ)レポートの二つを用意します。
そして、親レポートにサブレポートを挿入して全体をデザインするというのはどうでしょうか。
(行間は手動で調整します)
Re: レイアウトについて  24x7 - 2006/12/08(Fri) 07:20 No.2769

「複数の列で書式設定」を利用する場合、ページ全体の横幅と1列のサイズで列数が自動的に決められてしまいます。その結果、列数が少なければ、上記のように空間(空白)が挿入されてしまいます。これを防ぐにはできるだけ多くの列数を挿入するようにする、又はデザインの用紙サイズを小さくすることになります。


縦、横データが可変  taka - 2006/12/05(Tue) 12:58 No.2754

初めて投稿します。
環境はVB.NET2003
付属のクリレポを使用しています。

現在日付単位の集計用の帳票を作成しているのですが、縦と横のデータが可変です。

----------------------------------
内容  11/1(月)  11/2(火)    ・・・・・・・・
----------------------------------
A              1              2
----------------------------------
B              2              0
----------------------------------
 ・
 ・
 ・
※A、Bという項目はDBから取得します
※日付範囲は画面から指定されます

上記の日付が14日分出力すると改ページ、縦のA、Bという項目も通常のように
一杯になれば改ページします。

このような条件で帳票を作成したいのですが、実現可能なのでしょうか?
可能であればどのように改ページ条件を指定すればよいのでしょうか?
Re: 縦、横データが可変  24x7 - 2006/12/05(Tue) 23:06 No.2755

横方向への可変は難しいですね。
簡単な方法は、クロス集計を利用することですが・・
クロス集計は、機能が多くないから、期待した結果で表示できないかもしれません。クロス集計でどんな風に表示されるか試してみてください。
Re: 縦、横データが可変  taka - 2006/12/06(Wed) 23:24 No.2761

24x7様

ご回答ありがとうございます。クロス集計というのはやった事がないですが、調べてやってみます。もしダメだったら取得したデータに強引に14日単位でグループを持たせて(1日〜14日は「グループ1、15日〜28日は「グループ2」という感じで)からグループ単位に改ページしてみようと思います。
Re: 縦、横データが可変  24x7 - 2006/12/07(Thu) 09:21 No.2762

参考までに・・

以下の3つの式フィールドを作成します。

//年
WhileReadingRecords;
Year({日付フィールド})

//月
WhileReadingRecords;
Month({日付フィールド})

//月を2分割
WhileReadingRecords;
If Day({日付フィールド}) < 15 Then
"月前半"
Else
"月後半"

上の式フィールドから順にグループとして挿入します。

次に以下の式フィールドを作成します。
//クロス集計用
WhilePrintingRecords;
ToText(Month({日付フィールド})) + "/" + Totext(Day({日付フィールド})) + "" + WeekdayName (DayOfWeek ({日付フィールド}))

グループ3(月を2分割)のグループヘッダー又はグループフッターにクロス集計を挿入します。
クロスタブエキスパートから
「行」にA、Bの値を持つフィールドを選択します。
「集計フィールド」は、集計したいフィールドを選択します。
「列」には、上記のクロス集計用の式フィールドを選択します。
但し、数値から文字列に変換しているので不要な小数点が表示されるので修正が必要です。その部分は割愛しています。あと、曜日も省略になっていません。


Re: 縦、横データが可変  24x7 - 2006/12/07(Thu) 09:30 No.2763

グループ1、2、3のそれぞれのグループフッターの「出力後に改ページ」をチェックします。これで1ヶ月分を2ページに分けて表示できると思います。
あと、文字列を利用しているのでグループ3の並び替えに気を付けてください。

クロス集計用の式フィールドを若干修正してみました。
//クロス集計用
WhilePrintingRecords;
ToText(Month({Orders.受注日})) + "/" + Totext(Day({Orders.受注日})) + "" + "(" + left(WeekdayName (DayOfWeek ({Orders.受注日})),1) + ")"

数値フィールドの書式設定から小数点を表示しないように変更すると
文字列変換したときに、少数点は表示されません。
その結果、上記の式フィールドの出力は、12/7(木) となります。

全角にコンバート  キルマー - 2006/12/06(Wed) 18:09 No.2756

VB6.0,   CrystalReportXI,   SQLserver2005を使用しています。

DBから取得したあるフィールドを無条件に全角に書き換えて表示したいと思っています。

式フィールドで処理をしたい場合、どう記述すればよいのか分かりません。
なにか便利な関数などありませんか


Re: 全角にコンバート  キルマー - 2006/12/06(Wed) 18:16 No.2757

UpperCaseでいけるんですね。
見落としてました。すみません。
Re: 全角にコンバート  キルマー - 2006/12/06(Wed) 18:38 No.2758

UpperCaseは大文字でした。間違い。

全角にする方法はないですか?
Re: 全角にコンバート  24x7 - 2006/12/06(Wed) 22:44 No.2760

残念ながらありません。自分でUFL関数を作るしかないと思います。

CrystalReportViewerからの印刷時に用紙の向きが変わらない  tomihisa - 2006/12/05(Tue) 09:36 No.2753

とみひさと申します。

現在、ASP.NETにてWEBサイトを作成しておりますが
以下の問題にてつまづいております。

帳票印刷のページにて
CrystalReportViewerを貼り付け、CrystalReportViewerの印刷ボタンより
印刷を行おうとしたところ、レポート(rpt)ではA4横に設定しているのに
A4の縦で印刷され、ページ横が切れてしまいます。
尚、PrintModeはActiveXにしています。

PrintModeがPDFの場合や、プログラム上より
CrystalReportSource1.ReportDocument.PrintToPrinter(1, False, 1, 2)
等と直接印刷した場合には、正しくA4横で印刷できています。

用紙の設定は、レポート(rpt)のプリンタの設定にて行っています。

何か対処方法および参考になる情報がありましたら
ご教授ください。

尚、VisualStudio2005より、CrystalReportsの更新の確認...
を行っても404がでて更新できません。
無理やりアドレスを解析してCRUpdate.msiはインストールしたのですが、その後更新を押しても、何も更新はありませんでした、と、出ます。
このようなものなのでしょうか・・・

念のため、他のPCでも行ってみましたが同様でした

環境:
IDE:VisualStudio2005 pro
CyrstalReport: VS2005 バンドル版
OS: WinXP
IE: 6.0

以上です。

ページフッタの印字制御の方法  jun - 2006/11/29(Wed) 00:08 No.2719

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


開発環境:Windows2000 SP4
VB2005 & crystalReports for VB2005 です。
印刷用紙 A4用紙縦


帳票の印字内容は以下の通りです。


グループヘッダ
詳細
ページフッタ


詳細には、2列で下記内容を印字しています。
品名 数量 金額      品名 数量 金額
ページフッタには積算合計フィールドを使って、
合計件数 合計数量 合計金額 を印字しています。


詳細行が複数ページに渡って印字される場合にページフッタ
を印字せずに、グループが変わったタイミングでグループ計を
印字させるようにするにはどうにすればよいのでしょうか。


グループフッタを使わなかったのは、詳細行が可変となってしまい
印字位置を固定できなかったからです。


よろしくお願いします。

Re: ページフッタの印字制...  24x7 - 2006/11/29(Wed) 08:09 No.2720

同一グループ内で改ページが発生したときにそのページフッターを表示させない方法は、以下の式をページフッターの非表示の条件式に挿入します。

//同一グループ内のデータは終わり?
WhilePrintingRecords;
{グループで利用している項目} = Next({グループで利用している項目})

これで、まだ、同一グループが存在しているので、該当ページのフッターは非表示になると思います。

Re: ページフッタの印字制...  jun - 2006/11/29(Wed) 12:25 No.2723

24x7様
ご回答ありがとうございます。
早速上記条件式をページフッターに挿入して試してみました。


手順
ページフッターセクションエキスパートで
非表示−ドリルダウン不可(S)をチェック
式ワークショップ内に
WhilePrintingRecords;
{T_CD} = Next({T_CD})
と入力して保存
注)T_CDは、グループ内でブレイクするために使っているコードです。


印刷結果は、A001〜D001をグループとして連続印刷すると
A001〜C001は思った通りページフッターが印字されましたが
D001については、ページフッターが印字されませんでした。
最終グループのページフッターが印字されない状況です。


A001
B001
B001
C001
D001


最終グループのページフッターを印字するにはどうすれば
良いのでしょうか?
アドバイスをお願いします。

Re: ページフッタの印字制...  24x7 - 2006/11/29(Wed) 23:18 No.2729

この掲示板に、似たような書き込みが多くありますよ。

この場合、ページフッターの非表示の条件式を以下のように修正します。

//最終データでなく、且つ、同一グループ内でデータが存在している場合、非表示
WhilePrintingRecords;
Not OnLastRecord AND ({T_CD} = Next({T_CD}))

動作確認していませんが、こんな感じではないでしょうか。
Re: ページフッタの印字制...  jun - 2006/12/02(Sat) 22:05 No.2752

24x7様
結果報告が遅れてしまい申し訳ありませんでした。
条件式を上記のように修正して試してみたところ思ったとおりに
印字することができました。
ありがとうございました。


項目の編集の仕方  お勉強中 - 2006/11/26(Sun) 18:02 No.2688

クリレポ超入門者です。
教えて下さい。

クリレポ8.5なのですが、DBレコードの項目からレポートに編集して出力したいのですが、入門したての為、右も左もわかりません。
よろしくお願いします。

具体的にはDBレコードの項目に、8桁の数値タイプで 00000000〜99999999 の値が入っているのですが、これをレポートの詳細領域に表示するのですが、この時、ALLゼロとALL9の時は非表示に、またそれ以外の時は yyyy/mm/dd 形式に編集したいのですが、実現の仕方が分かりません。
素人相手のご親切な方、宜しくお願い致します。
Re: 項目の編集の仕方  NZ-000 - 2006/11/27(Mon) 11:36 No.2692

>8桁の数値タイプで 00000000〜99999999
↑データベースのフィールドタイプは文字列型ということですか?

1.以下のような式フィールド新しく用意します。
//@日付
WhilePrintingRecords;
dateVar arienai := Date('1111/11/11');
stringVar hiduke := Mid({フィールド名},1,4) + '/' + Mid({フィールド名},5,2) + '/' +Mid({フィールド名},7,2);
if isDate(hiduke) then Date(hiduke) else arienai;

2.日付フィールドをデザインに追加します。

3.日付フィールドの書式設定の共通タブの非表示の条件付書式設定(「x+2」みたいなボタンを押す)に以下の式を追加します。
WhilePrintingRecords;
dateVar arienai;
{@日付} = arienai;

4.日付フィールドの書式設定の日付タブで'○○○○/○○/○○'の形式を選択します。

上記のポイントは表示を日付型に変換して行っているところです。日付型に変換することで、比較やソート、演算の応用の幅を広げています。
また、日付として正しくない値が来たときには表示しないという判断を行っています。
もし文字列型のままで良いという場合はhidukeをそのまま表示し、非表示の条件付書式設定で以下のような式を追加します。
WhilePrintingRecords;
stringVar hiduke;
hiduke = '0000/00/00' or hiduke = '9999/99/99';
Re: 項目の編集の仕方  お勉強中 - 2006/11/27(Mon) 14:10 No.2694

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

質問時のフィールドタイプの書き方に不都合がありました。
型NUMBER で長さ 8,0 です。
0〜99999999 の値が入っています。

どこかで型変換しなければならないのでしょうね。
申し訳ございません。
変換の仕方も教えて下さい。
足とり、手とり、オンブにダッコ 申し訳ございません。
Re: 項目の編集の仕方  NZ-000 - 2006/11/27(Mon) 17:36 No.2695

>stringVar hiduke := Mid({フィールド名},1,4) + '/' + Mid({フィールド名},5,2) + '/' +Mid({フィールド名},7,2);

を以下に置換してください。

stringVar motoData := Right('00000000' + ToText({フィールド名},0),8);
stringVar hiduke := Mid(motoData,1,4) + '/' + Mid(motoData,5,2) + '/' +Mid(motoData,7,2);
Re: 項目の編集の仕方  お勉強中 - 2006/11/27(Mon) 20:05 No.2697

NZ-000様、ありがとうございます。
何度かやってみたのですが、うまくいきません。
多分、私の手順に誤りがあるのでしょうけれども。

行った手順を詳細に記しました。ヴェージョンにより違いはあると思いますが、もしお分かりになりましたら、ご指摘お願いいたします。

@ [フィールドの挿入] → [式フィールド] 右クリック → [新規作成]  → [名前] 欄に「日付」を設定


A [式エディタ :@日付] 画面の Crystal構文 入力域へ以下の文を設定


    dateVar arienai := Date('1111/11/11');
    stringVar motoData := Right('00000000' + ToText({日付マスタ.日付},0),8);
    stringVar hiduke := Mid(motoData,1,4) + '/' + Mid(motoData,5,2) + '/' +Mid(motoData,7,2);
    if isDate(hiduke) then Date(hiduke) else arienai;


 [式エディタ :@日付] 画面を閉じる。(ERRなしで保存完了)


B 式フィールド欄に追加された「日付」をレポートのデザイン詳細域へドラッグする。


 レポート上に「@日付」が追加される。


 フィールドエクスプローラの画面を閉じる。


C レポートに追加され「@日付」上で右クリックし、[フィールドの書式設定]を選択する。


D [書式エディタ]の[共通]タグの「非表示」(チェックはナシ) 欄の 「x+2」ボタンをクリックする。


E 表示された、[式エディタの書式] 画面の Crystal構文 入力域へ以下の文を設定。


WhilePrintingRecords;
dateVar arienai;
{@日付} = arienai;


[式エディタの書式] 画面を閉じる。(ERRなしで保存完了)


[書式エディタ]の[日付/時刻]タグで 1999/03/01 形式を選択



以上の作業終了後、レポートのプレビューを行ったのですが、何も表示されません。
因みに、レポートにデータベースフィールドの日付マスタの日付を貼り付けていた時は、データ値を 99999999 形式で表示されていましたので、データには問題ないと思います。

ご面倒をおかけします。

Re: 項目の編集の仕方  お勉強中 - 2006/11/27(Mon) 21:26 No.2698

前記投稿(No.2697)の記載漏れがありました。

前記Aで、1行目に
 WhilePrintingRecords;
の記載が抜けておりました。

実際の作業では入れております。


Re: 項目の編集の仕方  NZ-000 - 2006/11/27(Mon) 22:59 No.2699

ふむむむ。

一応当方バージョン]Iですが、動作確認はできています。
別にこれといった特殊な機能は使っていませんしバージョンの違いのせいとは考えにくいです。

非表示を設定しない場合はどうなるのか。
また、各変数の値はどうなっているのか確認してみてください。
変数の値は新しく式フィールドを作って、
WhilePrintingRecords;
stringVar motoData;
とすれば、motoDataの値を確認できます。

また、{日付マスタ.日付}の値ではなく、具体的な例えば20061127などの値を当てはめた場合はどうなるかなども確かめてください。
Re: 項目の編集の仕方  24x7 - 2006/11/27(Mon) 23:29 No.2703

何も表示されないというのは、非表示の条件式を評価した結果、True であるということですよね。

>E 表示された、[式エディタの書式] 画面の Crystal構文 入力域へ以下の文を設定。
>WhilePrintingRecords;
>dateVar arienai;
>{@日付} = arienai;

上記条件がTrueになるから非表示になるわけでしょう。
ここの非表示条件をコメントにして、{@日付} の内容を確認してみたらどうですか。
それと、dateVar arienai := Date('1111/11/11'); だけでどのように表示されますか。8.5では異なる結果で表示されたりして?? 

Re: 項目の編集の仕方  24x7 - 2006/11/27(Mon) 23:36 No.2704

別な発想から・・・

該当フィールド(項目)の非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
{8桁の数値タイプの項目} = 00000000 or
{8桁の数値タイプの項目} = 99999999

有効な日付のデータは、上記のようにDate型に変換してみたらどうでしょう。

無効な日付となるデータをDate型に変換する必要はないと思いました。

Re: 項目の編集の仕方  お勉強中 - 2006/11/28(Tue) 10:59 No.2708

NZ-000様、24x7様 ご親切なご回答、ありがとうございます。
取り敢えず、非表示条件をすべてコメント化し、式フィールドを以下の2通りで行い、motoDataの値を確認しました。(else は抜きました)

@ 日付の式
   WhilePrintingRecords;
    stringVar motoData := Right('00000000' + ToText({日付マスタ.日付},0),8);
    stringVar hiduke := Mid(motoData,1,4) + '/' + Mid(motoData,5,2) + '/' +Mid(motoData,7,2);
    if isDate(hiduke) then Date(hiduke);

motoDataの結果】
   入力値がゼロの時・・・・・・・・・00000000
   入力値が20010401の時・・・・,010,401


A 日付の式
   WhilePrintingRecords;
    stringVar motoData := Right('00000000' + ToText(20061127,0),8);
    stringVar hiduke := Mid(motoData,1,4) + '/' + Mid(motoData,5,2) + '/' +Mid(motoData,7,2);
    if isDate(hiduke) then Date(hiduke);

motoDataの結果】
   結果(全件)・・・・・・・・・,061,127

となりました。
結果を見る限り、位取りのカンマが挿入され、そこから8桁を取って来ているようです。
ですから、日付の形式ななっておらず、全件表示されなかった様です。

でも、どうしてカンマが挿入されたかさっぱり??です。

申し訳ありません。有効な手だてをご教授下さい。
Re: 項目の編集の仕方  NZ-000 - 2006/11/28(Tue) 12:12 No.2711

どうぞ↓
http://www.agtech.co.jp/support/faq/legacy/crystal_reports_legacy/v45/20030515059.html
Re: 項目の編集の仕方  お勉強中 - 2006/11/28(Tue) 13:14 No.2712

NZ-000様、ありがとうございます。
早速「地域オプションのカスタマイズ」で変更後、クリレポを実行してみました。

結果はOKでした。

そこで疑問なのですが、この現象はクリレポのヴァージョンにより異なるのでしょうか。 X1ではこの現象は起こらないのでしょうか?

それともNZ-000様の数値表示形式が123456789形式になっていたのでしょうか?

また、数値から文字列に変換する方法は、ToText関数を使用するしかないでしょうか?
数値表示形式に影響されなく文字列変換する方法はないでしょうか。(共有パソコンを使用するとき数値表示形式をデフォルトから変更したくないものですから)

度々の質問、お許し下さい。
Re: 項目の編集の仕方  NZ-000 - 2006/11/28(Tue) 13:44 No.2713

>そこで疑問なのですが、この現象はクリレポのヴァージョンにより異なるのでしょうか。 X1ではこの現象は起こらないのでしょうか?

>それともNZ-000様の数値表示形式が123456789形式になっていたのでしょうか?

バージョンの違いによる可能性が高いですね。
私の方ではコントロールパネル上の数値表示形式は123,456,789形式になっていました。

>また、数値から文字列に変換する方法は、ToText関数を使用するしかないでしょうか?

CStr()というものがありますが、果たして効果があるかどうか・・・。

>数値表示形式に影響されなく文字列変換する方法はないでしょうか。(共有パソコンを使用するとき数値表示形式をデフォルトから変更したくないものですから)

私にはわかりません。

そこで発想を転換しましょう。
要はカンマが入っているから困るわけで、カンマがあるか調べ、あれば取り除けばよろしいのではないですか?
帳票作成といえど、これは一種のプログラミングです。
ないなら、わからないなら、代替案を考えるのは常套手段です。
それを考えることが最も勉強になります。

ver8.5用の関数リファレンスを置いておきますのでちょっと考えてみてください。
http://support.businessobjects.com/communityCS/FilesAndUpdates/cr8_formularef_japanese.zip.asp
Re: 項目の編集の仕方  お勉強中 - 2006/11/28(Tue) 13:54 No.2714

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

ここまで教えていただければ、何とか1人で形はつくれそうです。
ほんとうに、ありがとうございました。

これからも、この掲示板の他の方々の投稿からも、勉強させて頂きたく思っています。

24x7様もありがとうございました。
Re: 項目の編集の仕方  24x7 - 2006/11/28(Tue) 23:49 No.2718

Crystal Reports側で数値フィールドの書式を変更してもカンマは取り除けると思います。
Re: 項目の編集の仕方  お勉強中 - 2006/11/29(Wed) 09:52 No.2721

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

昨日現在では、取り敢えず10桁の文字列を作り、(yy,yym,mdd)それを元にyyyy/mm/dd 形式に編集し直し、「できた」、「できた」と自己満足している状況です。

今回、24x7様が教えて下さった書式を変更する関数は何を使えばいいのでしょうか?よければ教えて下さい。

Re: 項目の編集の仕方  24x7 - 2006/11/29(Wed) 23:34 No.2730

まず、直接数値型のフィールドをレポートに配置したときにどのように表示されるか確認してください。上記で言われるように123,456,789 と表示された場合、そのフィールドの書式を変更します。

バージョンによって名称が異なっていたらすみません。こちらは、XI (V11)です。
数値型のフィールドを右クリックからフィールドの書式を選択します。
書式エディタ画面の数値タブに「システム標準の数値形式」がハイライトされている場合、これは、WindowsOSのコントロールパネルの設定に従って表示されます。
次の-11232を選択するか、ユーザー設定をクリックして好きなようにスタイルを変更します。
これは、それぞれのフィールド毎に表示形式を変更することが可能です。

又は、レポートで利用する数値フィールドをすべて同一形式に変更することも可能です。デフォルト設定するようなものです。
ファイルメニューからオプションを選択します。
フィールドタブから数値を選択します。
ここでも書式エディタ画面が表示されて数値タブからスタイルを変更します。

一度、デザイナを閉じてから再度、開くと数値フィールドのデフォルト設定は変更されているはずです。

Re: 項目の編集の仕方  お勉強中 - 2006/11/30(Thu) 10:52 No.2732

24x7様、お返事ありがとうございます。

早速ためしてみました。

>まず、直接数値型のフィールドをレポートに配置したときの表示形式
123,456,789 形式になっていました。

>-11232形式を選択する
123456789 形式に変わりました。
でもそこから先の文字列化と yyyy/mm/dd 形式への方法が分かりませんでした。

>ユーザー設定をクリックして好きなようにスタイルを変更する
「通貨記号」タブと「数値」タブだけなのですが、ここから yyyy/mm/dd 形式へ変える方法が分かりませんでした。

すみません。投稿No.2721の様なブサイクなやり方以外できませんでした。
Re: 項目の編集の仕方  24x7 - 2006/11/30(Thu) 12:34 No.2733

何か勘違いされているようですが、
数値形式からyyyy/mm/dd形式に変換できるとは言っていません。

元々、式フィールドを利用して数値型から文字列にする際、千単位の区切りが含まれてしましたよね。
そこで、数値型に千単位の区切りが含まないようにするための方法を提示しただけです。それと、非表示対象のデータを区分けするために、文字列(yyyy/mm/dd)に変換する前に直接数値型で判断する方が楽じゃないか思い、提示しただけのことです。

Re: 項目の編集の仕方  お勉強中 - 2006/11/30(Thu) 14:09 No.2734

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

ついつい自己中になりまして、数値形式から直接yyyy/mm/dd形式に変換できるのかと思いました。

失礼いたしました。
いづれにしましても、長い間お付き合いさせまして、申し訳ございませんでした。

Re: 項目の編集の仕方  NZ-000 - 2006/11/30(Thu) 17:12 No.2738

ちなみに
>if isDate(hiduke) then Date(hiduke) else arienai;

if isDate(hiduke) then Date(hiduke);

にしちゃえば、arienaiはいりませんね。
それと非表示の評価もいりませんね。
Re: 項目の編集の仕方  お勉強中 - 2006/11/30(Thu) 21:40 No.2740

NZ-000様、ありがとうございます。
NZ-000様の
No.2699
投稿頂いた時の、私の作業の中(投稿No.2708)で、非表示条件をコメントにした時、arienaiもコメントにしまして、その後も支障なかったので、今は削除しています。

3日ほど前に通販で注文していた「Crystal Reports XI  徹底活用術」が本日届きました。

これからしっかり勉強します。
でもいつになったら、NZ-000様や24x7様のレベルに到達できるのやら。

100年たっても無理かな。

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



Re: 項目の編集の仕方  NZ-000 - 2006/12/01(Fri) 01:07 No.2741

>100年たっても無理かな。
ぜんぜん大丈夫です。
私は参考書一つも持っていません。
すべてこの掲示板で得た知識です。

今回のお勉強中様の質問からもたいへん多くのことを学ばしてもらいました。

>Crystal Reports XI 徹底活用術
ほすぃ><
Re: 項目の編集の仕方  お勉強中 - 2006/12/01(Fri) 11:15 No.2744

NZ-000様、励ましの言葉、ありがとうございます。

>私は参考書一つも持っていません。
シンジラレナ〜イ。

>今回のお勉強中様の質問からもたいへん多くのことを学ばしてもらいました。
とんでもない。私の幼稚な愚問集に多くの時間を割かせ、申し訳なささと、感謝の気持ちでいっぱいです。

>ほすぃ><
B5版で総ページ230ページ厚さ1.2cm白黒刷り定価\2,500 出版数が少ない為か、高過ぎ。

そこでNZ-000様、是非ご自分で発行して下さい。できればA4版総ページ500、多色カラー印刷、定価\2,500〜\3,000
著者NZ-000様 見つけ次第即刻購入します。(発行されたらこの板に掲示して下さいネ)

ありがとうございました。
Re: 項目の編集の仕方  Drathera - 2006/12/02(Sat) 06:13 No.2749

横から申し訳ございません。
> 3日ほど前に通販で注文していた「Crystal Reports XI  徹底活用術」が本日届きました。
> B5版で総ページ230ページ厚さ1.2cm白黒刷り定価\2,500 出版数が少ない為か、高過ぎ。
私も購入考えています。
内容のほういかがでしょうか? Crystal言語(?)についての記述の充実度は?
私の使っているのは、VB2005付属のCRですが。
レビューよろしくお願いいたします。
Re: 項目の編集の仕方  お勉強中 - 2006/12/02(Sat) 16:04 No.2750

Drathera様

こんにちわ。

お問い合わせの内容の件、私自身が超入門者のため、図解も多い内容についてはうれしく、また内容全てが目新しいです。まだジックリと目を通せていませんが結構初心者から入れると思います。逆に実践豊富な高度テクニックを求められる方に取っては、私にはハッキリ分かりませんが直感的には?です。(市販品である限り仕方ないのかな。)

参考のため、目次を記しておきます。

第1章 Crystal Repprtsの概要
  1.1 レポートツールとは
        1.1.1 生産性を高めるレポートツール
        1.1.2 データベースとレポートツール
    1.2  Crystal Repprtsの主な機能
        1.2.1 レポートの作成と分析
        1.2.2 Webレポーティング
        1.2.3 独自のアプリケーションとの統合
        1.2.4   Crystal Repprts XIの新機能
    1.3  本書のサンプルおよび初期設定

第2章 レポートの作成と操作
    2.1  標準的なレポートの作成
        2.1.1 標準レポート作成ウィザード
        2.1.2 レポートのデザイン編集
        2.1.3 積算合計レポートの作成
    2.2  レポートの操作
        2.2.1 パラメータフィールドの利用
        2.2.2 レポートのデータベースの変更
    2.3  その他のウィザードの使用
        2.3.1 クロスタブレポートの作成
        2.3.2 宛名ラベルの作成
        2.3.3 OLAPレポートの作成と操作

第3章 高度な機能の利用
  3.1 データソースの設定
        3.1.1 対応するデータソース
        3.1.2 データソースの設定方法
        3.1.3 フィールドの追加
  3.2 データのグループ化、集計、並び替え
        3.2.1 データのグループ化
        3.2.2 データの集計
        3.2.3 データの並び替え
        3.2.4 集計データのドリルダウン
  3.3 チャートの使用
        3.3.1 円チャートによる全体に占める割合の表示
        3.3.2 棒チャートによるデータの合計の表示
        3.3.3 折れ線チャートによるデータの推移の表示
        3.3.4 チャートの操作
  3.4 式と関数の作成
        3.4.1 式と構文
        3.4.2 式の作成とレポートへの挿入
        3.4.3 式による書式設定
        3.4.4 カスタム関数の作成
        3.4.5 SQL式の利用
  3.5 リポジトリの活用
        3.5.1 リポジトリ概要
        3.5.2 リポジトリの操作

第4章 レポートの公開
    4.1  Crystal Repprts Server
        4.1.1 Crystal Repprts Serverのインストール
        4.1.2 セントラル管理コンソール
        4.1.3 公開するレポートの作成
    4.2  InfoViewを使用したレポートの表示
        4.2.1 InfoViewの設定
        4.2.2 レポートの表示

第5章 アプリケーションの開発
     5.1  Microsoft Visual Studio 2005
        5.1.1 アプリケーションへのレポートの追加
         5.1.2 Crystal Repprtsのオブジェクトモデル
      5.2  Windowsアプリケーションの開発
        5.2.1 Visual Studio 2005環境でのレポートの作成
        5.2.2 Crystal Repprts Viewerコントロール
        5.2.3 アプリケーション実行時のカスタマイズ
        5.2.4 ADO.NETデータセットを使って作成する場合
      5.3  Webアプリケーションの開発
        5.3.1 ASP.NET
        5.3.2 レポートの挿入
        5.3.3 WebアプリケーションでのCrystal Repprts Viewerコントロール
        5.3.4 レポートのキャッシュ

付録 Crystal Repprtsエディション別機能比較
 
索引

以上です。
Re: 項目の編集の仕方  Drathera - 2006/12/02(Sat) 21:21 No.2751

ありがとうございます。
今、注文しました。Amazon へ。
お勉強中さま。の情報から、VB2005用としては、
「Crystal Reports XI  徹底活用術」が対応している様であること理解できましたので。
前からどのバージョンのんが、良いのか分からなかったんです。
ありがとうございました。

サブレポートのデータソースの設定  四苦八苦 - 2006/12/01(Fri) 01:27 No.2742

はじめましてクリレポ初心者です。

環境はXP クリレポ9.0です

お聞きしたい内容は、サブレポートのデータソースの設定方法が全然わかりません。

実行時にレポートのデータソースを変更しているのですが
サブレポートの変更がどうしても上手くいきません。
マニュアルを見て思考錯誤しましたがだめでした。

初心者なので的はずれな質問をしているかもしれませんが
どなたかお教えいただければと。。。宜しくお願い致します。

Re: サブレポートのデータ...  24x7 - 2006/12/01(Fri) 23:16 No.2748

RDCを利用している場合、以下のような記述になります。

Dim crSubReport As CRAXDRT.Report
Dim crSubObject As CRAXDRT.SubreportObject
Dim crSection As CRAXDRT.Section
Dim crReportObjects As CRAXDRT.ReportObjects
Dim i As Integer

'サブレポートが挿入されているセクションを指定する
    Set crSection = Report.Sections.Item("RH")
    Set crReportObjects = crSection.ReportObjects
'そのセクションに含まれたオブジェクト分のループ
  For i = 1 To crReportObjects.Count
'そのオブジェクトがサブレポートか?
        If crReportObjects.Item(i).Kind = crSubreportObject Then
            Set crSubObject = crReportObjects.Item(i)
            Set crSubReport = crSubObject.OpenSubreport
'サブレポートのデータベースの接続処理           
crSubReport.Database.Table(1).ConnectionProperties.Item("DSN")="データソース名"
crSubReport.Database.Table(1).ConnectionProperties.Item("User Id")="ユーザー名"
crSubReport.Database.Table(1).ConnectionProperties.Item("Password")="パスワード"

       End If
   Next i


2ページ目以降のヘッダー  はら - 2006/11/30(Thu) 17:09 No.2737

初めて投稿します。

環境は、VS2005(C#)とそれについているクリスタルレポートを使っています。

ヘッダーについて質問なのですが、
2ページ目以降のヘッダーを変更することは可能なのでしょうか?
たとえば、請求書を出力するとして、1ページ目のヘッダーには
顧客名、顧客住所、請求額が表示され、2ページ目のヘッダーには顧客名のみ
表示すれば良いといった場合などです。

簡単な気もするのですが、手掛かりがなく、困っています。
宜しくお願いします。
Re: 2ページ目以降のヘッダー  NZ-000 - 2006/11/30(Thu) 19:07 No.2739

例えば、顧客名フィールドの書式設定を開き、非表示の条件付書式設定(x+2みたいなボタン)で以下のような条件式を記述すれば、2ページ目以降は表示されなくなります。

WhilePrintingRecords;
PageNumber <> 1;

同様にしてフィールドごとに設定すれば良いでしょう。

または、ページヘッダーを二つに分割し、1ページ目用と2ページ目以降用をデザインし、上記のような条件式でセクションの非表示を切り替えれば、フィールド個別に設定する必要はなくなり、デザインも柔軟に対応できるという利点があります。

Re: 2ページ目以降のヘッダー  はら - 2006/12/01(Fri) 15:19 No.2745

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


初クリスタルレポートの為、関数の意味もわかっておりませんが
無事ヘッダーは解決できました。
関数については、リファレンス等を探して勉強してみます。


さらに基本的な質問で、申し訳ないのですが、
そもそもASP.NETで帳票印刷するのは、どのような方法がスタンダードなのでしょうか?
1.うまく成型し、ブラウザのプレビュー・印刷機能を使う。
2.ボタンを押したら、なんらかのファイルとしてダウンロードさせ、あとはユーザーに任せる。
3.ボタンを押したら、PDFをブラウザ内で表示させ、AdobeReaderの印刷機能を使う。
4.ボタンを押したら、直接印刷。


よく見かけるのは「3.」だと思いますし、自分の理想も「3.」なのですが、
WEB業務アプリを見る機会がほとんど無い為、もっといい方法があるのかなと思い質問しています。
主観で結構なので、他の方のご意見が聞ければと思います。


また、クリスタルレポートでASP.NETのボタンを押して、PDF起動という「3.」のような機能は実現可能なのでしょうか?
ちなみに、CrystalReportViewerを使っていますが、現状↓こうなってしまいます・・・
[ボタンを押す]→[CrystalReportViewerを貼り付けたページを別ウィンドウで起動]
→[なぜかODBCのログインダイアログが表示される]→[ID、パスワードを入れログイン]→[プレビューが表示される]
→[CrystalReportのツールバーで保存や印刷]


以上、長文ですがよろしくお願いします。

Re: 2ページ目以降のヘッダー  はら - 2006/12/01(Fri) 18:52 No.2746

自己レスです。

ReportDocumentクラスを使用することでPDFとかEXCELとかWORDとか出せました。

ただ、ODBCのところがやはり解決できません・・・
DBとの接続情報はプログラムでどのように設定するのでしょうか?
エラーとなるのは、
Report.Export();
のところで、下記のエラーとなります。
================
ログオンに失敗しました。
詳細: 28000:[Microsoft][ODBC SQL Server Driver][SQL Server]ユーザー 'xxx' はログインできませんでした。
================
レポート側でODBCを使用しており、エラーからパスワードが足りてないことは
わかるのですが、プログラムでどのように接続情報を設定すればよいか分かりません。

なにとぞよろしくお願いします。

Re: 2ページ目以降のヘッダー  はら - 2006/12/01(Fri) 20:23 No.2747

たびたび自己レスです。

ReportDocumentクラスのSetDatabaseLogonにID、パスワード入れたら動きました!


DBデータが表示されない・・・  わんころ - 2006/11/29(Wed) 10:56 No.2722

はじめまして。わんころと申します。超初心者です。

CrystalReport機能を使用したwebアプリケーションを作っています。
概要は、Web画面で入力したデータをDBに登録、登録してあるデータを抽出してCrystalReportを作成することです。

現在データベースからデータを抽出しCrystalReportに表示するといういたって基本的なところで、つまってしまっています。
DBのデータを使用せずにCrystalReportを表示することは出来ています。

環境:Windows XP 、VisualBasic2005 & VS2005付属のCrystalReports

1.「TKRS001.rpt」のファイル作成
・サーバーエクスプローラでSQL Serverのデータが見えていることを確認。
「kDataSet.xsd」を作成。データソースで、サーバーのデータと同じデータが参照できている。

・フィールドエクスプローラーのデータベースフィールドを右クリックしてデータベースエキスパートを表示する。
-プロジェクトデータ
 -ADO.NETデータセット
  -KRS.kDataSetの下にあるテーブルを選択する。

・フィールドエクスプローラーの下にできたテーブルのカラム(仮でm_nameとする)を「TKRS001.rpt」にドラッグしてはり付ける。


2.WEBフォームCrystalReportViewerコントロールを貼り付ける
Vbのform1_Loadのコードは以下
Dim rep As New KRS.TKRS001
Dim ds As New KRS.kDataSet

rep.SetDataSource(ds)

CrystalReportViewer1.ReportSource = rep

3.WEBフォームを実行
m_nameにDB上ではデータが入っているので表示されていてほしいが、表示されていない。

以上ですが、どこか間違っていますでしょうか?
よろしくお願いいたします。


Re: DBデータが表示されな...  NZ-000 - 2006/11/29(Wed) 16:31 No.2724

dsにDB上のデータを入れてあげる作業が抜けているのではないでしょうか。
Re: DBデータが表示されな...  わんころ - 2006/12/01(Fri) 09:50 No.2743

解決しました!!
NZ-000さんアドバイスありがとうございます!!データを入れてあげる作業が抜けていた上に、間違ったクラスの継承をしていたのが原因でした。
無事DBのデータが表示されました!
本当にありがとうございました。

プレビューなしでの印刷  きた - 2006/11/30(Thu) 09:47 No.2731

はじめまして。
初心者です。

環境は、VB2005 & crystalReports for VB2005 です。

クリスタルレポートをプレビューしないで、直接印刷することはできるのでしょうか。
Re: プレビューなしでの印刷  NZ-000 - 2006/11/30(Thu) 14:18 No.2735

ReportDocumentクラスのPrintToPrinterメソッドを使えば直接印刷できます。
Re: プレビューなしでの印刷  きた - 2006/11/30(Thu) 16:16 No.2736

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

「ReportDocument PrintToPrinter 直接印刷」で過去ログを検索したら
使い方がありました。

おかげで、うまくできました。

クリレポのDB接続  YAMA - 2006/11/28(Tue) 22:35 No.2716

宜しくお願いします。

環境 CRYSTAL REPORTS 9

プログラムからCRYSTAL REPORTを作成し、プレビューしたいのですが、

    With objReport.Database.Tables(1).ConnectionProperties
        .Item("Provider") = "MSDASQL"
        .Item("Data source") = "サーバー名"
        .Item("Initial Catalog") = "データベース名"
        .Item("User ID") = "ユーザーID"
        .Item("Password") = "パスワード"
    End With
上記の命令が下記のようなエラーになります。
-2147417848: オートメーション エラーです。
起動されたオブジェクトはクライアントから切断されました。


上記命令の前で実行している、OpenReportメソッドで設定されるオブジェクトを
ウォッチ式で見ると
「ログオンに失敗しました。以下SQL-SERVERのエラーメッセージ」が出力されています。
パスワードが渡せていないんだとは思いますが。
ODBCを利用しています。データソースは管理ツールで作成しました。
また、DSNファイルを利用しても駄目でした。
何か指定方法があるのでしょうか。お分かりでしたらお教えください。
宜しくお願いします。

Re: クリレポのDB接続  24x7 - 2006/11/28(Tue) 22:54 No.2717

ODBC を利用しているなら、以下のような記述では駄目ですか?

  With objReport.Database.Tables(1).ConnectionProperties
        .Item("DSN") = "データソース名"
         .Item("User ID") = "ユーザーID"
        .Item("Password") = "パスワード"
    End With

Re: クリレポのDB接続  YAMA - 2006/11/29(Wed) 21:15 No.2726

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

ローカルプリンタ指定  akeem - 2006/11/29(Wed) 17:53 No.2725

はじめまして。akeemと申します。困っていることがあるので投稿させてもらいます。

CrystalReport8.0で開発を行っているのですが、メタフレーム環境でCrystalReportを表示し印刷する際に指定したローカルのドットプリンタで印字したいのです・・・

・メタフレームの設定が旧形式のため接続している全てのプリンタが見えてしまっているため選び出すのが大変(接続台数100台以上)

・通常はレーザプリンタを使用していますので特定のCrystalReportが呼ばれた場合に指定したローカルのドットプリンタを呼び出したい。

というような状況です。
アプリケーションはVB6で開発していてそこからCrystalReportを呼び出してます。

なにぶん知識がないため困っております。
わかる方がいらっしゃいましたらご教示いただきたいです。
情報が足りないようでしたら言って下さい。
よろしくお願いします。

OLEオブジェクトにビットマップを表示  melodia - 2006/11/22(Wed) 18:20 No.2668

はじめまして。いつも皆様の技術を参考にさせてもらっています。

VB6.0 Crystal Reports XI
上記の環境で開発を行っています。

Crystal ReportsのOLEオブジェクトにビットマップ(.bmp)を
表示する処理をしようと思っています。

ただ、ビットマップを保存してあるフォルダとビットマップの名前が不変ではないため
「挿入→OLEオブジェクト→オブジェクトの挿入→ファイルから作成」
という方法では実装できませんでした。

そこで、プログラム側から設定しようと思って調べてみた結果
「FormattedPicture」「SetOleLocation」といった
キーワードが出てきたのですがまだ実装できていません。

保存フォルダの場所とビットマップの名前はINIファイルから取得しています。

どなたかご存知の方がいればご教授いただけないでしょうか
よろしくお願いします。

Re: OLEオブジェクトにビ・..  NZ-000 - 2006/11/25(Sat) 00:09 No.2682

VB6.0 のレポートドキュメントモデルを知らないため、詳しいことはわかりませんが、

もし、Textフィールドや式フィールド、パラメーターフィールドなどへのデータの代入の仕方を知っているなら、
CrystalReports側でOLEオブジェクトの書式設定を開き、ピクチャタブの保存場所にそのTextフィールドなどを指定しておき、
プログラム側でそのTextフィールドなどにファイルパスを指定するというのはどうでしょうか。
Re: OLEオブジェクトにビ・..  melodia - 2006/11/26(Sun) 20:23 No.2689

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

現在試せる環境がないので分かりませんが
他フィールドへの代入と同じ方法で出来るのか
後日、試してみたいと思います。

Re: OLEオブジェクトにビ・..  melodia - 2006/11/28(Tue) 10:38 No.2706

NZ-000 さん

式フィールドを利用することで実装することができました。

Report.FormulaFields.Item(i).Text = "'" & 保存場所\ビットマップ名 & "'"

式フィールドの「i」番目に保存場所とビットマップ名をセットして
OLEオブジェクトの保存場所で式フィールドを指定するという方法です。

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

Re: OLEオブジェクトにビ・..  NZ-000 - 2006/11/28(Tue) 10:57 No.2707

おせっかいですが「i」番目っていうのはあまりよろしくないと思います。そのフィールドが何番目かといった情報はCrystalReportsに依存しますので。

式フィールド名で取得できませんか?
できないのならしょうがないですが・・・。
Re: OLEオブジェクトにビ・..  melodia - 2006/11/28(Tue) 11:15 No.2709

ご指摘ありがとうございます。

「i」番目としているのは画像が10枚以上あり
For文でループさせて、同じ「i」をビットマップ名の一部としても
使用しているからです。

式フィールド名の方でも検討してみます。

Re: OLEオブジェクトにビ・..  melodia - 2006/11/28(Tue) 11:45 No.2710

ご指摘通り、式フィールド名で設定できました。
ありがとうございました。

Report.FormulaFields.GetItemByName(式フィールド名).Text = "'" & 保存場所\ビットマップ名 & "'"

データソース  Drathera - 2006/11/22(Wed) 17:07 No.2667

いつもは意見、参考にさせていただいてます。
環境:Windows XP 、VisualBasic2005 & VS2005付属のCrystalReports

以下のようなデータをCrystalReportsで使用できないでしょうか?

VBのコーディングでデータセットを作成しました。(以下)
---------------------------------------------------
DSet = New DataSet
DTbl=DSet.Tables.Add("Temp")
DTbl.Columns.Add("ID",Type.GetType("System.String")
DTbl.Columns.Add("NM",Type.GetType("System.String")

DRow = DTbl.NewRow()
DRow("ID")="1"
DRow("NM")="drathera"
DTbl.Rows.Add(DRow)
------------------------------------------

CrystalReportsで上記のデータセットを使いたいのですが、
作成方法が分かりません。
教えていただけますようお願いいたします。

ごくごく普通に
VBのIDE内にデータセットを定義したり、
MDBファイルを使ったりという
 実態のあるデータを使うことは、やったことがありますが、

上記の様に実体の無い(?コーディングによるデータセット?)
データを使って可能か否か。また、このような方法が良いのか否か
ご伝授願えますよう
よろしくお願いいたします。
Re: データソース  NZ-000 - 2006/11/22(Wed) 22:59 No.2669

ここのホームページの「入門編風」にそのやり方が書いてありますね。
VS2003用なので多少違う・・・・いやぜんぜん違いますね。特にデザインの仕方ががらりと変わったと思います。
けど、流れは把握できるので読んで損はないと思います。

補足説明しときます。
CrystalReportsで帳票をデザインするためにはデータベーススキーマ(テーブル構造)が必要です。
直接データベースに接続するような形態を取る場合、データベースからスキーマを取得できます。
しかし、お察しの通りDataSetはメモリ上のデータベースにすぎず、実体がないのでデータベースのようにはいきません。
そこで、通常はXMLを用いてDataSetと同じ構造を持つデータベーススキーマを作成し、それをCrystalReportsに読み込ませます。

スキーマを手作業で書くことは通常しません。
VS2005を利用している場合、付属しているDataSetデザイナーでDataSet(及びDataTable)をデザインしましょう。
これでデザインすると自動でスキーマファイル(拡張子.xsdのやつ、中身はxmlで書かれています)が作られます。
このスキーマファイルをCrystalReports側で指定します。
あとはデータベースと同じように扱います。

さて、これをすべて説明するのはちょっと難儀です。
まずはVS2005のデザイナーでDataSetを作成してみましょう。
わからないところがあればどこまでできてどこがわからないのかを明確にしてその都度質問してください。

あ、いきなりどこからDataSetデザイナー立ち上げるんじゃいと疑問に思うかもしれませんね。
ちと今手元にVS2005がないので想像になっちゃうのですが、プロジェクトに新しい項目の追加で、データセットを選べば立ち上がるんじゃないかと思います。また、データベースメニューに確かデータソースの追加というものがあって、そこからデザインできたようにも思います。曖昧になって申し訳ありません。
Re: データソース  Drathera - 2006/11/23(Thu) 07:25 No.2671

NZ-000 様。ありがとうございます。
今日は祝日で開発環境を使用できませんので、後日お返事させていただきます。
御指示に従って、休み明けにやってみます。
先ずは、お返事まで。
Re: データソース  Drathera - 2006/11/24(Fri) 11:37 No.2676

NZ-000様。ありがとうございます。
結果。うまくいきました。

まず、実際にDataSetを作成する。名前は、DSet.xsd とする。
     (  DSet = New DataSet  )
  このDataSetの中にテーブルを作る。名前は、Temp とする。
     (  DTbl=DSet.Tables.Add("Temp")  )
  データセット"DSet"内のテーブル"Temp"にフィールドを追加していく。
     (  DTbl.Columns.Add("ID",Type.GetType("System.String")    )
     (  DTbl.Columns.Add("NM",Type.GetType("System.String")  )

 ようは、コーディングと同じ名前,同じ構成で、作成する。

このように作られたデータセットを使いCrystalReportsをデザインする。
このとき、コーディング内のDSetと、DSet.xsd があり、2重になっている。
デザインし終わった後、先ほど作ったデータセット(DSet.xsd)を削除する。
これで、DSet は一意になる。

という意味だと考えています。

お騒がせしました。ありがとうございました。
Re: データソース  NZ-000 - 2006/11/24(Fri) 21:14 No.2679

>結果。うまくいきました。
ほほう、やりたいことがすべてできたということでしょうか?

しかし、少々気になる点がありますので補足します。

>デザインし終わった後、先ほど作ったデータセット(DSet.xsd)を削除する。

DSetは
>コーディング内のDSetと、DSet.xsd があり、2重になっている。
そこにあるもの全てで一つのデータセットDSsetを表しています。
どれか一つでもファイルが欠けるとVS2005がコンパイルできなくなったり、
予期せぬ動作を起こす可能性があります。
消すならDSetまるごと消してください。
コード上でDSetを利用するなら何も消さないでください。
Re: データソース  Drathera - 2006/11/25(Sat) 10:04 No.2686

一応、ビルドし、EXEファイルを実行してみたところ
エラー無く動いてます。(目的の帳票をプレビューで見えてます。)
ご心配おかけし申し訳ございません。

DSet.xsd が存在する状態(ソリューションエクスプローラ内)では、
コーディングのDSet関係の部分にエラーの意味の波下線が付いています。
そこにマウスを合わせると
  'DSet' は型です。有効な式ではありません。
  非共有メンバを参照するには、オブジェクト参照が必要です。
などと表示されます。
ソリューションエクスプローラ内のDSet.xsdを削除すると、
上記のエラーが出ず、実行できます。
これらのエラーは、実行時に同じ名前のデータセットが2重に存在するためだと
私は考えるのですが、いかがでしょうか?

Re: データソース  NZ-000 - 2006/11/25(Sat) 13:21 No.2687

>コーディングのDSet関係の部分にエラーの意味の波下線が付いています。
どういうコードか示してくれると判断しやすいです。

想像としてはDSetをインスタンスと勘違いしている。
またはDSetをデザイナで作成したにもかかわらず、さらに
DSetという名前のDataSetインスタンスを定義しているなどが考えられます。

作成したDSetは(DataSetを継承した)クラスだということは理解しておられるでしょうか?
Re: データソース  Drathera - 2006/11/27(Mon) 09:28 No.2690

ご連絡が遅くなり申し訳ございません。
お察しのとおり
インスタンス、クラス などが理解できておりません。
書籍などからサンプルを探し、組み立てております。

コードは以下のようになります。
-----------------------------------
    Public DSet As DataSet
    Public DTbl As DataTable
    Public DRow As DataRow

Try
 'データセットにテーブルを作成する。
 DSet = New DataSet
 DTbl = DSet.Tables.Add("TEMP")
 DTbl.Columns.Add("ID",Type.GetType("System.String")
 DTbl.Columns.Add("NM",Type.GetType("System.String")
 'データをセットする。
 DRow = DTbl.NewRow()
 DRow("ID")="1"
 DRow("NM")="drathera"
 DTbl.Rows.Add(DRow)
   :
   :
 'CrystalReportsプレビュー
 Dim frmPrv As New frmCrystalViewer
 frmPrv.SetForm = Me
 frmPrv.SetRpt = New crPickingList
 frmPrv.SetDs = DSet
 frmPrv.SetPSize = CrystalDecisions.Shared.PaperSize.PaperA4
 frmPrv.SetPOrient = CrystalDecisions.Shared.PaperOrientation.Landscape
 frmPrv.ShowDialog()
 frmPrv.Select()
   :
End Try
---------------------------------
上記内で、赤文字 & 下線 にしているところが、
IDE内では、波下線になるところです。(DSet.xsdが存在する状態時)

DSet.xsd を開放(削除)すると、波下線が消え、エラー無く実行できます。
CrystalReprts File を設計する段階では,
上記コーディングのみでは、プログラムを実行してなく、データセットが存在しません。
故に、レポートファイルを設計できなかったわけです。
その為、IDE内で DSet.xsd を作成し、そのDSet.xsdを使いレポートファイルを設計。
設計し終え、実行段階では、DSet.xsd を削除(開放)しました。

データセットは、CrystalReportsにデータを渡したいが為の、保存ファイル(mdb)から一部加工した一時データです。

 'CrystalReportsプレビュー 以下は、
こちらの掲示板でご伝授いただいたものです。

いかがでしょうか?よろしくお願いいたします。
Re: データソース  NZ-000 - 2006/11/27(Mon) 12:03 No.2693

クラス、インスタンスの概念はオブジェクト指向プログラミングにおける肝です。
VB.NETはオブジェクト指向プログラミング言語の一つですので、ぜひとも理解してください。
(というか理解しないとコードが書けません。)
なお、ここでそれら概念ついて説明はしません。

元のソースをなるべく崩さないように要所のみ書き換えてみました。
私の予想通りにデザイナーでデータセット(DSet)およびデータテーブル(TEMP)を作成されていることを前提にしています。
動作確認はしていません。
(1がついているものがインスタンスです。)

-----------------------------------
Public dSet1 As DSet
Public dTbl1 As DSet.TEMP
Public dRow1 As DSet.TEMPRow

Try
'データセットにテーブルを作成する。
'データをセットする。
dSet1 = New DSet
dTbl1 = dSet1.TEMP
dRow1 = dTbl1.NewTEMPRow()
dRow1.ID ="1"
dRow1.NM ="drathera"
dTbl1.AddTEMPRow(dRow1)
   :
   :
'CrystalReportsプレビュー
Dim frmPrv As New frmCrystalViewer
frmPrv.SetForm = Me
frmPrv.SetRpt = New crPickingList
frmPrv.SetDs = dSet1
frmPrv.SetPSize = CrystalDecisions.Shared.PaperSize.PaperA4
frmPrv.SetPOrient = CrystalDecisions.Shared.PaperOrientation.Landscape
frmPrv.ShowDialog()
frmPrv.Select()
   :
End Try
---------------------------------
Re: データソース  Drathera - 2006/11/28(Tue) 08:56 No.2705

NZ-000 様。ありがとうございました。
添削を参考に再度考え直してみます。

P.S.
 当初に書いた"実態"というのは、私の勉強不足で
インスタンスとは違う意味で用いてました。
紛らわしい表現で申し訳ございませんでした。

1PDFファイルに複数デザイン出力  gattsu - 2006/11/24(Fri) 16:36 No.2678

いつも拝見させて頂いています。

早速ですが、複数デザインを使用して1PDFファイルに複数ページ出力を行いたいのですが、実現方法がご存知の方居ましたら、ご教授下さい。

(Active Reportを使用した事がある方がいましたら、Pages.Addメソッドみたいに出ればベストです。)

よろしくお願いします。
Re: 1PDFファイルに複数デ...  24x7 - 2006/11/24(Fri) 22:42 No.2680

残念ですが、Crystal Reports の機能では実現できません。

Re: 1PDFファイルに複数デ...  gattsu - 2006/11/27(Mon) 09:50 No.2691

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

出来ないですか。残念です。
違う出力方法を検討したいと思います。

PDF変換に関して  初心者 - 2006/11/24(Fri) 13:40 No.2677

いつも拝見させて頂いております。
環境:XP VB6.0 CrystalReports8.5

とあるサイトでCrystalReports8.5以上でPDF変換ができると書いてありました。
残念ながらどういった経緯で行うのかが全くわからずいろんなサイトを見て回り
ましたがいまだにわかりません。

良ければご教授を御願いします。
Re: PDF変換に関して  24x7 - 2006/11/24(Fri) 22:44 No.2681

その当時のパッチを適用することでできるようになりました。まだ、そのパッチをダウンロードできるかわかりません。確か今のバージョンと同じファイル名で、crxf_pdf.dll がそのエクスポートするためのランタイムファイルになります。 

Re: PDF変換に関して  初心者 - 2006/11/25(Sat) 08:29 No.2685

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

crxf_pdf.dll 探してみます。

ご教授ありがとうございます。


空白行の出力  きょう - 2006/11/21(Tue) 20:17 No.2656

はじめまして、きょうと申します。
初めて利用させて頂きます。

過去ログを辿り同じような問題があったので参考にさせて頂きましたが、
回答がついていなかったため、対処方法をご存知の方は是非教えて頂きく、
投稿致しました。

2.1ページ10行まで印字可能で、各行は罫線が引いているレポートをします。
  データが3行までしかなくのこりの7行を空白で印字したいのですが
  現状では、のこりの7行は何も印字されません。
  表示されるようなやり方とかありますでしょうか?



例  現状
 −−−−−−−−−−−−−
|番号 |年齢 | 氏名  |
 −−−−−−−−−−−−−
|1    |1歳 | 太郎1 |
 −−−−−−−−−−−−−
|2    |2歳 | 太郎2 |
 −−−−−−−−−−−−−
|3     |3歳 | 太郎2 |
 −−−−−−−−−−−−−
      ↓



 −−−−−−−−−−−−
|番号|年齢 | 氏名   |
 −−−−−−−−−−−−
|1  |1歳 | 太郎1 |
 −−−−−−−−−−−−
|2  |2歳 | 太郎2 |
 −−−−−−−−−−−−
|3  |3歳 | 太郎3 |
 −−−−−−−−−−−−
|   |     |          |
 −−−−−−−−−−−−
|   |     |           |
 −−−−−−−−−−−−
|   |     |        |
 −−−−−−−−−−−−
|   |     |        |
 −−−−−−−−−−−−
|   |     |        |
 −−−−−−−−−−−−
|   |     |        |
 −−−−−−−−−−−−
|   |     |        |
 −−−−−−−−−−−−

ご存知の方がおりましたら是非宜しくお願い致します。

Re: 空白行の出力  24x7 - 2006/11/21(Tue) 23:32 No.2658

アンダーレイの機能を利用することで実現できると思います。
但し、グループヘッダー(推奨)又はページヘッダー(あまり勧めない)を利用します。
例えば、以下の手順になります。
1. グループヘッダーに固定で表示したい行数分の枠を作成します。
2. ページヘッダーに項目名を配置します。
3. 詳細セクションには、表示したいフィールドを配置します。
4. グループヘッダーの「続くセクションのアンダーレイ」をチェックします。
5. グループヘッダーに式フィールドを挿入します。
//カウンタの変数を初期化します。
WhilePrintingRecords;
NumverVar linecount:=0
6. 詳細セクションに式フィールドを挿入します。
//カウントアップ
WhilePrintingRecords;
NumberVar linecount;
linecount:=linecount+1;
7. 詳細セクションの「出力後に改ページ」の条件式に式を挿入します。
WhilePrintingRecords;
NumberVar linecount;
Remainder(linecount,10)=0;

こんな感じで期待されたイメージに近いものができると思います。

Re: 空白行の出力  NZ-000 - 2006/11/21(Tue) 23:35 No.2659

CrystalReportsって意図的に空白行を挿入するとかできないと思うのですよ。
なのであまり参考にならないかもしれませんが、私なら次のような手段を考えます。
ページヘッダーなどで1ページ分のグリッドをデザインし、続くセクションをアンダーレイして、
無理やり体裁を整えます。
しかし、これだと行幅の調整が聞かなくなるという問題がありますね。

あとはこれもかなり時と場合によりますが、
SQL上であらかじめ10行で割り切れるようにNULL行を追加してデータを取得するというのも考えてみますかね。
Re: 空白行の出力  24x7 - 2006/11/22(Wed) 07:38 No.2660

NZ-000さん、いつも回答を拝見して参考にしています。

(大昔)古いバージョンで固定行で表示するサンプルレポートが含まれていましたよ。上記のような方法で実現していました。ポイントは、グループヘッダーに10行分のレコードが表示可能な枠を予め用意しておくことです。その行の高さと詳細行の高さを一致させることで可能です。

Re: 空白行の出力  24x7 - 2006/11/22(Wed) 07:39 No.2661

グループヘッダー内の1行と詳細行の高さが同一にデザインする。
Re: 空白行の出力  きょう - 2006/11/22(Wed) 09:23 No.2662

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

皆様の意見を参考にし、試してみる事に致します。
ありがとうございます。
Re: 空白行の出力  きょう - 2006/11/22(Wed) 10:05 No.2663

イメージ通りの出力を出せました。
お二人の意見はどちらも非常に参考になりました。
ありがとうございます。
Re: 空白行の出力  NZ-000 - 2006/11/22(Wed) 11:10 No.2664

24x7さん、こちらこそいつも回答を参考にさせてもらっています。
いつも丁寧な回答に頭が下がるばかりです。

やはり、ヘッダーでデザインしてアンダーレイというのが開発元の推奨するやり方なのですね。
参考になります。
特にこれはびっくら仰天の事実なのですが、私帳票作ったことって1度しかないのですよ。
プログラミング経験も一年という、かなりお粗末な回答者でして。

実体験があまりにも少ないので、いつも手探りです。
私の知識はこの掲示板の過去ログと質問者の状況を手元で再現することによる経験によって成り立っています。
(環境がないなどで)再現できない場合は即お手上げです。
特にVB分野・・・

ということですごく浅くもろいので、疑わしき点がありましたらこれからもフォローや指摘をしてくださると幸いです。
Re: 空白行の出力  24x7 - 2006/11/22(Wed) 23:26 No.2670

NZ-000さん、回答内容からそんな浅い経験者とは思えないけど。。気になれ店があれば、フォローしておきます。

複数レコードを1行に印字したい  てっつん - 2006/11/22(Wed) 12:07 No.2665

はじめまして。
CrystalReport初心者です。
現在、CrystalReport11でレポートを出力しようとしています。
そこで質問させていただきます。

入力データはストアドで取得した表なのですが、下記のような表となっています。

値1  │値2   │値3   │
A      │001    │100   │
A      │002    │200   │
A      │003    │300   │
B      │001    │400   │
B      │002    │500   │
B      │003    │600   │
・       │・       │・     │
・       │・       │・     │
・       │・       │・     │

この表の内容を下記のようなレポートに出力したいのですが、

値1  │001    │002   │003   │
───┼────┼───┼────
A     │100    │200   │300   │
B     │400    │500   │600   │
・       │・        │・     │・     │
・       │・        │・     │・      │

容易に可能でしょうか?
もしナンセンスな質問であれば流してください。

ご返答をいただけると助かります。
宜しくお願いいたします。
Re: 複数レコードを1行に...  NZ-000 - 2006/11/22(Wed) 16:50 No.2666

こういうのはクロスタブが適していると思います。

例えば、次のようにします。
1. 値1でグループ化
2. クロスタブ挿入
3. 行にグループ化したフィールドを設定(値1かな)
4. 列に値2を設定
5. 集計フィールドに値3の合計を設定

これでうまく集計できるかなぁと思うのですがどうでしょう。
ただ、クロスタブはデザインをカスタマイズしにくいのが難点です。

追記:
グループ化せんでもよさそうです。

印刷プレビューでのエラー  goo - 2006/11/21(Tue) 15:05 No.2654

下記環境で開発を行っています。
OS : Windows XP、Windows 2000
言語 : CrystalReportXI + VB6.0(SP5)

下記のような操作を行った場合にエラーとなる場合があります。
(XP:VBエラー(5000) 2000:アプリケーションエラー(〜メモリが"read"になることができませんでした〜))

・CrystalActiveXReportViewerを使用して印刷プレビューを行う
・印刷ボタン押下後にページ遷移ボタンで最終ページを表示させる

状況的に多量のページを印刷した場合、スプーリングの処理と
画面ページングの処理がかち合うと起こる事象の様です。
WEB等で調べてみたのですが回避方法が見つかりません。
開発元・販売元のFAQ等では発見できませんでしたが既知の不具合なのでしょうか?

回避方法をご存知の方、その他この事象に関して何らかの情報をお持ちの方
レスポンスを期待しております。
よろしくお願いいたします。

複数のグループ  ごんぎつね - 2006/11/21(Tue) 00:50 No.2651

こんにちは、いつもお世話になっております。

煮詰まってしまったので助言頂ければと思いまして。


帳票を出したいと思います。
1.店舗毎に改ページする
2.商品グループで内容を分ける


1の店舗毎に改ページは
WhilePrintingRecords;
OnLastRecord <> true;
で、出来ました。


更に内部で分けるのにどうしたらいいのかわかりません。


-------------------------------------------ヘッダー
店舗:A
-------------------------------------------グループヘッダ
1.ああ ああ
2.いい いい
3.いい うう
4.ええ おお
5.かか かか
-------------------------------------------グループフッタ
改ページ
-------------------------------------------ヘッダー
店舗:B
-------------------------------------------グループヘッダ
1.ああ ああ
3.うう うう
4.ああ いい
-------------------------------------------グループフッタ



現在はこのような感じになっております。
これを
-------------------------------------------
店舗:A
-------------------------------------------
商品A 1.ああ ああ
    2.いい いい
    5.かか かか
                     (空白)
商品B 3.いい うう
    4.ええ おお
-------------------------------------------
改ページ
-------------------------------------------ヘッダー
店舗:B
-------------------------------------------グループヘッダ
商品A 1.ああ ああ
                     (空白)
商品B 3.うう うう
    4.ああ いい
-------------------------------------------グループフッタ


このようにしたいと思います。
商品の名前は表示させたいです。
最初グループを店舗と商品の2つにしてやってみたのですが
グループキーを変更すると両方変わってしまってうまくいきませんでした。


どのように設定したらいいでしょうか。
グループ増やすのではなくプログラムなんかで出来るのでしょうか。
どうぞ宜しくお願い致します。

Re: 複数のグループ  24x7 - 2006/11/21(Tue) 01:42 No.2652

グループを利用した方が簡単だと思いますが、どのように両方?が変更になってしまうのでしょう。

重複制御について  ジュワッ - 2006/11/20(Mon) 21:33 No.2649

VB.NET2005 バンドル版クリスタルレポートで開発しています。

レポートの重複データの非表示にチェックを入れると同じ値が続けば非表示に
してくれるのはいいのですが、改頁した時も非表示なっていしまいますよね。
改頁したときは同じデータが続いても表示したいのですが、
何かいいアイデアを教えて頂けないでしょうか?
宜しくお願いいたします。

バーコード表示について  やま - 2006/11/16(Thu) 19:02 No.2636

はじめまして。
Crystal Enterpriseに公開しバーコード印字を行いと思っております。
azarie社のcode39のバーコードフォントを使用しておりまして、英数字
を印字しようとすると文字化けになります。
どなたかご存知の方がいらっしゃいましたら教えて頂けないでしょうか。


宜しくお願い致します。大変困っております。

Re: バーコード表示について  NZ-000 - 2006/11/19(Sun) 22:31 No.2644

情報を集めようと思い、
azarie社についてぐぐってみましたが見つかりません。
スペル間違ってませんかね。
Re: バーコード表示について  やま - 2006/11/20(Mon) 17:28 No.2648

すいません。スペル間違えておりました。
http://www.azalea.com/demo/(参照先)

改ページ後の明細ヘッダ出力  YAMA - 2006/11/17(Fri) 16:47 No.2639

はじめまして、クリレポ初心者です。

環境
CRYSTAL REPORTS 9
SQL-SERVER

お教えいただきたいのですが。

レポートレイアウト

ヘッダ部

明細部
--------------------------------------------
A       B        C      D      E     
                        F        G 
--------------------------------------------
AA1     BB1      CC1    DD1    EE1
                        F1     G1 
                        F2     G2 
                        ・       ・
AA2     BB2      CC2    DD2    EE2
                        F1     G1 
                        F2     G2 
                        ・       ・

グループヘッダー2にA〜Eのフィールドを割り当てデータを出力し、
詳細にF,Gのフィールドを割り当てデータを出力しました。
グループヘッダー1は改ページで使用します。

このとき、A〜Eに対するF,Gがページ途中で改ページした場合、
次ページの最初に再度A〜Eを出力したいのですが、方法が解りません。

申し訳ありませんがどなたかご存知ありませんか?
宜しくお願いします。
Re: 改ページ後の明細ヘッ...  24x7 - 2006/11/17(Fri) 23:47 No.2641

表示イメージと説明文が一致していないように見えるけど?

例えば、以下のようなレポートで

グループ2ヘッダー  A    B   C   D   E     
グループ2ヘッダー                F    G

詳細                       AA1@ BB1  CC1 DD1 EE1
詳細                           F1  G1 
詳細                          F2  G2                         
詳細                      AA2  BB2 CC2 DD2 EE2
詳細                          F1  G1 
詳細                        F2  G2

F と G の出力途中で改ページが発生した場合、

グループ2ヘッダー  A    B   C   D   E     
グループ2ヘッダー                F    G

詳細                       AA1@ BB1  CC1 DD1 EE1
詳細                           F1  G1 

<改ページ>

詳細                          F2  G2                         
詳細                      AA2  BB2 CC2 DD2 EE2
詳細                          F1  G1 
詳細                        F2  G2


グループ2の変更のオプションから改ページ毎にヘッダーの出力の項目をチェックします。その結果、改ページする度にグループ2のヘッダーが出力されると思います。

Re: 改ページ後の明細ヘッ...  YAMA - 2006/11/20(Mon) 16:01 No.2646

回答ありがとうございました。初心者なもので質問も未熟で申し訳ありませんでした。

グラフが表示されない  あか - 2006/11/17(Fri) 18:44 No.2640

はじめまして。
グラフのプレビューが表示されず困っています。

WindowsXP SP1、VB 6.0、Crystal Report8.5を使用しています。

VBのForm上にCrystalReportViewerを設置し、クリスタルレポートをプレビュー表示させています。
クリスタルレポートにはグラフとデータを配置させています。


VB、Crystal ReportをインストールしたPC上ではデータ・グラフ共に正常に表示されるのですが、VB、Crystal Reportがインストールされていない他のPC(VBのディストリビューションウィザードでRuntimeを配布したPC)では、データ部分は表示されるのですが、グラフが表示されません。

現在は以下のRuntimeを配布しています。
Crystal Report Viewer Control
Crystal Report 8.5 ActiveX Designer Run Time Library

グラフ部分も表示させるためには他にどのようなRuntimeを配布すればよいのでしょうか?
どなたかご存知の方がいらっしゃいましたら教えて頂けないでしょうか。
宜しくお願い致します。

Re: グラフが表示されない  24x7 - 2006/11/18(Sat) 00:05 No.2643

http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2006478&sliceId=&dialogID=9634113&stateId=1%200%209668680  
記事と異なるバージョンだけど、SSCSDK80.DLLとPG32CONV.DLL ではないですか。

文字間隔について  ♪たか♪ - 2006/11/16(Thu) 23:33 No.2637

はじめまして。
WindowsXP、Visual Studio 2005のバンドル版のCrystal Reportを使用しています。


Crystal Reportを初めて数日の初心者です。

VB2005を使用し、制定用紙(郵便の払込用紙)に印刷するプログラムを作成しているところです。

金額等の欄の文字間隔が決まっているため、項目の設定の中の文字間隔のピッチを変更したところ、文字の間隔が全く変わらないようなのです。
文字間隔を変更するにはどのようにすればよろしいでしょうか?

また、制定用紙のため、プリンタによって印字位置が若干ずれることが予想されるため、ユーザが余白の設定を行えるようにしようと考えています。
VBから余白の設定を行うにはどようにしればよろしいでしょうか?

納期が今月末であるため、非常に焦っております。

お分かりになる方がいらっしゃいましたら、ご教授よろしくお願いいたします。

ソートオーダー  あさ - 2006/11/15(Wed) 19:57 No.2624

CR10使っています。
クリスタルレポートとOracleのソート順序が違って困ってます。
"-" とかの 記号のソートが違うみたいです。
どなたかクリスタルレポートサイドで合わせる方法ご存知ではないでしょうか?
もしくは、クリスタルレポートのソートの順位(ルール)をご存知なら教えて下さい。
宜しくお願いします。
Re: ソートオーダー  NZ-000 - 2006/11/16(Thu) 10:18 No.2628

CrystalReportsはOracleにSQLを投げているだけで、ソートはOracleに依存するはずですので、順番が違うということはないと思のですがねぇ・・・。
何か意図しないでOrder By句が指定されているとかも考えられるので一応投げているSQLを確認してもらえますか。
投げるSQLはメニューの「データベース」→「SQLクエリーの表示」で確認することができます。
うーん、ちょっとわからないかもしれませねぇ。
Re: ソートオーダー  あさ - 2006/11/16(Thu) 16:14 No.2634

返信ありがとうございます。
CR側はGroupByでレコードをソートしています。
SQLは投げていなく、Oracleでソートされてできたテーブルを読み込んでいます。
リコンサイルの処理で、CRのGroupByでソートした結果と、OracleのOrderByでソートした結果が合わないのです。

Re: ソートオーダー  NZ-000 - 2006/11/16(Thu) 17:05 No.2635

>Oracleでソートされてできたテーブル

これはどんな形で存在するのですか?DataTable?それとも・・・

CrystalReportsから直接データベースに接続する場合、CrystalReports内で自動生成されたSelectクエリーが必ず投げられます。

いまいち環境が把握でませんので、データベースからデータをどのように取得し、どのように表示しているのかの説明をお願いします。

マウスホイールでスクロール  nonta - 2006/11/15(Wed) 19:19 No.2623

はじめまして。
WindowsXP、Visual Studio 2005のバンドル版のCrystal Reportを使用しています。

Form上にCrystalReportViewerを設置し、
クリスタルレポートをプレビュー表示させています。
Viewer上でマウスホイールを上下すると、
クリスタルレポートも上下にスクロールさせたいのですが、どうもうまく動作しません。

...
this.crystalReportViewer = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
this.crystalReportViewer.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.on_mouse_wheel);
...


private void on_mouse_wheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
   this.crystalReportViewer.AutoScrollPosition = new Point(0, 120 +e.Delta);
   this.crystalReportViewer.Refresh();
}

このような感じで記述しています。
MouseWheelイベントを組み込んでその中で処理をしようと考えているのですが、
ご教授いただけないでしょうか?
よろしくお願いします。

Re: マウスホイールでスク...  NZ-000 - 2006/11/16(Thu) 10:04 No.2627

おはようございます。

>クリスタルレポートも上下にスクロールさせたいのですが、どうもうまく動作しません。

この動きが想像しにくのですが、レポートが表示されている部分をスクロールさせたいということでしょうか。
また、何もしないでも普通にマウスホイールでスクロールできるのですが、イベントをフックできないと言っているのでしょうか。

まぁそのように考えて話を進めます。
CrystalReportViewerはいくつかのコントロールで構成されており、
適切なコントロールにイベントを設定しないと期待した動作は行われません。
まずCrystalReportViewerの持つPageViewコントロール(レポートが表示されているところ)を取得します。
PageViewはTabControl(「メインレポート」とか表示される部分)を持っているのでこれを取得します。
さらにTabControlのが持つDocumentControlを取得します。
このDocumentControlがレポートの内容を表示しているそのものです。
今回のような場合、こいつに対して設定するとレポートを表示している部分のイベント(マウス動作などなど)をフックすることができます。

参考コード
foreach (Control ctl in crystalReportViewer1.Controls)
{
  CrystalDecisions.Windows.Forms.PageView pv = ctl as CrystalDecisions.Windows.Forms.PageView;
  if (pv != null)
  {
    foreach (Control ctl2 in pv.Controls)
    {
      System.Windows.Forms.TabControl tabCtl = ctl2 as System.Windows.Forms.TabControl;
      if (tabCtl != null)
      {
        foreach (Control ctl3 in tabCtl.Controls)
        {
          CrystalDecisions.Windows.Forms.DocumentControl dc = ctl3 as CrystalDecisions.Windows.Forms.DocumentControl;
          if (dc != null)
          {
            dc.MouseWheel += new MouseEventHandler(dc_MouseWheel);
          }
        }
      }
    }
  }
}

Re: マウスホイールでスク...  nonta - 2006/11/16(Thu) 11:17 No.2630

NZ-000様
早速のご回答、ありがとうございます。

説明下手で誠に申し訳ありません。

Viewer上でマウスホイールを動かしても、表示されているレポートのスクロールはできません。
Viewerのイベントはフックできるので、
そのイベントの中でAutoScrollPosition を使用してスクロール設定すればいいのだろうと思ったのですが、
AutoScrollPositionには値が格納できないし、
もしかしたらViewerのイベントで動作させようとしていること自体間違っているのか?と考えた次第です。

ちなみにAutoScrollPositionには値は格納できないのでしょうか?
Re: マウスホイールでスク...  nonta - 2006/11/16(Thu) 11:42 No.2631

すいません、自己レスです。

DocumentControl に対してならAutoScrollPositionを設定してあげることができそうです。
求めていた動作に近づいた感じです。

NZ-000様、大変参考になりました。
ありがとうございます。
感謝、感謝です。
Re: マウスホイールでスク...  NZ-000 - 2006/11/16(Thu) 11:53 No.2632


> Viewer上でマウスホイールを動かしても、表示されているレポートのスクロールはできません。

レポートが表示されているところをクリックしてからスクロールしてみてください。

たぶん、スクロールすると思います。
つまり、現在フックしているイベントはCrystalReportViewerコントロール上のイベントであって、
レポートを表示しているところのイベントではないわけです。
また、this.crystalReportViewer.AutoScrollPositionもレポートが表示されているところのスクロールバーを指しているのではありません。
これらの設定は先にも述べたCrystalDecisions.Windows.Forms.DocumentControlのオブジェクトに対して行う必要があります。

もしレポートを表示しているところをクリックせずにCrystalReportViewerコントロール上からレポートを表示している部分のスクロールバーを動かしたいんだという場合には、
private void on_mouse_wheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
上で書いた参考コード
・・・
CrystalDecisions.Windows.Forms.DocumentControl dc = ctl3 as CrystalDecisions.Windows.Forms.DocumentControl;
dc.AutoScrollPosition = new Point(0, 120 +e.Delta);
}
というように行う必要があります。
Re: マウスホイールでスク...  NZ-000 - 2006/11/16(Thu) 11:55 No.2633

おっと、お気づきになったようですね。
そのとおりです。

【データーベースフィールドの表示について】  むてみす - 2006/11/15(Wed) 21:15 No.2625

はじめまして。むてみすと申します。

さて、掲題の件ですが。。。

クリスタルレポートでデータベースフィールドをただ単に表示するだけなのですが。。。

「○○/△△/□□□□」とある名称を表示させる場合。。。
表示幅を「○○/△△/□」分しか取ってないので「○○/△△/□」と表示させたいのですが、
「○○/△   」と二つ目の△の文字以降切れてしまい中途半端に表示されます。
幅を若干伸ばしたりフォントの文字を小さくしたりすれば表示はされるのですが、
なんか文字のフォントや文字の大きさでこういうことが起こりうるのでしょうか?

幅を伸ばしたりフォントの文字数を大きくせずに「○○/△△/□」とうまく表示させる方法はありませんでしょうか?
Re: 【データーベースフィ...  むてみす - 2006/11/15(Wed) 21:17 No.2626

幅を伸ばしたりフォントの文字数を大きくせずに「○○/△△/□」とうまく表示させる方法はありませんでしょうか?

>>>

文字を小さくしたりせずにの間違いです。すみません。
Re: 【データーベースフィ...  NZ-000 - 2006/11/16(Thu) 10:22 No.2629

おはようございます。

原因はわかりかねますが、指定した文字数しか表示しない式フィールドに置き換えてみてはどうでしょうか。

出力について  hiroshi - 2006/11/14(Tue) 16:25 No.2617

帳票出力に、クリスタルレポートを使用しているアプリケーションで、
レポート出力にバグがあることで、クリスタルレポートを見始めています。
環境は、Windows2000、cr7(製品: 7.0.0.0  CRW: 7.0.1.192)で、crは、MDBファイルから出力データを拾っています。
(cr7で作成されている)帳票フォーマットファイルは、データ(詳細)は1行で、グループ設定を3つして、グループごとに改ページして、グループごとにページ番号をリセットするのが仕様です。
1枚で出力できるデータは48件です。
フォーマットは、
 レポートヘッダー
 ページヘッダー      ・・・
 グループヘッダー #1    ・・・
 グループヘッダー #2      ・・・
 グループヘッダー #3      ・・・
 詳細            【データ】
 グループフッター #3    ・・・     「出力後改」 「出力後リ」
 グループフッター #2      ・・・     「出力後改」 「出力後リ」
 グループフッター #1      ・・・     「出力後改」 「出力後リ」
 レポートフッター
 ページフッター      ・・・
となっています(上記の「・・・」の後ろの「」の意味は下記に)。
このサイトで、「グループごとにページを分けたい」のところから、グループフッターの「セクションの書式」で、「出力後に改ページ」するを見ましたので、その設定を3つのグループのフッターに設定(「出力後リ」のこと)。またページ番号もリセットしたいので、同様に3グループのフッターに、「出力後にページ番号をリセット」も設定しています(「出力後改」のこと)。

この設定で、出力すると、1枚で収まる場合でも(たとえば47件でも48件でも)、2ページ出力されてしまいます。
つまり、どうしても、最後に余分なページが1枚出力されてしまうようです。また最後の余分なページは、ページ番号がリセットされています。

この掲示板の過去ログも検索し、セクションの書式からの条件付書式(アイコンの「X+2」って見えるやつですよね?)で、
WhilePrintingRecords;
OnLastRecord <> true;
と、「式エディタの書式」ウィンドウのエディタ部分に記載しても、うまくいきませんでした(これは、出力前に改ページのところと、出力後に改ページのところ両方やってみましたが、だめでした)。
また以下も何かあるのかと思いやってみましたが、コンパイルエラーのようなものが出て、だめでした。
WhilePrintingRecords;
Not OnLastRecords;

そうなるとどうすれば、この余分なページを出力しないようにするかわかりません。

crは、全く初心者なので、いろいろと説明に長くかかってしまい、
また初心者ならではの説明部分など、ご容赦ください。
どうかよろしくご教授くださいますよう、よろしくお願いいたします。

Re: 出力について  NZ-000 - 2006/11/14(Tue) 16:51 No.2620

最後のページに出力されているセクションは何なのかを調べると解決の糸口につながります。

>WhilePrintingRecords;
>OnLastRecord <> true;

3つのグループフッターセクション全てに書きましたか?

>Not OnLastRecords;
この構文は使えないでしょうね。

レポートフッターが最後のページに収まりきらないだけかもしれません。
収まるようにデザインする、限りなく幅を縮める、または非表示にするなどをためしてください。

あと、果たしてグループフッター3、2に改ページ条件を指定する必要があるのか検討する余地がありそうですねぇ。
Re: 出力について  hiroshi - 2006/11/15(Wed) 15:53 No.2622

NZ-000 様
さっそくのご返信ありがとうございます。

> 最後のページに出力されているセクションは何なのかを調べると解決の糸口につながります。
→最後のページには、ページヘッダー部とページフッター部の出力が表示されてました。(続きは下で)

> 3つのグループフッターセクション全てに書きましたか?
→これは全てに書いていました。

> レポートフッターが最後のページに収まりきらないだけかもしれません。
>収まるようにデザインする、限りなく幅を縮める、または非表示にするなどをためしてください。
→まさにそのとおりのようで、レポートフッターには出力オブジェクトがなかったため、適当にテキストを置いたところ、それが最後のページに出力されていました。これを非表示にしたところ、出なくなりました。

上記をすることで、解決いたしました。
貴重な助言をありがとうございました。

棒グラフの枠線  ゆう - 2006/11/14(Tue) 23:52 No.2621

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

VS2005でクリスタルレポートを使って分析のためのグラフを作成しております。
1年間のデータを棒グラフと折れ線グラフを重ねて表示しているのですが、
棒グラフに枠線は出せないでしょうか?
1年間(12ヶ月)ということで12色使って表現しても若干わかりづらく、枠線を出したいと思っています。
ご教授願います。

無題  バナナ - 2006/11/13(Mon) 13:17 No.2604

こんにちは。
現在以下のような帳票を作成しています

氏名 郵便番号 住所 商品 申込み個数 金額 ← ページヘッダー
=================================
ああ 1111111 ・・県 ○○       1  100
いい 1111111 ・・県 ○○       1  100
うう  1111111 ・・県 ○○       1  100            ←詳細
ええ 1111111 ・・県 ○○       1  100
=============================================

                   個数合計 4 金額合計400  ←レポートフッター

ここで1ページ詳細は50件しか出力できないようにして以降は
改ページというように設定しなくてはならないのです。

そこで現在はセクションエキスパートの詳細・出力後に改ページのところに

WhilePrintingRecords;
If PageNumber <> 1 then
//2ページ以降
Remainder(RecordNumber - 50, 50)=0
else
//1ページ目
RecordNumber = 50

のように記述していますが、これだと100件を印刷したとき、2ページ目の最後に
レポートフッターが表示されず、3ページにレポートフッターだけが表示されてしまいます。レポートフッターを件数の最後に表示するにはどのようにすればよいのでしょうか?

ご教授のほどよろしくお願いします
Re: 無題  NZ-000 - 2006/11/13(Mon) 14:34 No.2606

1ページ目と2ページ目以降で条件を分ける理由がわかりません。
単に50でわって余り調べるだけではだめですか?

ついでに総レコード数とRecordNumberを比較し、論理積を計算でいけませんかねぇ。

WhilePrintingRecords;
Remainder(RecordNumber,50) = 0 and RecordNumber <> @総レコード数;

総レコード数はCount関数で取得できると思います。
Re: 無題  バナナ - 2006/11/13(Mon) 15:27 No.2609

NZ-000
早速のご回答誠にありがとうございます。

教えていただいたよう、セクションエキスパートの詳細・出力後に改ページのところに
WhilePrintingRecords;
Remainder(RecordNumber,50) = 0 and RecordNumber <> @総レコード数;
を記入して試してみましたが、
レポートフッターはやはり2ページ目でなく3ページ目(詳細はなし)に表示されてしまいました。

レポートフッターのセクションエキスパートに何か記入すればよいのでしょうか?・・・
Re: 無題  NZ-000 - 2006/11/13(Mon) 15:35 No.2610

>レポートフッターのセクションエキスパートに何か記入すればよいのでしょうか?・・・

いえ、いりません。
最後のページにレポートフッターが収まる幅がないだけじゃないですか?
ためしにレポートフッターの幅を限りなく小さくしてみてください。

あ、ちなみにレポートフッター使っているのですか?
Re: 無題(解決しました)  バナナ - 2006/11/13(Mon) 15:47 No.2612

NZ-000

>最後のページにレポートフッターが収まる幅がないだけじゃないですか?
ためしにレポートフッターの幅を限りなく小さくしてみてください。

その通りでした。こんな初歩的なことにも気が付かず返信してしまい申し訳ございませんでした。

>あ、ちなみにレポートフッター使っているのですか?
これは集計を挿入したら、レポートフッターに表示されたのでそのままレポートフッターを使用しております。まだまだ初心者なもので・・(笑)

NZ-000様のおかげで無事解決できました。改めまして誠にありがとうございました。
Re: 無題  NZ-000 - 2006/11/13(Mon) 16:47 No.2613

何も記述してなくても幅は確保されますからね。
この辺りははまり易いところです@@;
Re: 無題  NZ-000 - 2006/11/13(Mon) 17:12 No.2614

あ、それともう見てないかもしれませんがマルチポストは嫌われますので気をつけてください。

全てのスレッドを責任持って閉じるのがマナーです。
Re: 無題  NZ-000 - 2006/11/14(Tue) 16:40 No.2618

ぐはっ
バナナさん、それはまずいです。
スレッドを閉じるというのは話題を完結させる(解決するしないに関わらず)ことです。
話をなかったことにするのは回答者に対して大変失礼な行為に当たります。

今回のように解決したなら、解決方法をマルチポストした場所に書く、
または解決方法を書いた掲示板に誘導するのがマナーです。

もちろんこれは強要することではありません。
ですが、掲示板というのは大概過去ログが検索できるようになっており、
有用な情報がたくさん詰まっています。
そしてそれら過去ログにお世話になる人もたくさんいるはずです。
今後似たような問題に遭遇した人のため、
強いては自分のために、掲示板という情報源を潤すのは決して損ではないと思いますよ。
Re: 無題  NZ-000 - 2006/11/14(Tue) 16:46 No.2619

あ、総レコード数調べなくてもOnLastRecordでいけますかな・・。

印刷中断機能について  うー - 2006/11/13(Mon) 14:37 No.2607

はじめまして。
いつも拝見しお世話になっています。
OS:WindowsXP、Visual Studio 2005のバンドル版のCrystal Reportを使用しています。

印刷中に印刷ジョブをキャンセルをさせたいのですが、可能でしょうか?

もし可能である場合、サンプルソースを教えていただけたら幸いです。
どなたかご教授のほど宜しくお願い致します。
Re: 印刷中断機能について  NZ-000 - 2006/11/13(Mon) 15:36 No.2611

無理ですねぇ。
それにあれ、一方的にデータを送って、はい完了って意味なので
実際にプリンタが印刷したかどうかなんて関係ありませんしね@@;
あてになりませんよ。
Re: 印刷中断機能について  うー - 2006/11/14(Tue) 16:20 No.2616

お忙しいところお手数おかけしました。
別の方法を検討してみます。。。

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

CR8 + CR11  KiKi - 2006/11/14(Tue) 13:53 No.2615

はじめまして。
CrystalReports V8 と V11 は、供用できるのでしょうか?

VB6 +SP6  + CR8(RDC) で開発をおこなっていますが
納入先の機械に CR11がインストールされているようなので・・・・・


画像の切り替え  なお - 2006/11/13(Mon) 13:26 No.2605

OS:XP、VS2005、バンドル版のクリレポ


いつもお世話になっております。
各データによって異なる画像をクリレポで印刷しようと思っています。
簡単にいうと顔写真付の社員名簿みたいなものです。
詳細にピクチャーを貼り付けたのはよいですが
データ毎に画像を変更したのですが、変更できるようなプロパティとかが
ありません?
一度、ピクチャに画像を貼り付ける変更できないのでしょうか?
もし可能な場合、サンプルソースとかみたいのがあれば幸いです。

Re: 画像の切り替え  NZ-000 - 2006/11/13(Mon) 15:16 No.2608

画像データはどっから持ってくるのですか?データベース?それともデータセット?それとも・・・
画像データがすでにそれらデータソースに収まっているなら話は早いのです。
画像の入っているデータベースフィールドをデザインにドラッグ&ドロップすればBlobFieldObjectが作成され、画像の表示が行えると思います(やったことなし)。
これなら自動的にデータ毎に画像が変更されることでしょう。

しかし、なおさんの場合画像データはフォルダなどに収められていてデータベースに入ってないとお見受けします。
そういう場合、OLEオブジェクトを使用します。
こいつの書式設定を開いてやるとピクチャタブに保存場所の項目があるはずです。
この項目は条件付書式設定が使えるのでそこで画像のURIを指定します。

もし、データ毎に画像を変更したいのなら、ファイルパスを収めたテーブル(データベースでも、データセットでもよい)を用意し、社員テーブルからリンクし、ファイルパスを収めたフィールドにアクセスできるようにしておきます。そのフィールドを保存場所の条件付書式設定で指定すれば良いでしょう。

とりあえず、このあたりをキーワードにがんばってみて、どこまでできてどこができないのかを明確にしてみてください。

複数出力プリンタの設定方法  ぴょん - 2006/11/10(Fri) 13:04 No.2603

皆様、はじめましてぴょんと申します。
よろしくお願い致します。


運用環境は、WebサーバーがIIS、ASP.NET、開発言語はVS2003(VB)、CrystalReport10です。


Webサーバーから直接プリンタに出力する形式で、連続帳票15×6の伝票を出力しています。
今回、プリンタ台数を増やす計画があり(増設するプリンタは、型式、ドライバもばらばら)、クリスタルレポートのプリンタ設定の登録に苦慮しております。以前、クリスタルレポートのプリンタ設定で登録してあるプリンタとは別のプリンタに出力しようとしたら、改ページが微妙にずれてしまったことがあるからです。
なお、出力先のプリンタは、マスタに登録しログインユーザー別に設定する予定です。


なにかよい方法はないでしょうか。
何とぞご教授頂きたく、よろしくお願い致します。


行番号のリセットについて  なお - 2006/11/07(Tue) 11:22 No.2593

グループ毎に新しく詳細部に印字する行番号を新しくふりなおしたいのですが
RecordNumberを使用するとグループが変わってもリセットされず前の情報を引き継いで
番号が印字されます。
何か簡単に行番号を振り直す方法とかありますでしょうか?
Re: 行番号のリセットについて  NZ-000 - 2006/11/07(Tue) 11:36 No.2594

RecordNumberは振りなおせませんね。

代わりに行をカウントする式フィールドを用意してはいかがでしょうか。
Re: 行番号のリセットについて  なお - 2006/11/09(Thu) 10:38 No.2600

レスありがとうございます。
具体的にどのようにコーディングしたらよいのでしょうか?
あと、式の変数ってグルーバルなのでしょうか?
なんかどうも処理している最中はよいですが
再度、式をコールすると変数はクリアされていますよね?
Re: 行番号のリセットについて  NZ-000 - 2006/11/09(Thu) 11:25 No.2601

CrystalReportsで使う専用のスクリプト言語(Crystal構文)で用いる変数のスコープは三種類あります。
それぞれ次のような役割を果たします。
・Global (グローバル変数)
 宣言したレポートで変数が共有されます。


・Shared (共有変数)
 現在のレポートおよびサブレポートで変数が共有されます。
 最も効果範囲の広いスコープです。


・Local :(ローカル変数)
 変数が定義されている式の中でのみ共有されます。


何も宣言しなければGlobalとして扱われます。


以下のようにグループ毎にレコードをカウントするような式フィールドを用意します。
//グループヘッダーに以下の式フィールドを挿入
@レコードカウンターのリセット//非表示にしておく。
WhilePrintingRecords;
numberVar RecordCounter:=0;


//詳細に以下の式フィールドを挿入
@レコードカウンター //非表示に・・・せんでもいいのかな。
WhilePrintingRecords;
numberVar RecordCounter;
RecordCounter := RecordCounter + 1;


あとはこの@レコードカウンターをRecordNumberの代わりに使えばよいと思います。

Re: 行番号のリセットについて  なお - 2006/11/09(Thu) 11:44 No.2602

細かい説明ありがとうございます。
これで試してみます。
ありがとうございました。


Crystal Reports XI のロゴを消すには?  菜実 - 2006/11/04(Sat) 15:13 No.2588

こんにちは。
クリスタルレポートXI Release2とVisualStudio 2005(C#)でWindowsアプリケーションを作成しています。
フォームに組み込んだCrystalViewerの右上にある「BusinessObjects」のロゴを非表示にしたり、別のロゴイメージを表示したりすることはできないのでしょうか。

ロゴではないけれど、タブとかを非表示にしたり変更したりしているサイトは見つけたんですけれど・・・
(過去ログも探してみましたが、うまく情報を得られませんでした。)
お分かりになる方がいらっしゃいましたらよろしくお願いします。

開発環境
・WindowsXP SP2
・VisualStudio2005(C#)
・Crystal Reports XI Developer Release2

Re: Crystal Reports XI ・..  NZ-000 - 2006/11/07(Tue) 11:18 No.2592

Web用のビューアはロゴの表示/非表示がプロパティで可能ですがWindowsアプリケーション用にはないようですね。
次のようにするしか方法はないのかもしれません。


以下のコードは適当に書いてみたテストコードです。
要はCrystalReportViewerをコントロールオブジェクトに分解してロゴを表示しているToolStripLabelオブジェクトを取得しています。
あとはそのラベルオブジェクトを煮るなり焼くなり・・・
(ちなみにCrystalReportViewerのツールバーは18個のToolStripItemから構成されていてロゴは18個目です。)
こんなふうにすれば色々とカスタマイズできるかと思います。


private void button1_Click(object sender, EventArgs e)
{
    List<System.Windows.Forms.ToolStripLabel> lbls = new List<ToolStripLabel>();
   
    // コントロールオブジェクトに分解
    foreach (Control ctl in crystalReportViewer1.Controls)
    {
        // ツールバーを取得
        if (ctl.GetType().Equals(typeof(System.Windows.Forms.ToolStrip)))
        {
            System.Windows.Forms.ToolStrip strip = (System.Windows.Forms.ToolStrip)ctl;
            // ツールバーをアイテムに分解
            foreach (ToolStripItem item in strip.Items)
            {
                // ラベルを取得
                if (item.GetType().Equals(typeof(System.Windows.Forms.ToolStripLabel)))
                {
                    lbls.Add(item);
                }
            }
        }
    }
   
    Bitmap bmp = new Bitmap("logo.jpg");
    lbls[1].BackgroundImage = bmp; // ラベルは2個あってそのうちの2番目がロゴを表示しているラベルです。
    //lbls[1].Visible = false;
}

Re: Crystal Reports XI ・..  菜実 - 2006/11/07(Tue) 19:49 No.2599

NZ-000様
早速のご返事ありがとうございます。
お示しいただいたソースを参考に、挑戦してみます。
非常にわかりやすく、書いていただきましたのでプロパティーで設定できない部分もコードでカスタム可能なことがよくわかりました。
(CrystalReportsは便利に使わせてもらっているんですが、トライアル版ならともかく購入後も、作成したアプリケーションにロゴが表示されているのがしっくりきませんでした・・・)

今後ともよろしくお願いします。


プレビュー時のフィールド説明を無効化したい  キュウリ - 2006/11/06(Mon) 19:36 No.2590

皆様、はじめましてキュウリと申します。
よろしくお願い致します。


[ 開発環境 ]
・Windows2000
・VisualStudio2003 C#
・CrystalReports for VisualStudio .NET
・Access2000


[ 質問内容 ]
現在、mdbから情報を抽出、
抽出した情報をプレビューに表示(CrystalReportViewerを使用して表示)する所まで
作成したのですが、プレビューに表示された帳票の情報にマウスカーソルを合わせると、
オブジェクトの名前が表示されてしまい困っています。
※ITextObjectにカーソルを合わせると"テキストオブジェクト"、
 IFieldObjectにカーソルを合わせると"OLEオブジェクト"又は"オブジェクト名(例:fldText)"と
 カーソル下に表示されてしまいます。


之までにrptファイル、CrystalReportViewerコントロールの
関係のありそうなプロパティの設定を変更してみたのですが、
カーソルの下にオブジェクト名が表示されなくなる事はありませんでした。


カーソルの下にオブジェクト名を表示させない方法をご存知でしたら、
何とぞご教授頂きたく、よろしくお願い致します。

Re: プレビュー時のフィー...  NZ-000 - 2006/11/07(Tue) 08:28 No.2591

おはようございます。
以下の手順を試してみてください。

1. クリレポのデザインで表示させたくないフィールドの書式設定を開きます。

2.[共通]タブの「ツールヒント テキスト」の条件付き書式設定を開きます。
 (右にある[x+2]みたいなボタンを押し、式エディタを開く)

3.以下の式を挿入します。
WhilePrintingRecord;
Chr(9);
プレビュー時のフィールド説明を無効化したい  キュウリ - 2006/11/07(Tue) 17:59 No.2598

NZ-000さん、こんばんはキュウリと申します。
教えて頂いた手順で表示されないようになりました。
本当にありがとうございます、助かりました。

一点だけ手順3の『WhilePrintingRecord』は、
『WhilePrintingRecords』でなければ、エラーではじかれてしまいました。
今後他の方が見た時の為に訂正文を記述しておきます。

最後に、くり返しになりますが、本当に助かりました。
本当にありがとうございます。

重複非表示  道夫 - 2006/11/05(Sun) 21:23 No.2589

こんにちは。
クリスタルレポートで重複非表示をグループをまたいで行いたい場合にどうすればよいか教えてください。

グループ 日付
[日付]
グループ No
グループ Sub-No
詳細
[No](重複非表示) [Sub-No](重複非表示) [内容]
グループフッダ Sub-No
(スペース)
グループフッダ No
---------------
グループフッダ 日付
========


6/1
001 1 ああああ
       いいいい

    2 うううう
       ええええ

---------------
002 1 おおおお
       かかかか

    2 きききき
       くくくく
========
6/1
001 1 ああああ
       いいいい

    2 うううう
       ええええ




と出力したいのですが、
グループフッダ Sub-No
(スペース)
があるせいか
6/1
001 1 ああああ
       いいいい

001 2 うううう
       ええええ

と001が表示されてしまいます。
出力しないようにするにはどうすればいいでしょうか。

ちなみに非表示に式を設定して出力しないようにしてみたら、
改ページ後に出力されなくなってしまいました。
Re: 重複非表示  NZ-000 - 2006/11/07(Tue) 17:44 No.2597

>ちなみに非表示に式を設定して出力しないようにしてみたら、
>改ページ後に出力されなくなってしまいました。

その式の内容が知りたいところですが、改ページ後は重複してても表示したいということなんでしょうか?
通常ですと、対象のフィールドの非表示設定の条件式に以下のような式を入力しますかな。

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

.NETのCrystal Reportについて  marino - 2006/10/24(Tue) 11:36 No.2568

こんにちは。

今、.NETのクリスタルレポートを使って帳票を作成しています。
それで、「詳細(Section3)の中の特定の条件に一致する行の背景色を変える」
ということをしたいのですが、そういうことができるのかどうかもわからず困っています。

特定の条件というのは、
データセットのあるフィールドの値が「***」のとき、その値が含まれる行(Boxを使用しています)の背景色を変える
ということです。

開発言語はC#です。

クリスタルレポートについてはかなり初心者なので、説明の意味がよく分からないかもしれませんが、
どなたかご存知の方がいっらっしゃいましたら、お力をお貸しいただけたらと思います。

よろしくお願いします。
Re: .NETのCrystal Report...  MJQ - 2006/10/31(Tue) 16:15 No.2586

レポートのデザインを開き色を変えたい項目で「右クリック」「フィールドの書式設定」から「境界線タグ」をクリックし
「背景」にチェックを入れ右の条件式ボタンをクリック。
開いた式エディタの書式に、例えば
if {あるフィールド}="***" then
crSilver
else
crwhite
と入力して式を保存すると、この条件の時だけ背景がグレーになります。
この方法で一つ一つの項目の背景は変えられると思います。
行全体を変えるにはこの方法を使って力ずくでやるってことですかねぇ・・・。
他にも方法があるのかも知れませんが、一つの方法としてどうでしょうか。

Re: .NETのCrystal Report...  marino - 2006/11/07(Tue) 16:44 No.2595

MJQさん、
返信がとても遅れてしまい、申し訳ありません。

if {あるフィールド}="***" then
crSilver
else
crwhite

で試したところ、上記で指定した一つフィールドの色の変更はできたのですが、
それ以外のフィールドは変更できませんでした。

でも、このような指定ができるということもわからなかったので、
とても勉強になりました。

ありがとうございます。

もう少し模索してみようと思います。
Re: .NETのCrystal Report...  NZ-000 - 2006/11/07(Tue) 16:57 No.2596

条件付書式が設定できるオブジェクトは限られているので大変そうですね。
セクションエキスパートで詳細の項目を見ると「色」タブがあります。そこで詳細ごとの背景色変更ができそうです。
詳細まるごと変えたくないんだよって場合だと、そうですね、例えば、
詳細セクションを二つに分けて上のセクションで背景を準備、下のセクションをアンダーレイしまして、上セクションの非表示設定を利用して
背景をつけたり消したりとか。。。

クリスタルレポート10でSQLQuery  雪乃 - 2006/10/26(Thu) 17:44 No.2573

開発環境
・クリスタルレポート Ver.10
・VB.Nett 2003

こんいちわ。
雪乃と申します。

現在、クリレポ4.6から10への移行を行っております。
クリレポ4.6では、コード上でSQLQueryプロパティを使用し
SQLを指定していたのですが、
クリレポ10では、SQLQueryプロパティがなくなったのでしょうか?

クリレポ11では削除されたという情報があったのですが
10の情報を見つけることができませんでした。

ご存知の方がいらっしゃいましたら
教えて頂けると幸いですm(_ _)m
また、同等の機能は存在するのでしょうか?

宜しくお願い致します。

Re: クリスタルレポート10...  24x7 - 2006/10/27(Fri) 00:08 No.2579

4.6で使っていた手法(OCX)は、CR10では利用できまん。VB.NET2003を開発言語に利用するなら、.NETコンポーネント、又は、CR10 RDC を利用することになります。 
Re: クリスタルレポート10...  雪乃 - 2006/11/01(Wed) 13:50 No.2587

24x7様

返信ありがとうございました。
やはり4.6で使っていた手法は利用できないのですね。。。

.NETコンポーネント、又は、CR10 RDC を利用して
作りなおそうと思っています。
CR10 RDC等で作成した経験がないため
行き詰まってしまったときには、また助言を頂ければと思います。
宜しくお願い致しますm(_ _)m

コード上からの接続先の変更  matton07 - 2006/10/14(Sat) 16:19 No.2540

開発環境
・クリレポ Ver.10
・VB.net 2003
・Oracle 10.2 (ODBC (RDO) 接続)

まず、レポートを作成します。 userA スキーマのtableAをベースにレポートをデザインします。
VB.net のコード上から userA と 適切な ODBC-DSN を指定し、正常に出力される事を確認しま
した。

次に、ユーザ情報として userB を VB.net のコード上から与えてやり実行しますが、userA の
tableA からしか読み込まれません。
レポートファイルは デザイン時に指定した userA の tableA を指定したままで、変更していま
せん。


ここで、userB とは userA のテスト的環境であり tableA を含めて同様の構成内容を保持して
います。本番環境に投入する前にテスト環境 userB で十分なテストを実施したいのです。



vb.net のコードを組むのに参考にしたサイトは


Q: データベースとの関連付けをコード上で指定する方法。
ttp://japan.businessobjects.com/support/crystalreports9/faq_dotnet.asp#net_database


の「SQL タイプのデータベースあるいは、ODBC 経由の場合の記述例」です。



ヒントでも頂ければ幸いです。

Re: コード上からの接続先...  k-jac - 2006/10/26(Thu) 11:37 No.2570

同様の現象で困ってました。
本番用、テスト用で2種類のレポートを用意したりしてましたが、
以下の方法で解決できました。
原因は、レポートに追加したテーブル情報の中に所有者が保存されており、
そこが動的にならないことが問題のようです。
対象のテーブルをAccessのMDBにインポートし、
Access用のDSN(@)を作成し、データベースの保存先を@で更新し、
レポートを更新します。(このときにマッピング情報が出なければ、問題なく
更新できているということになります。)
完了後、テーブル情報を確認すると、所有者の項目が消えています。
その状態でレポートを保存し、@をOracleなり他のDBに
変更すると、なんと出力可能となります。
当然DSNはプログラムから渡せますので、DSNはなんでも可です。
対象DBにそのテーブルがあるかないかだけの問題となります。
(ちなみにクリスタルレポート8.5以前は、所有者の項目がありませんでした。)

今私が困っているのは、255カラムの制限を越えているテーブルがあり、
上記の方法で対応できないものがあるからです。
(そんなテーブルがあること自体問題ですが...(^^;)
なんとかレポート参照テーブル情報から所有者項目のみを消すことは
できないものでしょうか...。
Re: コード上からの接続先...  k-jac - 2006/10/26(Thu) 11:41 No.2571

余談ですが...
(ちなみにクリスタルレポート8.5以前は、所有者の項目がありませんでした。)

8.5のときは、SQLの編集が出来たと思います。そこでテーブル名の前に付く
所有者情報を消してましたね。
(xxx.テーブル名のxxx.の部分を)
バージョン10とか11ではSQLを表示できるだけの機能になってしまい、
編集ができなくなってしまいました。
SQLを編集できる方法とかあいでしょうかねぇ...?

Re: コード上からの接続先...  k-jac - 2006/10/26(Thu) 17:15 No.2572

たびたび...。

>方法とかあいでしょうかねぇ...?

方法とかないでしょうか?
タイプミスでスミマセン。

とりあえず、SetNthTableLocationにてロケーション変更が可能だったので、
出力制御プログラム側でなんとかできました。

クリレポのデザイン上ではやっぱし無理なんでしょうかね...。

Re: コード上からの接続先...  matton07 - 2006/10/30(Mon) 09:38 No.2584

よもや返信がつくとは思わなかった為、反応が遅れてしまいました。
申し訳ございません。

ご発言頂いた内容を基に、Access MDB 上にインポートし、保存場所をそちらにして試したところ、コードから指定したユーザに切り替える事ができました。
ありがとうございます。

保存場所の所有者情報をクリアする場所は確かにみつかりませんね。
API ですか・・・。.NET だけの世界でなんとかならないものなのでしょうか・・・。

Crystal Reports 10 (9 や 11 はよく分からないのですが) は、
レポーティングツールでありながらVB.NET等と連携させたいと思ったときの、
機能面の弱さが不満でしかたありません。(印刷設定とかもそうですが)

Re: コード上からの接続先...  matton07 - 2006/10/30(Mon) 10:00 No.2585

>>機能面の弱さ 〜
自分が知らないだけなんでしょうね。

標準レポート作成ウイザード  vits - 2006/10/27(Fri) 17:52 No.2582

はじめまして、Crystal Reports初心者です。


以下の内容で開発をしています。
@Crystal Report XI
AOracle 9i(9.0.1)client
BDelphi4


ファイル→標準レポートを選択し、標準レポート作成ウイザードを起動したとき、
接続先の新規作成の中にoracleサーバが存在しません。(表示されません)


試しにoracle 10gのクライアントをインストールすると、oracleサーバが表示され、
選択可能になります。


どのようにしたらoracle 9iで接続先の新規作成の中にoracleサーバを表示させ、
使用することができるでしょうか?


大変困っています。
ご教授の程お願いいたします。

Re: 標準レポート作成ウイ...  kote - 2006/10/29(Sun) 13:42 No.2583

Crystal Report XIでは、Oracle Client9.2以上でなければOracleServerは
サポートしていないはずです。
ODBC接続にするか、あるいはClientのバージョンを9.2に上げるかですね。

部数印刷時のタイトル  Kyle - 2006/10/26(Thu) 18:15 No.2574

こんばんは、いつも参考にさせていただいております。

 CrystalReportXI+VB6(SP6)の環境で使っております。

印刷する際に、部数指定を行い2部出力しようとします。

その際に、
 1番目には、<売上>
 2番目には、<売上控え>

 という具合に文字列をページヘッダーにセットしたいのですが帳票側で
それを判別させる方法がわかりません。2部目を判別するには、どうしたら
(どの関数を使えば)よいのでしょうか?
Re: 部数印刷時のタイトル  24x7 - 2006/10/26(Thu) 23:54 No.2578

部数指定では実現できないと思います。同一処理を2回繰り返して、2度目にテキストの内容を変更する手法がいいと思います。

Re: 部数印刷時のタイトル  Kyle - 2006/10/27(Fri) 15:15 No.2581

 部数を帳票内で確認することは、不可能ということですね・・。
作り出す前に検討しておかなかった私のミスでした。2セットのデータを
送るような形で、印刷テーブルと帳票の設計を変更する方向で検討します。


ありがとうございましたm(_ _)m。


印刷方法について  トム - 2006/10/26(Thu) 19:00 No.2575

はじめまして、トムと申します。


データベースから取得した値を
以下のように印刷を行いたいのですが


【1ページ目】
----------------------------
商品名:XXXXXXX
価格:XXXXXXXXX
消費税:XXXXX
備考:
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
----------------------------


【2ページ目】
----------------------------
商品名:YYYYYYY
価格:YYYYYYYYY
消費税:YYYYYYY
備考:
YYYYYYYYYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYYYYYYYYY
----------------------------


どのようにすれば宜しいのでしょうか?
ご教授の程お願いいたします。

Re: 印刷方法について  24x7 - 2006/10/26(Thu) 23:52 No.2577

レポートの詳細はわからないけど、商品名でグループ化して、グループ毎に改ページすることでできませんか。セクションエキスパートからグループフッターの「出力後に改ページ」の項目をチェックすることでできます。
Re: 印刷方法について  トム - 2006/10/27(Fri) 11:36 No.2580

24x7さん

ご返答ありがとうございます。
「出力後に改ページ」の項目にチェックしたら無事出来ました。

ご教授ありがとうございました!


環境の違いによる帳票プレビューについて  taka2 - 2006/10/24(Tue) 16:04 No.2569

はじめまして
現在
開発環境:VisualStudio.net2003(vb.net)
クリスタルレポート:.net2003付属
DB:MSDE2000SP4
で帳票を作成しております。

レポート内にサブレポートを使用しております。
このサブレポートの詳細セクションの書式で【共通】タブの【複数列で書式設定】にチェックを入れ、
【レイアウト】タブの印刷方向枠で【横から縦】を選択する

開発環境ではサブレポートは横へ印刷されるのですが、実行環境端末といいますか、リリース環境端末では縦に表示されています。
先日まで縦だったものを横に変えたのですが、開発環境は横に出て実行環境はたてに出てしまいます。

また、実行環境のビューアでは【拡大】などのボタンに表示されるpopupの内容や、コンボボックスの項目が英語で表示されています。

どなたかご存知の方、経験のある方いらっしゃいましたらご教授お願い致します。
よろしくお願い致します。
Re: 環境の違いによる帳票...  taka2 - 2006/10/26(Thu) 19:40 No.2576

マージモジュールのインストールで解決できました。
お騒がせ致しました。


ソート結果相違による印刷順が変わる  tenkuro - 2006/10/16(Mon) 10:31 No.2545

Ver8で製作したレポートをXIで出力した際に起きた現象その2です。
SQLのORDER BYでのソート結果が8とXIでは違うため、印刷順が変わってしまいます。これもバージョンアップによって何かしようが変更になったために起こる現象なのでしょうか?回避方法は存在するのでしょうか?何か情報をいただければ幸いです。
環境:OS WIN2000 DB ACCESS2000

管理者様、操作ミスにより2重投稿となってしまいました。
削除を試みたのですが、うまくいきません。お手数をおかけしますが
できれば削除をお願いいたします。
申し訳ございませんでした。
Re: ソート結果相違による...  24x7 - 2006/10/16(Mon) 23:18 No.2548

同一データベースでソート順が異なった経験はありませんがUNICODEをサポートしたことでデータベースドライバーも変化したのでしょう。
Re: ソート結果相違による...  tenkuro - 2006/10/19(Thu) 15:10 No.2555

少々調査不足の状態でお伺いをたててしまったようです。
その後判明したことは、まず同じアクセスMDBを使用して、表示結果が違うこと。
ソートはグループまでで、帳票上の項目を並べかえる操作は行っていない。
(ページレベルでのソートで、行に対してはソートを行っていない)
表示順は、Ver8の場合DBへの登録昇順、XIは登録降順で表示されるということです。
スキル不足により使用中のDBドライバの違いを確認するにいたっておりません。
これもVer8と同じ状態にしたいと考えているのですが、手法に関して皆目見当がつかない状態です・・・

Re: ソート結果相違による...  tenkuro - 2006/10/19(Thu) 15:12 No.2556

ちなみにXPでも同じように表示されました。
また、なぜかVer8でSQLの表示ができないのでSQLレベルでの相違を追っかけられないでいます。
Re: ソート結果相違による...  24x7 - 2006/10/20(Fri) 14:55 No.2560

Access データベースで同一テーブルからクエリーを作成して、その表示されたデータのソート順は、XIのレポートのソート順と同じになりますか。Accessデータベースの場合、直接テーブルを参照しているのでなく、クエリーに置き換えていると聞いたことがあります。

Re: ソート結果相違による...  tenkuro - 2006/10/23(Mon) 09:29 No.2564

クリレポでSQLを表示し、そのSQLをAccessのクエリーに貼り付けて実行すると、同一の結果が得られます。ただし、8の方でSQLの表示方法がわからないため、XIでしか確認できておりません。

Re: ソート結果相違による...  24x7 - 2006/10/24(Tue) 08:48 No.2566

Accessのクエリーの表示結果が同じなら、やはり、XIでクエリーを利用しているわけですね。Version8では、Accessデータベース ファイルを直接利用している場合、SQL文を見ることはできません。ODBC又は、OLEDB接続なら可能ですが・・
Re: ソート結果相違による...  tenkuro - 2006/10/24(Tue) 11:36 No.2567

レポートファイルの仕様上、どうやらソート項目を追加する修正を加えないと、回避できないようです。

いつも丁寧なご回答ありがとうございました。


| 1| 2| 3| 4| 5|