エクセル出力について
Mike - 2007/03/30(Fri) 10:29 No.2980
- はじめまして
エクセル出力について問題がありまして、どなたかご存知でしたら
教えてください。
環境: CrystarlReport9 with最新のサービスパックSP7
表になったレポート(横が月、縦が項目)をエクセルに出力しますと、
ばらばらのエクセルセルに数字が入り、1月は統合された2セル使い、
3月は1セルだけ使うみたいに出力され、空欄セルも多数まざったり
エクセルでの計算使用にそのままで使用できておりません。
どなたか解決方法をご存知でしたら教えてください。
よろしくお願いいたします。
端数処理の設定
リン - 2007/03/27(Tue) 09:17 No.2971
初めまして。よく拝見いたしております。
クリスタルレポートに初めて触る初心者です。
私の開発環境は以下の通りです。
WindowsXP
VisualStudio2005 (VisualBasic2005)
CrystalReport XI (バンドル版)
目的は端数処理の動的設定を行うことです。
あるフィールドAの値が0の時は整数表示(小数点1桁目で丸め)
同様にフィールドAの値が1の時は小数点1桁表示(小数点2桁目で丸め)
・・・・といった感じ
レポートデザイン作成画面で静的な設定する時は、
プロパティ:crRoundTo Thousandth
オブジェクトの書式設定:0.001
で設定できるので以下の式(「端数処理」欄の右の「X-2」アイコン内)で
実現できるかなと思いましたが、「数値を指定してください」といったエラーが出ます。
どうやら整数を入れる形式のようですが、「1」とか整数をいれましても
特に結果には反映されなくて頭を抱えております。
1が何を表すかもわからずとりあえず色々やってみただけなので考察が難しい状況です。
端数処理の各項目と数値の関係をご存知でしたらご教授いただけますでしょうか?
///////////////////式1///////////////////////
WhilePrintingRecords;
if {フィールドA} = 0 then crRoundTo Unit →構文エラー、「数値を指定してください」
///////////////////式2///////////////////////
WhilePrintingRecords;
if {フィールドA} = 1 then 0.1 →実行時エラー
///////////////////式3///////////////////////
WhilePrintingReports;
if {フィールドA} = 0 then 1 →書式で設定した桁で丸められてしまう
(実際どのような結果になるかもわかっていません)
ちなみに「小数点以下桁数の動的設定」も行ったのですが、
その時は、上記の式3でできたので今回もこのような記述で挑戦してみました。
宜しくお願いいたします。
- Re: 端数処理の設定
NZ-000 - 2007/03/27(Tue) 11:55 No.2973
- こんにちは。
"小数点以下の桁数"と"端数処理"の両方の条件付書式設定に以下のような式を追加してください。
(CrystalReportsは表示桁と処理桁を個別に指定します。)
WhilePrintingRecords;
//指定したフィールドの値が0なら小数点以下を表示しない、1なら第1位まで表示する(まるめる)
if {フィールドA} = 0 then 0 else if {フィールドA} = 1 then 1;
つまり、指定する数値とは小数点以下の有効桁数を指します。
なお、上記はelse式がないので当てはまらない場合の動作は未定です。
- Re: 端数処理の設定
リン - 2007/03/28(Wed) 19:19 No.2977
- ご丁寧にありがとうございます。
無事解決いたしました。
本当にありがとうございました。
ビスタでクリスタルレポートは?
むーみん1号 - 2007/03/28(Wed) 17:42 No.2975
- ビスタでクリスタルレポートは使えますか?
クリスタルレポート7ではインストールもできませんし、作成したレポートも動きません。この辺の情報がありましたらお願いします。
- Re: ビスタでクリスタルレ...
むーみん1号 - 2007/03/28(Wed) 17:50 No.2976
- Crystal Reports XI だとVistaで使えますか?教えて下さい。
レポートヘッダー部に画像を表示したい
みかん - 2007/03/20(Tue) 11:28 No.2966
レポートヘッダ部に画像を表示したいのですが
記述方法としてどのようにすればよいのでしょうか?
Section1(レポートヘッダ)に
挿入→OLEオブジェクト→ビットマップイメージでpicture1を設定しました。
そのpicture1に画像を表示したいのですが・・・
Section1.ReportObjects("Picture1")を使用すればいいのですかね?
ご教授お願いします
- Re: レポートヘッダー部に...
NZ-000 - 2007/03/24(Sat) 17:30 No.2969
- 環境をば書いてくださいまし。でないと詳しくは解説できません。
また、単に画像を表示したいといっても何通りかの解釈ができます。
例えば、
・固定画像を表示したい。
・データベース内の画像を表示したい。
・プログラムで画像を指定して表示したい。
この当たりを明確にしてください。
キーワードからして上の三つ目に近そうですね。
>Section1.ReportObjects("Picture1")を使用すればいいのですかね?
とりあえずこのやり方ではできません。
ぽんっと思いつく限りでは三つのやり方があります。
1.クリレポにBlobFieldObjectを貼り付け、プログラムで画像を読み込み、そのObjectに画像データを入れてやる方法。
2.クリレポにOleObjectを貼り付け、適当な式フィールドを用意し、OleObjectの画像保存場所にその式フィールドを指定、
あとはプログラムからその式フィールドに画像のパスを入れてやる方法。
3.クリレポにOleObjectを貼り付け、画像保存場所に適当な画像ファイルパスを指定しておき、プログラムで
目的の画像をOleObjectの画像パスに置換してやる方法。
私は1をお勧めするかな。
プレビュー表示でエラー20599
のぶ - 2007/03/20(Tue) 19:32 No.2968
- Oracle10g、VB6、CryRepo8でVB6より実行するとプレビュー表示ができますが、
実行形式(コンパイル後EXE作成)で実行するとエラー20534データベース、DLLエラーを検出しましたと表示されプレビュー表示が出来ません。
何が原因でしょうか?
両面印刷がうまくいかない
ASD - 2007/03/20(Tue) 17:38 No.2967
- はじめまして、ASDです。
現在、Crystal Reports for Visual Studio 2005で開発しています。
下記のようなコードで、プリンタダイアログに両面印刷設定を
セットしているのですが、水平方向を指定すると垂直方向が選択され、
垂直方向を指定すると水平方向が選択されます。
どなたか原因と解決方法を知っておられましたら、教えて頂けないでしょうか?
どうぞよろしくお願いします。
(ちなみにプリンタはネットワークプリンタでKyocera Mita KM-3531(J) KX を使用しております。)
DialogResult ret;
System.Drawing.Printing.PrinterSettings ps = new
System.Drawing.Printing.PrinterSettings();
PrintDialog printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = false;
printDialog1.AllowSelection = false;
printDialog1.AllowSomePages = true;
ps.PrinterName = clsXmlRW.getXmlTextByAttribute(clsGlobal.PrintInfo, "name", printerName);
printDialog1.PrinterSettings = ps;
if (ryomenp == "両面水平")
{
ps.Duplex = System.Drawing.Printing.Duplex.Horizontal;
}
else if (ryomenp == "両面垂直")
{
ps.Duplex = System.Drawing.Printing.Duplex.Vertical;
}
else
{
ps.Duplex = System.Drawing.Printing.Duplex.Simplex;
}
ret = printDialog1.ShowDialog();
起動時
初心者 - 2007/03/20(Tue) 10:25 No.2965
いつも拝見させて頂いております。
開発環境 WinPro(SP2) VB6.0 CryStalReport8.5
とある帳票をCryStalReportで作成したところ、対象の帳票起動時に
『ActiveX オブジェクト アップデートしています』
のMSGBOXが表示されます。
毎回毎回表示されますので、どうにかこの分を出ないようにしたいの
ですが、やり方がわかりません。
ご教授宜しく御願いします。
フッダのみになったときにグループヘッダが表示されない。
TAKA - 2007/02/20(Tue) 17:32 No.2919
- クリスタルレポートを利用して開発しております。
ヘッダ、グループヘッダ、データ部(詳細)、グループフッダを利用しております。
普通のデータならグループヘッダが表示されるのですが、
データ部が数ページに渡る場合で、
最後のページがデータ無しのグループフッダだけになった場合、
グループヘッダが表示されません。
どこかプロパティの設定が間違っているのでしょうか?
お気づきの点等ありましたら教えていただければ幸いです。
よろしくお願い致します。
- Re: フッダのみになったと...
クリレポスライムレベル - 2007/02/22(Thu) 13:30 No.2921
- 状況がよく分からないのですが
グループヘッダ
aaaaa
-----------------------------
詳細
bbbbb
-----------------------------
グループフッダ
ccccc
と言う定義の場合に、詳細が数ページにわたると
1P目
aaaaa
bbbbb
bbbbb
bbbbb
ccccc
2P目
ccccc ← グループフッタだけ出力
と言う状況なのでしょうか?
詳細にデータがないのに、グループフッタだけ出力されると言うのが問題と言う事ですか?
詳細が最大行数まで出力する時に、グループヘッダ+詳細+グループフッタの総幅サイズが、用紙サイズを超えてるのかもしれません。
フッダを少し縮めて調整してみてはどうでしょうか?
(とんちんかんな回答だったらごめんなさい)
- Re: フッダのみになったと...
24x7 - 2007/02/23(Fri) 08:01 No.2923
- > 普通のデータならグループヘッダが表示されるのですが、
> データ部が数ページに渡る場合で、
> 最後のページがデータ無しのグループフッダだけになった場合、
> グループヘッダが表示されません。
上記の表現を読むと
次のグループが存在していなければ、正しい動作に見えるけど。
まだ、次のグループが存在しているのでしょうか。
- Re: フッダのみになったと...
TAKA - 2007/03/16(Fri) 16:58 No.2963
遅くなり申し訳ありません。
暫定対応したためと過酷業務のため、提示版が見れていませんでした。
グループヘッダ
aaaaa
-----------------------------
詳細
bbbbb
-----------------------------
グループフッダ
ccccc
とした場合
1ページの場合
aaaaa
bbbbb
bbbbb
cccc
2ページにまたがる場合
1ページ目
aaaaa
bbbbb
bbbbb
bbbbb
2ページ目
aaaaa
bbbbb
ccccc
となるのが普通で、上記のようになっています。
しかし、
2ページにまたがる場合で、フッダのみが2ページ目になる場合
1ページ目
aaaaa
bbbbb
bbbbb
bbbbb
2ページ目
aaaaa
ccccc
となって欲しいのですが、
2ページ目が
ccccc
のみとなってしまいます。
これについて対応策は無いものかと
思い掲示板に記載いたしました。
もし、よろしければ対応策についてご教授ください
- Re: フッダのみになったと...
24x7 - 2007/03/16(Fri) 22:46 No.2964
- 2ページに跨るというは、同一グループ内ですよね。
その場合、2ページに跨っても2ページ目にグループヘッダーを表示しているので、グループの変更のオプションからグループヘッダーを出力しているのでしょう。
今回のレポートでは、1ページ目に同一グループ内のデータがすべて表示されたと判断されたのではないでしょうか。そのため、グループの変更オプションでグループヘッダーを出力するように設定されてもデータがないので、詳細に続くグループフッターのみが表示された。と推測できますが・・
本来、同一グループ内で表示するデータが存在しなければ、そのグループヘッダーとグループフッターを表示させることはできません。
OLEオブジェクトの書式設定について
AMAERI - 2007/03/14(Wed) 22:20 No.2958
こんにちは。AMAERIと申します。
初めて質問させていただきます。
WinXPproで、VB2005と、それについていたクリレポを使用しています。
今回、データごとに違う画像を印刷することになりました。
そこで画像の保存場所のパスを渡して表示したいのですが
方法がわかりません。
そこでこの掲示板を見せていただいたところ、
OLEオブジェクトの書式設定のピクチャタブに
保存場所の項目があるとあったのですが、
私の使用しているものには見当たらないのです。
OLEオブジェクトの挿入→新規作成(ビットマップイメージ)
で画面にオブジェクトを貼り付けました。
そこで右クリックで書式設定を出し、ピクチャタブを開くと
「トリミング範囲」や「サイズ」しかありません。
他に「共通」「サイズ」「ハイパーリンク」タブがありますが、
どこにも保存場所はありませんでした。
OLEオブジェクトの挿入を、「ファイルから作成」しても
その時にファイルを指定できるだけで、
書式設定では指定できるところはありませんでした。
そもそもVB2005に付属しているクリレポではできないのでしょうか。
よろしくお願いいたします。
- Re: OLEオブジェクトの書・..
AMAERI - 2007/03/16(Fri) 16:46 No.2962
無理やり自己解決です。
時間がなくなってきましたので、今回は印刷のワークテーブルを作成するときに
その都度保存場所にある画像ファイルをIMAGEファイルとして登録し、
それをリポートに貼り付けて印刷することにしました。
今回の印刷は、一度にたくさんの印刷物を処理するわけではないので
これで十分対応できそうです。
オブジェクトの表示・印刷について
まぐまぐ - 2007/03/16(Fri) 00:34 No.2961
最近、クリスタルレポートを使い始めた初心者です。
いつも参考にさせてもらっています。
質問ですが、Textオブジェクトや線をプレビューでは表示するけど
印刷はしない、ということはできるのでしょうか?
いろいろ調べていて、書式で条件を書けばいけそうかなと思ったのですが、
うまくいきませんでした。
もし、知っている方がいましたらすみませんが教えて下さい。
環境はXP Pro、VB.NET2005、 CrystalReportsXI Release2です。
よろしくお願い致します。
CrystalReport
しん - 2007/03/08(Thu) 17:01 No.2951
この度、VB.NETを使用してレポート出力をプログラムを作成しています。
1)Oracleより商品情報を取得し、ACCESS[mdb]のローカルテーブルに登録
2)mdbを参照しクリスタルレポートにて該当情報を印刷
以上の処理を行うのですが、商品情報としての商品名で
「投光機球 RF110V450WHCK 500W形」 (「」は含まない)
という内容があり、出力フィールドの長さが短いため
商品名が途中で途切れるのは構わないレイアウトとなっていますが、
プレビュー画面で確認したところ
「投光機」と途中までしか印字されません。
何故、商品名の文字列が途中で途切れるのか原因がわかりません。
原因および解決方法をご存じの方がいらっしゃいましたら教えて下さい。
よろしくお願い致します。
◆OS
・Microsoft Windows XP professional Version2002
Service Pack2
◆ツール
・Microsoft Visual Studio .NET 2003 Enterprise Developer
・Crystal Report for Visual Studio.NET
・Office 2000
- USP10.DLL
しん - 2007/03/13(Tue) 12:04 No.2955
- インターネットで調べた結果、USP10.DLLが関連しているような
記述をみつけました。
USP10.DLLは下記の3ファイルが存在していました。
[1]C:\WINDOWS\system32
→ バージョン:1.420.2600.2180 (2004/08/05 21:00)
[2]C:\i386
→ バージョン:1.420.2600.2180 (2004/08/05 21:00)
[3]C:\Program Files\Common Files\Microsoft Shared\Office10
→ バージョン:1.405.2416.1 (2001/01/15 10:32)
USP10.DLLのバージョン相違が原因かと思い
[3]のファイルを[1]のファイルに置換したのですが、
印字結果は変わりません。
そこで、[3]のUSP10.DLLを
Windows2000インストール端末にあるファイルと置換したところ
期待通りの印字ができるようになりました。
◆置換元環境
OS:Windows2000
ツール:Office98/VB5/Crystal ReportはVB5に付属
USP10.DLL → バージョン:1.325.2195.6692 (2003/06/20 04:05)
ここで新たな疑問が発生しました。
◆この解決方法は正しいのでしょうか?
◆USP10.DLLを置換することで、別のアプリケーション等に
影響は生じないのでしょうか?
◆基礎的なことですが[USP10.DLL]とは何ですか?
ご存じの方がいらっしゃいましたら教えて下さい。
よろしくお願い致します。
- Re: CrystalReport
24x7 - 2007/03/13(Tue) 22:03 No.2956
- 期待した結果になれば、正しかったのではないですか。
[2]の存在はしりませんが、検索順は、[3]→[1]なので、最初に見つけたUSP10.DLL で動作したものです。
Crystal Reports に関連したランタイムファイルの配布先に配置しても動くと思います。製品版では、USP10.DLLもインストールされています。
- Re: CrystalReport
しん - 2007/03/14(Wed) 09:51 No.2957
- 24x7さん返信ありがとうございます。
報告が言葉足らずですみません。
今回のケースではUSP10.DLLを置換することで、期待した結果になったのですが、
これではバージョンの古い物を使用することになってしまいます。
また、「USP10.DLLの置換」も根本的な原因が判明していての対処ではなく
試しにやってみたら結果がOKとなった訳です。
この程度の知識では
◆「何が原因だったの?」という質問に説明ができない。
◆「バージョン:1.325.2195.6692のUSP10.DLLに置換」
したが他のバージョンでは駄目なのか?
◆「バージョンを古くすることで別の不具合が発生する可能性は?」という
不安もあります。
そこで、USP10.DLLの製作元(どこ?)や何処かのホームページなどに
『○○の環境ではUSP10.DLLのバージョンによって不具合が生じます。
解決方法としてバージョン○○のものを使用してください。』
とかの報告があれば、安心できるのですが・・・
結果オーライの対処方法でも良いのかもしれませんが
後学の為の知識としての裏づけが欲しいという事で疑問点として
再度投稿させて頂きました。
そのあたりの情報をご存じの方がいらっしゃいましたら
よろしくお願い致します。
- Re: CrystalReport
24x7 - 2007/03/14(Wed) 22:43 No.2959
- メーカーに聞いた方がいいのではないでしょうか。
メーカーのサイトで usp10.dll で検索するといくつかの記事が検索できます。
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2016088&sliceId=&dialogID=16988276&stateId=1%200%2016986662
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2015960&sliceId=&dialogID=16988276&stateId=1%200%2016986662
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2012345&sliceId=&dialogID=16988276&stateId=1%200%2016986662
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2012344&sliceId=&dialogID=16988276&stateId=1%200%2016986662
あと、別なサイトにも関連した記事がありました。
http://www.agtech.co.jp/support/faq/crystal_reports/CR_all/cr_general/20060531001.html
USP10.dll の提供は、Microsoft です。この中には、多言語用 (unicode) のアプリケーションで利用できる関数が含まれています。
- Re: CrystalReport
しん - 2007/03/15(Thu) 13:43 No.2960
24x7さん、再度の返信ありがとうございます。
教えていただいたサイトを見たのですが、
英語記述でしたので私の語学力では理解できませんでした。
「別なサイト」の方は日本語だったので色々とサイト内を辿ったところ
http://www.agtech.co.jp/support/faq/crystal_reports/CR_all/cr_general/20031106005.html
との記事もありましたので、
今回の現象はUSP10.DLLの置換で対応しようと思います。
色々とお教え頂きありがとうございました。
教えて下さい
初心者A - 2007/03/09(Fri) 12:22 No.2952
- ある項目でグルーピングを行い、グループフッター#1のセクションエキスパートで「出力後に改ページ」と「まとめて表示」にチェックを入れています。
その結果、最終ページにページヘッダのみの空ページが作成されています。
この空ページを取りたいのですが、方法がわかりません。
どなたかご教授してください。
行いたいことは、単一の項目がブレイクした時、改ページを行いたいだけで、グループ集計も必要ありません。
宜しくお願いします。
- Re: 教えて下さい
24x7 - 2007/03/12(Mon) 21:59 No.2954
ページヘッダーの非表示の条件式にデータの存在有無を確認する式を挿入します。
例えば、以下のような式を挿入します。
WhilePrintingRecords;
OnLastRecord;
プリンターフォントについて
RM941251 - 2007/03/09(Fri) 16:09 No.2953
こんにちは。
出力フォントについて、解決出来ない問題があり投稿させて頂きました。
ご存知の方が、いらっしゃいましたら、何卒よろしくお願いします。
[開発環境]
VB6.0 CrystalReports8.5
[現象]
レポートのデザインは「MS明朝」で作成しているのですが、
ユーザーが使用しているプリンターには、MS明朝のフォントは存在しません。
(OKパターン)
プレビュー画面より、印刷を行うと、クライアント側のフォントが
有効になり、正常に「MS明朝」で印刷されます。
(NGパターン)
プレビュー画面を表示せずに直接印刷すると、プリンター側のフォントに依存するらしく、
罫線が太くなったり、文字がデザイン時より縦長になったりします。
[質問]
プレビュー画面を表示せずに直接印刷してもクライアントのフォントで
正常に印刷する方法がありましたら、教えてください。
以上、よろしくお願い致します。
CrystalReportViewerについて
初心者 - 2007/03/07(Wed) 18:16 No.2950
はじめまして
早速ですが、教えて下さい。
開発環境:XP PRO,VB2005, Crystal Reports for Visual Studio 2005
プレビュー時に、マウスで帳票の文字の部分をクリックすると、ちらついたり
選択された状態になってしまうのを防ぎたいのですが、どなたか良い方法を
ご存じの方がいらっしゃいましたら教えて下さい。
宜しくお願いします。
RunTimeError
たぐち - 2007/03/05(Mon) 15:23 No.2948
- はじめまして。
いつも参考にさせてもらっています。
初心者なので教えてください。
開発環境:WindowsXPPro、VB6、CrystalReports 8、Access2002
他のパソコンにインストールし、印刷する際に
「Run-time erroe "20532" Cannot find database dll」
というエラーが発生します。
参照設定から
Crystal Report 8 ActiveX Designer Run Time Libraryを
をチェックを入れたりもしました。(関係あるのか わかりませんが)
解決策がわからず困っています。
どなたかご存知の方、いらっしゃいましたら宜しくお願いします。
- Re: RunTimeError
たぐち - 2007/03/05(Mon) 17:50 No.2949
- 自己解決しました。
p2bdao.dll
p2ctdao.dll
p2irdao.dll
この3つのDLLをSystem32フォルダに置いておけば印刷できるようです。
お騒がせいたしました。
数値フィールドを文字列変換に関する質問
初心者 - 2007/03/03(Sat) 11:34 No.2944
- いつも拝見させて頂いております。
環境:XP PRO VB6.0 CrystalReports8.5
数値フィールドを文字列へ変換し、文字間隔を広げようと試みているのですが、
TOTEXTやCSTRで文字列に変換できる状態までは理解できたのですが、数値フィー
ルド上にある『,』(区切り)や『.』(小数点)を非表示にする方法がわかりませ
ん。
例 数値フィールド 『1,000.99』
文字列変換後 『1000』や『100099』
どなたか分かる方がいらっしゃいましたらご教授を宜しく御願い致します。
m(_ _"m)
- Re: 数値フィールドを文字...
24x7 - 2007/03/05(Mon) 10:01 No.2945
千単位のコンマや小数点は、文字列でそのまま表示されてしまうので、変換後の文字列からコンマと小数点を抜き出すことになります。
例えば、こんな感じではどうでしょうか。
whileprintingrecords;
stringvar sr:="";
stringvar str:="";
numbervar i;
numberVar strLen := 0;
sr:=toText({数値フィールド});
strLen := Length(sr);
For i := 1 To strLen Do
(
if Mid(sr,i,1) >="0" and Mid(sr,1,1) <="9" then
str:= str & sr[i];
);
str
もう少し、綺麗なコードが書けるかもしれませんが・・
- Re: 数値フィールドを文字...
24x7 - 2007/03/05(Mon) 10:08 No.2946
上記は、式フィールドを利用します。
- Re: 数値フィールドを文字...
初心者 - 2007/03/05(Mon) 11:09 No.2947
- 24x7 様 ご回答ありがとうございます。
やはり1文字ずつ抜き取るしか方法は無いみたいですね。
ご教授ありがとうございます。
CrystalReportViewerでスクロールバーを検出したい
会社員 - 2007/02/16(Fri) 16:56 No.2846
いつも参考にさせてもらっています。
発環境:Windows2000 SP4 VB.NET Framework 1.1 SP1 CrystalReports 10
CrystalReportViewerでレポートを表示している時に、
拡大表示等で、縦又は横のスクロールバーが表示/非表示された時の
イベントを拾いたいのですが、方法が分かりません。
CrystalReportViewerの内部コントロールDocumentControlのMouseWheelイベントをAddHandlerしてもイベントは発生しませんでした。
どなたか分かる方おりましたら教えて頂けないでしょうか?
よろしくお願い致します。m(_ _)m
- Re: CrystalReportViewer・..
会社員 - 2007/02/16(Fri) 16:59 No.2847
すみません↑のMouseWheelイベントをAddHandler・・・・は質問に関係ありませんでした。そこは無視してください。。。。
- Re: CrystalReportViewer・..
会社員 - 2007/02/19(Mon) 19:26 No.2909
自己レスします。
色々探してみたのですがどうも見つからないようで諦めました。
ビューワの画面をもっと使いやすくしようと、色々と機能を付加するうちに
スクロールイベントの検出が必要になったのですが、別の方法でやることに
なりましたので、質問を取り下げさせて頂きます。
現在、マウス操作による紙面上のスムーズスクロール、
マウスホイールによる拡大縮小を実現しました。
もう少しコードをまとめたらここにアップしようと思っています。
私の質問に貴重な時間を裂いて頂いた方にはご迷惑をお掛け致しました。m(_ _)m
- Re: CrystalReportViewer・..
会社員 - 2007/02/19(Mon) 19:29 No.2910
- あ・・・
× スクロールイベントの検出が必要になったのですが、別の方法でやることに
○ スクロールバーのVisibleChangedイベント等の検出が必要になったのですが、別の方法でやることに
でした・・・(^_^;)
- Re: CrystalReportViewer・..
アジよし - 2007/02/27(Tue) 19:33 No.2932
こんな感じで作ってみました。
以下は実際のコードから要点だけを抜粋したもので、マウス操作でレポートの拡大縮小紙面移動ができます。又、うっとーしいツールチップも表示されません。
ページ表示時のチラつき防止やキーボードショートカットの判定等、肉付け部分のコードは省略してあります。
自己責任の範囲で参考にして頂ければ幸いです。(バグがあったらごめんなさい・・・。)
Private crsDocumentControl As CrystalDecisions.Windows.Forms.DocumentControl
Private crsPageControl As CrystalDecisions.Windows.Forms.PageControl
Private crsDocumentControl_MinZoom As Integer
Private Sub Frm_ReportViewer_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'表示します。
Me.Visible = True
'クリレポファイルを読み込みます。
CrystalReportViewer.ReportSource = "C:\Sample.rpt"
'一度、ページ全体表示をします。(1:ページ幅を基準に表示 2:ページ全体を表示 3:指定倍率で表示)
CrystalReportViewer.Zoom(2)
CrystalReportViewer.RefreshReport()
'ドキュメントコントロール、ページコントロールへの参照を取得します。
crsDocumentControl = CType(CrystalReportViewer.Controls(0).Controls(0).Controls(0), CrystalDecisions.Windows.Forms.DocumentControl)
crsPageControl = CType(crsDocumentControl.Controls(0), CrystalDecisions.Windows.Forms.PageControl)
'ハンドルを追加します。
AddHandler crsDocumentControl.MouseMove, AddressOf crsDocumentControl_MouseMove
AddHandler crsDocumentControl.MouseDown, AddressOf crsDocumentControl_MouseDown
AddHandler crsDocumentControl.MouseUp, AddressOf crsDocumentControl_MouseUp
'ページ全体表示時に使用する表示倍率を求めます。(※ZoomLevel=1 or ZoomLevel=2は使用しません。)
crsDocumentControl.ZoomLevel = 100
Dim dblWidthRatio As Double = crsDocumentControl.Width / crsDocumentControl.DisplayRectangle.Width
Dim dblHeightRatio As Double = crsDocumentControl.Height / crsDocumentControl.DisplayRectangle.Height
If dblWidthRatio < dblHeightRatio Then
crsDocumentControl_MinZoom = 100 * dblWidthRatio
Else
crsDocumentControl_MinZoom = 100 * dblHeightRatio
End If
'微妙に補正しないとスクロールバーがやっぱり出ちゃう・・・。(マージン設定値あたり調べたらきっちりいくかも)
crsDocumentControl_MinZoom = crsDocumentControl_MinZoom * 0.97
'ページ全体を表示します。
CrystalReportViewer.Zoom(crsDocumentControl_MinZoom)
'ページコントロールをEnabled = Falseにします。
crsPageControl.Enabled = False
'フォーカスをドキュメントコントロールにしてマウスホイールイベントに備えます。
crsDocumentControl.Select()
End Sub
Private Sub CrystalReportViewer_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles CrystalReportViewer.MouseWheel
Dim intZoomLevel As Integer = -1 '新しい拡大縮小倍率値を格納する変数
If e.Delta < 0 Then
intZoomLevel = crsDocumentControl.ZoomLevel * 0.8
'ZoomLevel値=1だとページの幅全体、値=2だとウィンドウ内のページ全体という仕様が嫌いなのでこれを防ぎます。
If intZoomLevel < 3 Then intZoomLevel = 4
Else
intZoomLevel = crsDocumentControl.ZoomLevel * 1.2
'倍率が400を超えないようにします。
If intZoomLevel > 400 Then intZoomLevel = 400
End If
'クリックされた位置が、ドキュメント上のどの位置なのかを比率で求めます。
Dim dblRatioWidth As Double = (e.X - crsPageControl.Bounds.X) / crsPageControl.Bounds.Width
Dim dblRatioHeight As Double = (e.Y - crsPageControl.Bounds.Y) / crsPageControl.Bounds.Height
'ドキュメントを拡大/縮小します
If crsDocumentControl_MinZoom < intZoomLevel Then
'縮小値がページ全体表示よりも小さくなる場合はページ全体表示の表示倍率にします。
CrystalReportViewer.Zoom(intZoomLevel)
Else
'それ以外は求めた表示倍率を適用します。
CrystalReportViewer.Zoom(crsDocumentControl_MinZoom)
End If
'拡大/縮小後後の表示位置を調節します。
crsDocumentControl.AutoScrollPosition = New Point((crsDocumentControl.DisplayRectangle.Width * dblRatioWidth) - e.X _
, (crsDocumentControl.DisplayRectangle.Height * dblRatioHeight) - e.Y)
End Sub
Private Sub crsDocumentControl_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
'左ボタンの場合はマウスクリック時点のXY値を退避します。
If e.Button = MouseButtons.Left Then crsDocumentControl.Tag = New Point(e.X, e.Y)
End Sub
Private Sub crsDocumentControl_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
'フォーカスをCrystalReportViewerのTabコントロールに戻してマウスホイールイベントに備えます。
CrystalReportViewer.Controls(0).Controls(0).Select()
End Sub
Private Sub crsDocumentControl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button <> MouseButtons.Left Then Exit Sub
'マウスクリック時のXY値を取得します。
Dim objOld As Point = CType(CType(sender, CrystalDecisions.Windows.Forms.DocumentControl).Tag, Point)
'マウス移動量を取得します。
Dim objAdd As Point = New Point(objOld.X - e.X, objOld.Y - e.Y)
'移動限界点に達した場合の補正をします。
If (crsDocumentControl.AutoScrollPosition.X - objAdd.X) >= 0 Then objAdd.X = 0
If (crsDocumentControl.AutoScrollPosition.Y - objAdd.Y) >= 0 Then objAdd.Y = 0
'ドキュメント表示位置を移動します。
crsDocumentControl.AutoScrollPosition = New Point(Math.Abs(crsDocumentControl.AutoScrollPosition.X - objAdd.X) _
, Math.Abs(crsDocumentControl.AutoScrollPosition.Y - objAdd.Y))
'マウス移動後のXY値を次回のために退避します。
crsDocumentControl.Tag = New Point(e.X, e.Y)
End Sub
- Re: CrystalReportViewer・..
アジよし - 2007/03/02(Fri) 14:09 No.2943
- 紙面の描画クォリティってもっと綺麗に出来ないのでしょうか・・・
Graphics.InterpolationModeプロパティとか、どっかで設定すれば綺麗になるのかな・・・
項目の空白が自動で削除されてしまう
りんごっち - 2007/03/02(Fri) 11:50 No.2942
- はじめまして。私も超ド初心者です。
いろいろ調べてみたのですが、どうしても分からないため質問させていただきました。
≪質問内容≫
レポート出力に必要なデータをDBからデータセットへセットし、クリスタルレポートへ出力させようとしてます。
レポートの体裁を整えるため、一定の長さになるよう文字数が足りない分を文字列の右側に空白をうめて調整させようとしています。
しかし、レポートのプレビューを見ると、右側に追加した空白がすべて削除されてしまいます。
データセットへ送る時の
DatasetTable.Rows.Add(row); // .NET 2003 C# で作成しています
の内容を確認したところ、この時点ではきちんと空白が入っています。
原因は何が考えられますでしょうか?
ご存知の方、いらっしゃいましたらどうか教えてください。
よろしくお願い致します。 m(_ _)m
データセットについて
大全 - 2007/03/01(Thu) 18:29 No.2941
- はじめまして。超初心者です。
データセットをクリスタルレポートに渡して、表示させたいのですが、
データは、渡っているような感じですが、
「ログオンに失敗しました」となります。
データセットだから、DBに接続しているわけではないと思うのですが、
わかりません。
参考までに
Dim da As SqlDataAdapter
Dim ds As DataSet
ds = New DataSet("Dataset1")
Dim crx As CrystalReport1 = New CrystalReport1
Dim rd As CachedCrystalReport1 = New CachedCrystalReport1
da = New SqlDataAdapter("SQL文", "DBコネクション")←SQL文実行
da.Fill(ds)←データセットにデータを取り込む
crx.SetDataSource(ds)←クリレポにわたす
rd.CreateReport.SetDataSource(ds)←これでもだめだった
こんな感じです。どなたか、ご教授ください。
20534エラーの対処方法
ゆこぽん - 2007/02/26(Mon) 20:24 No.2928
VB6.0 クリレポ8.0で開発をしています。
VBのPG内部でSQLServerで取得したデータのCSVファイルを作成し、
それをMicrosoftTextDriver経由でクリレポに読みこんで印刷したいと
考えています。
クリレポのファイルを直接開いてプレビューすると、CSVファイルの
データは問題なくリスト表示されますが、VBからPGを起動して
出力しようとすると「20534」というエラーが出てしまい、出力できません。
ODBCドライバの作成方法が悪いのかと何度も作り直して
みましたがエラーは出てしまいます。
接続文字列
(「Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=CSVファイルのディレクトリ名」を指定しています)に問題があるのかと調べては直すを
繰り返してみましたが、やはりエラーが出てしまいます。
どなたか対処方法、原因等、分かる方おりましたら教えて
頂けないでしょうか?
よろしくお願い致します。
- Re: 20534エラーの対処方法
24x7 - 2007/02/28(Wed) 00:55 No.2934
- 具体的なデータベースの接続処理のコードがわかりませんが、
メーカーのサイトを参照してください。
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2010529&sliceId=&dialogID=156815&stateId=0%200%20154419
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2002832&sliceId=&dialogID=156815&stateId=0%200%20154419
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2003532&sliceId=&dialogID=156815&stateId=0%200%20154419
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2004884&sliceId=&dialogID=156815&stateId=0%200%20154419
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2008324&sliceId=&dialogID=156815&stateId=0%200%20154419
http://internal.technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2001289&sliceId=&dialogID=156816&stateId=0%200%20154420
- Re: 20534エラーの対処方法
ゆこぽん - 2007/02/28(Wed) 09:54 No.2936
- 24x7様、コメントありがとうございます。
コメントしてくださったアドレスはどれも表示できませんでした・・・。
なぜでしょうか?
デバッグ状態だったので、試しに実行形式にしてコンパイルして
実行したところ、エラーはでなくなりました。
原因はわからないままなので、いつまた同じエラーが出るか
わかりませんが・・・。
ご迷惑をおかけしました。ありがとうございました。
- Re: 20534エラーの対処方法
24x7 - 2007/02/28(Wed) 23:15 No.2940
それって、VB の IDE の問題ですね。大昔に経験したことがありました。
クリスタルレポートのデータセット
ころ丸 - 2007/02/28(Wed) 13:45 No.2938
- はじめまして。VB、クリスタルレポート共に初心者です。
現在、ASP.NET(VB)でWebシステムを開発しています。
Web画面からデータをDBに登録し、
検索画面で指定した条件に合致したデータをクリスタルレポートで出力するシステムです。
aaa.xsdをデザインし、ここにSQL文で抽出したデータを書き込み、クリスタルレポートで出力したいのですが、
aaa.xsdにうまくデータが入りません
どのようなコードをかけば良いのかわかりません。
どなたか、お知恵を拝借できないでしょうか?
よろしくお願いします。
また、このような場合ほかに良い方法があれば教えてください。
- Re: クリスタルレポートの...
ころ丸 - 2007/02/28(Wed) 14:10 No.2939
- 追記です。
aaa.xsdをデータベースフィールドに設定すると
ログオンエラーになります。
どうしてですかね〜??
もう、ギブアップ寸前ですが、ギブアップできなくて困ってます。
どなたか、たすけてください。
クリスタルレポートのバージョン
t_dragon_2000 - 2007/02/28(Wed) 13:10 No.2937
- 現在、下記のような環境でシステムを構築中です。ここ帳票印刷機能を追加するのですが、クリスタルレポートのバージョンは何にすればいいでしょうか?
OS:WindowsNT4.0SP6.0a
ASP4.0
DB2 7.2
よろしくお願いします。
印刷方向
T-R - 2007/02/15(Thu) 12:01 No.2836
VB6.0 クリスタル8 で開発してます。
A4横の印刷で作成したのですが、PGからプレビューした時に
A4縦で印刷されてきます。
プリンタがA4縦で設定されている為だと思うのですが、何か回避方法はないでしょうか?
宜しくお願します。
以下の用にPGをしています。
--------------------------------------------------------
DIM PP AS Printer
For Each PP In Printers
If PrNam = PP.DeviceName Then
CR.PrinterPort = PP.Port
CR.PrinterName = PrNam
CR.PrinterDriver = PrSL.DriverName
CR.ReportFileName = PrPath & "SR_LIST.RPT"
End If
Next
- Re: 印刷方向
24x7 - 2007/02/16(Fri) 14:57 No.2843
- プリンタ選択するとデザイン時の用紙設定はリセットされるためだと思います。
プリンタ選択したら、再度、用紙サイズや印刷方向を設定してみてください。
- Re: 印刷方向
T-R - 2007/02/20(Tue) 09:54 No.2917
24x7さん早速のご回答ありがとうございます。
用紙サイズ・印刷方向の設定の仕方が、よく分かりません。
どのようにすれば設定が出来るのでしょうか?
教えていただけないでしょうか
宜しくお願いします。
- Re: 印刷方向
24x7 - 2007/02/23(Fri) 09:25 No.2925
- OCXを利用した開発手法では、用紙サイズと印刷方向は設定できませんでした。
レポートのデザインした際、プリンタの設定画面でレポートに保持されたプリンタ情報を利用するか、動作環境の通常使うプリンタの情報をそのまま利用するかの切り替えのチェック項目はありませんか。
CR8は無いので確認できませんが・・名称は、「既存のプロパティ」?だったかなぁ。そのプロパティのチェック有無で変化すると思います。
- Re: 印刷方向
T-R - 2007/02/23(Fri) 13:38 No.2927
- 24x7 さん 回答ありがとうございます。
確かにファイル−プリンタ設定 に既定プロパティのチェックボックスが
存在するのですが、チェックの有無では変化しませんでした。
何か設定の仕方が他にあるのでしょうか?
教えていただけないでしょうか?
よろしくお願いいたします。
- Re: 印刷方向
24x7 - 2007/02/27(Tue) 14:14 No.2930
- VBコードのプリンタ選択をコメントアウトにして、レポートファイルの既定プロパティのチェックを外した場合、どのような結果になりますか?
既定プロパティは、チェックした場合、動作環境の通常使うプリンタに従って印刷される。チェックを外した場合、レポートのデザイン時のプリンタ情報に従って印刷されるはずです。そのため、VBコードからプリンタ情報を選択するとレポートに保存されたプリンタ情報がリセットされてしまうためだと思います。
どうしても、プリンタ選択が必要な場合、OCXでなく、RDCの開発手法を利用することになると思います。
- Re: 印刷方向
daisei - 2007/02/27(Tue) 18:32 No.2931
- VB.NETの環境しか無いのですが、、
'縦向き
CR.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
'A4
CR.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
これで、プリンタの設定に依存せずに出力できませんか?
- Re: 印刷方向
24x7 - 2007/02/28(Wed) 00:01 No.2933
- .NET環境でないので駄目ですね。まだ、RDCの開発手法に切り替える方が現実的だと思います。
- Re: 印刷方向
T-R - 2007/02/28(Wed) 09:01 No.2935
- 24x7さん daiseiさん 回答ありがとうございます。
プリンタ選択しない場合は、通常のプリンタにいってしまう為
レーザーが複数あった場合印刷する度にプリンタ設定を変更する手間が
ある為、この様な形を取っていました。
RDC開発があるんですね。勉強してみます。
.NETでは出来るんですね。
色々なご意見ありがとうございました大変勉強になりました。
PrintToPrinterについて
Dora - 2007/02/27(Tue) 13:38 No.2929
環境:Windows XP & VS2005 付属 CrystalReports
ここでReleseモードでPrintToPrinterを実行すると、Finalize()処理が実行されるのですが、
なぜだか分かる方はいらっしゃいませんでしょうか?
フィールドのレイアウトについて
ロック - 2007/02/23(Fri) 10:36 No.2926
たいへんお世話になっています、ロックです。
現在、Crystal Reports for Visual Studio 2005で開発しています。
データベースにある数値や文字列をフィードを使って詳細セクションなどに表示する際、
表示するデータの値に対してフィールドの横幅(Width)の値を変更することはできるのでしょうか。
プログラム上から、クリスタルレポートのレイアウトをいじれば、できそうな気がするのですが、プログラムからではなくクリスタルレポート上でその様な操作を行いたいと考えています。
解決方法はあるのでしょうか?
宜しくお願いします。
データソースの変更
Q - 2007/02/22(Thu) 12:44 No.2920
- お世話になってます。
ASP.NET2.0
VisualStudio2005
バンドル版クリスタルレポート
で開発してます。
テスト用のDBを用意しており、クリレポのデザイナでODBCデータソースを指定して
接続していますが、いざ本番のDBに接続しようと、本番用ODBCデータソースへの接続に切り替えたところ
「フィールド名が見つかりません。」
と出てしまいます。
テーブル構成はテスト、本番ともにまったく同じで、テキストボックスで
「フィールドデータの参照」を行うと正しく本番DBのデータが参照できます。
デザイナでのDSNの変更は、テキストボックスも全て張りなおさなければ
ならないのでしょうか?
以上、よろしくお願い致します。
- Re: データソースの変更
Q - 2007/02/22(Thu) 15:45 No.2922
追記です。
どうも「SQL クエリー」がDSNを変更するとなくなってしまうようです。
「SQL クエリーの表示」というのを実行すると「フィールド名が見つかりません。」
と出てしまいます。
DSNはどのように切り替えるのでしょう??
- Re: データソースの変更
NZ-000 - 2007/02/23(Fri) 08:25 No.2924
- こんにちは。
スキーマが一致していれば見えると思うんですけどね。
ちょっと見当がつきませんねぇ。
ちなみにデータソースの切り替えは
「フィールドエクスプローラ」→「データベースフィールド」→「データソースの保存場所の設定」
でできます。
レイアウトについての質問
ロック - 2007/02/15(Thu) 18:34 No.2837
はじめまして、ロックです。
現在、Crystal Reports for Visual Studio 2005で開発しています。
下記のようなデータを用意します。
グループ 氏名
項目1 Aさん
項目1 Bさん
項目1 Cさん
項目2 Dさん
項目2 Eさん
項目2 Fさん
項目2 Gさん
このデータを詳細セクションを使用し帳票上で下記の様に
グループ 氏名
-------------------
| Aさん
項目1 | Bさん
| Cさん
--------------------
| Dさん
項目2 | Eさん
| Fさん
| Gさん
---------------------
表示させたいのですが、
グループ名をそのグループに属している、行の真ん中に表示するための方法が判りません。
グループヘッダーをアーダレイする方法使ってみたのですが、それだと詳細セクションが可変なので、目的の位置にグループ名が表示されません。
グループヘッダーの縦幅を動的に変更できるか調べてみたのですが、解決方法が分かりませんでした。
上記のような帳票を表示する方法はないのでしょうか?
うまく説明できているか分かりませんが、
解決方法を教えていただけませんでしょうか?
宜しくお願いします。
- Re: レイアウトについての質問
24x7 - 2007/02/16(Fri) 15:43 No.2844
上記の例でも可変行ではど真ん中には無理ですよね。
決め打ちで、偶数行は、行数/2の位置、奇数行は、(行数-1/2)+1の位置とします。
詳細セクションのグループで利用している項目の非表示の条件式に以下の式を挿入します。
WhilePrintingrecords;
numberVar cnt;
numbervar linecount;
linecount:=linecount+1;
cnt:=Count({氏名の項目},{グループの項目});
if cnt = 1 then
false
else
//偶数
if remainder(cnt,2) = 0 then
( if cnt/2=linecount then false
else true
)
//奇数
else
if ((cnt-1)/2)+1=linecount then false
else
true
あと、以下の式フィールドをグループヘッダーに挿入します。
WhilePrintingrecords;
numberVar cnt:=0;
numbervar linecount:=0;
- Re: レイアウトについての質問
ロック - 2007/02/19(Mon) 09:34 No.2905
- 24x7さん、ありがとうございます。
教えてもらった方法でうまくいったので、
この方法で作成することにしました。
ご教授ありがとうございました。
あいまい検索について
りんご - 2007/02/09(Fri) 11:02 No.2835
- はじめまして、りんごです。
パラメータで入力した値を含むレコードを抽出したいのですが、
レコード条件に{simei} Like ("*"+ {?shimei} + "*") と記入すると、
パラメータのオプションで複数値を認めるにチェックを入れたときに、
うまく抽出されません。
複数値でなければ、うまく抽出できるのですが・・。
誰かお分かりの方、助けてください。
- Re: あいまい検索について
24x7 - 2007/02/16(Fri) 15:47 No.2845
バージョンが書いてないのでわかりませんが、複数値のパラメータでは無理だと思います。
サーバログオンについて
カイジ - 2007/02/08(Thu) 13:31 No.2833
- はじめまして、カイジです。
現在ASPでクリスタルレポートの出力の開発を行っております。
サーバログオン処理で下記のエラーが発生します。
エラー タイプ
Crystal Reports ActiveX Designer (0x80047E4C)
データベース情報のロードに失敗しました。
サーバログオン処理
session("oApp").LogOnServer "PDSORA7.DLL",cstr(SQLDatabaseName),cstr(""),cstr(SQLUserName),cstr(SQLPassword)
解決方法を教えていただきませんでしょうか。
宜しくお願い致します。
プリンタ情報について
クリレポ太郎 - 2007/02/07(Wed) 20:44 No.2832
はじめまして
クリスタルレポート初心者です。
Microsoft Visual Basic .NETでCrystalReportXIを使って現在開発を行っていますが、
クリスタルレポートの『ページ設定』で使用しているPCのプリンタ情報が
クリスタルレポートに設定され、そのレポートを保存すると一緒にプリンタの情報が
保持されたままになってしまっています。
どなたかこのプリンタ情報を消す方法、無効にする方法をご存知の方が居ましたら、
ご教授頂けますように宜しくお願い致します。
サブレポートについて
ミサミサ - 2007/02/01(Thu) 20:08 No.2831
はじめまして、まだまだ経験が浅いのです。
Microsoft Visual Basic .NETでCrystalReportXIを使って現在開発をしていますが困っています。
サブレポートを使用するのは今回が初めてなんです。
サブレポートを使用して帳票を出力しようと考えているのですが、
メイン帳票で使用しているVIEWとサブレポートで使用しているVIEWに
リンクを貼っています。(サブレポートのリンクは設定しています。)
CrystalReportのプレビューで見ると上手に見れているのですが、
画面から帳票を出力すると
印刷プレビュー画面でデータベースのユーザIDとパスワードを聞かれる画面
(データベースログイン)が表示されて困り果てています。
VB側で帳票を呼ぶ出す時に、
共通として作られているDLLにパラメータを渡す方法で
帳票を出力しています。
どなたか知っている方がいましたら教えて下さい。
よろしくお願いします。
無題
printer - 2007/01/31(Wed) 17:11 No.2830
ASP.net(VB.net2005)でCrystalReportXIで作成したレポートを表示しました。
クライアントでの印刷でエラーが発生し困っています。
うまく印刷する方法があればご教授願います。m(..)m
Web画面にはCrystalReportViewer1を配置し、上記のレポートをレポートソースとして指定しました。
自動的にCrystalReportSource1が作成されレポートが表示されました。
テストではサーバにIISとCrystalReportのマージモジュールをインストールしてWebクライアントから表示しています。
Web画面中にButtonを設け、クリックイベントでレポートを印刷したいのですが、
CrystalReportSource1.ReportDocument.PrintToPrinter(1, False, 1, 1)
で、エラーになってしまいます。
デバッグ環境でローカル動作の場合はうまく印刷してくれます。
Web環境では設定が足りないのでしょうか?
LastErrorString
たろう - 2007/01/23(Tue) 16:02 No.2810
はじめまして
VB6のシステムをVB.NET2005に移行しています。
VB.NET2005についているクリスタルレポートについてなのですが
VB6で使用していたクリスタルレポート4.6には「LastErrorString」というメソッドがあったのですがなくなってしまったんでしょうか?
またそれに変わるメソッドがありましたら教えてください。
よろしくお願いします。
- Re: LastErrorString
24x7 - 2007/01/24(Wed) 00:22 No.2813
開発手法が異なるので旧バージョンのことは忘れたほうがいいですよ。
- Re: LastErrorString
たろう - 2007/01/31(Wed) 10:11 No.2829
- うーむ(;´Д`)困ったもんだ・・・
リンクの張り方
insp - 2007/01/24(Wed) 13:32 No.2816
- 浅経験者です。
リンクの張り方が分からなくて困っています。
CrystalReportXIです。
以下の様な2つの入力テーブルが有り、(TABLE1)のKEY-Bをキーとして、(TABLE2)の項目を帳票に出したいのですが、この時、、(TABLE2)の第1キーは「ABC」固定になっています。
この時、この「ABC」を含めてリンクの張り方が分かりません。
どこで、この「ABC」をどのように設定すればいいか教えて下さい。
宜しくお願いします。
(TABLE1) (TABLE2) (帳票)
KEY-B 22 KEY-A ABC キー 内容
その他 -- KEY-B 22 ------------
項目 ああ 22 ああ
・ ・
・ ・
- Re: リンクの張り方
24x7 - 2007/01/25(Thu) 11:02 No.2819
よくわかりませんが、right outler join にすればいいのではないでしょうか。
- Re: リンクの張り方
insp - 2007/01/25(Thu) 13:55 No.2820
- 24x7さん 返信ありがとうございます。
すみません right outler join はどこでどのように使用すればいいのでしょうか。
初心者なので、やり方がわかりません。
よろしくお願いします。
- Re: リンクの張り方
24x7 - 2007/01/26(Fri) 01:08 No.2823
- 1.データベース エキスパートのリンクタブを開く。
2.2つのテーブルがリンクされた箇所を右クリックする。
3. リンクオプションをクリックする。
4. 結合の種類を Right Outer Join を選択する。
5. その他は、デフォルトのままとする。
解釈が正しければ、2つのテーブルをリンクする場合、
リンクタブで表示された左右のテーブルの結合のオプションになります。
Left Outer Join では、左テーブルのすべての値と右テーブルのリンクされた値に一致した値のみが取得できます。
Right Outer Join は、その逆になります。
- Re: リンクの張り方
insp - 2007/01/26(Fri) 09:31 No.2824
- 24x7さん ありがとうございます。
質問の仕方がまずかったかもしれませんが、(TABLE2)の第1キーは「ABC」もあれば「BCD」もあります。
質問で固定と記しましたのは、この例でのことでして、実際には以下の様になっています。
(TABLE2)
KEY-A AAA
KEY-B 11
項目 XX
・ ・
KEY-A ABC
KEY-B 21
項目 YY
・ ・
KEY-A ABC
KEY-B 22
項目 ああ
・ ・
KEY-A BBB
KEY-B 22
項目 いい
・ ・
という具合です。
どこかで今回の処理の固定値である「ABC」を指定しなければなりませんが、そのやり方がわかりません。
シロウト相手で申し訳ありませんが宜しくお願いします。
- Re: リンクの張り方
24x7 - 2007/01/26(Fri) 23:15 No.2826
- レコード選択したいのですか?
それなら、レコード選択式に以下のように記述するとその固定値に一致したレコードを取得できますけど。
{TABLE2の第1キーの項目名}="ABC"
- Re: リンクの張り方
insp - 2007/01/27(Sat) 17:21 No.2828
- 24x7様
うまくいきました。
ありがとうございました。
帳票をPDFに自動変換
けんいち - 2007/01/26(Fri) 14:44 No.2825
- はじめまして。
クリスタルレポートで帳票を作成し、VBからプレビューを表示させるところまできました。
その帳票を自動でPDFに変換し、固定の場所に保存したいのですがコードの記述がわからず困っています。
現在は、プリンタの設定をcute PDF writer(仮想プリンタ)に変更した後
フォームの印刷ボタンクリック→プレビュー→帳票の印刷ボタンクリック
→印刷ウィンドウ表示→印刷ボタンクリック→保存先指定→保存です。
これをフォームの印刷ボタンを押しただけで固定の場所に保存したいのです。
環境
win xp pro sp2
vb6 sp5
クリスタルレポート8
PDF変換ソフト cutePDF writer(仮想プリンタ フリーソフト)
他にいい方法があれば知りたいです。
宜しくお願いします。
- Re: 帳票をPDFに自動変換
24x7 - 2007/01/26(Fri) 23:18 No.2827
- CR8は、3つの開発コンポーネントを利用できますが、どれを使っているのでしょう。でも、どのコンポーネントを利用しても実現できないと思いますが・・
どのコンポーネントもプリンタのドライバ、プリンタ名、ポート名の指定はできるけど、ファイルに保存するような設定はできませんよ。
表示位置を固定
ムッシュ山本 - 2007/01/25(Thu) 14:08 No.2821
VisualStudio2005付属のCrystalReportを使用して、Webアプリ(ASPNET, VB)から伝票をドットプリンタの専用用紙に印刷する仕組を作ろうとしています。
[構成]
テーブルA 伝票番号、明細番号、金額
テーブルB 伝票番号、明細番号、金額
一つの伝票番号に明細行が複数存在します。
このテーブルAとテーブルBの情報を明細行数に依存する事なく、
一枚の用紙の決まった場所に表示したいと考えています。
(テーブルAの明細番号3番はこの位置!と言ったように)
-------------------------------
テーブルA
伝票番号 1
明細行 1 金額 1000
明細行 2 金額 2000
テーブルB
伝票番号 1
明細行 1 金額 1000
明細行 2 金額 1000
明細行 3 金額 2000
明細行 4 金額 1000
明細行 5 金額 1000
備考11111111111111
--------------------------------
毎回決まった場所に値を放り込のはCrystalReportで可能ですか?
以前使った事のある風神というツールでは、
画面に表示項目分だけタグを貼り付け、丸々データソースをバインドすることなくプログラムからタグ個別にデータを放り込むということが出来たのですが・・・
- Re: 表示位置を固定
24x7 - 2007/01/26(Fri) 00:58 No.2822
- >毎回決まった場所に値を放り込のはCrystalReportで可能ですか?
できないと思ったほうが無難です。
レポートのデザインによりがその値をサブレポートで表示させることも考えられるけど。
詳細行が可変になるので固定できるかどうか不明だし、表示したい値も条件で可変ならさらに難しいと思います。
16桁を超える数値の扱いについて
TM - 2007/01/23(Tue) 10:39 No.2807
お世話になります。
ありそうな内容なのですが、過去ログを探しても見つけられず、質問させていただきます。
クリスタルレポートXI(11.0.0.1282)を使用しています。
DB(Oracle)上の18桁の数値型を表示することができず困っています。
事象
<16桁> 16桁目で四捨五入
1234567890123456
↓
1234567890123460
<18桁> 対数表示
123456789012345678
↓
1e+017
クリスタルレポートでテキストに変換して表示しても同じ結果でした。
DBを介さずに、クリスタルレポート側で直接数値を表示させても同じですので、
クリスタルレポートの数値の制限のようです。(通貨型でも同じ結果でした)
結局、SQLを書いてDB側でテキスト変換させることで回避しています。
もっとスマートな方法をご存知でしたらお教えください。
よろしくお願いします。
- Re: 16桁を超える数値の...
24x7 - 2007/01/24(Wed) 00:12 No.2811
- Crystal Reports は、小数点を含めて15桁までしか対応できません。
- Re: 16桁を超える数値の...
TM - 2007/01/25(Thu) 09:01 No.2818
- やはり逃げ道は無いようですね。
ありがとうございました。
帳票への表示
insp - 2007/01/24(Wed) 15:15 No.2817
先程の質問に続けて申し訳ありませんが、もう1つ教えて下さい。。
テーブル1を読み項目1と項目2をキーとしてテーブル2から値をもってきて、帳票の1行に印刷したいのですが、どのように実現させたらいいでしょうか。
宜しくお願いします。
(この例では、テーブル1は1件で項目数は2個、テーブル2は2件、帳票は1行を想定しています)
(テーブル1) (テーブル2) (帳票)
項目1 項目2 キー 値 キー1 値 キー2 値 ・・
------------+---------------+-----------------------
22 33 22 AA 22 AA 33 BB ・・
33 BB
テーブル1の項目1と項目2の両方をテーブル2のキーにリンクを張ると、明細の全てが表示されません。因みに、項目のどちらか1方だけなら表示されるのですが。
ReportObjectsでハング
shino - 2007/01/24(Wed) 11:05 No.2815
- はじめまして。
CrystalReportを初めて使う初心者です。
いろいろ検索したのですが、わからなかったので質問させてください。
開発環境:Windows2000Professional(SP4)、
VS2005、VS2005付属のCrystalReport
ASP.NET(VB)でWEB上でレポートの出力を行っています。
レポートをWEB上には表示せず、直接プリンタに出力します。
画面上にCrystalReportSourceを配置し、
Page_Load時にプログラム上のデータをCrystalReportSouceに設定した
レポート(***.rpt)のテキストオブジェクトに設定し、
その後PrintToPrinterで印刷しています。
そのテキストオブジェクトに値を設定するときにそこでハングすることがあります。
必ずしもそうなるわけではなく、何度かやっているうちにハングします。
1回のときもあれば20回くらいでハングすることもあり、原因がわかりません。
こうなったらIISを再起動しなければなりません。
Dim txtObj As TextObject
txtObj = CrystalReportSource1.ReportDocument.ReportDefinition.ReportObjects("Text1") ← ここでハング
txtObj .Text = "****"
CrystalReportのサービスパックやhotfixも見てみましたが、
VS2005用のがなくてわかりませんでした。
(VS2005付属のものはCrystalReport10になるのでしょうか?)
プログラムが悪いのかCrystalReportのバグなのかそれとも環境によるものなのかわからないので、何かわかりましたら教えてください。
帳票レイアウト
TANAMI - 2007/01/23(Tue) 11:04 No.2808
はじめまして。お世話になります。
クリレポ超初心者です。
教えてください。
下記のレポートを作成したいのです。
改頁せずに商品名毎のデータを出力して、商品名が変わったら1行空けコメント欄に
次の商品名を表示、そしてまたそのデータを出力・・・という感じです。
現在グループヘッダに固定で10行分の枠を作成しています。
詳細にデータのフィールドを配置しています。
商品名xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---------------------------------------------------
データ1
---------------------------------------------------
コメント1********************************************
---------------------------------------------------
データ2
---------------------------------------------------
コメント2********************************************
---------------------------------------------------
1行空欄行
----------------------------------------------------
商品名2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---------------------------------------------------
データ1
---------------------------------------------------
コメント1********************************************
---------------------------------------------------
データ2
---------------------------------------------------
コメント2********************************************
---------------------------------------------------
1行空欄行
----------------------------------------------------
商品名3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---------------------------------------------------
データ1
---------------------------------------------------
コメント1********************************************
---------------------------------------------------
データ2
---------------------------------------------------
コメント2********************************************
---------------------------------------------------
1行空欄行
----------------------------------------------------
- Re: 帳票レイアウト
24x7 - 2007/01/24(Wed) 04:21 No.2814
詳細セクションの下にセクションを追加します。
詳細a と詳細b ができます。
セクションエキスパートから詳細bの非表示の条件式に以下の式を挿入します。
WhilePrintingRecords;
{商品名のフィールド} = Next{商品名のフィールド}
この条件式に当てはまるとき(同一商品名)の間は、詳細bは非表示となり、次の商品名が異なる場合、詳細bが表示されます。この詳細bを1行空欄行として利用します。
CR11で作成した後の配布方法
カゥディマクラトゥス - 2007/01/23(Tue) 11:34 No.2809
- 過去ログは検索してみましたが、わかりませんでした。わかる方がいらっしゃったら、お教えください。
WindowsXP
Visual C++ 6.0(sp6)
CR 11
で開発したモジュールと、クリスタルレポートフォーマットファイルが完成しました。
これをお客様へお渡しするためInstallShieldでインストーラを作成するのですが、
CR11の部分をどのようにすればよいのかわかりません。
ocxとかの場合は、regsvr32とかの方法があるのでしょうが、CR11の場合には
どのようにしたらよいのかわかりませんでした。
その後、RDCDeployment.chm というHELPファイルを見つけて、「RDC アプリケーションの配布」というところによると、マージモジュール(msm)というものがあり、それをインストーラに組み込むということでしたが、これでよろしいんでしょうか?またmsmファイルは複数あるようですが、開発時に見合ったものだけを組み込むということでよろしいのでしょうか?
ちなみに同フォルダにSetup.exeでCrystalReportsXT.NETサーバーインストールウィザードが起動しますが、これを各リリース端末でセットアップするのでしょうか(起動したら途中でプロダクトキーを求められたから違うような)?
また、ここからは、CRの話ではないのですが、私が使用する予定のInstallShieldには、
会社の管理の問題で、既にマニュアルがなく、モジュールも英語版(ver7)なのですが、
インストーラ作成時に、msmを組み込む方法がわかりません。もし、もし、ご存知でしたらこちらもご教示いただけたらと思います(どうもWindowsInstallerでないとダメなような・・・)。
どうか、よろしくお願いいたします。
- Re: CR11で作成した後の配...
24x7 - 2007/01/24(Wed) 00:18 No.2812
RDCを利用したアプリケーションの配布には、マージモジュールを利用します。
以下のリンクから最新版のマージモジュールが取得できます。
http://support.businessobjects.com/communityCS/FilesAndUpdates/crXI_rdc_merge_modules.zip.asp
RDCのマージモジュールの配布方法は、以下の文書に書いてあります。InstallShieldは利用していませんけど。
http://support.businessobjects.com/communityCS/TechnicalPapers/rdcXI_deployment.pdf.asp
変数代入方法の質問
0C1073 - 2007/01/19(Fri) 11:26 No.2806
クリスタルレポート内のオブジェクトに変数を代入する方法がわからずに困っています。
VisualStudio2005を起動し、[ファイル]−[新しいWebサイト]で
「ASP.net Crystal Reports Web サイト」を言語VisualBasicで作成しました。
作成直後に表示されるCrystalReportsギャラリでは空のレポートでOKし、
CrystalReport1.rptのレポート上で右クリック[挿入]−「テキストオブジェクト」でITextObjectを作成したら
nameがText1となりました。
Default.aspxのPage_LoadイベントでText1に文字を代入しようとして、以下のコードを書きました。
Dim cr As New CrystalReport1
cr.Text1 = "test"
ところが、CrystalReport1の部分の下に波線が出て、「型'CrystalReport1'が定義されていません」となってしまいます。
やり方が根本的に違うのかもしれませんが、CrystalReportのオブジェクトに値を代入する方法があれば教えてください。
なお、実際に渡したい値は"test"固定でなく、Sessionで渡された文字列変数を渡します。
Webアプリのセッション変数の表示
ek - 2007/01/12(Fri) 17:55 No.2791
- はじめまして。
自分で過去ログを検索しましたが、もし既出でしたらすみません。
環境:Win2003、ASP.net(VB)、Crystal ReportsXI
を使用しております。
デザイナ上のオブジェクトにセッション変数の値を表示させたいのですがどのようにすればよいのでしょうか。
こちらのサイトの『デザイナ上のオブジェクトをプログラムから変更する』という部分を参考にしましたが、C#のようでしたので・・・。
初心者のため、詳しく教えていただければと思います。
よろしくお願いします。
- Re: Webアプリのセッショ・..
NZ-000 - 2007/01/13(Sat) 14:53 No.2792
- >HiraCryRepo1 cr = new HiraCryRepo1();
>((CrystalDecisions.CrystalReports.Engine.TextObject)cr.ReportDefinition.ReportObjects["Text1"]).Text = "うひひ";
これのVB.NET版がわからないということですか?
こんな感じかなあ。
Dim cr as HiraCryRepo1 = New HiraCryRepo1()
Dim textObject As CrystalDecisions.CrystalReports.Engine.TextObject = CType(cr.ReportDefinition.ReportObjects("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject)
textObject.Text = "うひひ"
- Re: Webアプリのセッショ・..
ek - 2007/01/15(Mon) 16:55 No.2795
- 実際にコーディングした方の話によると、
> Dim cr as HiraCryRepo1 = New HiraCryRepo1()
>
> Dim textObject As CrystalDecisions.CrystalReports.Engine.TextObject = CType(cr.ReportDefinition.ReportObjects("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject)
>
> textObject.Text = "うひひ"
この例で言っている'HiraCryRepo1'というクラスが「定義されていない」というエラーになります。
Visual Studioのプロジェクト内で作成したレポートファイルでなく、
サーバーにインストールしたクリスタルレポートで作成したレポートファイルだからでしょうか・・・?
プロジェクト開始時もクリスタルレポートのバージョンが違うと出るようなので、正常に認識されていない可能性があります。
さらに情報をよろしくお願いします。
- Re: Webアプリのセッショ・..
24x7 - 2007/01/16(Tue) 23:44 No.2799
Webサーバー環境は、.NET とCrystal Reports XI がインストールされた環境ですか。
- Re: Webアプリのセッショ・..
ek - 2007/01/17(Wed) 09:23 No.2802
- 24x7様
> Webサーバー環境は、.NET とCrystal Reports XI がインストールされた環境ですか。
.NET Framework2.0とCrystal Reports XI がインストールされています。
Visual Studio2005は開発クライアントで使用していますが、サーバにはインストールしていません。
- Re: Webアプリのセッショ・..
24x7 - 2007/01/18(Thu) 00:58 No.2804
動作環境がよく理解できませんね。
Web アプリケーションは、開発環境(Webサーバーと同一)で開発して、パッケージを配布環境(Web サーバー)にインストールするものと理解しています。
また、開発環境では、Visual Studio 2005 と 製品版 Crystal Reports XI がインストールされている必要があると思います。
製品版 Crystal Reports XI はなくても、バンドル版でも構いませんが・・
上記の説明から Web サーバーは、Crystal Reports XI で開発環境では、Visual Studio 2005 にバンドル版 Crystal Reports を利用していると解釈できます。
これでは、正しく動作しないと思います。
Crystal Reports は、製品版、またはバンドル版どちらを利用するかでマージモジュールも異なります。
- Re: Webアプリのセッショ・..
ek - 2007/01/18(Thu) 10:44 No.2805
- 開発環境には製品版をインストールしていませんでした。
これで試してみようとおもいます。
ためしにバンドル版でAAA.rptという仮のレポートを作成し、そのレポートに値をセットしようとしたのですが、
同じエラーが出るようです。
代理投稿のため、わかっているのはここまでです。
X軸 Y軸 共に動的カラムである帳票の作成
kei - 2007/01/16(Tue) 19:14 No.2798
- お世話になります。
CRYSTAL REPORTS で初めて帳票を作成しております。
使用しているCRYSTAL REPORTSは、
VB.net 2003にバンドルされているものを使用しております。
初心者的な問題で申し訳ありませんが、どなたかご回答をいただければ・・・。
現在作成しようとしている帳票は、X軸(列)・Y軸(行)共に動的な帳票です。
Y軸(行)に関しては詳細部分で動的になると思いますが、X軸(列)を動的
にすることは可能なのでしょうか?
どなたかご教授ください。
- Re: X軸 Y軸 共に動的カラ...
24x7 - 2007/01/16(Tue) 23:47 No.2801
- できないと思います。
Viewを表示させずに印刷
KURA - 2007/01/15(Mon) 13:03 No.2793
いつもお世話になっております。
XP SP2,VB.net 2003,クリレポ9で開発を行っております。
Viewを表示させずに印刷をしたいのですが、
その際、給紙方法を設定したいです。
Viewの場合は印刷ダイアログはWindowsの標準のダイアログのため
プリンター特有の給紙方法なども設定できるようですが、
コードから制御する場合は、PrintOptions.Papersourceを使うため、
必ずしも一致しません。
Viewを使うと処理した後に印刷ダイアログがでるので
先にダイアログを出したいのです。(大量印刷なので)
そこでPrintDialogを表示させて給紙方法を取得しようとも試みましたが
給紙方法が取得できません。
仮に取得できたとしてもプリンター固有のトレーがあった場合は
どうしようもないと思います。
Viewを表示させずかつ処理前に印刷ダイアログを出す
良い方法があればご教授願えませんでしょうか。
よろしくお願いします。
- Re: Viewを表示させずに印刷
NZ-000 - 2007/01/15(Mon) 16:29 No.2794
- こんにちは。
>コードから制御する場合は、PrintOptions.Papersourceを使うため、
>必ずしも一致しません。
PrintOptions.CustomPaperSourceは試されましたか?
>そこでPrintDialogを表示させて給紙方法を取得しようとも試みましたが
>給紙方法が取得できません。
PageSetupDialogのPageSettings.PaperSourceからなら取得できそうです。
CrystalReportViewerを使わない場合は、ReportObjectのPrintToPrinterメソッドを用いるしか
印刷する手段はありません。
このとき、印刷ダイアログがほしいなら自分で用意する(作る)か、CommonDialogを利用するかの二つに一つでしょう。
印刷は非常に重要で一番問題点の多い分野でありながら、参考になる情報が少ないのが現実です。
KURAさんが指摘していることは結構皆さんが悩むことだと思います。
解決できましたらぜひフィードバックをお願いします。
- Re: Viewを表示させずに印刷
KURA - 2007/01/15(Mon) 17:47 No.2796
- 早速の返信、ありがとうございます。
CustomPaperSourceはCR9にはないような気がします。
(間違ってたらごめんなさい)
そこで、とりあえず、カスタムは無視して、
> CommonDialogを利用するかの二つに一つでしょう。
の一つ、printdialogを使用し、printdialogのpapersourceから
CRのpapersourceへ変換をかけようと思ったのですが、
------------------------------------------------------
Select Case argKIND
Case "AutomaticFeed" '自動送り用紙
GetPaperSources = "Auto"
Case "Cassette" '用紙カセット
GetPaperSources = "Cassette"
Case "Custom" 'プリンタ固有の給紙方法
GetPaperSources = ""
Case "Envelope" '封筒
GetPaperSources = "Envelope"
Case "FormSource" 'プリンタの既定の入力ビン
GetPaperSources = "FormSource"
Case "LargeCapacity" 'プリンタの大容量ビン
GetPaperSources = "LargeCapacity"
Case "LargeFormat" '大型フォーム用紙
GetPaperSources = "LargeFmt"
Case "Lower" 'プリンタの下段ビン
GetPaperSources = "Lower"
Case "Manual" '手差し用紙
GetPaperSources = "Manual"
Case "ManualFeed" '手差し封筒
GetPaperSources = "EnvManual"
Case "Middle" 'プリンタの中段ビン
GetPaperSources = "Middle"
Case "SmallFormat" '小型フォーム用紙
GetPaperSources = "SmallFmt"
Case "TractorFeed" 'トラクタ送り
GetPaperSources = "Tractor"
Case "Upper" 'プリンタの上段ビン
GetPaperSources = "Upper"
End Select
------------------------------------------------------
肝心要の「PrintDialog.PageSettings.PaperSource.Kind.ToString()」が
コンパイルエラーになります。
しかし、デバッグウインドでは問題なく取得できます。
これはいったいどういう現象なのでしょうか?
何か解決策があれば教えていただけませんでしょうか。
よろしくお願いします。
テキスト内の改行について
フジイ - 2006/12/29(Fri) 14:07 No.2788
- はじめまして。
まだまだ初心者の私に教えてください。
環境:WindowsXP
Crystal Reports 9 を使用しています。
文字型の項目
常、粥、潰、学、離、幼、E、塩、脂、蛋、術、胃、腸
という内容を2行にわたって表示したいのですが、
必ず E の前で改行されてしまいます。
フィールドの幅は広くとってあるので、その幅いっぱいまで表示したいのですが・・・。
解決方法をご存じの方がいらっしゃいましたら、どうかご教授ください。よろしくお願いします。
- Re: テキスト内の改行について
24x7 - 2007/01/04(Thu) 11:54 No.2789
ワードラップ機能に問題があるので、半角文字を全角文字に置き換えるか、または、USP10.DLLを異なるバージョンに置き換えてどうなるかですね。XP付属のUSP10.DLLは、Crystal Reports 9と相性が悪い。
- Re: テキスト内の改行について
フジイ - 2007/01/04(Thu) 16:04 No.2790
- 24x7様、ご回答ありがとうございます。
全角で改行がうまくいかないので、半角にしたら正しい位置で改行できるようになりました。
全角アルファベットが原因のようなので、漢字に置き換えて問題を回避する方法も考えてみます。
ありがとうございました。またよろしくお願いします。
カレントレコード
Tr - 2006/12/28(Thu) 18:47 No.2784
- いつもお世話になっております。
XP SP2,VB.net 2003,クリレポ11.0.0.1282で開発を行って
おります。
クリレポ上で強制的にカレントのレコードを変更することはできるのでしょうか?
例)50レコード目に達したら、強制的に次は100レコード目
から出力するなど
何をやりたいかと申しますと、同一内容でタイトルだけ違う
帳票がありまして、
時系列
↓ 1レコード目から50レコード目までをタイトルAで出力
↓ 1レコード目から50レコード目までをタイトルBで出力
↓ 51レコード目から100レコード目までをタイトルAで出力
↓ 51レコード目から100レコード目までをタイトルBで出力
としたいのです。
ですので、レポートファイルを別にすることができません。
※データの何レコード目というのはあくまで例です。
51レコード目からグループが変わっているとお考え下さい。
1)レコード1〜レコード50までタイトルAで出力する。
2)カレントのレコードを強制的に1に戻す。
3)改ページする。
4)再度レコード1〜レコード50までタイトルBで出力する。
5)改ページする。
6)レコード51〜レコード100まで出力する。
7)カレントのレコードを強制的に51に戻す。
8)改ページする。
9)再度レコード51〜レコード100まで出力する。
以下繰り返し
以上の方法でなら実現できるのではないかと考えているのですが、
いかんせんカレントのレコードを変更する方法がわかりません。
もしこれが可能であれば、方法をご教授いただけませんでしょうか?
よろしくお願いいたします。
- Re: カレントレコード
24x7 - 2006/12/28(Thu) 23:42 No.2785
カレントのレコードを変更する方法はありません。
- Re: カレントレコード
24x7 - 2006/12/28(Thu) 23:45 No.2786
>※データの何レコード目というのはあくまで例です。
>51レコード目からグループが変わっているとお考え下さい。
何レコード目なのか、タイトルを切り替えるためにグループが変わるのか、どちらかはっきりしないと実現方法も変わってくると思いますが・・
- Re: カレントレコード
Tr - 2006/12/29(Fri) 12:40 No.2787
- 24x7様ありがとうございます。
グループごとにタイトルが変わるというよりは、1グループ内で複数種類の帳票を出力する感じです。
分かりにくくて申し訳ありません。
イメージとしてはデータが下記のようにありまして、
グループ 氏名
1 Aさん
1 Bさん
1 Cさん
2 Dさん
2 Eさん
2 Fさん
2 Gさん
※メンバー表と名簿はタイトルのみ違う
[1ページ目]
メンバー表
Aさん
Bさん
Cさん
[2ページ目]
名簿
Aさん
Bさん
Cさん
[3ページ目]
メンバー表
Dさん
Eさん
Fさん
Gさん
[4ページ目]
名簿
Dさん
Eさん
Fさん
Gさん
上記のように出力したいのです。
カレントが変えられないのであれば、2倍のデータを作成する位しか
解決策が思い浮かびません。
もし他によい方法がありましたらご教授下さい。
無題
たにぐち - 2006/12/25(Mon) 18:26 No.2783
- はじめまして。
サイトを拝見させていただきましたが、知りたい情報が見つからず困っております。
どなたかご教授願えますでしょうか?
知りたい内容ですが、
現在、メインレポート内に、サブレポートをいれております。
クリスタルレポートプレビュー時に、表示されるところまでは良いのですが、
サブレポートが表示されている位置にカーソルを持っていくと、
カーソルアイコンが変化し、クリックすると、
サブレポートのみのページに移動してしまいます。
この「サブレポートのみのページに移動してしまう」という現象を
なくしたいのですが…。
どなたかご存知の方いらっしゃいましたら、どうかご教授お願いいたします。
よろしくお願いいたします。
無用な空白が出力されてしまう
しのび〜い - 2006/11/17(Fri) 14:02 No.2638
- はじめまして、しのび〜いと申します。
初めて利用します。
<環境>
WindowsXP(SP2)
Visual Studio 2003のバンドル版 Crystal Reportを使用。
現在、単票(縦)の帳票を作成しているのですが、詳細セクションと
レポートフッターセクションの間に無用な空白が出力されてしまい、
困っております。
<イメージ>
│ XXXX |XXXXXXX |XXXXXXXXXXX|
└───────────────────────┘
・・・この部分にはデザイン上、なにも配置していない。
┌───────────────────────┐
上記のような場合、何が原因で無用な空白が出力されて
しまっているのか、見当がつきません。
つきましては、何か対処方法をご存知な方がおられましたら、
お教えください。よろしくお願いいたします。
- Re: 無用な空白が出力され...
24x7 - 2006/11/17(Fri) 23:56 No.2642
レポートフッターを利用しなければ、詳細セクションとの間に無用な空白はできません。レポートフッターにどのような内容を表示されるのかわかりませんが、グループを挿入して、グループフッターを代用することもできると思います。
- Re: 無用な空白が出力され...
しのび〜い - 2006/11/20(Mon) 10:54 No.2645
- 24x7さん
ご回答をいただき、ありがとうございます。
グループを挿入し、グループフッタで実験してみます。
ありがとうございました。
- Re: 無用な空白が出力され...
しのび〜い - 2006/11/21(Tue) 09:31 No.2653
24x7さん
グループフッタで実験してみたところ、無用な空白が
出力されなくなりました。
ありがとうございました。
- Re: 無用な空白が出力され...
つよ - 2006/12/18(Mon) 17:31 No.2780
- はじめまして、つよと申します。
しのび〜いさんと同じような状況なのですが
自分の場合はページヘッダーと詳細の間に空白ができてしまいます。
グループの挿入もやってみたのですがこれだと
レポートヘッダー
ページヘッダー
グループヘッダー
詳細
グループフッター
レポートフッター
となりましたが、特に変わりはありませんでした。
・環境は
WindowsXP(SP2)
Visual Basic 6.0(sp5) Crystal Report8.5を使用です。
ご存知な方がおられましたら、よろしくお願いします。
- Re: 無用な空白が出力され...
NZ-000 - 2006/12/19(Tue) 13:34 No.2781
- デザイン時のセクションの幅に余分な空白が存在していませんか?
- Re: 無用な空白が出力され...
24x7 - 2006/12/20(Wed) 23:40 No.2782
- それぞれレポートのデザインは異なり、それに現象が発生しているセクション間も異なります。もう少し、各セクションがどのように表示されているか観察してみてください。
プリンター設定
Drathera - 2006/12/07(Thu) 14:43 No.2766
- いつもお世話になってます。
環境:Windows XP & VS2005 付属 CrystalReports
レポートをViewerに表示し、Viewer内の「レポートの印刷」ボタンから印字を開始しておりますが、
その時の印刷ダイアログの「プリンタ名」に表示されるプリンターが、
「通常使うプリンタ」になっています。
印刷ダイアログを表示した時点で表示される「プリンタ名」
を事前に設定したいと考えています。
以下のように作りましたが、うまくいきません。添削をよろしくお願いいたします。
Viewerを呼び出すフォーム
----------------------------------------
Dim frmPrv As New frmCrystalViewer
frmPrv.SetForm = Me
frmPrv.SetRpt = New crReportName
frmPrv.SetDs = DSet
frmPrv.SetPName = cmbPrinter.Text ←フォーム上のコンボボックスから選択
frmPrv.SetPSize = CrystalDecisions.Shared.PaperSize.PaperA4
frmPrv.SetPOrient = CrystalDecisions.Shared.PaperOrientation.Portrait
frmPrv.ShowDialog()
frmPrv.Select()
---------------------------------------------
Viewerフォーム:frmPrv
--------------------------------------------
Protected _frm As Form
Protected _rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument
Protected _ps As CrystalDecisions.Shared.PaperSize
Protected _po As CrystalDecisions.Shared.PaperOrientation
Protected _ds As DataSet
Protected _pn As String
Public Overridable Sub Me_Load(..省略..) Handles Me.Load
_rpt.SetDataSource(_ds)
_rpt.PrintOptions.PrinterName = _pn
_rpt.PrintOptions.PaperOrientation = _po
_rpt.PrintOptions.PaperSize = _ps
CRViewer1.ReportSource = _rpt
CRViewer1.Zoom(1)
End Sub
:
Public Overridable WriteOnly Property SetPName() As String
Set(ByVal value As String)
Me._pn = value
End Set
End Property
----------------------------------
用紙サイズ、用紙方向、データセットなどは、思うように動いてますが、
設定プリンタが変更できません。
よろしくお願いいたします。
- Re: プリンター設定
NZ-000 - 2006/12/12(Tue) 08:38 No.2777
- ビューアの印刷ボタンまたはPrintReportメソッドで呼び出される印刷ダイアログは
コモンダイアログを使用しているのか、CrystalReports専用のダイアログを使用しているのかわかりませんが、
我々の手の届かないところで呼び出されているため、制御できません。
(レポートに別プリンタを設定してもそれが有効になっていないところを見ると、恐らく前者のコモンダイアログを使用しているのだと思います。)
で、手段としては次の二つが考えられます。
1.印刷ボタンを押した際ビューアの印刷機能を実行せずに、自分で印刷ダイアログを出し、
その設定を用いてレポートのPrintToPrinterメソッドを利用して印刷します。
自分で印刷ダイアログを用意すれば、プリンタ名などいろんなところをカスタマイズできますし、
OKボタンを押したとかのイベントを取得することができるなど応用が利きます。
2.印刷をする前に、Windowsで使う通常のプリンタを(プログラム上で)変更します。
そうすれば印刷ボタンを押した際に指定したプリンタが選ばれることになると思います。
こちらの方が1より簡単ですが、印刷が終わったあと元に戻さないと通常の印刷で不都合が生じるかもしれません(帳票印刷のたびに勝手に通常のプリンタが変わってしまう)。
- Re: プリンター設定
Drathera - 2006/12/12(Tue) 12:30 No.2779
- NZ-000 様。お世話になってます。
回答ありがとうございます。
> コモンダイアログを使用しているのか、CrystalReports専用のダイアログを使用しているのかわかりませんが、
CrystalReportsでプレビュー表示したときの印字ボタンを使用しています。
要するにCrystalReports専用のダイアログです。
> 我々の手の届かないところで呼び出されているため、制御できません。
そうだったんですか(~o~)
そうすると、NZ-000様 ご提案の2を考えて見ます。
今回は、1のイベント取得などの機能が必要でないので、これでやってみます。
1の手段の「Okボタンのイベント取得」に関しても興味のあるとことですので、
今後必要になったときに試してみます。
ありがとうございました。
また、お伺いすることがあるかと思いますので、よろしくお願いいたします。