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

IISの設定について  TAR - 2006/08/25(Fri) 02:21 No.2446

皆さん始めまして。TARと申します。
いつも参考させて頂いております。


***開発環境***
OS:Windows2003Server
  IIS6.0
開発言語:VB/ASP
CrystalReport 11
DB:Oracle10G
**************


現在下記の環境で稼動しているものを上記環境へ移植する作業を行っております。


***現行環境***
OS:WindowsNT
  IIS4.0
開発言語:VB/ASP
CrystalReport 8
DB:SQLServer
**************
DBのデータをCrystalReportを使用してブラウザに表示させています。


IISの設定で拡張子.repの参照先設定
(プロパティ→ホームディレクトリ→構成)
を行ないますが、.repにはどのdllを設定すべきなのでしょうか。


現在稼動しているCrystalReport 8とはファイル構成が大きく違うために
困っております。


基本的な質問かもしれませんが、御教授お願いいたします。

Re: IISの設定について  24x7 - 2006/08/29(Tue) 06:33 No.2460

> IISの設定で拡張子.repの参照先設定
> (プロパティ→ホームディレクトリ→構成)
> を行ないますが、.repにはどのdllを設定すべきなのでしょうか。

拡張子.rep とは、.rpt のことですか?
COM ASP を利用している場合、設定しなくても動作します。メーカーサイトからサンプルアプリケーションをダウンロードして試してみたら・・


TextBox  kiki - 2006/08/28(Mon) 21:24 No.2457

テキストボックスに直接値をセットする方法が分かりません。
どなたかご存知の方いませんか?
Re: TextBox  24x7 - 2006/08/29(Tue) 06:22 No.2459

開発言語と開発手法がわからないと回答できないと思います・・

レポートソースについて  まご - 2006/08/22(Tue) 19:35 No.2423

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

WindowsXP Pro
CrystalReport8
Access2000

データベースから絞込みを行った結果をレポートに表示させているのですが、
レポートを開くと、絞込みが行われずに、全てのデータが表示されてしまいます。

Fillした後に、データセットのカウントをとると、正常に絞り込まれており、
また、フォームにデータグリッドを用意しても正常に絞り込まれた結果が表示されます。
が、レポートでは、全てのデータが表示されます。

同様の現象をご存知の方居られないでしょうか?

以下、データの絞込みからレポート表示までのコードです。
If Me.cbcNumber.Text.Length <> 0 Then
      Me.OleDbDataAdapter3.SelectCommand.CommandText = "SELECT * FROM コース表 WHERE コース = " & CType(Me.cbcNumber.Text, Integer)
Else '全コース作成
      Me.OleDbDataAdapter3.SelectCommand.CommandText = "SELECT * FROM コース表"
End If
Me.DsCouLst1.Clear()
Me.OleDbDataAdapter3.Fill(Me.DsCouLst1, "コース表")
c.SetDataSource(Me.DsCouLst1)
cr.crv1.ReportSource = c
cr.crv1.Zoom(2) '表示領域ぴったり
cr.Show()

Re: レポートソースについて  NZ-000 - 2006/08/23(Wed) 08:52 No.2430

こんにちは。

c.SetDataSource(Me.DsCouLst1)
のあとに
c.Refresh()
を追加してみたらどうですか?

また、ビューアの更新ボタンを押したら更新されますか?
それでしたら、
cr.crv1.RefreshReport()
も試していただけますか。
Re: レポートソースについて  まご - 2006/08/23(Wed) 10:04 No.2433

NZ-000 様

ありがとうございます。
早速試してみましたが、何の変化もありませんでした。

っと、ふと
c.SetDataSource(Me.DsCouLst1) をコメントアウトして何もデータをセットせずに試してみたところ、
これまでと同じで、全データ出力ということになりました。。。
SetDataSourceを行わずに、データが表示されるということは、なんでしょう・・・?
↑正常な動作であれば問題ないと思いますが。何も表示されないとおもっておりましたもので。
Re: レポートソースについて  NZ-000 - 2006/08/23(Wed) 16:58 No.2435

当方CrystalReportXI+VS2005 で上記(まごさんの一番最初に書かれていたコード)を検証しましたが全く問題なくReportSourceを
再セットした段階で更新されます。

気になるのはCrystalReport8を使ってらっしゃるということですがほんとですか?
VS2002にはver8.5、VS2003にはver9相当がバンドルされていたと記憶しています。
とりあえず、上記コードを見た限りそのような現象が起こるとは考えにくいです。
他の場所になんらかの原因があるか、
バグかもしれません。
HotFixは当ててみましたか?
http://support.businessobjects.com/downloads/monthly_hot_fixes/crystalreports.asp
(CrystalReport8はサポート終了してたかな。。。)

関係ないと思いますが、
他フォームのコントロールにパブリックアクセスするのはあまり感心できませんね。
Re: レポートソースについて  NZ-000 - 2006/08/23(Wed) 16:59 No.2436

>SetDataSourceを行わずに、データが表示されるということは、なんでしょう・・・?

レポートにデータがキャッシングされているのでしょう。
Re: レポートソースについて  24x7 - 2006/08/23(Wed) 23:24 No.2438


>c.SetDataSource(Me.DsCouLst1) をコメントアウトして何もデータをセットせずに
>試してみたところ、
>これまでと同じで、全データ出力ということになりました。。。
>SetDataSourceを行わずに、データが表示されるということは、なんでしょう・・・?
>↑正常な動作であれば問題ないと思いますが。何も表示されないとおもっており
>ましたもので。

多分、レポートのデザイン時のデータベース接続と保存方法により、上記のことが発生したものでしょう。上記内容だけでは、詳細不明ですが、データ付きでレポートが保存されたか、データベースの接続記述がなくてもデータベースにアクセスできる動作環境であるとか・・等

試しに、Report オブジェクトの DiscardSavedData メソッドを呼んでみてください。
SetDataSource 行をコメントし、エラー又は何も表示されなければ、そのあたりに問題があると思います。

Re: レポートソースについて  まご - 2006/08/24(Thu) 08:55 No.2439

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

まず、CrystalReportのVerですが、
使っていたHelpにCR8とあったので勝手に8だと勘違いした次第で、
URLから選択するとすると、CrystalReports for Visual Studio .NET 2003 になります。
(ということは、Ver9相当でしょうか。)

>他フォームのコントロールにパブリックアクセスするのはあまり感心できませんね。
不慣れなもので、それ以外の方法での対応がままならないものでして。。

>レポートにデータがキャッシングされている
c.Refresh()していますが、それに関係せずなものでしょうか?

>多分、レポートのデザイン時のデータベース接続と保存方法により、上記のことが発生したものでしょう。上記内容だけでは、詳細不明ですが、データ付きでレポートが保存されたか、データベースの接続記述がなくてもデータベースにアクセスできる動作環境であるとか・・等
後だしの情報になって申し訳ありませんが、レポート自体はAccessで作成をしており、
そのレポートを、Access Conversion Wizard for Visual Basic .NETを用いて、変換した上で使っております。
そのため、どのような状態で保存されたのかなどは承知しておりません。
「データ付きでレポートが保存された」などは、後から変更することは可能でしょうか?
近い記述はあったりしました↓が、それ以上はなかなか進んでおりません。
http://forums.belution.com/ja/crystal/000/000/86s.shtm

また、Report オブジェクトの DiscardSavedData メソッドはまだ試しておりません。
Re: レポートソースについて  24x7 - 2006/08/24(Thu) 23:00 No.2443

> また、Report オブジェクトの DiscardSavedData メソッドはまだ試しておりません。

.NET コンポーネントを使っている場合、DiscardSavedData が使えるかわかりません。
Re: レポートソースについて  まご - 2006/08/26(Sat) 11:38 No.2453

状況の報告をさせて頂きます。

24x7様
DiscardSacedDataにいまだめぐり合っておりません。使えないかもしれませんです。

また、レポートのほうを改めて確認したところ、抽出が出来るレポートとの違いがありました。
フィールドエクスプローラのテーブルを右クリックすると出ますメニューに、
”SQLクエリーの表示”という項目がありまして、
レポートのほうで、ばっちりかましておりました。

SQLの内容は間違いなく、全データを表示させるものでありました。

一応ですが、原因の特定が出来たと思いますので、報告させていただきます。
Re: レポートソースについて  まご - 2006/08/26(Sat) 13:42 No.2454

解決しました。
NZ-000様、24x7様 ありがとうございます。

原因は、うまく説明できませんが、
「データベースエキスパート」の利用可能なデータソース欄から選択するテーブルを、
”ADO.NETデータセット”ではなく、”現在の接続”から参照しておりました。
現在の接続からだと、フィールドをレポートに追加すると自動でSQLが作成されていたようです。

参照先を変更しまして、解決に至りました。

貴重なお時間を割いていただきありがとうございます。

ExportToDisk  smd - 2006/08/25(Fri) 13:35 No.2451

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

現在、C#2003+Crystal Reports9で開発を進めています。

ReportDocument.ExportToDiskについて質問させてください。

現在開発しているアプリケーションで、ReportDocumentクラスのExportToDiskメソッドを使用しています。このアプリケーションを動作する環境で、何も入っていない状態でCrystalReports9をインストールした場合は正常にエクスポートできるのですが、CrystalReports8.5をアンインストールした後、CrystalReports9をインストールした場合は、「メソッドが見つかりません。(CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToDisk...)」というエラーが出てしまいます。
これを解消するためにはどうすればよいでしょうか。

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

グループの集計について  YEC - 2006/08/24(Thu) 22:13 No.2442

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

CrystalReportsの集計について質問をさせていただきます。

以下の環境で開発を行っております。
VisualBasic2005
CrystalReports  VisualStudio2005バンドル版
Windows XP Professional SP2

作成中のレポートは、↓こんな感じです。

グループヘッダ:AreaID     東京、大阪・・・
グループヘッダ:StoreID    A店、B店・・・
詳細      
グループフッタ:StoreID     A店、B店・・・
グループフッタ:AreaID      東京、大阪・・・・


式フィールド
・@Fee---DBにある4つのフィールド値を単純に加算。
・@Tax---@Feeを10で割り、余りが有る場合は1円プラスする。DecimalPlaces=0に設定し、整数表現。
@Taxの式の内容は以下の通りです。
If Sum ({@Fee}, {DBName.StoreID}) Mod 10 <> 0 Then
Formula = Fix(Sum ({@Fee}, {DBName.StoreID})/10) + 1
Else
Formula = Fix(Sum ({@Fee}, {DBName.StoreID})/10)
End If


----------Fee-------Tax-----
                23,756円
                28,536円
A店 合計   52,292円     5,230円      グループフッタ:StoreID
                  3,875円
B店 合計     3,875円       388円      グループフッタ:StoreID
----------------------------
東京合計   56,167円     5,617円      グループフッタ:AreaID


グループフッタ:AreaIDでも、上で示した@Taxと同様の式で計算を行っており、
東京のTax合計 = A店のTax合計 + B店のTax合計 + ・・・・・
とはならずに困っております。

そこで、東京合計のTaxに
Sum ( {@Tax} )
という内容の式フィールドを作成して集計使用としたのですが、「このフィールドは集計できません。」と
エラーが出てしまい、うまくいきません。


東京のTax合計 = A店のTax合計 + B店のTax合計 + ・・・・・

を実現するには、どのような方法が考えられますでしょうか?
よろしくお願いいたします。

Re: グループの集計について  24x7 - 2006/08/24(Thu) 23:12 No.2445

数学に弱いですが、無理じゃないですか?
手動で計算しても一致しますか?
Re: グループの集計について  YEC - 2006/08/25(Fri) 11:23 No.2449

24x7様

無理そうですか・・。
EXCELに適当な値を入力して色々計算してみましたが、
計算が一致することがあったり無かったりで、その法則性がわかりません。

何か方法が無いか、引き続きこの掲示板をチェックしつつ色々と試してみます。
もし解決方法が見つかったら、ここでご報告します。

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

Re: グループの集計について  まご - 2006/08/25(Fri) 13:01 No.2450

横から失礼します。

通常、小数点以下の桁は切り捨てすると思うのですが(当社では切り捨て)、
切り上げている限りは、数値が合うことはないと思います(数にもよりますが)。

上記の例であれば、
A店 合計   52292÷10 = 5229.2         →  5230
B店 合計     3875÷10 = 387.5          →  388
------------------------------------------------
東京合計   56167÷10 = 5616.7 → 5617   ≠ 5618

AとBそれぞれで+1となる為、合計+2
東京合計では、+1
計算が合わなくて当然かなと思います。

解決方法ということでなくて申し訳ありませんが、
金額の切り上げがちと気になったもので・・・。

蛇足すみません。

非連結文字列の2行表示について  BP - 2006/08/24(Thu) 12:04 No.2440

お世話になっております。 BPと申します。

この度CrystalReport For .Net(2003)を用いた帳票を作成する運びとなりました。
その際に以下の点について行き詰まってしまった為、ご質問させて頂きます。

AP:WindowsApplication(VisualStudio .Net 2003)
OS:WindowsXP Pro
CR:CrystalReport For .Net(2003)

 詳細セクションに非連結文字列を挿入して、値を表示するように設定したのですが、表示する文字列の長さによって1行で収まりきらず、2行表示になる場合があります。
 この2行表示自体は、非連結文字列オブジェクトの高さを2行分確保することで対応出来るかと思ったのですが、この方法だと1行で収まりきる場合には文字の縦位置が上詰めで表示されてしまいます。
 これを出来れば1行で収まりきる場合には縦位置を行の中央に出来ればと考えております。

※縦位置を設定するプロパティなどで中央揃えに設定できれば出来るのではと考えていたのですが、そのようなプロパティが見つかりませんでしたので。。。

 つきましては、このような表示を行う方法をご教授願えませんでしょうか。
 また、今回私の方で行った方法より良い2行表示の方法などがもし御座いましたら、合わせてご教授願えれば幸いです。

以上、宜しくお願い致します。

<詳細セクション:1行で収まる場合>
-----------------------------
てすとです。             

-----------------------------
※現状ですと上詰めになりますが、これを縦位置中央に出来ればと。。。

<詳細セクション:1行で収まらない場合>
-----------------------------
てすとです。 あいうえおかきくけこさし
すせそたちつてと・・・
-----------------------------

グループ内のページ番号と総ページ数  non - 2006/08/22(Tue) 13:32 No.2420

はじめまして。
質問させていただきますm(_ _)mよろしくお願いします。

クリスタルレポートにグループを1つ作成していて、そのなかの詳細に住所録を表示しようといています。その際、
 ・ページヘッダーに「あ-1」「か-3」というように、そのグループ毎のページ番号を表示
 ・ページフッターには、「通しページ番号/総ページ数」を表示
させたいのですが、なかなかうまくいきません。セクションエキスパートのグループフッターで、「出力後に改ページ」をすると、式フィールドの総ページ数がグループごとの総ページ数になってしまいます。

よろしくお願いします。
Re: グループ内のページ番...  24x7 - 2006/08/22(Tue) 23:28 No.2429

「出力後にページ番号をリセット」するとすべてリセットされてしまうので利用しないほうがいいでしょう。この場合、グループ毎の総ページ数は利用していないので、手動でカウントするしかありません。
ページフッターは、そのまま利用します。

ページヘッダーでは、式フィールドを利用して、グループ毎のページ数をカウントします。
グループヘッダーに以下の式フィールドを挿入します。
WhilePrintingRecords;
NumberVar gCount;
gCount:=gCount+1;
Left({グループフィールド名},1) + "-" + ToText(gCount);

グループフッターには、以下の式フィールドを挿入します。
WhilePrintingRecords;
NumberVar gCount:=0;

Re: グループ内のページ番...  non - 2006/08/23(Wed) 09:33 No.2432

24x7 様

ほんとにありがとうございます!!!すばらしいです(ToT)うまくいきました!!
ありがとうございましたm(_ _)m


レコードの選択  kaz - 2006/08/21(Mon) 11:24 No.2415

いつもお世話になっております。
早速なのですが質問させていただきますのでお願いします。


環境
Windows2000
Oracle 9i
crystal report 9


Table A
取引先番号   処理番号   金額  フラグ
1000000000      00000001      5000         0
1000000000      00000002      1000         0
1000000000      00000002      1000         1
1000000000      00000003      3000         0
1000000000      00000004      4000         1


【Table A】というテーブルがあるとして、
「フラグ」が0のレコードのうち、処理番号が最大のものの
金額だけを表示したいと考えています。
(上記の場合であれば4レコード目の「3000」と出力したい)
クリスタルレポートの機能で実現する方法をご存知のかたいらっしゃいましたら
お教え願えますでしょうか?
(SQL式フィールドを利用しない方法であれば助かります。)


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

Re: レコードの選択  kaz - 2006/08/21(Mon) 18:50 No.2417

追加の情報です。
出力の形式としては以下のようなイメージを希望しています。

普通にTableAの「金額」をセットするような記述にすると、3000では無く、
常に一番最初の項目の5000がセットされてしまいます。

------------------------------------------
                                       金額   3000

取引先番号   処理番号   金額  フラグ
1000000000      00000001      5000         0
1000000000      00000002      1000         0
1000000000      00000003      3000         0
------------------------------------------

以上よろしくお願いいたします。
Re: レコードの選択  24x7 - 2006/08/21(Mon) 21:55 No.2418

処理番号を降順ソートするのでは駄目ですか。処理番号が一番大きいレコードを最初で、それ以降はどの順ですか。処理番号が降順で構わないなら、ソートすればできると思います。

Re: レコードの選択  kaz - 2006/08/22(Tue) 13:06 No.2419

返信ありがとうございます。
明細部の表示は、上記のように処理番号の昇順で表示したいと考えています。
このような場合残された方法はやはり”SQL式フィールド”の利用となるのでしょうか?
以前にもあったのですが、うまくSQL文を認識してくれず、SQL/Plusで実行できても、
クリスタルレポートのSQLフィールドで実行できないという現象がおきてしまう為
今回の質問の際にも「SQL式フィールドを利用しない方法で」とつけさせていただきました。

Re: レコードの選択  24x7 - 2006/08/22(Tue) 22:21 No.2425

降順でなく、昇順でしたね。失礼しました。

> ------------------------------------------
>                                       金額   3000

この部分を処理番号が一番大きく、フラグがゼロのレコードの金額を表示したいわけですね。


Re: レコードの選択  24x7 - 2006/08/22(Tue) 22:44 No.2426

期待する方法ではないかもしれませんが、以下の手順で可能です。

1. フラグでグループを挿入します。
2. レコード選択式を利用しているかわかりませんが、。。
 フラグ=1 のレコードはすべて非表示にします。
 フラグのグループヘッダー、フッター、詳細の非表示の条件式に以下の式を挿入 
 します。 
  WhilePrintingRecords;  
  {xxx.フラグ}<>0
3. デザイナの挿入メニューから「集計」を選択します。
4. 集計するフィールドは、"処理番号"を選択します。
5. 集計方法は、「最大」を選択します。
6. 集計の保存場所は、グループを選択します。
挿入された集計フィールドをグループヘッダーに挿入します。
その結果、上記のイメージのレポートが完成します。

以下は、グループヘッダー (フラグ)で表示する。                                    
------------------------------------------
                      金額   3000
    取引先番号   処理番号   金額  フラグ

以下は、詳細で表示する。
    1000000000      00000001      5000         0
    1000000000      00000002      1000         0
    1000000000      00000003      3000         0

以下は、グループフッターで表示する。
------------------------------------------

Re: レコードの選択  24x7 - 2006/08/22(Tue) 22:47 No.2427

上記の方法は、表示する内容が間違ってしまいました。何度もすみません。

Re: レコードの選択  24x7 - 2006/08/22(Tue) 23:16 No.2428

この部分だけ「サブレポート」を利用して実現することができました。

上記手順 2. の次にサブレポートをグループヘッダーに挿入します。
メインとサブレポートは、フラグの項目でリンクします。

サブレポートもフラグでグループを挿入します。
詳細には、以下の式フィールドを挿入します。
WhileprintingRecords;
if {xxx.処理番号}= maximum({xxx.処理番号},{xxx.フラグ}) then
{xxx..金額}
else
0
この結果、処理番号が一番大きいレコードの金額を求めます。
サブレポートの詳細以外はすべて非表示とします。
詳細セクションの非表示の条件式には、以下の式を挿入します。
{@上記の式フィールド名}=0
その結果、処理番号が一番大きいレコードの金額のみ表示されます。

以下は、グループヘッダー (フラグ)で表示する。        
但し、枠内は、サブレポートで表示する。                            
------------------------------------------
                                              +-----+            
                                                  金額  |  3000 |
                                                          +-----+
    取引先番号   処理番号   金額  フラグ

以下は、詳細で表示する。
    1000000000      00000001      5000         0
    1000000000      00000002      1000         0
    1000000000      00000003      3000         0

以下は、グループフッターで表示する。
------------------------------------------

期待する手法ではないかもしれませんが、参考にしてください。

Re: レコードの選択  kaz - 2006/08/23(Wed) 09:30 No.2431

24x7殿、詳しく説明していただきありがとうございます。

自分にとってはかなりの高度な内容なので今からじっくりと腰を据えて教えていただいた方法で試してみます。結果は後ほどお伝えしますので少々お待ち下さい。
本当にいつもありがとうございます。

無題  non - 2006/08/22(Tue) 13:34 No.2421

すみません、間違えました!!

「出力後に改ページ」ではなくて、「出力後にページ番号をリセット」でしたm(_ _)m

申し訳ないです。。
Re: 無題  kaz - 2006/08/22(Tue) 13:56 No.2422

新規で投稿するのではなく 「No.2420」に対して返信する形にしたほうがいいと思いますよ^−^;
Re: 無題  non - 2006/08/22(Tue) 20:23 No.2424

そうですね(+_+)焦ってしまったので。。すみません。。

テキストオブジェクト  島崎 - 2006/08/16(Wed) 16:16 No.2395

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

ご教授のほどよろしくお願いします。

テキストオブジェクトの値を式フィールドの式で参照することは可能ですか?
式フィールドで参照できるアイテムは選択できるようになっていると思いますが、
テキストオブジェクトだけないように思われます。

どなたかご教授をお願いします。
よろしくお願いします。
Re: テキストオブジェクト  24x7 - 2006/08/16(Wed) 23:56 No.2397

テキストフィールドの値を式フィールドで参照はできません。そのため、テキストフィールドでなく、式フィールドを利用します。式フィールドから式フィールドの内容を参照することになります。式フィールドから参照するなら、テキストフィールドにこだわることはないと思いますが・・
あと、アプリケーションからの参照は、テキスト、式フィールドどちらも可能です。
Re: テキストオブジェクト  島崎 - 2006/08/18(Fri) 11:05 No.2409

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

以前下記のような回答をいただきましたが、
ロジックからフィールドオブジェクトへの設定はできないが、
式フィールドへの設定は可能ということですか?
もし可能であるなら、設定方法をご教授していただけませんか?
よろしくお願いします。







Re: フィールドオブジェク... 24x7 - 2006/08/16(Wed) 02:57 No.2388 







フィールドオブジェクトは、データベースの項目でしょう。そこに値を設定することはできません。
Re: テキストオブジェクト  24x7 - 2006/08/18(Fri) 13:39 No.2411

No.2402 を参照してください。
Re: テキストオブジェクト  島崎 - 2006/08/18(Fri) 16:54 No.2412

No.2402参照しました。
これは式フィールドにの構文になりますよね?


自分の説明不足でもうしわけありません。
自分が聞きたかったのはVB.NET
で外部のロジックからクリスタルレポート内の式フィールドに値を設定する
ロジックをご教授してもらえないかと伝えたかったんです。
日本語下手ですみません。。。


クリスタルレポートのテキストオブジェクトにVB.NETで外部から設定
CType(kouzimaewatasizandaka_meisai1.ReportDefinition.ReportObjects("Text_nen"), TextObject).Text = UnyoDate.Year


で設定できました。


式フィールドに設定する場合、どのように書けばよろしいですか?
よろしくお願いします。

Re: テキストオブジェクト  24x7 - 2006/08/18(Fri) 22:17 No.2413

バンドル版でもデザイナの式エディタがありますので、そこに式を挿入して、エラーがないことを確認したら、その内容をVB.NETのコードに反映させればいいと思います。

メーカーのサイトで検索するといくつかヒットしましたので参考にしてください。

http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2010287&sliceId=&dialogID=3336540&stateId=1%200%203338356 

http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2010354&sliceId=&dialogID=3336540&stateId=1%200%203338356
Re: テキストオブジェクト  島崎 - 2006/08/21(Mon) 16:54 No.2416

何度も返信申し訳ないです。

サイトを参考させて頂き、なんとか解決することができました。
ありがとうございました。
(≧∀≦)

XIからの変更のしかた。  e-sharp - 2006/08/07(Mon) 13:57 No.2343

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

質問内容
バージョン8まで使われていたOCXがバージョン9から使用不可になりましたよね。
それに伴い、ソースの変更を余儀なくされました。
で、変更したいのですがヘルプを見ても解らない始末。
そこで皆様に教えていただきたいのです。
バージョン8まで使われていたものがどのように変わったのか。
書いてあるサイトや資料物等がありましたら教えてください。
Re: XIからの変更のしかた。  24x7 - 2006/08/07(Mon) 21:43 No.2348

以下のリンクの技術文書を参考にしました。
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=http--supportbusinessobjectscom-communityCS-TechnicalPapersNoNav-cr9ocxtordcpdfasp&sliceId=&dialogID=2486295&stateId=1%200%202484678  
過去の記事にもあったと思います。探してみてください。
Re: XIからの変更のしかた。  e-sharp - 2006/08/10(Thu) 16:12 No.2368

24x7様
返信が遅れまして申し訳ありません。

さっそく資料を基にソース変更を行いました。
うまく動作をしてくれませんでした。
そこでご助力をお願いします。

前ソース
  CrystalReport1.Destination = 1
  If optプリンタ1.Value = True Then       
      CrystalReport1.ReportFileName = Report_PATH & "納品書376.rpt"
  ElseIf optプリンタ2.Value = True Then  
      CrystalReport1.ReportFileName = Report_PATH & "納品書673.rpt"
  Else
      Exit Sub
  End If

    CrystalReport1.Destination = 1
    If optプリンタ1.Value = True Then       
        If strPcName = "Soumu_2" Then
            CrystalReport1.PrinterPort = "LPT1"
        Else
            CrystalReport1.PrinterPort = "別ポート"
        End If
        CrystalReport1.PrinterDriver = "FUJITSU FMPR-376 (NPK)"
        CrystalReport1.PrinterName = "FUJITSU FMPR-376 (NPK)"
    ElseIf optプリンタ2.Value = True Then   
        If strPcName = "Eigyou" Then
            CrystalReport1.PrinterPort = "LPT1"
        Else
            CrystalReport1.PrinterPort = "別ポート"
        End If
        CrystalReport1.PrinterPort = "FM-LNA100 (Fujitsu  PTP  ポート)"
        CrystalReport1.PrinterDriver = "FUJITSU FMPR-673"
        CrystalReport1.PrinterName = "FUJITSU FMPR-673"
    Else
        Exit Sub
    End If


直しているソースはこのような感じです。
    Dim cr11Application As New CRAXDRT.Application
    Dim Report1 As CRAXDRT.Report
    'Set cr11Application = CreateObject("Crystalruntime.Application")
    Set Report1 = cr11Application.OpenReport(Report_PATH & "納品書.rpt")
   
        With CrystalActiveXReportViewer1
    '  レポートオブジェクトの指定
        .ReportSource = Report1
    '  プレビュー実行
        .ViewReport
        End With
       
    If optプリンタ1.Value = True Then       
        Set Report1 = cr11Application.OpenReport(Report_PATH & "納品書.rpt")
    ElseIf optプリンタ2.Value = True Then   
        Set Report1 = cr11Application.OpenReport(Report_PATH & "納品書673.rpt")
    Else
        Exit Sub
    End If

        With CrystalActiveXReportViewer1
    '  レポートオブジェクトの指定
        .ReportSource = Report1
    '  プレビュー実行
        .ViewReport
        End With


     '  Report1.PrintOut False
      
       Set Report1 = Nothing
       Set cr11Application = Nothing

まだまだ初心者なもので、変なソースになっていると思いますが
よろしくお願いします。

Re: XIからの変更のしかた。  e-sharp - 2006/08/10(Thu) 16:20 No.2369

書くのを忘れていました。

今のソースの状態で出るエラーは
実行時エラー '-2147483638 (8000000a)';
'ReportSource'メソッドは失敗しました: 'ICrystalReportViewer11'オブジェクト
↑このようなエラーメッセージが出ます。
ちなみに、自分が使用しているVBではヘルプを見ることが出来ません。
Re: XIからの変更のしかた。  24x7 - 2006/08/10(Thu) 23:14 No.2371

コードは問題ないように見えますが、ビュー表示を2回繰り返しているのでしょうか。
今回の現象に関係ないですが、ビュー表示を繰り返していると前のレポートがメモリに残ったままで、更新されないことがあります。

ActiveXビューアは正しいバージョンを参照していますよね。
あと、レポートは、データ付きで試してみてください。

Re: XIからの変更のしかた。  e-sharp - 2006/08/11(Fri) 10:17 No.2372

24x7様
ビュー表示を2回行っているのは、
そう書かないとビュー画面を表示してくれないのです。
1回だけだと、何も表示されず処理を終了してしまっています。
原因は一切不明です。

>ActiveXビューアは正しいバージョンを参照していますよね。
正しいバージョンと言いますと?

>あと、レポートは、データ付きで試してみてください。
クリスタルレポート自体がDBのデータを取ってきています。
このようなクリスタルレポートではダメなのでしょうか?
Re: XIからの変更のしかた。  24x7 - 2006/08/11(Fri) 22:53 No.2377

ビュー表示は、1回で表示できますよ。

Dim cr11Application As New CRAXDRT.Application
Dim Report1 As CRAXDRT.Report
    'Set cr11Application = CreateObject("Crystalruntime.Application")
Set Report1 = cr11Application.OpenReport("ファイル名.rpt")
   
        With CrystalActiveXReportViewer1
    '  レポートオブジェクトの指定
        .ReportSource = Report1
    '  プレビュー実行
        .ViewReport
        End With

上記のコードをそのまま利用してレポートを表示することができましたけど。。
但し、データベース情報がないのでデータ付きのレポートでためしました。
データベースに接続している場合、その接続処理も忘れずに記述したほうがいいです。

この開発環境は、旧バージョンと共存していますか?
VBプロジェクトの参照設定とコンポーネントからそれぞれバージョン11を参照できているか確認してみてください。
Re: XIからの変更のしかた。  e-sharp - 2006/08/16(Wed) 12:05 No.2393

24x7様

無事に1回で表示することが出来ました。
特に修正は加えていないんですけど・・・疑問が残ります。


新しく質問をさせてください。

修正前のソース
Private Sub cmd原価管理表_Click()
    If Exec_Proc_Print_Set(cnin原価管理表) Then
        If MsgBox("印刷を開始しますか?", vbQuestion Or vbYesNo) = vbYes Then
            strREPORTFILE = "原価管理表.rpt"
            CrystalReport1.Formulas(0) = "運用月='" & Mid$(運用Date, 1, 7) & "'"
           
            Call レポートセット_sub
        End If


        Exec_Proc_Print_Clr
    Else
        MsgBox "原価管理表は他で出力中ですので、出力できません。", vbExclamation Or vbOKOnly, Caption
    End If
End Sub

ここで使用されている”Formulas”なんですけど
資料を見ると”FormulaFields.Item(1).Text”を使えばいいというのは解っているのですが
その後の"運用月='" & Mid$(運用Date, 1, 7) & "'"をどのように修正すればいいのか解りません
ご助力をお願いします。

Re: XIからの変更のしかた。  24x7 - 2006/08/16(Wed) 23:52 No.2396

レポートのデザイナの式エディタの内容をコピー&ペーストで試したら簡単です。但し、文字列、値、関数名等が正しく区別できるようにシングルクォートの使い方に気をつけてください。
Re: XIからの変更のしかた。  e-sharp - 2006/08/17(Thu) 09:11 No.2398

24x7様

シングルクォートの使い方に注意ですか・・・。
昨日いろいろと試してみたんですけど、どうも上手くいきません。
その中にシングルの移動も試してみたんですけど、やはり上手くいきませんでした。
俺の配置の仕方が悪いのだと思いますが、どう配置すればわかりません。
ご教授お願いします。
Re: XIからの変更のしかた。  e-sharp - 2006/08/17(Thu) 10:32 No.2399

追記です。

SelectionFormulaも同様にエラーが起こってしまいました。
資料を見たときに、Selection・・・の部分だけを直して
後の宣言の仕方は変えなくていいと思ってました。
で、修正をしてみるのですが上手くいきませんでした。
 CrystalReport1.SelectionFormula = _
     "totext({受注テーブル.納品日}) >='" & STTDAT & "' and " & _
     "totext({受注テーブル.納品日}) <='" & ENDDAT & " '"

こちらのほうもご助力いただけると有難いです。

Re: XIからの変更のしかた。  24x7 - 2006/08/17(Thu) 23:22 No.2401

これも、レポートのデザイナで構文チェックでエラーがないことを確認して、その内容をコード上に反映すれば、簡単だと思いますが・・

Re: XIからの変更のしかた。  24x7 - 2006/08/18(Fri) 00:09 No.2402

式フィールドは、このように記述すればいいのではないでしょうか。

Dim I As Integer
Dim CrFormulaFields As CRAXDRT.FormulaFieldDefinitions
Dim CrFormulaField As CRAXDRT.FormulaFieldDefinition


For I = 1 To Report1.FormulaFields.Count
Set CrFormulaField = Report1.FormulaFields.Item(I)
        If CrFormulaField.FormulaFieldName = "式フィールド名" Then
            CrFormulaField.Text = "StringVar 変数名;" + Chr(13) + Chr(10)
            CrFormulaField.Text = CrFormulaField.Text + "変数名:='TEST';"         End If
Next I

直接、Report1.FormulaFields.Item(1).Text = "・・・<省略>・・・" と記述しても同じです。やはり、式エディタで構文チェックしてからコードに反映すると間違いがわかると思います。

Re: XIからの変更のしかた。  e-sharp - 2006/08/18(Fri) 00:09 No.2403

24x7様

構文チェックしてるんですけど、何も引っかからないんですよ。
もしかして構文チェックを行なう場所が違うのでしょうか。

Re: XIからの変更のしかた。  24x7 - 2006/08/18(Fri) 00:13 No.2404

式フィールドは、以下のコードで動きました。

STTDAT = "2003/12/01"
ENDDAT = "2003/12/10"
Report1.RecordSelectionFormula = "ToText({Orders.Ship Date})>= '" & STTDAT & "' and " & _
"totext({Orders.Ship Date}) <='" & ENDDAT & "'"


 

Re: XIからの変更のしかた。  24x7 - 2006/08/18(Fri) 00:14 No.2405

プログラムから表示されるエラーはなんですか。
あと、式フィールドの内容が複数行に渡る場合、上記のような手法でお試しください。

Re: XIからの変更のしかた。  24x7 - 2006/08/18(Fri) 00:20 No.2406


式フィールドは、Crystal 構文ですよね。
その場合、以下の式を最初に実行してください。
Report.formulasyntax = crCrystalSyntaxFormula
 
ひょっとして、この式を追加することで回避できるエラーだったりして・・

Re: XIからの変更のしかた。  e-sharp - 2006/08/18(Fri) 08:54 No.2407

24x7様

VBで実行時エラーが出ます。内容は・・・

実行時エラー '91'
オブジェクト変数またはWithブロック変数が設定されていません。
↑このようなエラーです。
Re: XIからの変更のしかた。  e-sharp - 2006/08/18(Fri) 09:22 No.2408

追記です。

全体のソースを書きます。
FormulaFieldsを使用しているソース

Private Sub cmd原価管理表_Click()
    Dim cr11Application As New CRAXDRT.Application
    Dim Report1 As CRAXDRT.Report
   
    If Exec_Proc_Print_Set(cnin原価管理表) Then
        If MsgBox("印刷を開始しますか?", vbQuestion Or vbYesNo) = vbYes Then
            strREPORTFILE = "原価管理表.rpt"
            'CrystalReport1.Formulas(0) = "運用月='" & Mid$(運用Date, 1, 7) & "'"
            'クリスタルレポート11用にソース変更
           
            Report1.FormulaFields.Item(1).Text = "'" & Mid$(運用Date, 1, 7) & "'"
           
            Call レポートセット_sub
        End If


        Exec_Proc_Print_Clr
    Else
        MsgBox "原価管理表は他で出力中ですので、出力できません。", vbExclamation Or vbOKOnly, Caption
    End If
End Sub

RecordSelectionFormulaを使用しているソース

Private Sub cmd印刷_Click()
    Dim cr11Application As New CRAXDRT.Application
    Dim Report1 As CRAXDRT.Report


 


    If MsgBox("印刷を開始しますか?", vbQuestion Or vbYesNo) = vbYes Then
       
        If IsDate(Txt開始日付.Text) = False Then
            MsgBox "開始日付が間違っています。", vbCritical Or vbOKOnly
            Txt開始日付.SetFocus
            Exit Sub
        End If
        If IsDate(Txt終了日付.Text) = False Then
            MsgBox "終了日付が間違っています。", vbCritical Or vbOKOnly
            Txt終了日付.SetFocus
            Exit Sub
        End If
       
        STTDAT = Txt開始日付.Text
        ENDDAT = Format(DateAdd("d", 1, CDate(Txt終了日付.Text)), "yyyy/mm/dd")


        Select Case strREPORTFILE
       
        Case "納品一覧表.rpt"
        '    CrystalReport1.SelectionFormula = _
        '        "totext({受注テーブル.納品日}) >='" & STTDAT & "' and " & _
        '        "totext({受注テーブル.納品日}) <='" & ENDDAT & " '"
        '住吉 クリスタルレポート11用にソース変更
            Report1.RecordSelectionFormula = _
                "ToText({受注テーブル.納品日}) >='" & STTDAT & "' and " & _
                "totext({受注テーブル.納品日}) <='" & ENDDAT & " '"
            レポートセット_sub
       
       
        Case Else
            レポートセット_sub
           
        End Select
       
        Cmd終了.SetFocus
    End If


End Sub

このようなソースになっています。

Re: XIからの変更のしかた。  24x7 - 2006/08/18(Fri) 11:17 No.2410

上記のエラーは、VBで利用している変数のフォーカスが正しくできていないのではないですか?サブルーチン等は利用しないで Command_click だけで試したらどうでしょう。
Re: XIからの変更のしかた。  e-sharp - 2006/08/21(Mon) 11:02 No.2414

24x7様
返事が遅くなってしまい、申し訳ありません。

一応強引なやり方で動かしてみました。

Private Sub cmd原価管理表_Click()
    Dim cr11Application As New CRAXDRT.Application
    Dim Report1 As CRAXDRT.Report
   
    If Exec_Proc_Print_Set(cnin原価管理表) Then
        If MsgBox("印刷を開始しますか?", vbQuestion Or vbYesNo) = vbYes Then
            strREPORTFILE = "原価管理表.rpt"
            'CrystalReport1.Formulas(0) = "運用月='" & Mid$(運用Date, 1, 7) & "'"
            'Call レポートセット_sub
            'クリスタルレポート11用にソース変更
            Set Report1 = cr11Application.OpenReport(Report_PATH & strREPORTFILE)
            Report1.FormulaFields.Item(1).Text = "'" & Mid$(運用Date, 1, 7) & "'"
           
            Call レポートセット_sub(cr11Application, Report1)
        End If


        Exec_Proc_Print_Clr
    Else
        MsgBox "原価管理表は他で出力中ですので、出力できません。", vbExclamation Or vbOKOnly, Caption
    End If
End Sub

もう一つのソースも同様のやり方で動かしました。
あまり綺麗ではないので自分としては不本意ですが・・・


サブレポートのパラメータセット  - 2006/08/17(Thu) 17:49 No.2400

開発環境   VS2002付属のCrystalreportsとC#
データベース SQL-Server2000

レポートをPDFにエクスポートする処理を作っているのですが、
サブレポートを含むレポートを実行すると
「パラメータ フィールドの現在の値がありません」というエラーが出てしまいます。

コードは以下の通りです。よろしくお願いします。
サブレポートにパラメータセットする部分

for (int i = 0; i < Report.ReportDefinition.ReportObjects.Count; i++)
{
    ReportObject CurrentObject = Report.ReportDefinition.ReportObjects[i];
    if(CurrentObject.Kind == CrystalDecisions.Shared.ReportObjectKind.SubreportObject)
    {
     CrystalDecisions.CrystalReports.Engine.ReportDocument crCurSubRepDoc = Report.OpenSubreport(((SubreportObject)CurrentObject).SubreportName);
    
     ParameterValues currentParameterValues1 = new ParameterValues();


     ParameterDiscreteValue parameterDiscreteValue1 = new ParameterDiscreteValue();
     if (submittedValue == null)
     {
      parameterDiscreteValue1.Value = null;
     }
     else
     {
      parameterDiscreteValue1.Value = submittedValue.ToString();
     }
     currentParameterValues1.Add(parameterDiscreteValue1);
     ParameterFieldDefinitions parameterFieldDefinitions1 = crCurSubRepDoc.DataDefinition.ParameterFields;


     ParameterFieldDefinition parameterFieldDefinition1 = parameterFieldDefinitions1[aaa];
     parameterFieldDefinition1.ApplyCurrentValues(currentParameterValues1);
    }
   }




フォントサイズ変更方法  .NET初心者 - 2006/08/16(Wed) 14:18 No.2394

はじめまして、「.NET初心者」です。
CrystalReports.NET(2003)にて作成されたシステムがありまして、そのメンテナンスを行うこととなったのですが何せ初心者なものでどなたか教えていただきたく記載しました。

レポートのある項目について、フォントサイズを動的に変更させることは出来ないのでしょうか?

たとえば、
 20文字数以内⇒フォントサイズ9
 20〜40文字数以内⇒フォントサイズ8
 50文字以上なら⇒フォントサイズ6

フォントサイズの変更方法がわかりません。
どなたかご教示お願いいたします。


グループフッターとページフッターの関係  so902 - 2006/08/14(Mon) 12:46 No.2381

いつも参考にさせて頂いております。

すみません。

下記の処理で困っております。何か御教授頂ければと思います。
よろしくお願いします。

  1ページ目
    <グループ1 仕入先> 
     コードA 001
           <詳細>
           品目        単価   数量   金額
        002          10            1          10円
        003           20       2        40円
        004           30            3           90円
    2ページ目
    <グループ1 仕入先> 
     コードA 001
           <詳細>
           品目        単価   数量   金額
        005          10            1          10円
        006           20       2        40円
    <グループフッター 仕入先> 
           合計件数  5件 合計金額 190円
    <ページフッター※> 
           承認欄

※ページフッターの表示条件、PageNumber = TotalPageCount or 仕入先 <>  next(仕入先)の場合、表示。


通常は問題なく出力されるのですが、明細行が1ページ内に表示できる件数と同じ場合グループフッターの合計件数と合計金額は、次ページにいきレポートフッターの承認欄は1ページ目に表示されてしまいます。
これをグループフッターの値が表示されたらページフッターの承認欄を表示させることはできないでしょうか?
ちなみに、承認欄は画面最下層にもっていきたいのでグループフッターに入れることはできません。

お願いします。
Re: グループフッターとペ...  24x7 - 2006/08/15(Tue) 09:06 No.2382

ページ番号のリセットしていれば、PageNumber = 1 の時は、非表示になるようにすればいいのではないでしょうか。
Re: グループフッターとペ...  so902 - 2006/08/15(Tue) 14:41 No.2383

24x7さん

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

すいません。質問なのですが、PageNumber = 1の場合非表示はこの例の場合は
有効かと思いますが、これが3ページ、4ページと同一のデータがある場合は承認欄は2、3、4ページ目に表示されてしまうのではないでしょうか?

また、ページフッターの条件として表示条件として
【PageNumber = TotalPageCount】を入れています。これは意味として、最終行のページは表示という形になっています。ページ番号のリセットを行うとこれは適用されないんではないでしょうか。

クリレポ素人なので申し訳ございません。よろしくお願いします。
Re: グループフッターとペ...  24x7 - 2006/08/16(Wed) 02:58 No.2389

試していないけど、グループ毎にページ番号をリセットしても駄目ですかね。
Re: グループフッターとペ...  24x7 - 2006/08/16(Wed) 03:08 No.2390

前の回答は適切じゃないので無視してください。

同一グループ内でカウンタを設置して、詳細の集計カウントと比較します。

グループヘッダーに a_count:=Count(項目名,グループ名) の式フィールドを挿入する。詳細に b_counter:=b_counter + 1 の式フィールドを挿入する。
この2つの変数の値を比較する。

ページフッターのところで、2つの変数の値が一致すれば、同一グループのデータはそこで終わりと判断できます。
試していないので、正しく動作するかわかりません。

Re: グループフッターとペ...  so902 - 2006/08/16(Wed) 11:37 No.2392

24x7さん

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

この問題一筋縄じゃちょっといかないみたいです。少し考えて見ますので
御教授の方ありがとうございました。

また、機会がありましたらよろしくお願いします。

フィールドオブジェクトに設定  島崎 - 2006/08/15(Tue) 19:05 No.2386

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

ご教授のほどよろしくお願いします。

タイトルにもありますが、テキストオブジェクトではないフィールド
フィールドオブジェクトにロジックから値を設定できないですか?
という質問です。

テキストオブジェクトに関しては、
CType(kouzimaewatasizandaka_meisai1.ReportDefinition.ReportObjects("Text_nen"), TextObject).Text = UnyoDate.Year
でレポートに出力できました。

フィールドオブジェクトにも同様に
CType(kouzimaewatasizandaka_meisai1.ReportDefinition.ReportObjects("kaikakemonth1"), FieldObject).Value = CDate(UnyoDate)

と書いたところ、FieldObjectにValueは存在しないとエラーになりました。
プロパティにValueは存在しているのですが。。。

どなたかご教授をお願いします。
よろしくお願いします。
Re: フィールドオブジェク...  24x7 - 2006/08/16(Wed) 02:57 No.2388

フィールドオブジェクトは、データベースの項目でしょう。そこに値を設定することはできません。
Re: フィールドオブジェク...  島崎 - 2006/08/16(Wed) 09:50 No.2391

おはようございます。
やはり そうなのですかぁ〜(≧∀≦)
24x7 さん ありがとうございました。

データソース保存場所の設定  otu71 - 2006/08/15(Tue) 14:51 No.2384

Otu71と申します。
仕事であるODBCデータソースからデータを取得してレポートを作成しているのですが、あるデータソースは練習用、もうひとつのデータソースは本番用のように、中身がほとんど同じで違うデータソースがいくつもあります。
そのときにクリスタルレポート上ではデータソースをそれぞれのDBにあったように適用しなくてはならないのですが、いくつもあるとどうしてもどれが最新かわからなくなってしまいます。

ファイル更新時にDBを選択できて、一括で更新できるような方法をどなたかご存知でしたら教えていただけないでしょうか?

環境:クリスタルレポート10(VSの付属ではないもの)
よろしくお願いします。
Re: データソース保存場所...  24x7 - 2006/08/16(Wed) 02:55 No.2387

コード上でデータベースの接続先を変更するのでは駄目ですか。


PDF にエクスポートするとチャートの画質が悪くなる  - 2006/08/15(Tue) 16:22 No.2385

CrystalReport for VS.NET 使用時はレジストリの変更で解決したのですが、
CrystalReport XI にしたら、レジストリを変更しても解決できません。
ご教授いただけますでしょうか。

サブレポート内のページヘッダ  あさひ - 2006/08/11(Fri) 19:07 No.2375

サブレポート内にページヘッダを付けたいのですが、できないのでしょうか?
もし、できないのならばメインレポート内でサブレポートが表示されているかどうかの情報はとれないのでしょうか?
ご存知の方がいらっしゃいましたら教えて下さい。
ヨロシクお願いいたします。

レポートObjectの生成  まみぞう - 2006/08/08(Tue) 15:24 No.2357

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

既存のクリスタルレポートを9.0から11.0に上げたところ
レポートの生成でエラーが表示されてしまいました。
生成の記述が異なるようですが、
参考資料も見つからず困っています。
どなたかご存知の方、ご伝授お願い致します。

環境:Windows2003server
レポート:CrystalReportsXI server
起動ソース:asp

【ソース内容】
Dim ReportDoc,objFactory,rptAppSession
Set objFactory = CreateObject("Crystalruntime.Application.11")  'Rasの現在のバージョンでオブジェクト作成
Set Session("objFactory") = objFactory   '------セッションにする
Set rptAppSession = objFactory.CreateObject("CrystalReports.ReportAppSession")  '←エラー箇所です!!
rptAppSession.Initialize   '-----Rasサーバとの接続開始
Set Session("rptAppSession") = rptAppSession
Set Session("oClientDoc") = Session("rptAppSession").CreateService("CrystalClientDoc.ReportClientDocument")
Path = Request.ServerVariables("PATH_TRANSLATED")
While (Right(Path, 1) <> "\" And Len(Path) <> 0)
 iLen = Len(Path) - 1
 Path = Left(Path, iLen)
Wend
'レポートファイルを開く
Session("oClientDoc").Open "rassdk://C:\test\Report\test_report.rpt" '-----ドキュメントをOPEN
'DB接続
Session("oClientDoc").DatabaseController.Logon "testID","testPWD"
Set NewSelectionFormula = objFactory.CreateObject("CrystalReports.Filter") '-----Where文
NewSelectionFormula.FreeEditingText = wherephrase
Session("oClientDoc").DataDefController.RecordFilterController.Modify NewSelectionFormula
Response.Expires = 0
Response.redirect("ActiveXviewer.asp")

【エラー内容】
 オブジェクトでサポートされていないプロパティまたはメソッドです。: 'CreateObject'

 エラー行は、4行目です。
Re: レポートObjectの生成  24x7 - 2006/08/09(Wed) 08:26 No.2364

http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=crxiTechrefenpdf&sliceId=&dialogID=2646495&stateId=1%200%202648856

RASは、わかりませんので、この技術文書を参考にしてください。
Re: レポートObjectの生成  まみぞう - 2006/08/11(Fri) 13:00 No.2373

お礼が遅くなり申し訳ございませんでした。

英語が苦手なので少々てこずっていますが
がんばってみます。

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

無題  hi - 2006/08/10(Thu) 22:42 No.2370

http://google.com

グループヘッダーの表示と非表示  miyata - 2006/08/07(Mon) 13:14 No.2342

miyataと申します。
よろしくお願いします。


最近になって、Crystal Report XIに触れました。
で、次のような帳票を出力したいのですが、
実現するためのアイディアが浮かびませんので、
諸先輩の知恵を拝借したいのです。


早速、私の疑問を記述します。
やりたい事は、得意先別に売り上げた商品を
出力するというものです。


主テーブルと明細テーブルがあります。
主テーブルにある得意先をグループヘッダに設定し、
改ページ処理をメインレポートで行わせます。
明細テーブルは、サブレポートで使用し、
得意先の商品を列挙します。


メインレポートとサブレポートのリンクは、
当然得意先です。
以下のようなイメージです。


----------------------グループヘッダーA
得意先
----------------------グループヘッダーA
----------------------グループヘッダーB
商品金額合計
----------------------グループヘッダーB
----------------------グループヘッダーC
 オーバレイ用の罫線
----------------------グループヘッダーC
----------------------明細
日付、商品、個数、単価
----------------------明細


 ※下記の商品金額合計は、主テーブルに
   持っているデータを出力します。


で、問題の個所というのは、
グループヘッダーBの部分は、得意先が複数ページに
またがる場合に、先頭ページにだけ出力したい
というものです。


この先頭ページにだけというのが、なかなか
実現するアイディアが浮かびません。
 試しに、グループヘッダーBの非表示ドリルダウン不可の
書式設定式エディタで
if {主テーブル.得意先}=previous({主テーブル.得意先}) then true
を記述してみましたが、思った結果は得られませんでした。


どうか、いいアイディアをお持ちの方、
私に、アドバイスをください。
よろしく、お願いします。

Re: グループヘッダーの表...  NZ-000 - 2006/08/08(Tue) 13:32 No.2353

こんにちは。

グループヘッダーA、B、Cは一つのグループヘッダーを三つに分割していると捉えてよろしいのでしょうか。
また
>グループヘッダーBの部分は、得意先が複数ページに
>またがる場合に、先頭ページにだけ出力したい
>というものです。
上記の文脈からグループヘッダーは毎ページ表示するという仕様が伺えますが、
毎ページ表示はできているのでしょうか。

これらのことが書かれていなので、こちらの勝手な判断ですべて肯定であると考慮しますと、
問題はやはり以下の式にあるように思います。
>if {主テーブル.得意先}=previous({主テーブル.得意先}) then true

したいことはわかりますし、いけそうな気もするのですが、「思った結果は得られませんでした。」
とはどんな結果を得てしまったのでしょうか。
質問する場合は、回答者があれこれ想像したりいらない検証をしなくていいように、
この辺まで書いておいてくれるとありがたいものです。

そして私ならば、以下のように記述します。(書く場所は同じ)
WhilePrintingRecords;
{主テーブル.得意先} = previous({主テーブル.得意先});

エラーの原因がわかっているわけではないのでうまくいくかどうかはわかりません。
Re: グループヘッダーの表...  miyata - 2006/08/10(Thu) 15:27 No.2367

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

>グループヘッダーA、B、Cは一つのグループヘッダーを三つに分割していると捉えてよろしいのでしょうか。
>
はい、その通りです。

>上記の文脈からグループヘッダーは毎ページ表示するという仕様が伺えます
>
はい、その通りです。

>、「思った結果は得られませんでした。」
>とはどんな結果を得てしまったのでしょうか。
>
これについては、同一得意先において先頭頁だけが
でてほしいところなのですが、毎頁に表示されました。

実は、ちょっと前に解決しまして、グループヘッダーA,B,Cに
対応するグループフッターにて、出力後に頁番号をリセットに
チェックして、グループヘッダーでは、非表示の式エディタにて
pagenumber <> 1を記述することで対応いたしました。


以上です。


プレビュー時に・・・  ともとも - 2006/08/09(Wed) 15:41 No.2366

いつも拝見させていただいてます。
VS2005バンドルのCrystalReportsを使用して
開発をしております、ともともと申します。

現在レポートを作成しているのですが
データによってレポート内の線オブジェクト等を消す為に
線オブジェクトの上に背景を真っ白にしたテキストオブジェクトを配置し
そのテキストオブジェクトの表示・非表示を切り替える事によって
線が消えたり現れたりする構造になっております。

ここまでは問題は特にないのですが
いざ、レポートをプレビューしてみると、
一見思惑通りに表示されているかのようにみえるのですが
上下にスクロールしたり、クリックを連打したりすると
何故か隠れている線オブジェクト等がチラチラ見えてしまい
隠しているのがバレバレになってしまい困っています。

もしこの問題の回避方法をご存知の方がいらっしゃるなら
教えてください。よろしくお願いしますっ!!


詳細の行数について  Tr - 2006/08/08(Tue) 10:51 No.2350

Trと申します。
ぐぐってここにたどり着きました。何卒よろしくお願いします。

CrystalReportXIで既存帳票の改造を担当することになったのですが、
自動的に改頁させるための詳細セクションの出力行数設定の方法がわからず、
原始的にページフッタの天地幅を微調整することでなんとかごまかしています。

レイアウトとしては


グループ名 <-ページヘッダに記述
品名 | 入り数 | <-ページヘッダに記述
―――――――――――――――― <-ページヘッダに記述
品名1 | 1000 | <-詳細フィールドに記述
-------------------------------- <-詳細フィールドに記述
品名2 | 2000 |
--------------------------------
品名3 | 3000 |
―――――――――――――――― <-グループフッタに記述

↑縦罫線は、 ↑ページヘッダからグループヘッダを貫いて詳細まで引いてあります。
グループヘッダは使用していないので非表示です。


という形にしているのですが、
改ページ直前で詳細セクションに点線だけ印刷されて品名等は
次ページになってしまったりして、
見栄えをよくするためにプレビューしてページフッタを修正してプレビューして・・の繰り返しで、
無駄な作業をしているように思えてなりません。
プリンタを変えると見栄えがまたおかしくなりますし・・。
これは、なにかよい設定方法があるのでしょうか?


また、グループフッタの「出力後に改ページ」にチェックしているのですが、
1ページの行数ちょうどで終わるデータを印刷した場合、なぜか2ページ出力されてしまい、
2ページ目が


グループ名
品名 | 入り数 |
―――――――――――――――― ページヘッダにかかっている部分のみ出力されている
| |
| |
| |

(縦罫線はページいっぱいに引かれます)

という感じになってしまいます。
これは、罫線の引き方がまずいのでしょうか?

以上2点、本当に初歩的な質問で申し訳ありませんが、よろしくお願いします。
Re: 詳細の行数について  Tr - 2006/08/08(Tue) 10:54 No.2351

罫線がずれてしまいました。申し訳ありません。
Re: 詳細の行数について  NZ-000 - 2006/08/08(Tue) 14:11 No.2354

こんにちは。

>グループ名 <-ページヘッダに記述
>品名 | 入り数 | <-ページヘッダに記述
>―――――――――――――――― <-ページヘッダに記述

上記をページヘッダーに記述する理由は何ですか?
通常ですとこれはグループヘッダーに書くのが妥当ですね。
もし毎ページ表示したいからとか考えていらっしゃるなら、
グループの変更オプションにグループヘッダーを毎ページ表示させるための設定項目があるので、
そちらでやった方が懸命です。

また、詳細セクションはまとめて表示していますか?
(詳細セクションのセクション設定で「まとめて表示」をチェック)
これをしていれば詳細セクションがまたがる場合は
改ページしてくれます(例外はある)ので期待通りになるような気がします。
縦罫線のさじ加減はここのHP(http://www2.hirano.cc/crystalreports/with_line.html)に
詳しく書いてあるので参考になるのではないかと思います。


>また、グループフッタの「出力後に改ページ」にチェックしているのですが、
>1ページの行数ちょうどで終わるデータを印刷した場合、
>なぜか2ページ出力されてしまい、

最後のページにレポートフッターだけが表示されているのだと思います。
これを表示しない場合はレポートフッターを非表示にする、またはレポート最後のグループフッターだけ改ページしないようにする(※)などが考えられます。
ちなみに※の場合、グループフッターの改ページ条件に以下のようは式を記述します。
WhilePrintingRecords;
OnLastRecord <> true;
Re: 詳細の行数について  Tr - 2006/08/08(Tue) 15:17 No.2356

>>NZ-000さん
アドバイスありがとうございます。
ページヘッダーについては、既存帳票がそのように
なっていたためです。
手直ししたいのはやまやまなのですが、
日数的にあまり余裕がないもので・・。

中途半端なところで改行されてしまう件については、
「詳細セクションをまとめて表示」で解決しました。
ありがとうございます。

2ページ出力される件ですが、レポートフッターは
もともと非表示(ドリルダウン可)になっていました。
非表示(ドリルダウン不可)に変更/グループフッターの
「出力後に改ページ」の条件に上記式を追加の2点も
試しましたが駄目でした。
画面表示で見る限りでは、縦罫線もフッターまではみ出して
いるものはありません。
Re: 詳細の行数について  NZ-000 - 2006/08/08(Tue) 17:12 No.2359

じゃぁ、何が表示されているかプレビューで見れませんか?
ページヘッダーとページフッターだけということでしたら、先のグループフッター条件式が効いてないのかもしれませんし、どこか別のところで改ページされているのかもしれません。
Re: 詳細の行数について  Tr - 2006/08/08(Tue) 17:33 No.2360

確認しましたが、ページヘッダーとページフッター
だけでした。
Re: 詳細の行数について  NZ-000 - 2006/08/08(Tue) 19:45 No.2361

ふーむ、ちょっとわかりかねますねぇ。
もしかしたらグループフッターがはみ出ているのではとも思いましたが何もないとなると。。
ちなみにグループフッターもちゃんとまとめて表示にしていますか。

あとは縦罫線の配置が悪いのかもしれませんので一度削除して試すなどしてみることをお勧めします。

あとは別のところに改ページ条件がないかを探すとか。譲り受けたレポートですと案外こういったところに落とし穴があったりしますしねぇ。
Re: 詳細の行数について  Tr - 2006/08/09(Wed) 09:54 No.2365

グループフッターをまとめて表示にしてみたら、フッターだけ改ページ後に
表示されるようになってしまったので、チェックはしていません。

ページフッターを非表示にしてみたところ、下まで罫線が引かれることはなくなりました。
(ページヘッダーにかかっている部分のみ縦罫線が出ている感じ)

改ページ条件というのはセクションエキスパートの条件式の部分以外に
記述することはできるんでしょうか?

とここまで書いて色々試していたのですが、なんとなくグループフッターの空白部分が
次ページにはみ出ているような気がして、グループフッターの天地幅を狭めてみたところ、
問題が起きなくなりました。(220→とりあえず100にしました)
グループフッター幅調整+ページフッタ非表示でうまくいっています。
ページフッタは何も表示してないですし、特に問題がないようでしたらこれでいこうかと思います。
色々アドバイスありがとうございました。

データの重複  M - 2006/07/26(Wed) 12:39 No.2299

こんにちは。

どうしても自力で解決できなかったので、力を貸してください。

<<完成形>>
コードA  コードB  名前  年齢  名前  年齢
-----------------------------------------
 001         001         AAA      22   BBB   24
 001         001         CCC     34
 001         002         DDD      26       EEE       21
 002         001         FFF      25        GGG      19
 
<<やりたいこと>>
・コードAとコードBが同じ値のデータが複数存在する場合、
 名前と年齢を1行に2件まで並べて印刷する
・コードAとコードBの値がどちらか一方でも変わったら改行

<<現在のデザイン>>
{コードA} {コードB} {名前} {年齢} next({名前}) next({年齢})

現在、セクションエキスパートの「詳細」の「非表示」の式には
下のように記述しています。

Global numberVar Flg;
Global numberVar Cnt;

booleanVar Bln := False;


if OnFirstRecord then
   Cnt := 0;
if OnFirstRecord then
   Flg := 0;


Cnt := Cnt +1;


   // コードA、コードBが同じで、レコードが2で割り切れないものは表示する
    if  ToNumber ({コードA}) = ToNumber(Next({コードA})) and ToNumber({コードB}) = ToNumber(Next({コードB})) and Remainder (Cnt, 2) = 1  then
       Flg := 0;


    // コードA又は、コードBが違っていて、レコードが2で割り切れないものは表示する
    if  (  ToNumber ({コードA}) <> ToNumber(Next({コードA})) or ToNumber({コードB}) <> ToNumber(Next({コードB}))  ) and Remainder (Cnt, 2) = 1  then
        Flg := 0;



    // コードA、コードBが同じで、レコードが2で割り切れるものは非表示にする
    if  ToNumber ({コードA}) = ToNumber(Next({コードA})) and ToNumber({コードB}) = ToNumber(Next({コードB})) and Remainder (Cnt, 2) = 0  then
        Flg := 1;



    // コードA又は、コードBが違っていて、レコードが2で割り切れるものは非表示にする
    if  (  ToNumber ({コードA}) <> ToNumber(Next({コードA})) or ToNumber({コードB}) <> ToNumber(Next({コードB}))  ) and Remainder (Cnt, 2) = 0  then
        Flg := 0;


    // コードA又は、コードBが違っている場合はレコードカウントを0にする
    if  (  ToNumber ({コードA}) <> ToNumber(Next({コードA})) or ToNumber({コードB}) <> ToNumber(Next({コードB}))  )  then
        Cnt := 0;


if Flg = 1 then
    Bln := True;


Bln;


このように設定してプレビューを見ると、
一番最後のデータが重複して表示されてしまいます。
ex)
002  001  ZZZ   22   YYY  11 
002  001  YYY  11

「詳細」に記述した式が正しくないのでしょうが、
いろいろ直しているうちに混乱してきてしまいました。。。
ココがおかしいとか、もっといい方法があるとか
どんな意見でもいいので、アドバイスをよろしくお願いいたします。




Re: データの重複  24x7 - 2006/07/28(Fri) 23:04 No.2309

おもしろそうなレポートなのでチャレンジしてみました。
コードを見直すのは苦手なので、表示イメージから一から作成してみました。

まず、「コードA」と「コードB」でそれぞれグループを挿入します。
以下のようなイメージで表示されます。

<グループ1>
コードA 001 
    <グループ2> 
     コードB 001 
           <詳細>
          コードA  コードB  名前    年齢  名前  年齢
        001         001         AAA      22   
        001         001    BBB   24
        001         001         CCC     34
    <グループ2> 
    コードB 002 
          <詳細>
     001         002         DDD      26        
     001         002    EEE       21
<グループ1>
コードA 002
   <グループ2>
  コードB  001 
          <詳細>
           002         001         FFF       25       
           002         001    GGG      19

Re: データの重複  24x7 - 2006/07/28(Fri) 23:15 No.2310

次は、以下の2つの式フィールドを作成します。

//次のレコードの名前を表示する
WhilePrintingRecords;
if {コードB} <> next({コードB}) Then
""
else
ToText(Next({名前}))

//次のレコードの年齢を表示する
WhilePrintingRecords;
if {コードB} <> next({コードB}) Then
""
else
ToText(Next({年齢}))

その結果、以下のような表示になります。

<グループ1>
コードA 001 
    <グループ2> 
     コードB 001 
           <詳細>
          コードA  コードB  名前    年齢  名前  年齢
        001         001         AAA      22   BBB   24
        001         001    BBB   24   CCC     34
        001         001         CCC     34
    <グループ2> 
    コードB 002 
          <詳細>
     001         002         DDD      26     EEE       21
     001         002    EEE       21
<グループ1>
コードA 002
   <グループ2>
  コードB  001 
          <詳細>
           002         001         FFF       25        GGG      19
           002         001    GGG      19

次は、重複している詳細の行を非表示にします。
以下の例では、非表示したい行は、2行目です。
<グループ1>
コードA 001 
    <グループ2> 
     コードB 001 
           <詳細>
          コードA  コードB  名前    年齢  名前  年齢
        001         001         AAA      22   BBB   24
        001         001    BBB   24   CCC     34 ・・・非表示にする行
        001         001         CCC     34

以下の例では、非表示したい行も、2行目です。
<グループ1>
コードA 002
   <グループ2>
  コードB  001 
          <詳細>
           002         001         FFF       25        GGG      19
           002         001    GGG      19            ・・・非表示にする行

Re: データの重複  24x7 - 2006/07/28(Fri) 23:29 No.2311

(訂正)
//次のレコードの名前を表示する
WhilePrintingRecords;
if {コードB} <> next({コードB}) Then
""
else
//ToText(Next({名前}))
Next({名前}))

上記で作成した2つの式フィールドは、詳細に挿入します。

あと、重複したデータを非表示にする方法は、以下の2つの式フィールドを利用します。

グループ2のヘッダーに以下の式フィールドを挿入します。
//変数の初期化
WhilePrintingRecords;
NumberVar cnt_line:=0;

詳細には、以下の式フィールドを挿入します。
//行数のカウントアップ
WhilePrintingRecords;
NumberVar cnt_line;
cnt_line:=cnt_line+1;

最後にセクション エキスパートから詳細の非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
NumberVar cnt_line;
Remainder(cnt_line,2)=0

確認方法としては、グループ2フッターに名前又は、年齢を利用して、集計フィールドを挿入します。集計方法は、[件数] を選択します。
件数から表示が期待した結果であるか、確認できると思います。

グループを挿入することで不要な式を割愛できると思います。
ご参考にしてください。
Re: データの重複  24x7 - 2006/07/28(Fri) 23:34 No.2312

忘れていましたが、グループヘッダー、フッターは不要なら非表示にしてください。
実際に試したデータの値とは異なりますが、以下のような表示イメージになると思います。

<詳細>
          コードA  コードB  名前    年齢  名前  年齢
        001         001         AAA      22   BBB   24
        001         001         CCC     34
     001         002         DDD      26     EEE       21
           002         001         FFF       25        GGG      19

Re: データの重複  M - 2006/08/08(Tue) 14:26 No.2355

24x7さん、こんにちは。

返事が遅くなってしまい申し訳ありません。

さっそく教えていただいた方法で試してみたところ、
期待していたかたちで表示されました!!

元のコードよりもシンプルにわかりやすくなっていて感激です。

どうもありがとうございました☆


NULL  あさひ - 2006/08/07(Mon) 17:41 No.2346

ご存知の方教えて下さい。
クリスタルレポートでのNULLの扱い方です。
例えば
AフィールドにNULLが入ってたとします。
その場合
If A = 3 then
   "AAAA"
else
   "BBBB"
という条件式を入れても処理してくれないみたいです。

必ず
If isnull(A) then
を、かましてNULLチェックをしないといけないのでしょうか?
NULLが入って来そうなフィールドは全て扱う場合はISNULL等で判断しないと
駄目なんでしょうか?
すいません、教えてあげてくださいませ。

Re: NULL  24x7 - 2006/08/08(Tue) 10:48 No.2349

NULLが入る可能性があれば、IsNull で判断した方がいいです。

Re: NULL  あさひ - 2006/08/08(Tue) 10:58 No.2352

やはりそうですか・・・・
たしかVBAとかはIFでNullが入った場合はELSEへ飛んでくれたと思ったもので
クリレポも飛んでくれればいいなぁと思いました
読み込むDBのフィールドにNotNULL宣言まったくされたいないので
IF分で判断しないで止まってしまっているので、なにか良い方法はないかと思いまして・・・・・
全てのIFに最初にISNULLかますことにします
いつも、ありがとうございます

テキストボックスについて  TAKA - 2006/08/04(Fri) 18:30 No.2335

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

今、CrystalReportを使っているのですが、
テキストボックスの中央に文字を表示することが出来ません。

どなたかご存知の方がいれば教えていただきたいのですが。
よろしくお願いします。
Re: テキストボックスについて  Drathera - 2006/08/07(Mon) 12:01 No.2341

HorAlignment というプロパティを crHorCenterAlign にすれ ば
Re: テキストボックスについて  島崎 - 2006/08/07(Mon) 16:54 No.2345

アイテムを右クリックして
オブジェクトの書式設定を選択し、
書式エディタ−段落タブ−横位置
にあるプルダウンを「中央揃え」にするとできます。
Re: テキストボックスについて  TAKA - 2006/08/07(Mon) 18:06 No.2347

Dratheraさん、島崎さん
素早い回答ありがとうございます。

Dratheraさんと島崎さんのおかげで、
テキストボックスの中央に文字を表示することができました。
本当にありがとうございます。




レポート出力  島崎 - 2006/08/03(Thu) 16:25 No.2331

島崎です。
以前 24x7 さんにご教授頂いて、その後、サブレポートで実現すると
自己レスしましたが、再度問題が発生してしまいました。。。
とても長い文章ですが、目を通してみてください。
お願いします。

【メイン帳票】1ページ目
-----------------------------------
グループヘッダ(部門でグルーピング)


部門 部門名 品名  売上げ日  金額
-----------------------------------
詳細


A     A部門  A品  2006.04.01  1000
A     A部門  A品  2006.05.01  1000
A     A部門  A品  2006.04.01  1000
A     A部門  A品         1000
-----------------------------------
グループフッタ


総合計
  【サブレポート】
  -------------------------------
  詳細


  売上げされていることが条件で、月毎の金額合計
                      2006.04       2000
                      2006.05       1000


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


売上げ合計                          3000
-----------------------------------
グループフッタが出力後に改ページを設定


【メイン帳票】2ページ目
-----------------------------------
グループヘッダ(部門でグルーピング)


部門 部門名 品名  売上げ日  金額
-----------------------------------
詳細


B     B部門  B品  2006.04.01  2000
B     B部門  B品  2006.05.01  2000
B     B部門  B品  2006.04.01  2000
B     B部門  B品         2000
-----------------------------------
グループフッタ


総合計
  【サブレポート】
  -------------------------------
  詳細


  売上げされていることが条件で、月毎の金額合計
                      2006.04       4000
                      2006.05       2000


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


売上げ合計                          6000
-----------------------------------


上記帳票にて、データセットをメインとサブで2つ用意しています。
メインデータセットのデータ
A     A部門  A品  2006.04.01  1000
A     A部門  A品  2006.05.01  1000
A     A部門  A品  2006.04.01  1000
A     A部門  A品         1000
B     B部門  B品  2006.04.01  2000
B     B部門  B品  2006.05.01  2000
B     B部門  B品  2006.04.01  2000
B     B部門  B品         2000


サブデータセットのデータ
A                     2006.04       2000
A                     2006.05       1000
B                     2006.04       4000
B                     2006.05       2000



というように実現したいのですが、サブレポートのデータの切り替えが
できません。1ページ目と2ページ目にすべてのデータ(部門A、B)が出力されてしまいます。
どなたかご教授お願いします。


とても長い文章で恐縮ですが、宜しくお願いします。

Re: レポート出力  24x7 - 2006/08/04(Fri) 23:28 No.2336

メインとサブレポートをリンクしていないのではないでしょうか。
リンクしていないとサブレポートで取得できるすべてのデータが表示されます。
Re: レポート出力  島崎 - 2006/08/07(Mon) 16:44 No.2344

お疲れ様です
島崎です。
24x7 さん返信ありがとうございます。
24x7 さんのいう通りリンクしていませんでした。。。。

現在はリンクして思い通りの出力が実現できています。
ありがとうございました。

tipa tema  batirjan - 2006/08/05(Sat) 02:57 No.2340

this is a test of
fucking dontworking spamer :(

tipa tema  batirjan - 2006/08/05(Sat) 02:42 No.2339

http://no1-biz.info/

tipa tema  arman - 2006/08/05(Sat) 02:06 No.2338

pls look at this site!
http://game.ru5.net/

tipa tema  dauren - 2006/08/05(Sat) 00:54 No.2337

this is one of final tests of
cyber-mega spamer all over the world!!!
if u see this... fuck it!

JAVA Report Component  miyata - 2006/08/04(Fri) 10:32 No.2334

miyataと申します。よろしくお願いします。

JAVA (StrutsベースのWebアプリ)とCrystal Report XIを
組み合わせて、帳票出力をしようと考えています。

具体的な構成は、以下のように考えています。
検索指示画面.jsp
  (抽出条件を入力し検索ボタンを押すと、抽出条件をCrystalReportのrptに摘要)
検索結果画面
  (CrystalReportのrptをViewerで表示)


そこで、いろいろとググって、試しに以下のような
コーディングをしました。

==================================
 Object reportSource = session.getAttribute("reportSource");
 
  if (reportSource == null) {
   //Open report.
    ReportClientDocument reportClientDoc = new ReportClientDocument();
    reportClientDoc.open(REPORT_NAME, 0);
    reportSource = reportClientDoc.getReportSource();
    session.setAttribute("reportSource", reportSource);
  }
  Fields fields = new Fields();
  ParameterField pfield1 = new ParameterField();
  Values vals1 = new Values();
  ParameterFieldDiscreteValue pfieldDV1 = new ParameterFieldDiscreteValue();
  pfield1.setName("受注日");
  pfield1.setReportName("");
  pfieldDV1.setValue("2006-07-05");
  pfieldDV1.setDescription("受注日付='2006-07-05'");
  vals1.add(pfieldDV1);
  pfield1.setCurrentValues(vals1);
  fields.add(pfield1);


 //response.sendRedirect("CrystalReportViewer.jsp");
  CrystalReportViewer viewer = new CrystalReportViewer();
  viewer.setReportSource(reportSource);
  viewer.setParameterFields(fields);
  viewer.setEnableParameterPrompt(false);
  if (session.getAttribute("refreshed")==null) {
    viewer.refresh();
    session.setAttribute("refreshed", "true");
  }
  viewer.setOwnPage(true);
  viewer.processHttpRequest(request, response, getServletConfig().getServletContext(),null);
==========================

私は、上記コーディングで、受注日を絞り込んだ
帳票が出力されると考えていたのですが、
実際には、ブラウザに「エラー」とだけ出力され、
何が問題で思って動作をしないのかが、まったくの不明です。

なにか、こうすればいいといった情報をお持ちの方は、
是非アドバイスをください。


クリレポ7についてですが・・・  ぶ〜たん - 2006/08/03(Thu) 15:05 No.2330

はじめまして。

クリスタルレポート7の対応OSをご存知の方いらっしゃらないでしょうか?

調べてはみたものの分からないのです。

誰か教えてもらえないでしょうか?

よろしくお願いします。

Re: クリレポ7についてで...  24x7 - 2006/08/04(Fri) 01:02 No.2333

Windows 95/98/NT4 だと思います。
でも、Windows2000でも動いた記憶があります。

ログオンに失敗しました  ネギ - 2006/08/03(Thu) 21:23 No.2332

はじめまして。ネギです。


.NET 2003 付属の Crystal Report を利用してレポート表示を試みているのですが
「ログオンに失敗しました。」とのエラーが発生し困っています。


アドバイスなどありましたらお手数かとは思いますが
よろしくお願いします。


環境:
 Visual Studio 2003 ASP.NET
 Crystal Report for Visual Studio .NET
 Oracle 10g


やりたいこと:
 画面表示されたらDBから抽出したデータをクリスタルレポートに表示する。


現在のソース:
 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


    ' ページを初期化するユーザー コードをここに挿入します。
    Dim orclCnn As New OracleConnection
    Dim SqlDataAdapter As OracleDataAdapter
    Dim dataSet = New System.Data.DataSet
    Dim strSQL As String
    Dim report As New ReportDocument


    report.Load("C:\TEST.rpt")
    report.SetDatabaseLogon("UserName", "Password")


    orclCnn.ConnectionString = "User Id=UserName;Password=Password;Data Source=DbName;"
    strSQL = "SELECT * FROM TABLENAME"


    SqlDataAdapter = New OracleDataAdapter(strSQL, orclCnn)


    SqlDataAdapter.Fill(dataSet)


    report.SetDataSource(dataSet)


    CrystalReportViewer1.ReportSource = report


    With CrystalReportViewer1.LogOnInfo("TABLENAME").ConnectionInfo
        .DatabaseName = "DbName"
        .UserID = "UserName"
        .Password = "Password"
    End With
End Sub


※レポート(TEST.rpt)に対してはデータベースエキスポートを使って
 参照するデータソースを設定しています。(OLE DB(ADO))


色々調べてはみたのですがこれぞという情報が見つからず困っています。


CrystalReportViewerのタブ  トロ - 2006/07/17(Mon) 08:50 No.2287

トロと申します。

クリスタルレポートビューワーのタブの「メインレポート」という文字列は
変更できないのでしょうか?
ご存知でしたら、ご教授ください。

 

Re: CrystalReportViewer・..  NZ-000 - 2006/07/18(Tue) 08:13 No.2289

おはようございます。

変更できないし、消せない仕様となっております。
Re: CrystalReportViewer・..  トロ - 2006/07/19(Wed) 15:56 No.2290

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

そうでしたか・・・・
できれば帳票名を表示したかったのですが
あきらめます。
Re: CrystalReportViewer・..  とんとろ - 2006/08/01(Tue) 12:03 No.2322

ちょっと無理やりですが、変更出来ますよ。
※Crystal Reports for Visual Studio .NET 2003で確認

Dim objRepView As Object
Dim objControl As Object
    
For Each objRepView In CrystalReportViewer1.Controls
If objRepView.GetType.Name = "PageView" Then
For Each objControl In objRepView.Controls
If objControl.GetType.Name = "TabControl" Then
CType(objControl, TabControl).TabPages(0).Text = "変更したいタイトル"
End If
Next
End If
Next
Re: CrystalReportViewer・..  NZ-000 - 2006/08/03(Thu) 10:20 No.2329

申し訳ないです。

公式の回答は消せないというだけでした。
http://www.agtech.co.jp/support/faq/crystal_reports/CRdotNET/20041106003.html

とんとろさんフォローありがとうございます。

レポートファイル修正  tesy - 2006/07/31(Mon) 14:03 No.2315

クリスタルレポートV11へのアップグレードを予定していますが

質問があります。
V11で古いレポートファイルの修正が出来るのでしょうか。
よろしくお願いします。
Re: レポートファイル修正  24x7 - 2006/07/31(Mon) 23:57 No.2317

古いバージョンのレポートファイルを修正することはできますが、元のバージョンで保存することはできません。すべて新しいバージョンの形式で保存されますので、古いバージョンで再度、開くことはできなくなります。
Re: レポートファイル修正  tesy - 2006/08/01(Tue) 16:12 No.2324

そうなんですか・・・。それはちょっと考える余地がありますね。

経緯を話すと
もらって来たレポートファイルがバージョン5.2で作成されたものなのですが
家にあるクリスタルレポートは4.6。開けるわけないですよね。
で、いろいろ調べてるうちに新しいバージョンなら開けるとあったんです。
それでバージョンアップをして開発しようかなと思ったんですけど・・・。
これでは、相手側にもV11がいるってことになりますよね。
悩みますね・・・。
Re: レポートファイル修正  24x7 - 2006/08/01(Tue) 22:11 No.2326

バージョン 5.2 は、無いと思いますが・・
知っている範囲では、製品バージョンは、3->4->4.5->4.6.1->6->7->8->8.5->9->10->11 だと思います。マイナーバージョンはあったかもしれませんが、メジャーなバージョンで5は無いのでは・・

Re: レポートファイル修正  tesy - 2006/08/02(Wed) 10:20 No.2327

VBPファイルをテキストエディタなどで見ると
バージョン情報みたいなものが出るんですよ。
そこのクリスタルレポートの部分を見ると
5.2って書いてあるんです。
Object={00025600-0000-0000-C000-000000000046}#5.2#0; CRYSTL32.OCX
↑こんな感じに。
これはバージョン情報ではないのですか?
Re: レポートファイル修正  24x7 - 2006/08/02(Wed) 21:43 No.2328

そのバージョン情報からどのバージョンの製品版で開くことができ、そのまま同一バージョンで保存ができるかじゃないですか。。
知っている限りでは、V5は、存在していません。多分、V6になるのでしょう。
どちらにしても Crystl32.OCX で開発されている場合、V8までしか利用できないので、将来アップグレードはできません。


小数点以下桁数  あさひ - 2006/07/31(Mon) 12:28 No.2314

数値をcstr関数で文字に変換していますが

cstr(数値、"#,##0.0000")

しかし、小数点以下2桁で丸めこまれてしましいます。

なんで2桁で丸められちゃうのでしょうか?
ご存知の方いらっしゃいましたら教えて下さい。
Re: 小数点以下桁数  Drathera - 2006/08/01(Tue) 04:57 No.2319

ToText(数値,"#,##0.0000")
これはどう?
Re: 小数点以下桁数  あさひ - 2006/08/01(Tue) 11:48 No.2321

ありがとうございます
結果は同じでした。
123.456が
123.460なってしまいます。
Re: 小数点以下桁数  Drathera - 2006/08/01(Tue) 12:41 No.2323

ToText(数値,"#,##0.0000",4)
これでは?
Re: 小数点以下桁数  あさひ - 2006/08/01(Tue) 18:05 No.2325

ありがとうございます!
うまくいきました。
ToText(数値,4,"#,##0.0000")

マニュアルには載ってないんですね。。。見落としなのかな。。
本当にありがとうございました

セクションについて  島崎 - 2006/07/31(Mon) 15:13 No.2316

お疲れ様です
いつもお世話になっております。
島崎です。

セクションについて教えていただきいです。
宜しくお願いします。

---------------------------------------
ページヘッダ


---------------------------------------
グループヘッダ


---------------------------------------
詳細1
 生データ(売上げ日、金額)


---------------------------------------
グループヘッダ
 合計(金額)


---------------------------------------
詳細2
 詳細1生データのサマリ結果(売上げ日毎の金額合計)を出力したい
 売上げ日は可変であるため詳細で出力するしかないと思っています。


---------------------------------------
ページフッタ


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

というようなことを実現したいのですが、
自分が試みた限り
詳細セクションを離すことは不可能?なのではないかと
思っております。

どなたか実現方法をご存知の方
教えてください
宜しくお願いします。

Re: セクションについて  24x7 - 2006/08/01(Tue) 00:00 No.2318

セクションにこだららずに表示したいイメージを元にデザインを考えた方がいいのではないでしょうか。上記の説明だけでは、的確な回答になりませんが、単純に売上げ日でグループ化すれば、売上げ日毎に合計は取得できます。
Re: セクションについて  島崎 - 2006/08/01(Tue) 09:48 No.2320

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

自分もあれからいろいろ試してみましたが、
サブレポートを追加して実現することにしました。
そうすることによって詳細セクションを離すことが可能になりました。

また いろいろな疑問が出てくると思います。
そのときはまたよろしくお願いします。

小数点  島崎 - 2006/07/27(Thu) 19:50 No.2305

島崎と言います。
宜しくお願いします。

唐突で申し訳ありませんが、
式フィールド−Basic構文にて、ある比率を計算しています。
その比率を一度変数に代入したいと思っているのですが、
最適な変数がわかりません。
Doubleが使用できないみたいなので、、、
いろいろ調べてはみましたが、見つけることはできませんでした。
ご存知の方
ご教授をお願いします。
Re: 小数点  島崎 - 2006/07/31(Mon) 09:35 No.2313

いろいろ検証してみました。
Numberでいけるように思いますが、
実はNumberではダメなんですよ〜
など 問題点をご存知の方
教えて頂けませんか?
宜しくお願いします。


専用紙の用紙設定について  なお - 2006/07/26(Wed) 15:09 No.2300

OS:XP VS2005 クリレポ:バンドル版を使用しています。


縦12.7cm、横28cmの専用紙の伝票に印字しようと思っています。
右クリック→デザイン→プリンタ設定でユーザが任意で設定できる
用紙サイズを作成しようと思ったのですがそのような設定がありませんでした。
ユーザが任意で設定できる用紙サイズは、現在、PCに接続されているプリンタに
よって設定ができないのでしょうか?


印刷の設定画面の左上にある「プリンタなし」をチェックしても特に設定がありませんでした。

Re: 専用紙の用紙設定について  なお - 2006/07/26(Wed) 16:48 No.2301

紙はチェーンストア統一伝票のターンアラウンド用の紙です。
Re: 専用紙の用紙設定について  なお - 2006/07/28(Fri) 11:57 No.2308

自己れすですいません。
プリンターサーバにユーザ設定でプリンタの設定を登録しなんとかできそうです
ありがとうございました。


2種類の、複数行あるデータをわけて表示したい  かすみ - 2006/07/27(Thu) 02:30 No.2302

はじめまして。
クリレポ初心者で、仕事で解決できず困っています。
もしご教授意いただけたら嬉しいです。

2種類の、複数行あるデータを
わけて表示したいのですが
やり方はありますでしょうか?
求めるイメージは、以下のような感じです。

--------詳細a
りんご
オレンジ
さくらんぼ

マンゴ
バナナ

--------詳細b
大根
ピーマン
トマト
白菜
たまねぎ
にんじん
ほうれん草
ねぎ


キーをつけてグループ化すると
(当然ですが・・・)例えば
以下のようになってしまいます。

--------
りんご
 大根
 ピーマン

オレンジ
 トマト
 
さくらんぼ
 白菜
 たまねぎ


 にんじん
 ほうれん草
 ねぎ

--------

尚、表示させたい二つのグループの
罫線で作る項目欄は、大きさが異なります。



よろしくお願いします。

Re: 2種類の、複数行ある...  24x7 - 2006/07/27(Thu) 06:01 No.2303

オリジナルのデータの持ち方はどのようになっているのでしょうか。キーをつけてグループ化するとは、データベースを変更するということですか。それともすでにグループ化できるキーが存在しているの・・
「複数行あるデータ」って何?レコード件数のことですか?
Re: 2種類の、複数行ある...  かすみ - 2006/07/27(Thu) 22:00 No.2306

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

グループ化できるキーは存在しています。
「複数行あるデータ」とはレコード件数のことです。

書いたとおり、以下のように出したいと思っています。

--------詳細a(キーAのレコードn件)
りんご
オレンジ
さくらんぼ

マンゴ
バナナ

--------詳細b(キーBのレコードn件)
大根
ピーマン
トマト
白菜
たまねぎ
にんじん
ほうれん草
ねぎ

ここで、詳細aと詳細bで出したい帳票のフォーマットの枠の
大きさがかわります。

--------詳細a
 ---------
 |フルーツ名|
 ---------
 | りんご      |         
 | オレンジ   |
 | さくらんぼ |
 | 梨           |
 | マンゴ      |
 | バナナ     |

--------詳細b
〜〜〜〜〜〜〜
〜 野菜名 〜
〜〜〜〜〜〜〜
>> 大根    <<
>> ピーマン  <<
>> トマト    <<
>> 白菜    <<
>> たまねぎ  <<
>> にんじん  <<
>> ほうれん草 <<
>> ねぎ     <<
〜〜〜〜〜〜〜

こんな感じです。
Re: 2種類の、複数行ある...  24x7 - 2006/07/27(Thu) 22:58 No.2307

--------
りんご
 大根
 ピーマン

オレンジ
 トマト
 
さくらんぼ
 白菜
 たまねぎ


 にんじん
 ほうれん草
 ねぎ
--------

グループ化できるキー(項目)が存在して、そのキーでグループ化すると上記のような表示イメージになりますか?このキーは、異なる項目ですかね。
例えば、”種別”というキーが存在し、値として、"フルーツ"と"野菜"があれば、以下のようになると思いますが・・

--グループ --

フルーツ   

    -- <詳細>  ---
       りんご
      オレンジ
      さくらんぼ
      梨
     マンゴ
     バナナ
   -- <詳細>  終わり ---
--<グループ フッター> --

--<グループ ヘッダー> --

野菜

    -- <詳細>  ---
     大根
     ピーマン
     トマト
    白菜
     たまねぎ
     にんじん
    ほうれん草 
    ねぎ
   -- <詳細> 終わり ---
--<グループ フッター> --

キーAとキーBとは値?あるいは、項目名のことですか?
値なら、上記のような表示イメージになると思いますが。。
違いますか?
項目名の場合、同一レコード内でキーAとキーBは、どちらも値が設定されているのでしょうか。
例えば、2つのキー(項目)が存在しても、どちらか一つしか設定されいない場合、式フィールドでグループ化することは可能です。
2つのグループにしか存在しないことを前提に以下のような式を利用します。

WhileReadingRecords;
If (Not IsNull({キーA})) or ({キーA} <> "") Then
"フルーツ"
Else
"野菜"

あとは、2つのグループが区別できるキーが存在するなら、サブレポートを利用することも考えられます。

再起動せずに  たなか - 2006/07/27(Thu) 17:02 No.2304

はじめまして。たなかと申します。
Crystal Reports for Visual Studio .NET 2002 を使用して、
WebのHTMLからの命令でPDF帳票を作成するシステムを作成したのですが、
突然、PDF出力時が出来なくなってしまいました。
PDF出力以外の処理は動作しているので、おそらくクリレポのdllが
機能しなくなったようです。
その時はそのシステムを設置しているサーバーを再起動することにより、
システムを復旧したのですが、サーバーを再起動することなく
クリレポの機能のみ再起動することは可能でしょうか?
もし、ご存じの方いらっしゃいましたらご教授下さい。

2つ以上のテーブルの印刷  ジンジン - 2006/07/21(Fri) 19:46 No.2296

こんばんわ、ジンといいます。クリスタルリポートで開発を行っています。
データベースフィールドで、ひとつのテーブルで印刷を行うと問題ないですが、
2つ以上のテーブルを設定し、リンクを貼ってやると、データがまったく印刷されません。なぜでしょうか。
どなたかご存知の方がいらっしゃいませんでしょうか。
教えて頂けたらと思っております。
Re: 2つ以上のテーブルの印刷  24x7 - 2006/07/24(Mon) 07:07 No.2298

2つのテーブルのリンクの張り方が悪いのではないでしょうか。

初歩的な質問【切実】  たか - 2006/07/16(Sun) 00:57 No.2286

初心者なのでわかりづらい説明になってしまいますが、
ご容赦ください。

質問
<現行>では下記に示した環境でCrystalReports4.5で作成した帳票を作成しております。

今回、OSVerUPに伴い、影響調査をしております。
@CrystalReports4.5で作成した帳票を<次期>環境で使用できますでしょうか?(帳票を作り直さずに使いたいんです・・・。)
例:CrystalReports11等にコンバートして使用できるとか。

環境
<現行>
OS NT4.0
開発環境 VC++4.2

<次期>
OS WIN2000
開発環境 VC++6.0

Re: 初歩的な質問【切実】  24x7 - 2006/07/17(Mon) 23:21 No.2288

多分PrintEngine 関数を利用しているわけですよね。そのままでも問題ないと思います。違いは、VC++のランタイムのバージョンだけでしょう。データベースが、Access2000又はそれより新しい場合、製品付属のネイティブドライバーはサポートしていません。
11にアップグレードする方が影響度は高いです。まず、PrintEngine関数はサポートしていない。4.5->11では、レポートのデザインに多少の影響が生じるので、デザイナ環境で確認する必要があります。

Re: 初歩的な質問【切実】  たか - 2006/07/20(Thu) 22:58 No.2294

24×7様返信ありがとうございます。

大変参考になりました。
明日からご指導いただいた箇所を調査してみます。



Re: 初歩的な質問【切実】  たか - 2006/07/21(Fri) 23:51 No.2297

調査の結果、WIN2000にVC++4.2で開発するのが
いいという結論に達しました。
24×7様のおかげです。
ありがとうございました。

クリスタルレポートの現象  島崎 - 2006/07/19(Wed) 18:44 No.2291

島崎と言います。
宜しくお願いします。

-------------------グループヘッダ
・データA
-------------------グループヘッダ
-------------------詳細
・データB
・区分( a or b )
-------------------詳細
-------------------グループフッタ
・区分a積算データ
・区分b積算データ
-------------------グループフッタ

【状況】
上記レポートはデータAが変わる毎に改ページとリセットを行う。
という設定をしています。
グループフッタには区分毎の積算アイテムを設置しています。

区分aのデータがなかった場合、区分a積算データには何も表示されません。
これは問題ないのですが。。。

もし、データAの種類が3種類あり3ページ出力されるとします。
その場合、2ページ目に区分aのデータは存在しているが値は「
という場合、「」が表示されます。
そうすると3ページ目(最終ページ)に区分aのデータが存在しない場合でも、
値「0」が出力されてしまいます。
これはクリスタルレポートの障害なのでしょうか?
それとも私の設定障害なのでしょうか?

わかりにくい説明で恐縮ではありますが、
どなたかご存知の方がいらっしゃいましたら、
教えて頂けたらと思っております。

失礼します。

Re: クリスタルレポートの現象  NZ-000 - 2006/07/19(Wed) 20:28 No.2292

こんにちは。

私はクリスタルレポートの障害だと思います。
フィールドを一度積算したことによって、そのフィールドを数値フィールドと認識して何もないときに0と表示しちゃうんじゃないでしょうかねぇ。
なので実際にその値が0になっているのか気になるところです。
もし、値自体はNullであるなら、積算データを式フィールドによってNullかどうか評価し、その結果Nullであれば何も出力しないようにしたらいかがでしょうか。
非表示条件式を利用してもいいですね。
Re: クリスタルレポートの現象  島崎 - 2006/07/21(Fri) 11:11 No.2295

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

そうですかやはり障害ですか。。。なるほど(>_<)
値自体はNULLです。なので、おっしゃったとおりに対応はできると思います。
しかし、
その対応をするとなるとアイテムひとつひとつに
条件式追加という作業が必要になるため、
レポートプロパティでNULLの場合デフォルト値設定というチェックボックス
にチェックして、
いままでNULLで表示していたアイテムをすべて0で表示という
方向に変えました。

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

クリレポ関連本:『Crystal Reports XI 徹底活用術』 使ってます!  しし - 2006/07/20(Thu) 15:51 No.2293

こんにちは。

クリレポの最新バージョンXIを最近使い始め、このサイトを知りました。
毎回とても役に立っています、ありがとうございます!

日本語の関連本が出ていないかなぁ〜と探してみましたら、見つけました!!

『Crystal Reports XI 徹底活用術』 という関連本です☆
今年出版だけあって、最新バージョンに対応されていてとても便利です。
只今愛用中ですので、ご紹介してみました♪

http://bpstore.nikkeibp.co.jp/nsp/

http://japan.businessobjects.com/products/reporting/crystalreports/default.asp


グループラベルについて  いぬ - 2006/07/14(Fri) 16:02 No.2285

VB.NET2005 Pro の クリスタル レポートで折れ線グラフを表示させるプログラムを作成中です。グラフのグループラベルを縦書きに設定する方法が分かりません。ご存知の方、お教えください。よろしくお願いします。

Sub Mainについて  しげ - 2006/07/14(Fri) 14:57 No.2284

みなさんこんにちは。しげです。
VB.NET2005を使っています。
FormをOpenせずに処理を実行させるには
どうしたらいいのでしょうか。
以前VB.NET2003で作成していて、途中から
VB.NET2005で作成していた時はSub main()から
処理され、FormもOpenせずに動くようになった
のですが、今回諸事情によりVB.NET2003を
アンインストールしており、VB.NET2005で一から
作成するのがはじめてなります。
FormはHJC2730Xとし、コードはHJC2730X.vb。
VB.NET2003からVB.NET2005にコンバートした
プログラムには無かったApplication.Designer.vb、
HJC2730X.Designer.vbが何なのかわかりません。

用紙サイズ,DataTableについて  しましま - 2006/07/12(Wed) 18:25 No.2270

はじめまして。しましまと申します。
現在、Crystal Reports for Visual Studio .NET ( .NET は2003)を
使用して帳票印刷をしようとしているのですが、初歩的な部分で悩んでいます。



1. レポートのデザイン画面で、用紙サイズ(余白等)を
  指定する事はできないのでしょうか?



2. こちらのサイトの「入門編風」を参考に帳票を作成し、無事印刷できたのですが、
  その後に、DataTableの定義を変更し、リビルドを行っても、クリレポのデザイン画面の
 「データベースフィールド」の内容が変わってくれません。
  どうすれば、DataTableの変更が反映されるのでしょうか?



お手数お掛けしますが、よろしくお願いします。



「開発環境」
WindowsXP
VB.NET2003
Microsoft .NET Framework1.1
Crystal Reports for Visual Studio .NET


〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・
 「入門編風」
 1:プロジェクトにDataSetを追加し、DataTableの定義を行う


 2:該当のDataTableへデータを流し込む


 3:クリレポで「データベースフィールド」に該当のDataSetをデータベースとして追加する


 4:クリレポへ各アイテムを貼り付ける

Re: 用紙サイズ,DataTabl...  さかもと - 2006/07/13(Thu) 08:05 No.2272

さかもとと申します。

1:余白について
 デザイナ画面を右クリック⇒デザイナ⇒ページ設定 から出来ます。ただ、プリンタの設定の方が優先されます。

2:DataTableの更新
 フィールドエクスプローラーを右クリック⇒データベースの照合 で出来ます。
 但し、IDEのバグかどうか分かりませんが、たまにIDEを再起動してから上記作業を行わないと反映されないことがあります。

Re: 用紙サイズ,DataTabl...  しましま - 2006/07/13(Thu) 11:37 No.2274

さかもと 様

ありがとうございました!!
2. については、再起動をしたら反映されました。

ちなみに、1. についてですが、用紙サイズを縦何センチ、横何センチという形では
指定はできないのでしょうか?

あと、追加質問で、ラベル印刷を行う場合、
ラベルとラベルの間隔を設定するにはどうすればよいのでしょうか?

ご存知でしたら、ご教授ください。m(_ _)m

Re: 用紙サイズ,DataTabl...  さかもと - 2006/07/13(Thu) 12:00 No.2275

さかもとです。

>用紙サイズを縦何センチ、横何センチという形

ですが、これはまず「プリンタ側のユーザー定義用紙」が必要となります。Windowsのヘルプで「ユーザー定義」などで調べると良いと思います(プリンタユーティリティのヘルプかも)

このユーザー定義の用紙があればクリレポ側でも指定の用紙サイズを利用できます。

ラベル印刷ですが、これは1枚の用紙に複数ラベル印刷ということでしょうか?WORDの差込印刷のようなもの?
Re: 用紙サイズ,DataTabl...  しましま - 2006/07/13(Thu) 13:38 No.2276

さかもと 様

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


>ラベル印刷ですが、これは1枚の用紙に複数ラベル印刷ということでしょうか?WORDの差込印刷のようなもの?

どうやら、ロール紙にずらーっと縦1列にラベル用紙があるものに対して印刷を行うようです。
なので、ラベルの間隔を指定できたらと思ったのですが。。
この場合、ラベル専用プリンタが無いと、サイズ定義はできないのでしょうか?

Re: 用紙サイズ,DataTabl...  さかもと - 2006/07/13(Thu) 14:42 No.2277

さかもとです。

なるほど、ロール紙のようなものですね?

プリンタ自体は本体がなくてもプリンタドライバをサイトからダウンロードしてインストールすれば利用可能です。

こうした場合の「紙」は「専用紙(専用プリンタ)」になるでしょうから、実際に印刷を行うプリンタは既に決まっているかと思います。ロール紙も汎用的なものを使うにせよ何かしらの「型」があると思います。逆に決まっていないとテスト印字など出来ませんよね・・・。

「間隔」についてですが、縦一列とのことですので明細行の上下幅を調整すればよいかと思います。
Re: 用紙サイズ,DataTabl...  しましま - 2006/07/13(Thu) 17:45 No.2281

さかもと 様

そうです。ロール紙なんです。

>「間隔」についてですが、縦一列とのことですので明細行の上下幅を調整すればよいかと思います。

ちなみに、クリレポのデザインで1ページ1ラベルとした場合、
改頁したら、用紙サイズ分だけ先に送られるようになるんですよねぇ?(想像)
そうであれば、きっちり用紙サイズを定義しておかないとずれてしまいそうですね。

Re: 用紙サイズ,DataTabl...  さかもと - 2006/07/13(Thu) 18:42 No.2282

さかもとです

>改頁したら、用紙サイズ分だけ先に送られるようになるんですよねぇ?(想像)

ですね。
プリンタドライバの入手およびユーザー定義用紙の作成が先決かと思います。

私もロール紙ではないですが、いわゆる連続帳票での印刷をよく行うのですが、そこさえちゃんと抑えていれば後は微調整だけでほとんどの場合は済みます。
Re: 用紙サイズ,DataTabl...  しましま - 2006/07/13(Thu) 19:24 No.2283

さかもと 様

>プリンタドライバの入手およびユーザー定義用紙の作成が先決

まずはこの2点についてハッキリさせてからラベル作成に励みたいと思います。
親切丁寧な回答、本当にありがとうございます。m(_ _)m

サブレポートを使った場合ldbファイルが残る・・・  飯田 - 2006/07/04(Tue) 10:53 No.2212

お世話になります。
以前はこの掲示板で大変お世話になりました。
非常に有用な情報をいただき解決したことを覚えております。
さて、今回起きている現象なのですが、
まず現在の環境から言いますと
Visual Studio 2003 .NET + VB.NET + ACCESS 2003 +Crystal Report for Visual Studio .NETで開発を行っています。

今回起きてしまう現象と言いますのは
サブレポートを使った帳票をReport Viewer で表示した際に
Report Viewer 破棄後もldbファイルが残ってしまうという現象です。
なんとexeを落としても残ってしまいます
exeを落とさずにプログラム側で最適化などを行おうとすると
当然?ながら(ロック状態?)最適化できず、エラーになってしまうという
訳です。
これはもしかするとクリスタルレポートのバグ?かと思い
検索したところ以下の文章がCrystalReportの製造元ページにありました。

PDF
http://support.businessobjects.com/communityCS/FilesAndUpdates/cr90devwin_jp.pdf
**********************************
ADAPT00142978 Patch ID: 35164299
概要
Report Designer Component(RDC)を介して、Microsoft Access データベース内の複数のリンクされたテーブルを基にしたレポートを作
成すると、データベースロックファイル(.ldb)が作成される。レポートオブジェクトを閉じても、ロックファイルが削除されない。
新しい動作
Report Designer Component 内のリンクメソッドで、ロックファイルが使用後に削除されるようになりました。
*********************************


しかしながら、色々と探したのですがパッチが見当たらないためどのように解決してよいか困っております。
パッチの場所をどなたかご存知でしょうか?それとも解決策をご存知でしょうか?
ご教授お願いいたします。
Re: サブレポートを使った...  飯田 - 2006/07/04(Tue) 11:06 No.2214

自己レスです^^;
すみません 書込み後にもう一度良く探したら
発見できました。
ただこのパッチでいいのか・・・
このあと英語サイトに飛ばされるようです

http://japan.businessobjects.com/support/crystal/download.asp
うまくいったらまたご報告します
Re: サブレポートを使った...  飯田 - 2006/07/04(Tue) 11:59 No.2217

うーん
パッチを当てたんですがダメですねぇ・・・
for Visual Studio .NET 2003 向けのものを当てたのですが
解消されませんでした・・・
なにかご存知の方いらっしゃらないでしょうか?
Re: サブレポートを使った...  NZ-000 - 2006/07/04(Tue) 20:28 No.2219

こんにちは。
レポートドキュメントをちゃんとClose()及びDispose()しているでしょうか。
それでもだめならちょっとわかりかねますpq
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 11:10 No.2228

うーん
formを生成してその上にViewerを貼り付けているのですが
そのformをDisposeしてもldbは残ってしまいます。
その前にもちゃんとcloseなどは入れているのですが、
EXEが落ちてもldbが残ってしまうっていうのは別のプロセスが原因なのでしょうか
しかし、見当違いな話かもしれませんが
自分自身のexeでldbを強制的に削除しようとしても
例外がでます。(当然でると思いましたが)

同プロセス内の別スレッドといったところでしょうか
Fileモニターなどを使用してldbファイルへのアクセスを監視していたのですが
Accessなどで開く、閉じるを行った場合に関しては
最後に必ずDELETEという処理が行われるようなのですが
クリスタルレポートのサブレポートの場合Closeは行われているようなのですが
DELETEが行われないようなのです。
Re: サブレポートを使った...  NZ-000 - 2006/07/06(Thu) 11:16 No.2229

レポートドキュメントを明示的にDispose()してもみりでしょうか。
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 13:18 No.2230

NZ-000様
前回は大変お世話になりました。
大変助かったのを覚えております
レポートドキュメントを明示的にDispose()でしょうか?
「明示的にDispose()」という処理をしたことが無いのですが
どのように記述すればよろしでしょうか?
Re: サブレポートを使った...  NZ-000 - 2006/07/06(Thu) 13:46 No.2231

単にそのレポートドキュメントが必要なくなったときに
Report.Dispose()
(※Reportはレポートドキュメント)
を実行してみてくださいという意味です。
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 13:48 No.2232

明示的というのは
貼り付けたフォーム内のViewerをDispose?ということでしょうか?
以下のような感じで書いてみましたがダメでした。。。。
form1.CRepView.Dispose()
ただ昨日はexeを落としてもldbファイルが残っていたのですが
今日はexeを落とすとそのタイミングでファイルが削除されるように・・・
謎の現象です

Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 13:55 No.2233


NZ-000様お早いご返答ありがとうございます。

なんとなくexeが落ちたときにldbファイルが消えるか消えないかの症状がつかめて
来ました。
昨日はレポートドキュメントを ビューアに割り当て後に破棄していたのですが
今日はコメントにしていたところexeの終了と同時にldbは消去されま
した。

Dim rp As New CRepNewWorkListLayer1  ’レポートドキュメント

            'ビュアーに割り当て
            CRepView.ReportSource = rp


            'rp.Close()
            'rp.Dispose()
            'rp = Nothing

Re: サブレポートを使った...  NZ-000 - 2006/07/06(Thu) 14:06 No.2234

ふむぅ。
Dispose()した段階でガベレージ・コレクションを行えばどうなるんでしょう。
rp.Dispose()
GC.Collect() '←追加
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 14:16 No.2235

うーんダメですね・・・><

やはりexeを落とした後も残ってしまうようです・・・

Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 14:21 No.2236

ちなみに
Dim form1 as New ViewForm  'プレビューフォーム

form1.ShowDialog()

form1.dispose()

GC.Collect()

としてもダメでした><
Re: サブレポートを使った...  NZ-000 - 2006/07/06(Thu) 14:33 No.2237

formをDispose()してもrpのDispose()は呼ばれませんよお。たぶん・・・
連動させるにはDispose(true)かな。・・・たぶん
まぁだめでしょうね><
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 14:40 No.2238

うーんDispose(true)と書いたところ

この引数の数を受け付ける 'Dispose' がないため、オーバーロードの解決に失敗しました。

と出てしまいました。><
Accessとの相性悪いんですかねぇ・・・凹んでます


Re: サブレポートを使った...  NZ-000 - 2006/07/06(Thu) 15:06 No.2239

いや、私がいいたことは一つなんです。
rp.Dispose()
GC.Collect()
これをためして無理なら(-人-)
Re: サブレポートを使った...  飯田 - 2006/07/06(Thu) 15:15 No.2240


rp.Dispose()
GC.Collect()
でも試したのですがダメでした・・・(xx。xx)
もうお手上げです。
一応クリレポのサポートにメールしてみようと思います。
うまくいったらご報告します

Re: サブレポートを使った...  飯田 - 2006/07/13(Thu) 15:34 No.2279

どうもご無沙汰しております。
以下のような回答がビジネスオブジェクツ様より来ました。


>ご報告頂いた現象の回避策として次の方法が考えられます。
>お手元の環境にて下記に紹介致します方法により動作のご確認をお願いします。
>弊社検証環境においては下記コードを追加することにより .ldbファイルが削除されることを確認しております。
>
>'ReportDocument の DisposeメソッドによりReportDocumentオブジェクトが使用する
>'リソースを開放します。
>(例)
>CrystalReportViewer1.ReportSource = crReportDocument
>
>crReportDocument.Dispose
>
>GC.Collect


 


すでにNZ-000様にアドバイスされている内容でしたので
正直がっかりしましたが。
上によると


>.ldbファイルが削除されることを確認しております。
との事です。
もしや使い方が悪い?ということでソースを見直しました。
そして、ついに原因を突き止めました。


なんと、Form_Load時に
Dim crReportDocument As New ReportDocument1


CrystalReportViewer1.ReportSource = crReportDocument


のようにセットしているような場合


Form_Loadイベント内に


crReportDocument.Dispose
GC.Collect


としても開放されずldbファイルが残ってしまう(mdbファイルをオープンしっぱなし)
ようなのです。


してこうしました。


'クラス宣言時
Public Class
Dim crReportDocument As New ReportDocument1


'フォームロード時---------------------------------------------
Form_Load


'フォームに張ったビューアにレポートファイルを関連付けする-----
CrystalReportViewer1.ReportSource = crReportDocument



'フォームクローズ時-------------------------------------------
Form_Closed


crReportDocument.Dispose
GC.Collect



とすることでフォームの×ボタンを押した後mdbを開放しldbが削除されました。
これってバグなんでしょうか、仕様なんでしょうか。それとも
自分のプログラムの組み方が悪いせいでしょうか・・・x。x

Re: サブレポートを使った...  NZ-000 - 2006/07/13(Thu) 17:01 No.2280

おぉ解決でけましたか。良かったですね。

想像ですが、
ビューアを表示してからレポートのリソースを解放ようとしても
問題なくビューアが表示できるということは、リソースは解放されていないというか
ビューアが掴んで離さない状況なんじゃないでしょうか。
フォームクローズイベントでやっとビューアがリソースを手放すと考えれば、
レポートの削除はその後だというのもあながち不自然には思えません。

というか
>単にそのレポートドキュメントが必要なくなったときに
っていうのは例えばこういったプレビューフォームでいうところのクローズされるときっていう意図だったんですがね@w@;

| 1| 2| 3| 4| 5|