PUSHモードテンプレート招式
8570 ワード
新しいAspを作成します.Net CrystalReportsのWebサイト
次のインタフェースをポップアップしたら、2番目の項目-空白レポートとして選択し、確認して空白インタフェースに入ります.
新規データセット
このプロンプトが表示されたら、「はい」をクリックします.
そして、データベースに接続するヒントも出てきます.インタフェースに何のヒントもないまで、一律にいいえ.
このインタフェースで、右クリックして、myTableという名前のdatatableを追加します.
それからmyTableに対応する列を追加して、私のここには3つの列があって、タイプを設定することに注意します.
特に、クリスタルレポートにはdatatime型が認識されていないため、2009-06-26 9:23:15に対して2009-06-26に自動的に切り捨てられるので、datatime型データはxsdファイルでstring型に設定でき、コードのSQLでフィールドをStringに変換して入力することができます.
xsdの設計が完了すると、レポートテンプレートの設計段階に入ります.
「≪データベース・フィールド|Database Fields|Eas≫」を右クリックし、「≪データベース・エキスパート|Database Experts|Eas≫」を選択します.
またポップアップされたインタフェースで、「プロジェクトデータ」をクリックして、順番にクリックして、私たちがさっき自分で作ったmytableを見つけます.
確定すると、「データベース・エキスパート」の下にテーブル名mytableが表示され、クリックするとフィールドが表示されます.
フィールドをテンプレートの詳細セクションにドラッグすると、ベーステンプレートの作成が完了します.
プレビューをクリックすると、実際のデータ操作はありませんが、インタフェースにデータがあります.
これは水晶レポートの仮想データで、最終的に表示される効果を見ることができます.
はい、コードをつけます.
C# code
そして運転すればいいです.
ここで説明しますが、「プッシュ間」でこのxsdを言わなかったのは、当時詳細な操作が話されていなかったからです.話しても分かりにくい.このxsd、私达自身が构造したので、比喩をしましょう:xsdは1つの棚にたとえて、それは水晶のレポートを支えることを担当して、しかし空で、内容がなくて私达はPUSHモードを使って、データをそれに詰めて、棚をいっぱい詰めて、このように水晶のレポートも効果を现すことができます
よくある質問:
1:レポートは表示できますが、データがありません.
一般的には以下のような状況があります
a:確かにテーブルにデータがありません
b:da.Fill(dt1, "mytable");テーブル名はxsdで設計されたテーブルと一致しません
c:複数のテーブルを使用している場合は、テーブルのデフォルトの関連関係によりデータがない可能性があります.
2:ページをめくったり、印刷したり、エクスポートしたりするときに、データベース・ソースに再接続する必要があるため、次の図のヒントが表示されます.
a:マルチテーブルの場合、一部のテーブルに値が割り当てられていない可能性があります.
クリスタル・レポートには、データがなくても使用する各テーブルを検証する必要があります.なければ、空のレコードセットを渡してもいいです.
b:コードはPage_に置かれていませんLoadまたはPage_Initに入れたり、入れたりしましたがpostbackを制御しました.
httpは無状態なので、postbackを制御すると水晶レポートの前の設定が失われ、このような状況になります.
次のインタフェースをポップアップしたら、2番目の項目-空白レポートとして選択し、確認して空白インタフェースに入ります.
新規データセット
このプロンプトが表示されたら、「はい」をクリックします.
そして、データベースに接続するヒントも出てきます.インタフェースに何のヒントもないまで、一律にいいえ.
このインタフェースで、右クリックして、myTableという名前のdatatableを追加します.
それからmyTableに対応する列を追加して、私のここには3つの列があって、タイプを設定することに注意します.
特に、クリスタルレポートにはdatatime型が認識されていないため、2009-06-26 9:23:15に対して2009-06-26に自動的に切り捨てられるので、datatime型データはxsdファイルでstring型に設定でき、コードのSQLでフィールドをStringに変換して入力することができます.
xsdの設計が完了すると、レポートテンプレートの設計段階に入ります.
「≪データベース・フィールド|Database Fields|Eas≫」を右クリックし、「≪データベース・エキスパート|Database Experts|Eas≫」を選択します.
またポップアップされたインタフェースで、「プロジェクトデータ」をクリックして、順番にクリックして、私たちがさっき自分で作ったmytableを見つけます.
確定すると、「データベース・エキスパート」の下にテーブル名mytableが表示され、クリックするとフィールドが表示されます.
フィールドをテンプレートの詳細セクションにドラッグすると、ベーステンプレートの作成が完了します.
プレビューをクリックすると、実際のデータ操作はありませんが、インタフェースにデータがあります.
これは水晶レポートの仮想データで、最終的に表示される効果を見ることができます.
はい、コードをつけます.
C# code
using
System;
using
System.Data;
using
System.Configuration;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
CrystalDecisions.Shared;
using
CrystalDecisions.CrystalReports.Engine;
using
CrystalDecisions.Web;
using
System.Data.OleDb;
public
partial
class
_Default : System.Web.UI.Page {
protected
void
Page_Load(
object
sender, EventArgs e) { ConfigureCrystalReports(); }
private
void
ConfigureCrystalReports() {
//
String connstr
=
@"
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\CrZen\testall.mdb;
"
; OleDbDataAdapter da
=
new
OleDbDataAdapter(); OleDbConnection cn
=
new
OleDbConnection(connstr);
//
da
=
new
OleDbDataAdapter(
"
SELECT * From RPT_CR_TEST1
"
, cn);
//
DataSet1
DataSet1 dt1
=
new
DataSet1();
//
dt1
//
: mytable xsd 。
//
RPT_CR_TEST1, mytable
//
PUSH , SQL
//
( SQL as xsd )
da.Fill(dt1,
"
mytable
"
); ReportDocument myReport
=
new
ReportDocument();
string
reportPath
=
Server.MapPath(
"
crystalreport1.rpt
"
); myReport.Load(reportPath);
//
, , 。
myReport.SetDataSource(dt1); CrystalReportViewer1.ReportSource
=
myReport; } }
そして運転すればいいです.
ここで説明しますが、「プッシュ間」でこのxsdを言わなかったのは、当時詳細な操作が話されていなかったからです.話しても分かりにくい.このxsd、私达自身が构造したので、比喩をしましょう:xsdは1つの棚にたとえて、それは水晶のレポートを支えることを担当して、しかし空で、内容がなくて私达はPUSHモードを使って、データをそれに詰めて、棚をいっぱい詰めて、このように水晶のレポートも効果を现すことができます
よくある質問:
1:レポートは表示できますが、データがありません.
一般的には以下のような状況があります
a:確かにテーブルにデータがありません
b:da.Fill(dt1, "mytable");テーブル名はxsdで設計されたテーブルと一致しません
c:複数のテーブルを使用している場合は、テーブルのデフォルトの関連関係によりデータがない可能性があります.
2:ページをめくったり、印刷したり、エクスポートしたりするときに、データベース・ソースに再接続する必要があるため、次の図のヒントが表示されます.
a:マルチテーブルの場合、一部のテーブルに値が割り当てられていない可能性があります.
クリスタル・レポートには、データがなくても使用する各テーブルを検証する必要があります.なければ、空のレコードセットを渡してもいいです.
b:コードはPage_に置かれていませんLoadまたはPage_Initに入れたり、入れたりしましたがpostbackを制御しました.
httpは無状態なので、postbackを制御すると水晶レポートの前の設定が失われ、このような状況になります.