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

一番後ろへ  のびた - 2005/02/14(Mon) 12:07 No.519

いつもご利用させて戴いてます。
会社では、良く分かっていない状態でレポートのカスタマイズをやっているものです。
(教えてもらえる人が会社にいない状態で・・・)

質問です。ある条件で網掛けを出るようにしている式があるのですが、
別のいろんなフィールトと重ねて出そうとしています。
しかし、網掛けの上に出るものもあれば、下に隠れてしまうフィールドがあるのです。
すべてのフィールドは上に表示させたいのですが、どうもできません。

「一番後ろへ」というメニューがありますが、パワーポイントなどのような
「前面に移動」とか「背面に移動」と同じ意味ではないのでしょうか??

よろしくお願いします。
Re: 一番後ろへ  さかもと - 2005/02/15(Tue) 11:48 No.523

同じ意味だと思いますが,
ひょっとしてどこかのフィールドの式で表示させているのかも
しれませんのでそこの辺りを確認されていは如何でしょうか?
Re: 一番後ろへ  のびた - 2005/02/16(Wed) 14:19 No.524

了解しました。
確認します。

ありがとうございした。

DataSetの使用方法  oka - 2005/02/13(Sun) 16:22 No.517

はじめて書き込みします、okaと申します。
Windows2000 VB.NET 2003 WindowsFormにて作成中です。
CrystalReports2日目にしてすごく悩んでいますので、どうかお力をお貸しください。

今やろうとしていることは、データベースから取得したデータをいったんデータグリッドにおとして、データグリッドの表示内容を印刷するというものです。

そこで、データベースの値自体はDataSetにFillメソッドにてセットしてある状態で、それをこのような感じでデータセットをレポートに渡しています。

       Dim cr As New crTest  ←レポートインスタンス作成
        cr.SetDataSource(ds)  ←データセットをレポートのデータソースにセット
        CrystalReportViewer1.ReportSource = cr

このホームページでご紹介されている通りにやってみると、無事クリスタルレポートのビューワーにデータが表示されるのですが、XMLスキーマ作成用のxsdファイルを使わずに、プログラムで
        private ds as DataSet
        ds = new DataSet("商品マスタ")

 のような感じで作成済みのDataSetオブジェクトを使用したいのですが、その場合ビューワーの詳細セクションにデータが表示されず困っています。

すごく初歩的なことなのかもしれませんが、いきなりつまづいてしまい先に進めず困っています。ご存知の方がいらっしゃれば、どうかご教授いただけないでしょうか?
よろしくお願いいたします。

無題  しゅん - 2005/02/10(Thu) 10:42 No.514

はじめまして

クリスタルレポート9.0
Java1.4で開発しています。

詳細部分にサブレポートを用いた情報を表示させていますが、
サブレポートで改ページがあるとレイアウトが崩れてしまいます。
改ページがあるとき、サブレポートのみ改ページさせたいのですが何かよい方法があれば教えてください。
Re: 無題  Kimberly - 2005/02/11(Fri) 23:49 No.516

しゅん様

どんなデザインのレポートか文面だけではわかりませんが、サブレポート内で複数ページに跨って表示するデータ量の場合、メインレポートのデザインは崩れてしまいます。決定的な解消方法はありませんが、サブレポートの必要性を考えることと
詳細セクションには、サブレポートは挿入しない方がよいと思います。
詳細セクションにサブレポートを挿入するとメインレポートのデータ1件毎にサブレポートで利用しているデータベースに接続するため、負荷が大きくなります。


改ページ、アンダーレイについて  初心者 - 2005/02/07(Mon) 13:22 No.502

はじめまして。
私もクリスタルレポートで専用帳票を作成しております。
http://japan.crystaldecisions.com/support/crystalreports9/faq.asp#rcon_line
を参考にして作成しております。
帳票の形式は、

グループヘッダー#1a
グループヘッダー#1b(アンダーレイ)
詳細(7行以上だったら改ページ)
グループフッター

です。
今のところ、詳細が、7行みまんだったら、改行せずに7行分あけて、グループフッターが表示されます。
7行以上だったら、改ページをし、グループフッター、詳細グループヘッダーが表示されるようにしてあります。

ここで、たすけてほしいのが、
詳細が7行以上だった場合、次のページで、グループフッター、詳細が表示されるのはいいんですが、7行分の空白をあけて、グループフッターを表示させたいのに、つめられてしまいます。
詳細が7行未満の時は、きちんとアンダーレイがきいているのかつめられず、空白があるのに・・・・。
アドバイスお願いします。
環境は、VisualStdio.net2003
言語 C#
win2000
です。
よろしくおねがいします。
Re: 改ページ、アンダーレ...  Kimberly - 2005/02/09(Wed) 00:53 No.509

初心者様

このレポートの場合、グループフッターを利用して空白行を挿入します。
VS.NET2003のバンドル版ではメニューが違うかもしれませんが・・
グループフッター上で「セッションの下に挿入」を5回繰り返して実行してください。
詳細は、5行で試したので5回です。7行であれば、7回繰り返します。
GF1a,GF1b,GF1c,GF1d, GF1e が挿入されるはずです。
一番したのグループフッターに表示させたい内容を挿入します。
それ以外のグループフッターは、ダミーとして利用するので空白のままとします。

一番下のグループフッター以外は、セクションエキスパートから「非表示」項目の条件式に非表示させる条件を挿入します。(チェックは不要です。)
メーカーのサイトのサンプルでは、余りの計算式を利用しているので、
その余りで空白行がいくつ必要になるか判断する式を挿入します。
詳細5行の場合、以下のように実現できる式を考えます。
(例)
空白1行 GF1a のみ表示させる
空白2行 GF1a、GF1b を表示させる
空白3行 GF1a、GF1b、GF1c を表示させる
空白4行 GF1a、GF1b、GF1c、GF1d を表示させる
最後に、GF1eを表示させます。

例えば、GF1a の非表示の条件式には、以下のような式を挿入します。
{サイトのサンプル式} = 1

各グループフッターに余りの値を表示する式フィールドを挿入しておくと、
この非表示の条件式を考える上で役立つと思います。

Re: 改ページ、アンダーレ...  初心者 - 2005/02/09(Wed) 12:49 No.512

Kimberly様

上記の方法で、無事レポートを完成させることができました。
どうもありがとうございました☆また何かありましたらよろしくおねがいいたします。

クリスタルレポートの型?  匿名 - 2005/02/07(Mon) 18:03 No.505

空のクリスタルレポートを定義したいのですが、どういった型で定義すればいいのか分かりません。
どなたかご存知でしたら教えていただけませんでしょうか?

Re: クリスタルレポートの型?  Kimberly - 2005/02/08(Tue) 12:48 No.506

匿名様

物理的にデータベースの接続なしでレポートをデザインすることは可能です。
この場合、フィールド定義ファイルを利用します。
この掲示板のどこかに書いた記憶があるけど。。
空のレポートの意味が不明なので回答が当てはまるかわかりませんが?
あと、Crystal Reports のバージョンを書いたほうが的確な情報を取得できると思います。
Re: クリスタルレポートの型?  匿名 - 2005/02/08(Tue) 14:07 No.508

すみませんでした。
環境は、VS.NET2003のおまけのクリスタルレポートで言語はC#です。

最初に空のレポートを定義しておいて、
その後条件に応じたレポートを投入したいのです。
どのように定義したらよいのでしょうか?
Re: クリスタルレポートの型?  Kimberly - 2005/02/09(Wed) 01:00 No.510

匿名様

VS.NET2003 の Crystal Reports では、新規にフィールド定義ファイルを作成できないようなので。。予めNOTEPADでファイルを作成する必要がありますね。
以下は、以前に書き込みした時の内容を流用します。
F1  Number          1111
F2  String    50     AAAA
F3  String    50     ああああ
1番目は、フィールド名、2番目は、データタイプ、3番目は、長さ、4番目は、サンプルデータです。
これを ttx 拡張子でファイルに保存して、「その他のデータソース」-「フィールド定義のみ」を選択すれば、このフィールド定義ファイルからレポートをデザインすることができます。
その後、実際に物理データベースに接続する方法は、.NET 勉強不足のためわかりません。
Re: クリスタルレポートの型?  Kimberly - 2005/02/09(Wed) 08:05 No.511

匿名様

以下のサイトにサンプルのコードがありました。
http://support.businessobjects.com/library/kbase/articles/c2013561.asp

無題  匿名 - 2005/02/08(Tue) 14:06 No.507

すみませんでした。
環境は、VS.NET2003のおまけのクリスタルレポートで言語はC#です。

最初に空のレポートを定義しておいて、
その後条件に応じたレポートを投入したいのです。
どのように定義したらよいのでしょうか?

無料出会い系体験 ero*style?  無料出会い系体験 ero*style? - 2005/02/07(Mon) 15:17 <URL> No.504

ero*エロあやの無料出会い系体験ブログ、もう見てくれました?あやは昨日と今日お休みだからセックスフレンドとかメル友探しに没頭してます。。。今日あやと会ってくれる人いたら嬉しいなぁ♪♪ わたしはメールの内容重視だからよろしくね! http://box.elsia.net/~joshikousei/

改行の方法  しゅう - 2005/02/07(Mon) 10:36 No.500

はじめまして。クリスタルレポート初心者です。
開発環境
Crystal Reports9.0
Java
Win2000

1レコードを指定行数で改ページしたいのですが方法がわかりません。
どなたか、知っている人がいればご教授ください。
Re: 改行の方法  さかもと - 2005/02/07(Mon) 12:52 No.501

http://japan.crystaldecisions.com/support/crystalreports9/faq.asp#rcon_line
この辺りを参考にすれば出来るはずです。

クロス集計を用いた表  i0buzz - 2005/02/03(Thu) 01:20 No.497

こんにちわ。

クロス集計を用いた表での質問があります。

縦横共に5x5の表があり、
上から順に、<都道府県>、<氏名>、<年齢>、<性別>、<職業>
が表示されます。

レコード1:<東京都><山田太郎><24><男><会社員>
レコード2:<東京都><山田花子><23><女><学生>
レコード3:<神奈川県><田中太郎><25><男><会社員>
レコード4:<埼玉県><山本太郎><29><男><会社員>
レコード5:<東京都><鈴木花子><27><女><会社員>

というレコードがあった場合、実際に出力されるのは

東京都            神奈川県  埼玉県   東京都
山田太郎  山田花子   田中太郎  山本太郎 鈴木花子
24      23        25      29     27
男      女        男             女
会社員   学生       会社員

という風に、隣り合った部分(セル)が同一の値の場合、
マージされてしまいます。
これを、

東京都   東京都      神奈川県  埼玉県   東京都
山田太郎  山田花子   田中太郎  山本太郎   鈴木花子
24      23        25      29       27
男      女        男      男       女
会社員   学生       会社員   会社員    会社員

の様に出力するにはどうしたら良いのか、判らず、
投稿させて頂きました。

どなたかご存知の方、お知恵をお貸し下さい。
宜しくお願い致します。

SQLQuery プロパティ  Kopt - 2005/02/01(Tue) 18:57 No.496

初めまして、教えてください。

VB6よりクリレポ8で帳票印刷しております。
今まではVBのソース内で SelectionFormula プロパティを用いて条件を
クリレポに送っていましたが帳票印刷が遅いために SQLQuery プロパティ を
用いるようにしました。

まず開発環境でテストすると今までより数倍早く印刷されました。
次に総合試験環境でテストすると クリレポのエラー20534 (サーバがみつかりません)とゆうエラーが返ってきました。

開発環境と総合試験環境はDB名、スキーマ名、ユーザ名と違いますが
VBよりINIファイルを読み込み Connect プロパティ にて
DB情報を送っているので問題ないと思われます。
テーブル名や項目名はどちらも同じなので、これも問題ないと思われます。

今までは開発環境と総合試験環境とも印刷されましたので試しに
VBのソース より SQLQuery プロパティの記述を除くと総合試験環境でも印刷されました。

クリレポのデザイナからはどちらも接続できます。
ただ、クリレポファイルを編集するときに接続していたのは開発環境の方です。

クリレポでどこか設定しなければいけないのか?
VBのソースに何か追加しなければいけないのか?
どなたか教えてください。お願いします。

ちなみにVBのソースです。

   CrystalReportObj.Connect = 接続先
   CrystalReportObj.DataFiles(0) = ビュー名
   CrystalReportObj.ReportFileName = レポートファイル名


    '抽出条件
'    CrystalReportObj.SelectionFormula = 抽出条件   
     ↓に変更(変更したのはここだけです)
    CrystalReportObj.SQLQuery = SQL文


    '実行
    CrystalReportObj.Destination = 0  '0:プレビュー 1:プリンタ
    CrystalReportObj.PrintReport


 


プレビューでの総ページ数  i0buzz - 2005/01/28(Fri) 18:25 No.491

初めまして。
現在、VB6、Crystal Report 9の環境で開発しています。

質問があります。

VBの画面に[印刷]ボタンを配置し、そのボタンをクリックするとCrystal Reportのプレビュー画面が開く仕組みになっています。
その、プレビュー画面で質問なのですが、ページが複数になった場合、
    |< < 1 / 1+ > >|
のように、ページ数が表示されますが、
この総ページ数は、最終ページを開いたときに、総ページ数を表示し、
その後、この総ページ数が表示され続けます。
言い換えれば、最終ページを表示するまで、総ページ数が表示されません。

最初に開いたときから、総ページ数を表示する方法があれば、
どなたか、その知恵をお貸し下さい。

個人的には、クリスタルレポートの仕様のような気はしているのですが、
初心者なので、判らず、投稿させて頂きました。

宜しくお願い致します。

Re: プレビューでの総ページ数  ひびき - 2005/01/31(Mon) 09:03 No.494

これのことでしょうか?
http://japan.businessobjects.com/support/crystalreports9/faq_dotnet.asp#net_crvpage

Re: プレビューでの総ページ数  i0buzz - 2005/01/31(Mon) 11:07 No.495

そうです。ひびき様、どうも有難うございました。
早速今からやってみます。

データセットの生成エラー  匿名 - 2005/01/29(Sat) 10:45 No.492

こんにちは。
環境は、VS.NET2003のおまけのクリスタルレポートで言語はC#です。
質問があります。

入門編の、1、データセットを定義する→2、データセットに値を入れる
というとおりにやってみました。

2、のTable1の新しい行を作成のところで、
・・・ds.Table1
ここのところでTable1が「このメンバは複数回定義されています」という
メッセージがでます。

xmlを作ったときと前の行で生成したのとで2回ということでしょうか?

どうすればいいのかわからないのでよろしくお願いします。
Re: データセットの生成エラー  匿名 - 2005/01/29(Sat) 15:31 No.493

xmlの名前とデータセットの名前を同じにしていたのが
重複になっていたようです。
すみませんでした。

ToTextの使用について  ittoan - 2005/01/28(Fri) 12:06 No.490

はじめまして。
VB6 、 クリレポ8の環境で開発をしています。

教えてください。
とある数字を、あるときはフィールドの数値をカンマ区切り、
あるときは”あああ”のように、文字列変換したいのですが、うまくいきません。

If {aaa.Field} = 0 Then
    "あああ"
Else
    ToText({aaa.fld}, "###,##0")

のように記述すると、”あああ”は問題ありませんが、
カンマ区切り編集するとき、
数値がマイナスで、桁数(上記の場合は6桁)に満たないときに
結果が ”-   1,000" のように、マイナスの部分が変に離れてしまいます。
 ”  -1,000” というかんじが理想なのですが、対処方法がわかりません。

どなたかご存知の方、ご教授ください。

XMLのデータセット  匿名 - 2005/01/25(Tue) 14:44 No.463

はじめまして。
環境は、VS.NET2003のおまけのクリスタルレポートで言語はC#です。
質問があります。

XMLにデータセットしたテーブルをクリスタルレポートに読み込んで、
フィールドを配置します。
その後データセットしたテーブルに項目を追加するなどした場合。
項目が一つ増えただけなのでそのまま更新などして使いたいのですが
うまくいきません。
一からXMLにデータセットし直すと、せっかくクリスタルレポートに
配置したフィールドも消えてしまい、配置しなおさなければなりません。
なにかよい方法はありますでしょうか?

Re: XMLのデータセット  さかもと - 2005/01/25(Tue) 19:48 No.465

さかもとです。
こちらの掲示板の投稿 No.428 と同様の件でしょうか?
Re: XMLのデータセット  匿名 - 2005/01/26(Wed) 10:38 No.468

同じ内容の質問でした。
過去ログを見過ごしていたみたいですみませんでした。

データの照合でうまくいきました。

もうひとつ追加質問させていただきたいのですが、
項目は同じものでデータベース名を変えた場合、
なんとかして使うことはできないのでしょうか?

Re: XMLのデータセット  さかもと - 2005/01/26(Wed) 11:35 No.469

さかもとです。
データベース名を変更というのはデータセット名を変更した
ということで宜しいでしょうか?
どうでしょう・・・ちょっとやったことないのですが,
見た限りクリレポの標準機能でコードからの変更内容を更新
させるところは既述の部分しかないような気がします・・・。
あるんでしょうか。
ソリューション毎再起動かけてみても駄目だったら駄目・・・?

Re: XMLのデータセット  匿名 - 2005/01/28(Fri) 09:28 No.489

データベース名を変えるとうまくデータが入ってこないので、
無難に一から作り直しました。
ありがとうございました。


接続サーバの変更  チョビグー - 2005/01/25(Tue) 14:59 No.464

初めて投稿させていただきます。
よろしくお願い致します。

現在下記の環境で開発をおこなっています。
Windows2000 Pro
VisualBasic6.0 SP5
CrystalReport 8.0
SQL-Server2000

DBサーバ(SQL-Server)の接続先をINIファイルで指定して
いるのですが、VB側は問題が無くデータ認識できるのですが、
CrystalRepor側でデザイン時に指定しているサーバしか認識して
くれません。
コネクト(connect)の指定はINIファイルから下記のようになります。
Provider=SQLOLEDB;SERVER=SVR02;UID=sa;PWD=sa;DATABASE=DB001

サーバをSVR01(帳票をデザインした方です)にすると正しく繋がるのですが、
SVR02すると、SVR01のデータを出力してしまいます。
何か設定が足りないのでしょうか。
何卒、ご教授下さい。

Re: 接続サーバの変更  Kimberly - 2005/01/26(Wed) 10:05 No.467

チョビグー様

CrsytalReport1.DataFields(0)="スキーマ名.テーブル名"
でためしてください。
Re: 接続サーバの変更  チョビグー - 2005/01/26(Wed) 11:43 No.470

Kimberly様

ご返事ありがとうございます。
下記のようにやってみましたが、”SQL サーバを開くことができません”
というエラーになってしまいます。
やり方がまずいのでしょうか。

Me.cryRepObj.DataFiles(0) = "DB001.TABLE001"
(cryRepObj というのは、Crystal Report Object です)

アドバイス頂ければ、大変ありがたいです。
Re: 接続サーバの変更  Kimberly - 2005/01/26(Wed) 11:52 No.471

チョビグー様

説明が不足していましたが、
Connectプロパティの後に挿入しましたか。
あと、レポートで利用しているテーブル数は、1つですか。
複数であれば、その分のDataFiles(x)が必要です。
そして、xを増やしてください。
Re: 接続サーバの変更  チョビグー - 2005/01/26(Wed) 13:44 No.472

Kimberly様

お忙しいなか、ご返事大変ありがとうございます。

はい。Connectプロパティ設定後に、DataFilesに設定しました。
”Crystal Report Object”を貼り付けているフォームは複数の帳票で
共通なのですが、今、出力しようとしている帳票はテーブルを1つしか
参照しない為、DataFiels(0)にのみ、設定してみましたが、現象は
変わりませんでした。
DataFielsの設定に誤りがあるでしょうか。

何度も心苦しいのですが、アドバイスお願い出来れば有り難いです。
Re: 接続サーバの変更  Kimberly - 2005/01/27(Thu) 01:34 No.475

チョビグー様

SQLの認証ですよね。
Me.cryRepObj.DataFiles(0) = "DB001.dbo.TABLE001"
として駄目ですか。
また、デザイナから変更先のデータベースに接続できますか。
Re: 接続サーバの変更  チョビグー - 2005/01/27(Thu) 11:13 No.476

Kimberly様

何度も本当にありがとうございます。

SQLサーバのエラーが出ているのは
個人的な自宅環境の問題でした。
大変申し訳ありません。


問題は会社の環境でして、1番最初に投稿させて
頂いた問題が解消できないでいます。
Connectで"SVR002"サーバを指定しても、
デザイン時に見ていた"SVR001"サーバのデータを
出力してしまいます。
ご指摘のようにDataFiels()に指定しても状況が
変わりません。
また、DataFiels()に適当な文字列を設定しても
実行時エラーにならないのが不思議です。
またご指摘にありましたクリスタルレポートの
デザイン上でのサーバ切り替えは問題がないです。

勝手な所感なのですが、Connect、DataFilesへの
設定は無視されていて、デザイン時サーバを強制的に
出力しているような気がします。
何か思いあたります事でもあれば、大変恐縮ですが
お教え頂きたいと思います。

Re: 接続サーバの変更  Kimberly - 2005/01/27(Thu) 11:59 No.477

チョビグー様

レポートのデザイン時には、OLE DB接続でデザインしているわけですよね。
Connect プロパティでなく、LogOnInfo(0) プロパティではどうですか・・
OCXの環境がないので確認できませんが・・すみません。
Re: 接続サーバの変更  Kimberly - 2005/01/27(Thu) 12:48 No.478

チョビグー様

レポートファイルは、データとともにレポートに保存がチェックされていますか。
その場合、Me.DiscardSavedData = True と記述してデータを破棄します。

言われているようにデザイン時の情報が表示されている場合、保存されている
データではないでしょうか。デザイン時のデータベース(SVR001)の内容を更新してから、VBコードで実行してそのデータベース(SVR001)の内容をは更新されますか。
更新されていなければ、保存データが表示されたことになります。

Re: 接続サーバの変更  チョビグー - 2005/01/27(Thu) 12:49 No.479

Kimberly様

ありがとうございます。

LogOnInfo(0)でも同様の結果でした。
何度もアドバイ頂いているのに申し訳ありません。
Re: 接続サーバの変更  チョビグー - 2005/01/27(Thu) 13:02 No.480

Kimberly様

何かと大変ありがとうございます。
SVR001のデータは確かに追加/更新/削除されたものが出力されています。
DiscardSavedData については調べてみます。
Re: 接続サーバの変更  Kimberly - 2005/01/27(Thu) 14:43 No.481

チョビグー様

OLE DB 接続の場合、Connectプロパティをコールしなくても
デザイン時のデータベースに接続ができますね。
これを変更するためには、以下のような記述でないと駄目みたいです。

.DiscardSavedData = True
.Connect= "DSN=SVR002;UID=sa;PWD=sa;DSQ=DB001"
.DataFiles(0) = "DB001.dbo.TABLE001"
Re: 接続サーバの変更  チョビグー - 2005/01/27(Thu) 15:10 No.482

Kimberly 様

ご指摘のとおりやってみたのですが、状況は変わらないです。
ちなみにですが、Connectを設定しないと"SQL サーバが開けません"
のエラーが出ます。
また、DataFilesは適当な文字列をセットしてもエラーは出ません。

どうもクリスタルレポート側のような気がします。
こちらでも色々やっているのですが、また何かアドバイス頂ければ
ありがたいです。
そちらもお忙しいなか、本当にありがとうございます。

Re: 接続サーバの変更  Kimberly - 2005/01/27(Thu) 15:31 No.483

チョビグー様

おかしいですね。
デザイナでOLE DB 接続でSQLサーバー(A)に接続してレポートを作成、
その同一SQLサーバーの接続には、Connectプロパティなしでも接続可能でした。
このレポートを前回の回答のコードを利用してSQLサーバー(B)にできましたけど。
何が違うのかなぁ?

デザイン時に利用したデータベースドライバは何が選択されていますか。
「データベースドライバの変換」で表示されているドライバ名です。
p2doledb.dll ですか?


Re: 接続サーバの変更  チョビグー - 2005/01/27(Thu) 15:44 No.484

Kimberly 様

「データベースドライバの変換」で表示されているドライバ名ですが、
開始のところには、 Pdsmon.dll [ADO,RDO,DAO] が出ています。
(チェックボックスは未チェック状態ですが)
ちなみに終了のところのコンボボックには、ご指摘のdllがないようです。
ドライバの問題なのでしょうか?
Re: 接続サーバの変更  Kimberly - 2005/01/28(Fri) 00:51 No.486

チョビグー様

他データベースドライバもすべて pdxxx で始まっているので、表示だけの問題で実害はないと思います。p2smon.dll が実際に存在するファイルです。

pdsmon.dll [ADO,RDO,DAO] は、うまく動作しませんね。
pdsoledb.dll(p2soledb.dll) では、問題ないですが・・
Re: 接続サーバの変更  Kimberly - 2005/01/28(Fri) 07:15 No.487

チョビグー様

pdsmon.dll [ADO,RDO,DAO] を利用する場合、Active Data のレコードセットをレポートに引き渡すようにしなければいけないようです。
Connection、LogOnInfo プロパティでなく、SetTablePrivateDataメソッドを利用します。でも、Crystl32.OCX は、うまく動作しませんでした。

今のレポートファイルをそのまま変更なく利用する場合は、開発方法にRDCを利用することでデータベースを切り替えることに成功しました。
コードはこんな感じです。OCX とは全然違ってしまいますが・・

'*** レコードセットの処理 ***
Dim rs As ADODB.RecordSet
Dim cn As ADODB.Connection

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=SQLOLEDB.1;Data Source=SVR002;Initial Catalog=DB001;User ID=sa;Password=sa"
rs.Open "Select * from TABLE001", cn


'*** RDC の Crystal Reports 処理 **
Dim Test    As New CRAXDRT.Application
Dim Report As CRAXDRT.Report

Set Report = Test.OpenReport(C:\xxxx.rpt",1)
Report.DiscardSavedData
Report.Database.Tables.Item(1).SetDataSource rs, 3

CRViewer1.ReportSource = Report
CRViewer1.ViewReport

OCXにこだわるのであれば、レポートファイルの修正以外は手段はないです。
OLE DB接続でレポートを作成し、ConnectとDataFilesプロパティで切り替える。データベースドライバは、pdsoledb.dll です。

'*** レポートファイルは、OLEDBで接続する
Me.cryRepObj.ReportFileName = "C:\xxxx.rpt"
Me.cryRepObj.DiscardSavedData = True
Me.cryRepObj.Connect= "DSN=SVR002;UID=sa;PWD=sa;DSQ=DB001"
Me.cryRepObj.DataFiles(0) = "DB001.dbo.TABLE001"
Me.cryRepObj.Destination = crptToWindow
Me.cryRepObj.Action = 1


もう一つの手段として、フィールド定義ファイルを利用して、データベースを切り替えることができます。この時に利用するデータベースドライバは pdsmon.dll です。
この方法は、物理データベースに接続なしでレポートのテンプレートを作成します。
フィールド定義ファイルを利用してレポートをデザインする方法は、データエクスプローラから「データソースの参照」-「Active Data」-「Active Data(Field Definition Only)」を選択します。CR8とは名称が違うかもしれませんが、同じ手法でレポートは作成できるはずです。「データソース選択」から「データ定義」を選び、新規作成をクリックします。レポートで必要なフィールドとそのフィールドタイプ、サンプルデータを挿入することができます。
できたフィールド定義ファイルの内容は、こんな感じです。NOTEPAD で開けます。
F1  Number          1111
F2  String    50     AAAA
F3  String    50     ああああ
1番目は、フィールド名、2番目は、データタイプ、3番目は、長さ、4番目は、サンプルデータです。

レコードセットの処理のSQLのSelect文に表示するデータベースの項目名を
指定するとその項目がレポートに表示されます。
rs.Open "Select 社員番号, 名前, 所属 from TABLE001", cn

その後に、OCXのCrystal Reportsの処理を実行します。

'*** OCX の Crystal Reports 処理 **
Me.cryRepObj.ReportFileName = "C:\xxxx.rpt"
Me.cryRepObj.DiscardSavedData = True
Me.cryRepObj.SetTablePrivateData 0, 3, rs
Me.cryRepObj.Destination = crptToWindow
Me.cryRepObj.Action = 1

長くなりましたが、今のままではデータベースの切り替えができないという結果になりました。
いい勉強になりました。ありがとうございました。

Re: 接続サーバの変更  チョビグー - 2005/01/28(Fri) 09:10 No.488

Kimberly 様

大変ありがとうございました。
色々と調べて頂いた事、重ねてお礼申し上げます。
参考にさせて頂きたいと思います。

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

RPTファイルの編集  えっちょん - 2005/01/27(Thu) 15:45 No.485

初めて投稿させていただきます。
よろしくお願いします。

現在、下記の環境で開発を行っています。
Windows2000 Professional
OracleDatabase 9i (9.2.0.1.0)
CrystalReport 9 Advanced Edition
Visual Basic 6.0 SP5

研究室の先代が作成したシステムがあり、CrystalReportsの帳票ファイル(RPTファイル)から帳票を表示しています。
RPTファイルは、OracleのビューからODBC接続でフィールドを参照(*)しています。
*(CrystalReportsのフィールドエクスプローラより、Oracleのビューを選択して、フィールドをドラッグ&ドロップで、帳票に配置してあります。)

今回、ある事情により、RPTファイルで参照しているビューのカラム名を変更ました。具体的には、以下の変更を行いました。
----
ビュー: V_EXT_SAMPLE_RPT008
カラム(変更前): 試料1
カラム(変更後): sample01
----

RPTファイルの”試料1”フィールドはあるのですが、カラム名を変更したため存在しません。そこで、RPTファイルの”試料1"フィールドのリンク先を、同ビューの”sample01”に付け替えたいのですが、可能でしょうか?

RPTファイルから、”試料1”フィールドを削除して、新たに”sample01”フィールドの参照を作成した場合、位置情報や、書式情報が初期化されるようで、付け替えの検討をしています。

皆様のお知恵を拝借したくお願いします。




DB(ビュー)のリンクが張られています。

今回、事情により、データベースのカラム名の変更が発生しました。





クリスタルレポートのデータソースについて  ハロ - 2005/01/25(Tue) 12:14 No.462

お世話になります。ハロと申します。


環境:VB6+SP6
OS:WinXP+SP2
クリスタルレポート:VB6バンドルの4.6.1


1)初歩的な質問で申し訳ありませんが、
新規ファイルを作成する際に
データソースなしでレポートファイルを作成する事は
可能でしょうか?


2)現在VB4バンドルからの移行を行っていますが、
 レポートファイル側にデータソースの設定がなく
 VBから直接データをセットしている形式のプログラムにおいて
 cry.Action = 1  '印刷実行
  の箇所でランタイムエラーが発生します。
 内容は、
  Err.Desctiption=No error.
  Err.Number=20000
  Err.Source=CrystalReport
 です。VB4の環境では問題なく出力されます。
 VB4→VB6への移行方法は
  ・コントロールについては、VBが自動的にバージョンアップする。
  ・レポートファイルについては、4.6.1で開き保存する...という事をやっています。


 どなたか同様の現象の回避策をご存知ありませんか?
 よろしくお願いします。

Re: クリスタルレポートの...  Kimberly - 2005/01/26(Wed) 09:28 No.466

ハロ様

1)ですが、VB4/VB5/VB6 のバンドル版のCrystal Reports では、
データソースなしでレポートをデザインすることはできません。
製品版では、可能です。

2)は、旧バージョンは利用していないのでよくわかりません。
データソースなしでどのようにデータベースの情報を引き渡しているのでしょう。
そのようなメソッドもプロパティもないと思いますが・・

エラー番号 20000 は、以下のリンクに英語の記事が掲載されています。
サブレポートが含まれているとか・・
http://support.businessobjects.com/library/kbase/articles/c2005074.asp

具体的にどのようなメソッド、プロパティを利用してデータベースの情報を取得しているか説明した方が回答できる人がいるかもしれません。

Re: クリスタルレポートの...  ハロ - 2005/01/26(Wed) 22:34 No.474

Kimberly さま

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

1)やはりそうですか。ただ、現在移行を行っている
  レポートのなかに実際DBを参照していないものがあります。
  確認方法としては、[Insert]-[DatabaseField]として出力
  されるダイアログに何も表示されません。
  VB4のバンドル版のはずですが、確証はないので
  もしかしたら製品版なのかもしれません。


2)データベースの情報を直接レポートファイルに渡すのではなく
  VBから値をセットする形で、データをセットしています。
  以下が実現コードサンプルです。


    CrystalReport1.Formulas(0) = "test='1234'"
    CrystalReport1.Action = 1


  このコードで"test"という名前のフィールドに1234をセットし
  印刷をかけています。
  
  リンク先見ました。まさしくこれだと思います。
  「Error 20000: No database table in main report」
  とあるので、Kimberlyさんのおっしゃる通り
  「データソースなしでレポートをデザインすることはできません。」
  という話に直結します。なので、ほぼ間違いなく今移行しようとしている
  レポートファイルは製品版で作られたものなのかと思います。


  いろいろ悩みましたが、現在の対応としては、
  直接DBからデータは取得してこないけど空のテーブルを
  定義すると、「Error 20000」はでなくなりました。これでいこうと思います。


 



 


2UPについて  tomo - 2005/01/26(Wed) 16:02 No.473

初めて投稿させていただきます。
よろしくお願い致します。

現在下記の環境で開発をおこなっています。
windows xp home
VisualBasic6.0 SP5
CrystalReport 8.5
Oracle10g

クリスタルレポートで1ページを2ページに印刷する方法を教えていただきたいと思います。
※印刷の割り付けで2ページ印刷と同じ機能
いろいろ探したのですが、わからなかったです。
よろしくお願いいたします。

クライアントで印刷  zoo8 - 2005/01/21(Fri) 16:05 No.460

お世話になります。

言語:VB.net
クリスタルレポート:バンドルされていたもの

ブラウザのボタンクリックイベントで、クリスタルレポートオブジェクトへデータを渡し、PrintToPrinterメソッドでプリントアウトしていたのですが、これだとサーバの印刷要求を出してしまいます。
そうではなく、クライアントからプリントアウトしたいのですが、方法を教えていただけないでしょうか。
よろしくお願いします。
Re: クライアントで印刷  zoo8 - 2005/01/21(Fri) 17:29 No.461

自己レスです。
今読み返すと、何を書いてるのかよくわからないですね。
直接印刷したかったのですが、一度IEに表示させ、IEの印刷機能を使うことにしました。
失礼しました。

ver.10で条件(SQL)によるデータの絞込み  ひびき - 2005/01/21(Fri) 15:39 No.459

お世話になります。
VB.NETでクリスタルレポートver.10を使って帳票出力の開発を行っています。


[システム環境]
OS : WindowsXP Pro
言語 : VB.NET
帳票 : クリスタルレポートver.10


[環境]
1.項目(商品一覧、売上伝票など)ごとにレポートファイルが複数ファイル存
在する。
2.DB(SQLServer)にはレポートファイルから参照されるテーブルが複数テーブ
ル存在する。
3.1つのレポートファイルが参照するテーブルは1〜n個のテーブル


[実現したいこと]
上記環境のもと、項目ごとに出力条件選択のインターフェイスを用意して
1.出力するレポートファイル(既存)を動的に変更
2.出力するデータを動的な条件(SQL)によって絞込み


[現在の方法]
1.DBに接続(SqlConnection)
2.SqlDataAdapterでSQLによって絞り込まれたデータを取得。
3.Fillメソッドで取得したデータをデータセットに格納。
4.クリスタルレポートにデータセットを送信。


[質問内容]
1.クリスタルレポートver.10で、出力するデータを条件によって絞込みするに
はどのような方法があるのでしょうか?


2.複数テーブルを扱う場合に
1) SqlDataAdapterのSQL文
2) SqlDataAdapter.Fillメソッド(DataTable)
3) レポートファイル内のデータフィールド
上記3つで扱うDBのテーブルにはどのような関係(整合性)を持たせて
おかなければならないのでしょうか?


3.現在データセットファイル(.xsd)は前もって作成しておらず
レポートファイルもプロジェクトに組み込まれていません。
故に、データセットのリレーションの設定やレポートファイルのリンクの設定
はしていません。
これによって何か不具合は発生するのでしょうか?



何か少しでも情報をご教授いただけるとありがたいです。
よろしくお願いします。



以下にサンプルコードを記述します。


'CR Variable
Dim crReportDocument As ReportDocument


'ADO.NET Variables
Dim adoSqlConnection As SqlConnection
Dim adoSqlDataAdapter As SqlDataAdapter
Dim dataSet As dataSet


Dim sqlString As String = ""
Dim connectionString As String = ""
Dim Form1 As Form1


Form1 = New Form1()


'Database connection
connectionString = "Data Source=DS001;Initial
Catalog=sampledb;Integrated Security=SSPI;"
adoSqlConnection = New SqlConnection(connectionString)


'Create an instance of the strongly-typed report object
crReportDocument = New ReportDocument()
crReportDocument.Load("C:\\CRreport\\sample.rpt")


'SQL
sqlString = "SELECT * FROM TABLE_A LEFT JOIN TABLE_B ON
TABLE_A.A001=TABLE_B.B001"


'Retrieve the data using the SQL statement and existing connection
adoSqlDataAdapter = New SqlDataAdapter(sqlString, adoSqlConnection)


'Create a instance of a Dataset
dataSet = New DataSet()
adoSqlDataAdapter.Fill(dataSet)


'Pass the populated dataset to the report
crReportDocument.SetDataSource(dataSet)


'Set the viewer to the report object to be previewed.
Form1.CrystalReportViewer1.ReportSource = crReportDocument


Form1.Show()


改ページの条件  VIKI - 2005/01/19(Wed) 11:29 No.447

お世話になります。


グループヘッダー
詳細
詳細
詳細
 :
 :
グループフッター

グループヘッダー
詳細
詳細
 :
(続く)

のような帳票を作っております。
基本的に詳細は何行になるかわからない仕様なのですが、稀に

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

グループヘッダー

このタイミングで改ページになってしまう場合があります。
ページの最後にグループヘッダーが来てしまう場合(次ページに詳細の1行目が来てしまう場合)にだけは、グループヘッダーを表示せず改ページをして、ページが切り替わった後の先頭の行にグループヘッダー(続いて詳細)を表示させたいのですが

グループヘッダーが最終行であるかどうかの判定の仕方がわかりません。
ご教授いただけると幸いです。
Re: 改ページの条件  Kimberly - 2005/01/19(Wed) 14:04 No.451

VIKI様

「グループの変更オプション」から「グループごとにまとめて表示」を
チェックしてみてください。
その結果、同一グループは、同じページ内で表示するようになるはずです。
今回のようにグループヘッダーとグループフッターがページを跨って表示されることはなくなると思います。

Re: 改ページの条件  VIKI - 2005/01/19(Wed) 14:31 No.452

説明不足で申し訳ございません。
たとえば現状、タイトル行を除きMAX8行の表示が可能な帳票があるとしまして。

(1ページ目)
  タイトル行
1 グループヘッダー
2 詳細
3 詳細
4 詳細
5 詳細
6 詳細
7 グループフッター
8 グループヘッダー←この場合改ページをしたい
(2ページ目)
  タイトル行
1 詳細
2 詳細
3 グループフッター

になるのですが「グループごとにまとめて表示」をしてしまうと今度は

(1ページ目)
  タイトル行
1 グループヘッダー
2 詳細
3 詳細
4 詳細
5 詳細
6 グループフッター
7 グループヘッダー
8 詳細
(2ページ目)
  タイトル行
1 詳細
2 グループフッター

としたいのに、詳細を表示できる余裕があるにも関わらず

(1ページ目)
  タイトル行
1 グループヘッダー
2 詳細
3 詳細
4 詳細
5 詳細
6 グループフッター
7 空白行
8 空白行
(2ページ目)
  タイトル行
1 グループヘッダー
2 詳細
3 詳細
4 グループフッター

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

あくまで「グループヘッダーが最終行の時だけ」改ページをしたいのですが、無理なのでしょうか。
Re: 改ページの条件  VIKI - 2005/01/19(Wed) 14:50 No.453

他に試してみた方法としましては、ページヘッダーにダミー(非表示)の項目を設けて
Shared NumberVar Page;
Page:=0;
とし、
グループヘッダー、詳細部、グループフッターにも同じようにダミー(非表示)の項目を設けて
Shared numberVar Page;
Page:=Page+1;
の式を組み込み
更にグループヘッダーの箇所にだけは、これが(No.452の例で)"8"の場合は改ページ。
とさせることで、見た目の上では回避可能になりました。

しかしながら、ページのサイズや行数の幅は今後の仕様によって変化する可能性があるため、行数"8"と言う「人間が手で数えて8行だったから、とりあえず8と言う数字を固定で入れておこう」のような事は、したくないのが本音です。(応用が利かなくなるのです)

「不可能」であれば潔く諦め、「可能」であればたとえ手段がややこしくとも完成させたいと思っております。
どうかよろしくお願いします。
Re: 改ページの条件  Kimberly - 2005/01/20(Thu) 08:52 No.454

VIKI様

レポートに応じて修正する以外はできないと思います。
Re: 改ページの条件  VIKI - 2005/01/20(Thu) 09:09 No.455

返信いただき、ありがとうございました。
Re: 改ページの条件  ふぉぐ - 2005/01/20(Thu) 11:27 No.456

VIKI様

バージョン9になりますが、以下が参考になると思います。
http://japan.businessobjects.com/support/crystalreports9/faq.asp#rcon_group_header
改ページの条件【解決済】  VIKI - 2005/01/21(Fri) 14:18 No.458

Re.456

バージョンを書いていませんでした;;
おそらく8です。
セクションエキスパートを呼び出すメニューが若干違うものの、教えていただいたサイトの方法そのままでできました。
NumberVar Counter:=0;
の部分は、このままだとエラーになってしまったので
Shared NumberVar Counter:=0;
にして動かしてみたところ、No452に書かせていただいたとおりの動きになりました。

Kimberlyさま、ふぉぐさま。
ありがとうございました。

Anserの4番目のコードは
× WhilepPintingRecords;
○ WhilePintingRecords;
ですね^^;


プレビューとPGからの実行結果が異なる  ハロ - 2004/12/31(Fri) 10:39 No.414

お世話になります。ハロと申します。

環境:VB6+SP6
OS:WinXP
クリスタルレポート:VB6バンドルの4.6.1


プログラム(VB)から印刷を実行した結果と
RPTファイルをダブルクリックし、クリスタルレポートから
プレビューを行いそこから、印刷した結果が異なります。
内容は以下です。
・キーブレイクでの改ページ処理がプログラムから出力すると行われない。
・プログラムから出力すると、明細行の高さが高くなる。
・プログラムから出力すると、明細行に意図しない罫線が出力される。

クリスタルレポートから
プレビューを行いそこから、印刷した結果は、
想定とおりの結果になります。

どなたかこのような現象ご存知の方
ご教示下さい。



Re: プレビューとPGから...  Kimberly - 2005/01/05(Wed) 00:23 No.417

ハロ様

VBバンドル版クリスタルレポートは、Windows98やNT4の時代にリリースされたものです。現在、主流のWindowsOSでは何が起こるかわかりません。
それとWindowsXPのUSP10.DLLは曲者で、バージョンによって動きが異なります。
WindowsXP以外のWindowsOSで現象を比較してはいかがですか。WindowsXP特有の問題であるかもしれません。

Re: プレビューとPGから...  ハロ - 2005/01/06(Thu) 12:26 No.427

Kimberlysaさま

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

そうですね。それは試していませんでした。
やってみます。そして結果をご報告します。
Re: プレビューとPGから...  ハロ - 2005/01/21(Fri) 09:47 No.457

Kimberlysaさま

大変返信が遅くなり申し訳ありません。
OSを変えての試験ですが、
WinXP+SP1の環境だと問題なく出力されました。

ただ、該当の帳票以外はWinXP+SP2でも問題なく出力されます。
どう対応するかこちらで検討してみます。

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

ヘッダ付きの横並び表示方法について  つのり - 2005/01/17(Mon) 15:05 No.435

複数行あるデータを横に並べて表示する際、左端の列にはヘッダを表示し、続けてデータを
表示していきたいのですが、ヘッダ→データ→ヘッダ→データ…と表示されてしまいます。

どうすればヘッダ→データ→データ…と表示することができるのか、どなたかアドバイス願います。

ちなみに今は、詳細セクションを二つに分け、詳細aにヘッダ(Textのみ)、詳細bにデータ
(データベースフィールド)をレイアウトしています。

※詳細a→詳細b→詳細b…と、横に並べて表示したい。
Re: ヘッダ付きの横並び表...  Kimberly - 2005/01/19(Wed) 10:04 No.445

つのり様

>複数行あるデータを横に並べて表示する際、左端の列にはヘッダを表示し、続け
>てデータを表示していきたいのですが、ヘッダ→データ→ヘッダ→データ…と表示>されてしまいます。

これは、詳細の「複数の列で書式設定」をチェックしているわけですよね。
その場合、ヘッダ部分の書式設定の非表示の条件式に以下の式を挿入してみてください。

WhilePrintingRecords;
Remainder(RecordNumber,3)<>1

3は、列が3つの場合になります。
この結果、1列目のみのヘッダが表示されて、それ以外は非表示となると思います。
Re: ヘッダ付きの横並び表...  つのり - 2005/01/19(Wed) 13:30 No.450

Kimberly様

スマートな方法を教えていただきありがとうございます。
早速組み込んで使用してみたところ、想定通りに動作しました。

なお、質問を書き込んだ後当方でも色々試しまして、以下の方法を使用していました。

1.ヘッダー部分の書式で「空セクションの非表示」にチェック。
2.ヘッダー部分の全オブジェクトの書式で「重複データの非表示」にチェック。
3.ヘッダー部分に式オブジェクト(RecordNumber \ 改ページしたい列数+1)を作成。

以上の方式でも実現は出来たのですが…スマートぢゃないので、Kimberly様の方法を使用させていただきます。

重ね重ね、どうもありがとうございました。

ページのしたから優先順位をつけたい  VIKI - 2005/01/18(Tue) 15:31 No.440

はじめまして。
今、レポートフッターのセクションの書式で「ページ下部へ出力」を設定しています。
グループフッターにも同じ設定をして、グループフッターしかない場合にはグループフッターがページの一番下。
レポートフッターとグループフッターが両方ある場合には

詳細
詳細
詳細
 :
 :
グループフッター
レポートフッター

の順番で表示させたいのですが、現状はレポートフッターだけが改ページされてしまいます。
どうすればよいのでしょうか?
Re: ページのしたから優先...  Kimberly - 2005/01/19(Wed) 07:37 No.443

VIKI様


「ページ下部へ出力」は、1つセクションのみしか実現できません。
グループフッターをページの下部に表示するため、
レポートフッターが押し出されたようにして次のページで表示されます。
グループフッターとレポートフッターを同一ページに表示させることは可能ですが、
グループフッターとレポートフッターをページの下部に表示することはできません。


グループフッターとレポートフッターを同一ページに表示させる方法は、
グループフッターのセクション書式の「ページ下部へ出力」のチェックをはずし、
条件式に以下の式を挿入します。
WhilePrintingRecords;
Not NextIsNull({グループで利用しているフィールド})
これでグループフッターとレポートフッターは同一ページ内で表示できるはずです。


あと、セクションに拘らずに、グループフッターとレポートフッターで表示する内容を
ページの下部に表示させる方法と読み替えた場合、以下の方法で可能と思います。
1. ページフッターから「セッションの下に挿入」を実行します。その結果、ページフッターa とページフッターb ができます。ページフッターaの高さは、レポートフッターのデザインに合わせて同一とします。
2. ページフッターaのセクション書式の「非表示」のチェックをはずし、条件式に以下の式を挿入します。
  WhilePrintingRecords;
  Not NextIsNull({グループで利用しているフィールド})
この結果、レポートフッターを表示するページのみこのページフッタaが表示されます。
3. このページフッターa にレポートフッターの内容を移動します。
4. レポートフッターの高さをグループフッターのデザインに合わせて同一とします。そして、内容をコピーします。コピーしないと、レポートフッターを表示する以外のページで空になってしまいます。
5. グループフッターのセクション書式の「非表示」のチェックをはずし、条件式に以下の式を挿入します。
  WhilePrintingRecords;
  NextIsNull({グループで利用しているフィールド})
この結果、レポートフッターを表示するページのみこのグループフッターは非表示となります。


どんなものでしょうか・・お試しください。

Re: ページのしたから優先...  VIKI - 2005/01/19(Wed) 11:00 No.446

お世話になります。
しかし、やはりどうしても

グループフッターとレポートフッターをページの下部に表示することはできません。

これを回避することはできませんでした。
返信いただきありがとうございました。
Re: ページのしたから優先...  Kimberly - 2005/01/19(Wed) 12:54 No.448

VIKI様

前回の回答について正しく理解してもらえなかったようですが・・
グループフッターとレポートフッターをページの下部に表示することはできないと回答しました。

Re: ページのしたから優先...  VIKI - 2005/01/19(Wed) 13:08 No.449

グループフッターとレポートフッターをページの下部に表示することはできません。
のお答えの下に書いていただいた方法が回避策だとばかり思っていました。(基本的にはできない、の意味だと誤解しておりました)

失礼しましたm(_ _)m

重複データの非表示  だいちゃん - 2005/01/14(Fri) 10:42 No.433


はじめまして。クリスタルレポート初心者です。
例えば、以下のようなデータがあったとします。


AAA001       
BBB       CCC     
A-001
AAA001       
BBB       CCC     
A-002
AAA001       
BBB       CCC     
A-003
AAA001       
BBB       CCC     
A-004
AAA002       
BBB       CCC     
A-005
AAA002       
BBB       CCC     
A-006
AAA002       
BBB       CCC     
A-007


このようなデータがあり、レポートには以下のように出力したいのですが、
どのようにすればよいでしょうか?


AAA001       
BBB       CCC      
A-001
                                face="MS ゴシック">       
A-002
                                             
A-003
                                             
A-004
AAA002       
BBB       CCC      
A-005
                                             
A-006
                                             
A-007


単純に重複データを非表示にすると、
上記で言うとAAA002のフィールド2、フィールド3の値も
非表示になってしまいますよね?
フィールド1のデータが印字されたときは、フィールド2、フィールド3の
表示、非表示の設定は初期化したいのです。


教えてください。宜しくお願い致します。

Re: 重複データの非表示  Kimberly - 2005/01/19(Wed) 08:01 No.444

だいちゃん様

どれがフィールド2、フィールド3であるかわかりませんが、
AAA001のフィールドでグループを挿入したらどうでしょうか。
次に BBB CCC も1フィールドであれば、それでグループを挿入します。
その結果、こんな感じで表示できませんか。

AAA0001     (グループ1)
   BBB CCC (グループ2)
       A-xxx
       A-xxx
AAA0002     (グループ1)
   BBB CCC (グループ2)
       A-xxx
       A-xxx

小数点以下の表示について  KIM - 2005/01/14(Fri) 22:31 No.434

小数点以下の表示についてどなたかご存知の方教えてください。
1
1.01
1.1
同じ項目で上記のような表示をする方法を知りたいです。
おちているデータそのままの表示をしたいのですが、
1.00や1.10という0がついてしまいます。
どうか、ご存知の方教えてください。
Re: 小数点以下の表示について  さかもと - 2005/01/17(Mon) 16:28 No.436

さかもとと申します。
ちょっと内容が分かり辛いのですが,

元の数値=1.101 として
それを
項目A=1
項目B=1.1
項目C=1.10
項目D=1.101
として表示したいということでしょうか?

簡単なのは式フィールドに項目を追加して(A〜Dまで)
そしてそのフィールドをデザイン上に貼り付ける。
そして,その項目の書式から「数値」を選んで「カスタムスタイル」のユーザー設定で色々とルールを摘要するのがいいのではないかと思います。

当方のクリレポはVS2003付属の物です。

Re: 小数点以下の表示について  KIM - 2005/01/18(Tue) 20:03 No.442

返信をありがとうございます。
私の記載の仕方が不足しておりました。申し訳ありません。
同一項目で、
1
1.01
1.1
というように様々な値が入ります。
その時に、小数点以下は最後が0の場合は0を非表示にするということなのです。
項目の設定で、小数2桁まで表示としていると、
どんな数値がおちても、必ず小数2桁まで表示され
1 と表示したいのに、1.00
1.1 と表示したいのに、1.10
と表示されてしまい、途方にくれています。
何か式で記述ができるのでしょうか。
ご存知の方がいらっしゃればよろしくお願いします。


ありがたやー  zoo8 - 2005/01/18(Tue) 18:47 No.441

勉強になりました。ヘルプ見てもさっぱりわからなかったので。

パラメータフィールドについて  つよぽん - 2005/01/17(Mon) 17:22 No.437

はじめまして。クリスタルレポートの初心者です。いきなりの質問ですみませんが、
現在、自力で回答を得られず、非常に困っております。すみませんがお力を
お貸しください。

C#で作成したPC上で動作するプログラムから、帳票出力を行うためにクリスタルレポート
を使用してます。プログラム上から、パラメータフィールドに文字列値を設定してる
のですが、文字列のサイズが大きくなると、帳票ビューアで

『文字列のバッファが小さいか、NULLバイトがありません』

というエラー表示のダイアログが表示されてしまいます。おおよそ256バイト前後で
このメッセージが出力されてしまいます。

パラメータフィールドに設定できる文字列のサイズは固定なんでしょうか?

Re: パラメータフィールド...  さかもと - 2005/01/17(Mon) 19:30 No.438

さかもとと申します。
C#ということで恐らくVS2003(2002?)付属のクリレポかな?と思っているのですが,当方でも試してみたいのでクリレポへ渡す部分のコードと渡す内容(256バイト以上となると文章かなにかですか?)を教えていただけませんか?
役立てるかどうかは分かりませんが・・・。
Re: パラメータフィールド...  つよぽん - 2005/01/18(Tue) 13:27 No.439

はい、VS2003で付属のクリスタルレポートです。

再現する簡単なプログラムが作成できました。ソリューションごとお渡しできると
良いのですが、メールアドレスを教えていtだけませんか > さかもとさん

簡単に説明すると、crystalReportViewerを貼り付けたダイアログフォームの
Loadイベントで、

======================================================================

   string strデータ01 = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";


   CrystalReport1 rpt = new CrystalReport1();


   ParameterField pfデータ01 = new ParameterField();
   pfデータ01.ParameterFieldName = "prmデータ01";
   ParameterDiscreteValue pvデータ01 = new ParameterDiscreteValue();
   pvデータ01.Value = strデータ01;
   pfデータ01.CurrentValues.Add(pvデータ01);


   ParameterFields pfs = new ParameterFields();
   pfs.Add(pfデータ01);


   this.crystalReportViewer1.ParameterFieldInfo = pfs;
   this.crystalReportViewer1.ReportSource = rpt;

======================================================================

 としているだけなんですが。



オブジェクトの配置  hiromu - 2005/01/13(Thu) 15:08 No.432

はじめまして。hiromuといいます。
VB6でクリスタルレポートのバージョンは4.6を使用しています。
オブジェクトのサイズ、位置をドット単位で指定したいのですが、
どうすればよろしいでしょうか。
出力結果を見ると微妙にずれてるんです。

レポートに項目を追加  ai - 2005/01/06(Thu) 17:31 No.428


はじめまして。ai です

C#.NET で CrystalReport を作っています。
勉強不足で文章中も間違っていることがあればご指摘お願いします。<(_ _)>

CrystalReport に項目を追加するには
1.DataSetを作る
2.[フィールドエクスプローラ]-[データベースの追加/削除]でエリアスを作る
3.[データベースフィールド] に追加された項目を CrystalReport にドラッグする

という方法を使用する以外にはないみたい。。と感じています。

この方法で項目を追加してレポートを作成しましたが、
一度作った DataSet に フィールドを追加しなければならなくなった時の対応方法が分かりません。
DataSet の hoge.xsd ファイルでフィールドを追加しても
[データベースフィールド] には追加されないので、[データベースの追加/削除]をやり直すと
CrystalReport に 貼っていた FieldObject が全部消えてしまいます。
作成したレポートはそのままで項目を増やす方法を教えてください。

もし、[データベースフィールド] に表示しなくても
レポート上の FieldObject に値を表示させる方法があれば、そちらもお願いします。

Re: レポートに項目を追加  さかもと - 2005/01/07(Fri) 07:40 No.429

はじめまして,こちらに書き込むのもはじめましてです。
いつもコチラを参考にさせて頂いております。

上記の件ですが,DataSetにフィールド追加後,VS(VSでよかったでしょうか?)のデータベースフィールドを右クリックして「データベースの照合」を行えば通常は変更を加えたDataSetの中身が反映されます。

ただ,たまに何故か理由は分かりませんが正しく追加したあとに上記動作をやってみても反映されないことがあります。その時は一度ソリューション毎立ち上げなおすと大抵の場合うまくいくと思います(この理由はちょっと分かりません??)

いかがでしょうか。
Re: レポートに項目を追加  ai - 2005/01/07(Fri) 14:05 No.431

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

やってみたら出来ました。
ありがとうございました。(^o^)丿

時間を印刷する方法?  hato - 2005/01/05(Wed) 15:32 No.420

帳票に時間(例10:12)を印刷したいのですが、簡単に出来る方法を
教えてください。
Re: 時間を印刷する方法?  ふぉぐ - 2005/01/06(Thu) 09:09 No.423

フィールドオブジェクト→特殊フィールド→ページ数(N/M)
Re: 時間を印刷する方法?  ふぉぐ - 2005/01/06(Thu) 09:11 No.425

上間違いw
フィールドオブジェクト→特殊フィールド→データ取得時刻(フィールドの書式設定)
Re: 時間を印刷する方法?  hato - 2005/01/07(Fri) 14:05 No.430

すみません。そのような遷移ができませんでした。
バージョンが違うのでしょうか。
クリレポのバージョンは4.6です。

改ページをはさんだ表示非表示について  ぷりん娘 - 2005/01/05(Wed) 14:21 No.418

補講対象者リスト



























学年クラス番号名前
Aさん
Bさん
Cさん
Dさん

のように学年が同じなら同じ間は表示させない。
学年が同じ、かつクラスが同じ場合はクラスも表示させないような帳票を作ろうとしています。
学年は重複データの非表示でOKなのですが、クラスでその設定をしてしまうとCさんのクラスが2なので、Dさんは学年が違うにもかかわらず、同じ「クラスが2」とみなされてしまい







Dさん

のように表示されてしまいます。

これらを回避するため、クラスを表示させる場所の非表示(U)の箇所の式にクリスタル構文で

If Previous({補講対象者名簿.学年}) = {補講対象者名簿.学年} Then
    True
  Else
    False

と書いたのですが、こうするとCさんとDさんの間に改ページが発生した場合、やはりクラスが表示されなくなってしまいます。
改ページをした場合でも、各ページの最初の時にだけは全て表示させたいのですが、どのようにすればできますでしょうか?
Re: 改ページをはさんだ表...  ぷりん娘 - 2005/01/05(Wed) 16:14 No.421

改ページした値が1なら表示。の方法でできそうなのですが

If (RecordNumber Mod 行数) = 1 then
  表示処理
Else
 非表示処理
End If

としたところ、Ifのかいてある行で
「式の結果は論理値(True or False)でなければなりません」と言われてしまいます。
どのように表記すれば良いのでしょうか。
どなたか教えてください。
Re: 改ページをはさんだ表...  ぷりん娘 - 2005/01/05(Wed) 17:12 No.422

説明がわかりにくかったかもしれません。












































学年クラス番号名前教室(補講対象者名簿の教室フラグ)
Aさん*
  Bさん 
 Cさん 
Dさん*
  Eさん 
改ページ
















学年クラス番号名前教室(補講対象者名簿の教室フラグ)
Fさん*

の結果にするため、以下の式をうめたのですが「式の結果は論理値(True or False)でなければなりません」と言われてしまいます。

Dim x As Number
x = (RecordNumber mod 行数)


'先頭行の時
If x = 1 Then
  If {補講対象者名簿.教室} = "1" Then
    Formula = "*"
  Else
    Formula = ""
  End If


'先頭行以外の時
ElseIf PreviousValue({補講対象者名簿.学年}) = {補講対象者名簿.学年} Then
  If PreviousValue({補講対象者名簿.クラス}) = {補講対象者名簿.クラス} Then
    If {補講対象者名簿.教室} = "1" Then
      Formula = "*"
    Else
      Formula = ""
    End If
  Else
      Formula = ""
  End If
End If

Re: 改ページをはさんだ表...  ふぉぐ - 2005/01/06(Thu) 09:31 No.426

こんにちは。

1.学年のグループを作る
2.学年とクラスに重複データ非表示を設定

これで、できると思います。


頁をn/mとしたい  hato - 2005/01/05(Wed) 15:30 No.419

印刷帳票に頁を付けたいのですが、全頁に対して何頁の形 n/mと印刷する
方法を教えてください。
Re: 頁をn/mとしたい  ふぉぐ - 2005/01/06(Thu) 09:10 No.424

フィールドオブジェクト→特殊フィールド→ページ数(N/M)。

サブレポートでページサイズが大きすぎる・・・エラー  suna - 2005/01/04(Tue) 20:07 No.415

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


VB6、CR7、Oralce9i で帳票を開発しています。


以下のような帳票をサブレポートを使って作成しています。


| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|1枚目
| 商品A    合計数  |
| 商品B    合計数  |
| …           |
|             |
| ---------------------  |
|        総合計  |
| 内訳          |←ここの内訳がサブレポート
| ---------------------  |
| 商品B    ○○個  |
| …            |
| 商品A    ○○個  |
| …           |
| 商品A    ○○個  |
| …           |
|_____________|


| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|2枚目以降も「内訳」の見出しを表示
| 内訳          |
| ---------------------  |
| 商品B    ○○個  |
| …            |
| 商品A    ○○個  |
| …           |
| 商品C    ○○個  |
| …           |
| 商品B    ○○個  |
| …            |
| …           |
| …           |
| …           |
|    <END>     |←終わり「<END> 」を表示します。
|_____________| ※メインレポートで表示しています


この状態で、「ページサイズが大きすぎてフォーマットできません」という
エラーが“時々”発生します。エラーが発生したときはセクションの高さを
変更するとエラーはその時は回避されますが、その後も何度か同じエラーが
発生してしまいました。
エラーの原因で何か分かる方いらっしゃいますでしょうか。
よろしくお願いします。

Re: サブレポートでページ...  Kimberly - 2005/01/05(Wed) 00:15 No.416

suna様

「ページサイズが大きすぎてフォーマットできません」は、メッセージの内容通りで用紙サイズよりも大きなページとなったためです。
考えられるのは、サブレポートが起因していると思います。改ページはメインあるいは、サブレポートどちらで行なっていますか。メインレポートで行なっている場合、サブレポートで改ページを発生させるようにしてはいかがでしょうか。あと、具体的にどのセクションを利用しているかによって回避方法も変化するかもしれません。


無題  Kimberly - 2004/12/28(Tue) 13:43 No.410

hiro様

セクションエキスパートから詳細セクションの「複数の列に書式設定」オプションをチェックするとレイアウトタブが表れます。
このレイアウトタブで横幅を設定することで複数の列で表示可能になります。
但し、列数でなくサイズで調整することになります。
そして、印刷方向を「縦から横」をチェックします。

Re: 無題  Kimberly - 2004/12/28(Tue) 13:45 No.412

これは、No.409の返信です。。
申し訳ございません。
Re: 無題  hiro - 2004/12/28(Tue) 14:39 No.413

Kimberly様

 いえいえ、とんでもございません。
 無事解決することができました。

 当初は、VBのプログラムで同一フィールドのデータを一旦別のワークテーブルに分けて格納してから、帳票出力するロジックも考えていました。
 ヘルプ機能もなく、途方にくれかけていたクリスタルレポート初心者の私ですが、クリスタルレポートの機能にあっぱれです。レスポンスもとても早くて本当に助かりました。また参考にさせていただきたく思います。

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


1頁に同じフィールド項目を複数行表示させたいです。  hiro - 2004/12/28(Tue) 11:30 No.409

はじめましてhiroと申します。
クリスタルレポート初心者で初歩的な質問かもしれませんけれども、ご存知な方いらっしゃいましたらぜひともよろしくお願い致します。

現在、帳票出力のプログラムを作成しています。
[開発環境] VB6.0(SP5)、Crystal Report8.5

AccessMDBの同じフィールド項目をA41頁内に複数行表示させたいのですが、
クリスタルレポートで可能な制御機能があれば教えてください。

MDBファイル内容




















行番号フィールド名
1名称1
2名称2
3名称3
4名称4
5名称5
      ・
      ・   以下、続く。
      ・

帳票出力イメージ




[行番号]    [明細内容]           [行番号]  [明細内容]
1        テーブル名.フィールド名   6       テーブル名.フィールド名
2           ・            7                        ・
3           ・            8                        ・
4           ・            9                        ・
5           ・            10          ・
  (データが末尾までうまったら再び用紙のTopに折り返して表示)

わかりにくい説明内容かもしれませんがご教授願います。
よろしくお願い致します。
Re: 1頁に同じフィールド・..  Kimberly - 2004/12/28(Tue) 13:44 No.411

hiro様

セクションエキスパートから詳細セクションの「複数の列に書式設定」オプションをチェックするとレイアウトタブが表れます。
このレイアウトタブで横幅を設定することで複数の列で表示可能になります。
但し、列数でなくサイズで調整することになります。
そして、印刷方向を「縦から横」をチェックします。


クリスタルレポートについて  しゅう - 2004/12/24(Fri) 13:43 No.406

はじめまして。
クリスタルレポート初心者です。
開発環境は、Javaでクリスタルレポート 9を使用しています。
いろいろ調べているのですが使い方がよくわかりません。
なにか参考になるサイトを知っている方がいらっしゃれば教えてください。
よろしくお願いします。
Re: クリスタルレポートに...  Kimberly - 2004/12/24(Fri) 15:34 No.407

しゅう様

Java はよくわかりませんが、以下のサイトは、役立ちませんか。
http://www.businessobjects.com/products/dev_zone/java/default.asp?ref=devzone_main
Re: クリスタルレポートに...  しゅう - 2004/12/27(Mon) 10:20 No.408

Kimberly様

ありがとうございます。
教えていただいたサイトを参考にさせていただきます。

続くセクションをアンダーレイ  タカコ - 2004/12/23(Thu) 14:05 No.401

はじめまして。クリスタルレポート初心者です。セクションエキスパートダイアログのチェックボックスに「続くセクションをアンダーレイ」というのがありますが、このチェックボックスにチェックを入れるとどのような振る舞いをするのでしょうか?教えてください。初歩的な質問で大変申し訳ございませんが、宜しくお願い致します。
Re: 続くセクションをアン...  猿町 - 2004/12/24(Fri) 00:24 No.402

タカコ様

「続くセクションをアンダーレイ」オプションをチェックしたセクションよりも下に位置するセクションがこのオプションをチェックしたセクション部分に重なるように表示されます。例えば、グループ ヘッダーの「続くセクションをアンダーレイ」をチェックした以下のレポートでは、

グループ ヘッダー ---------------------(罫線)
                  空白行
            ---------------------(罫線)  

詳細                   {tbl.field1} {tbl.field2} {tbl.field3}

出力結果は、以下のようになります。

グループ ヘッダー ---------------------(罫線)
            11111  AAAAA  ああああ   
            ---------------------(罫線)  
このグループヘッダーは、詳細セクションのデータ1行分の高さでデザインしています。その結果、グループヘッダーが表示される度に上記のように詳細セクションのデータ1行分が表示されます。
グループヘッダーの高さ(行数)に応じて、詳細セクションのデータの表示行数が
変化します。これは、希望通りのレポートを作成するためのテクニックの一つです。
以下のメーカーサイトに例がありますよ。
http://japan.businessobjects.com/support/crystalreports9/faq.asp#rcon_line
Re: 続くセクションをアン...  タカコ - 2004/12/24(Fri) 11:16 No.403


猿町様


ご解答ありがとうございました。
実は、私が本当にやりたいことは以下のようなことなのです。
今、私が作っているレポートレイアウトは、メインレポートの中に
サブレポートがあり、またその中にサブレポートがあるというようなレポートです。
サブレポートに出力したいデータ件数が可変であり、どれだけの範囲にわたって
出力されるかその時々によって異なります。


----------------------------------------------------------
 ヘッダー |
サブレポート出力部 |
サブサブレポート出力部
----------------------------------------------------------
     
|          |             
     
|          |             


上記のようなレイアウトを作成しているのですが、
サブサブレポート出力部のデータが大きすぎて、
1ページに収まりきらないときに
枠だけが印刷されたものが出力されます。


サブサブレポート出力部のデータが大きすぎて
1ページに収まりきらないので次のページに出力しようとしているんですよね?


サブサブレポートをページをまたいで出力するにはどうすればよいでしょうか?


----------------------------------------------------------
 ヘッダー |
サブレポート出力部 |
サブサブレポート出力部
----------------------------------------------------------
     
|          | Line001
     
|          | Line002
----------------------------------------------------------


上記の例の場合だと1枚に収まるのですが、
サブサブレポートのデータがLine3以上になると以下のように出力されてしまいます。
■1枚目
----------------------------------------------------------
 ヘッダー
| サブレポート出力部 |
サブサブレポート出力部
----------------------------------------------------------
     
|          | 空白行         
     
|          |             
----------------------------------------------------------


■2枚目
----------------------------------------------------------
     
|          |
Line001         
     
|          |
Line002
     
|          |
Line003
     
|          |
Line004
----------------------------------------------------------


これを
■1枚目
----------------------------------------------------------
 ヘッダー
| サブレポート出力部 |
サブサブレポート出力部
----------------------------------------------------------
     
|          | Line001         
     
|          |
Line002         
----------------------------------------------------------


■2枚目
----------------------------------------------------------
     
|          |
Line003         
----------------------------------------------------------


のように出力させたいです。

Re: 続くセクションをアン...  タカコ - 2004/12/24(Fri) 11:19 No.404

すみません。レイアウトが全く上手にかけていませんでした。。。ご迷惑をおかけしました。削除したいのですが、削除が出来ず。。。。。すみません。
Re: 続くセクションをアン...  タカコ - 2004/12/24(Fri) 11:43 No.405

さらに大変申し訳ないのですが、上記の問題解決しました。m(__)mすみませんでした。無視してください。

エラー500の解決方法について  ミミ - 2004/12/17(Fri) 11:08 No.395

はじめましてミミと申します。
印刷出力時のエラーについて、教えてください。

プリンター機種を変えて、出力しているのですが、あるプリンターだけエラーになります。
他のプリンターは、問題なく出力できます。
PEStartPrintJobが、0になっているので、エラーになっているのですが、いろいろ調べてみたのですが、原因がわかりませんでした。

PEGetErrorCode は、500なので、この解決方法を、ご存知の方がおりましたら是非ともご教授ください。


[環境]
VB6.0
Crystal Report8.5

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

Re: エラー500の解決方法・..  猿町 - 2004/12/17(Fri) 11:52 No.396

ミミ様

Crystal Reports 8.5でしたら、標準モジュールファイルGlobal.basにエラー番号が定義されています。
以下のように定義されてますので、メモリ不足のようですね。
Global Const PE_ERR_NOTENOUGHMEMORY = 500
プリンタのドライバを最新版にしてみたらいかがですか。
Re: エラー500の解決方法・..  ミミ - 2004/12/17(Fri) 18:08 No.400

猿町様

ご返信ありがとうございます。
プリンタのドライブを最新版にしてみたら、うまくいきました!

ありがとうございました。
またよろしくお願いいたします。


データセットに複数テーブルイメージがある場合  rika - 2004/12/17(Fri) 15:30 No.398

いつも拝見させていただき、勉強させて貰っています。

標題ですが、ひとつのデータセットに異なるレイアウトのテーブルイメージがあり、
それぞれのイメージに沿ったレポートファイルを作成して、それぞれを印刷しよう
としておりますが、データが表示されないという現象になっております。

そのデータセットから画面上のグリッドにレコードは表示されておりますのでデータ自体
は取得できていると思うのですが、このようにひとつのデータセットに複数の異なる
レイアウトのテーブルを配置し、クリスタルレポートとリンクさせることは問題ないでしょうか?

お判りになられましたらよろしくお願いします。

.Net (C#)
Re: データセットに複数テ...  rika - 2004/12/17(Fri) 16:27 No.399

解決しちゃいました。
すみません。
問題なく出力できました

★印刷するレポートの順序を入れ替えることはできますか?  【クリスタルレポート初心者】 - 2004/12/15(Wed) 18:27 No.394

コトミと申します。
レポートの出力順の変更についてです。
宜しくお願いいたします。
分かりづらいことがあればご質問ください。

【内容】
・二つの形式の違うレポートを(A/B)一度に印刷します。
・それぞれのレポートは、グループ毎(部門)に改ページしています。

・部門単位でA/Bのレポートを出力したいのですが、
 A/Bのレポート毎に部門が出力されます。


 「イメージ」 
 ---現在(レポート単位で出力)----
 @Aレポートの1部門が出力
 AAレポートの2部門が出力
 BBレポートの1部門が出力
 CBレポートの2部門が出力
 ↓↓↓↓↓↓↓↓↓↓
 ---やりたい事(部門単位で出力)----
 @Aレポートの「1部門」が出力
 ABレポートの「1部門」が出力
 BAレポートの「2部門」が出力
 CBレポートの「2部門」が出力



【レポートの作成方法】※※※※※※※※※※※※※※※※※※※※※※※※※※※※
 部門1のAレポート
 部門1のBレポート
 部門2のAレポート
 部門2のBレポートというように
 レポートの出力順を指定できるか・入れ替える事ができればと思います。


 レポートの作り方に問題がありますでしょうか?
 いろいろ試しているのですが、解決方法が見つかりません。


 プレビューは、現在の出力順でもかまいませんが
 印刷だけは、やりたい出力順で印刷したいのですが、
 ご教授ください。
 いつも質問ばかりしてすみません。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※

・現在下記のようにしてレポートを作成しています。

==============
メインレポート
==============
詳細セクション-a
  Aをサブレポートとして挿入


詳細セクション-b
  Bをサブレポートとして挿入


--------------
Aレポート
--------------
 グループセクション:部門


--------------
Bレポート
--------------
 グループセクション:部門

Re: ★印刷するレポートの...  Kimberly - 2004/12/17(Fri) 13:17 No.397

コトミ様

以下の方法ではいかがでしょうか。
メインレポートに2つのサブレポートで共通したフィールドでグループを挿入します。
この場合、部門になると思います。
グループヘッダーにAレポートを挿入し、グループフッターにはBレポートを挿入します。それぞれのサブレポートは、メインレポートの部門とリンクします。

それぞれのサブレポートは部門毎に改ページされているとのことなので・・

レポートヘッダー
ページヘッダー
グループヘッダー (Aレポートの最初の部門レコードの表示)
詳細a                (非表示)
詳細b                (非表示)
グループフッター (Bレポートの最初の部門レコードの表示)
ページフッター

グループヘッダー (Aレポートの次の部門レコードの表示)
詳細a                (非表示)
詳細b                (非表示)
グループフッター (Bレポートの次の部門レコードの表示)





ページフッター
レポートフッター

コトミ様のレポートの場合、この方法で期待される結果になるかわかりませんが、
ご参考までに・・

ビューアのズーム率取得について  まつけん - 2004/12/15(Wed) 17:01 No.393

はじめまして。まつけんと申します。


Windowsフォームの CrystalReportViewerについての質問なんですが、拡大率(ズーム率)が
ページの幅全体またはページ全体表示の時の、実質ズーム率を取得する方法をご存知無いでしょうか?


ViewZoomイベントのデータで拡大率を取得できるのですが、(ZoomEventArgs.NewZoomFactor)
ページの幅全体(ページ全体表示)の場合、「1」または「2」の値しか取得できません。
これを、実際表示している倍率が何%であるか?という値を取得したいのです。


仕様で無理そうな感じもあるんですが…
ご存知の方がおりましたら是非ともご教授ください。
よろしくお願いします。


【開発環境】
Microsoft Visual Studio .NET 2003
Crystal Report for .NET


改ページ  @初心者 - 2004/12/15(Wed) 11:43 No.392

はじめまして。クリスタルレポート初心者です。
改ページについて質問があります。宜しくお願い致します。
 
クリスタルレポートの詳細部分で1ページ目は8行で改ページ、
2ページ目以降は14行で改ページとしたいのですが、設定方法がわかりません。

現在、セクションエキスパートの出力後に改ページにチェックを入れて、
以下の記述を追加しているのですが、
2ページ目が6行目で改行されてしまいます。

-----------------------------------------
If PageNumber = 1 then
RecordNumber = PageNumber*8
else If PageNumber > 1 then
RecordNumber = 14
-----------------------------------------

どなたか具体的な方法をご教授していただけませんでしょうか?
宜しくお願い致します。


【開発環境】

.NET                 : Microsoft Visual Studio .NET 2003(VB)

クリスタルレポート : Crystal Report 9

Wordへエクスポート時の用紙サイズ  ともこ - 2004/12/15(Wed) 11:22 No.391

お久しぶりです。ともこです。

みなさんのやりとり、とっても勉強になります☆ありがとうございますo(^o^)o

タイトルの件についてなんですが・・・知ってる方いらしたら教えてください☆

まず、ファイル>プリンタの設定の用紙サイズでA4で選択してWordへエクスポートをし、その出力Wordファイルを開くときちんとA4になっています。
しかし、A3を選択すると、Wordファイルのページ設定はLetterになってしまうのです(ToT)
絶対A3なんて言われていて・・・。そもそもA3は対応してないとか、知ってる方ぜひぜひ教えてくださぁい。。゛(ノ><)ノ
(Version9を使ってます☆)

データベースログイン画面の回避について  クルシンデルレポート - 2004/12/14(Tue) 18:26 No.386

www.hirano.cc/crystalreports/show_on_CrystalReports.html

はじめまして。クルシンデルレポートと申します。

板主様の上記URL中の「実行」の項でデータベースログイン画面のことについて
記されてますが、その中の「CrystalReportViewerに渡す前に書いた方が・・」
の記述について質問させてください。

CrystalReportViewerに渡す、とはどういう意味なのでしょうか?

具体的なコードとかを指していらっしゃるのであればお示し頂ければ幸いなので
すが・・。

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


Re: データベースログイン...  ひらちゃん - 2004/12/15(Wed) 00:54 No.389

こんにちは。板主です。

CrystalReportViewerに渡すのは、

crystalReportViewer1.ReportSource = cr;

の部分ですね。具体的には、

HiraCryRepo1 cr = new HiraCryRepo1();
cr.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr;

の順番がいいみたい、という記述でした。

ちょっとわかりにくくてすみません。
Re: データベースログイン...  クルシンデルレポート - 2004/12/15(Wed) 09:48 No.390

おぉ・・板主様、レスありがとうございます。

実はまさにログイン画面の回避で悩み、あちこち彷徨っているさなかこちらの存在
を知り、藁をもすがる思いで質問させて頂いた次第です。

おかげさまで、なんとか出力までこぎつけることができました。
大変感謝しております。ありがとうございました。



グループフッタの出力制御について  つじ - 2004/12/14(Tue) 21:19 No.388

初めて投稿させて頂きます。
クリスタルレポート初心者ですが、よろしくお願い致します。


グループフッターに合計情報等を表示させている場合、
明細レコードがちょうどページの最後で終了すると
合計だけが次ページに表示される状態になってしまいます。


これを避ける方法として、私には
プログラムの側で合計情報を作成し、
それを明細レコードの1つとして出力させ、
1ページに表示する明細行数を考慮の上、
合計だけのページが生成されないよう空行を追加する、
という方法しか思いつきません。


何かクリスタルレポートの設定で以下のような状態を簡単に
実現できないものでしょうか?
 1.グループフッタのみのページが生成しないよう、
   明細の最後の1行を次ページに回す。
 2.全ページ末尾にグループフッタ出力用スペースが確保され、
   グループフッタのみのページが生成する場合のみ
   そこにグループフッタが出力される。


(理想は1の方法です。)


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



開発環境
 VisualBasic6.0(SP5)
 CrystalReport8.5


ある条件の一行を非表示できませんでしょうか?  【クリスタルレポート初心者】 - 2004/12/13(Mon) 12:02 No.383

詳細セクションのデータで、先頭行が空白行の場合は表示したくないのですが
一行だけを非表示するような設定(方法)はありませんでしょうか?


下記のようなデータを明細データとして表示しますが
改ページした場合に、先頭行が空白になる場合はがあります。
(一括してデータをレポートに渡しています)
そこで、クリスタルレポート側で
詳細セクションの先頭行が空白の場合は、
行を表示しないか一行詰めて表示させたいのですが・・・
いろいろ調べたのですが、うまくできません。

※セクションエキスパートで
  「詳細セクション」の【非表示-ドリルダウン不可】に式を書くと実現可能ですが
  先頭行かどうかの判定を「RecordNumber」でしています。
  「RecordNumber」は次頁になると初期化はされないでカウントアップされる為
  先頭行かどうかを判定するのに、
  ページ表示max行数で割るような方法をとらないと
  いけないのですが、あまりしたくありません。
  (表示行数が変わると、修正が必要になる為)
  【非表示-ドリルダウン不可】に書く式をプログラムから渡せたらと思いますが
  やり方がわかりませんでした。
  @プログラムで渡す方法か
  Aその他の方法があればと思います。


よろしかったらどなたさまかご教授ください。
宜しくお願いいたします。


「サンプル表示内容」
部門1    金額
---------------
A               10
A               20
A               30
(空白行)
B             100
B             200
(空白行) → ここで改頁されたら次頁の先頭行が空白からはじまってしまう。
C           1000



Re: ある条件の一行を非表...  Kimberly - 2004/12/14(Tue) 06:11 No.384

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

なぜ、空白行が表示されるのでしょうか。
その原因を解決した方がよいのではないでしょうか。
あるいは、データベースの空白データが存在しているということでしょうか。
Re: ある条件の一行を非表...  【クリスタルレポート初心者】 - 2004/12/14(Tue) 19:53 No.387

Kimberly 】様
説明不足ですみません。
空白行は、部門をまたがる時に意識して表示するようにしています。

下記の方法で解決できそうです(自己レスです。)
@行カウント用の変数を用意します。
  行カウント
Aページヘッダーのイベントで初期化します。
  行カウント = 0
B・詳細セクションのイベントで行カウントします。
    行カウント = 行カウント  + 1
  ・先頭行で、空白行の場合に詳細セクションを非表示にします。
  If 行カウント = 1 and 空白行判定() = True then
        詳細セクション.Suppress = True
     else
        詳細セクション.Suppress = False
     end If
   
  ※空白行判定()関数で空白行か判定しています。
  ※詳細セクション.Suppress で、現在の行を表示/非表示できるみたいですので
    まだ確認はしてませんが。。。


※但し、発生するイベントの順番が
  @ページヘッダーのイベント
  A詳細セクションのイベント
  となる事が前提ですけど。。。
  改ページの時にどうなるかきなりますが、テストして確認したいと思います。

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



オフ会でもしませんか?  ひらちゃん - 2004/12/14(Tue) 10:00 No.385

こんにちは、ひらちゃんです。

忘年会の季節です。

ここの常連さんも、通りすがりの方も、仕事をぱーっと忘れて
情報交換でもしましょう。(これも仕事?!)

日程は25日(土)、場所は、東京新宿あたりでどうでしょうか。

参加するぞ、とか、希望とかあれば、ここに書いちゃってください。

サブレポートで2ページの最後の行がきれてしまいます。  【クリスタルレポート初心者】 - 2004/11/25(Thu) 18:20 No.369

また、クリスタルレポートでうまくいきません。
ですので、投稿しました。
よろりかったら、ご教授ねがいます。

コトミといいます。

【設定内容】
1.メインレポートの詳細セクションにレポートを置いています。
 (その他、なにもしていません。)
2.サブレポート側でコードが変われば改ページするようにしています。
 (グループにコードを設定しています。)

1ページ目は全部表示されるのですが
2ページ目が、サブレポートの外枠が縮まって最後の行の下線が隠れてしまいます。

詳細セクションやサブレポートを広げたり
詳細セクションのフォーマットイベントでサブレポートの縦幅を設定したりしたのですが
どうしても回避できませでした。

何が悪いのかがわかりません。
どちら様か回避方法を知っていればご教授ください。
宜しくお願いいたします。


※ いくつかの異なるレポート形式のデータを
  指定により切り分けてレポート表示しようとする為に
   サブレポートとして作成しています。
   ※表示データはまったく同じなのですが。。。

Re: サブレポートで2ペー・..  ひらちゃん - 2004/11/26(Fri) 00:12 No.371

こんにちは。ひらちゃんです。

以前、Viewerでは見えるのに、PrintToPrinter()で出力
すると、線が切れるというようなことがあって、そのときは
セクションのHeightをLineThickness分増やすと出来ました。

なんとなく今回のはちょっと違うかも知れませんが。
Re: サブレポートで2ペー・..  【クリスタルレポート初心者】 - 2004/12/13(Mon) 11:50 No.382

ひろちゃん様、返信がおくれて申し訳ありません。
開発に没頭していました。

上記の件ありがとございました。

現在はサブレポートを使わずに対応しています。
次回にやってみようと思います。
ありがとうございました。


ページヘッダとレポートフッダについて  KEN - 2004/12/10(Fri) 15:57 No.380

申し訳ありません。教えて下さい。

以前、No327のやり方でグループフッタに条件を記載し、余計なヘッダを出力しない方法を実施し、うまくいったのですが、
今度はグループ指定がなく、ただ、上から下に明細を出力し、最終ページに明細件数(出力件数)を出力する帳票を作成いたしました。

しかし、明細件数がページ上に表示できるMAX件数丁度だと、最終ページは上部にページヘッダと最下部にレポートフッタのみが出力されてしまいました。
早速、No327のやり方同様、レポートフッダの条件に
 WhilePrintingRecords;
 Not NextIsNull ({○○.○○○○});
と記載しようとしたところ、レポートフッダには改ページ後に出力にデフォルトでチェックがついており、条件の入力を許さないようになっております。

余分なページが出力されて困っています。どなた様か良い方法ご存知でしたら、ご教授頂きたいのですが…。
よろしくお願い致します。
(クリスタルレポートのバージョンは8です)
Re: ページヘッダとレポー...  KEN - 2004/12/10(Fri) 16:48 No.381

一応、強引ではありますが解決策として、明細は出力できないが、フッタは出力できるというようにセクションの幅を調整して(明細、フッタともに1行なのですが)無理やり改ページさせないように致しました。ただ、そんな強引なやり方は余白やプリンタの設定を変えたらお終いなので、最善の方法とは呼べないので、もし、他の解決方法がありましたら、ご教授下さい。
よろしくお願い致します。


| 1| 2| 3| 4| 5|