まず、レポートを学び始めました。これらのバージョンのCrystalレポートはすべて私を混乱させています。とにかく、VS2008のCrystal Reportsを使っていました。文字列パラメータレコードの選択式
私は、this tutorialに従っています。私はフィルタリングの問題を抱えています。レポートに2つのパラメータフィールドを適用する必要があります。ユーザータイプやユーザーステータスに応じて並べ替える必要があります。私はcmbボックスとテキストボックスの横にテキストを入力し、ボタンをクリックするとレポートにフィルタをかけることができます。
- システムにフィルタコードを適用したとき(ボタンをクリックしたとき)。フィルタなしでレポート全体をロードするための初期コードは、(formloadで)機能しませんでした。パラメータ値を入力するようにポップアップが表示されます。
- フィルタはうまく機能しました。別のパラメータフィールドを追加し、そのエフェクトを複製しようとしました。私は同じプロセスを経た。パラメータフィールドを追加し、右クリック> [レポート]> [選択式]> [レコードを選択]を選択し、別の行を追加します。それは仕事をしなかった。
私のレコード選択式エディタでは、次のようになります。
{UserType.UserType} = {?UserType}
{UserStatus.UserStatus} = {?UserStatus}
私はそれをパラメータフィールドに割り当てる方法がわかりません。レコード選択式エディタの使い方はわかりません。
私は{UserStatus.UserStatus} = {?USERSTATUS}を持っているために、このパラメータ{UserType.UserType} = {?のUserType} とUSERSTATUSパラメータフィールドを持つようにのUserTypeパラメータフィールドをしたい
私は助けが必要です、私はフレーズ私の質問を適切にGoogleのためにどのようにわからない。これはボタンクリックのコードです。私はコードが繰り返されることを知っています。これを行う簡単な方法がわかっている場合は、アドバイスをお願いします。
private void ShowReport_Btn_Click(object sender, EventArgs e)
{
//IF SELECTED
if (Filter_cmb.SelectedItem.ToString() == "UserType")
{
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
cryRpt.Load("D:\\MY_THESIS\\WORKING FILES\\WindowsFormsApplication2\\WindowsFormsApplication2\\Reports\\Crystal Reports\\UsersReport.rpt");
crConnectionInfo.ServerName = "RITZEL-PC\\SQLEXPRESS";
crConnectionInfo.UserID = "NNIT-Admin";
crConnectionInfo.Password = "password";
crConnectionInfo.DatabaseName = "NNIT DB";
Tables CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["UserType"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
}
else if (Filter_cmb.SelectedItem.ToString() == "UserStatus")
{
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
cryRpt.Load("D:\\MY_THESIS\\WORKING FILES\\WindowsFormsApplication2\\WindowsFormsApplication2\\Reports\\Crystal Reports\\UsersReport.rpt");
crConnectionInfo.ServerName = "RITZEL-PC\\SQLEXPRESS";
crConnectionInfo.UserID = "NNIT-Admin";
crConnectionInfo.Password = "password";
crConnectionInfo.DatabaseName = "NNIT DB";
Tables CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["UserStatus"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
}
この回答があなたの質問を満たしている場合は、それを了承済みとしてマークすることを忘れないでください。 – craig