처음에는보고를 배우기 시작했습니다. 이러한 Crystal Reports의 모든 버전은 저를 혼란스럽게합니다. 어쨌든 VS2008의 Crystal Reports를 사용했습니다.문자열 매개 변수 레코드 선택 수식
다음은 this tutorial입니다. 필터링하는 데 문제가 있습니다. 보고서에 두 개의 매개 변수 필드를 적용하여 사용자 유형 또는 사용자 상태에 따라 정렬해야합니다. 나는 텍스트를 입력하고 단추를 클릭 할 때 보고서를 필터링하기 위해 cmb 상자와 그 옆에있는 텍스트 상자에이 항목이 있습니다.
- 필터 코드를 시스템에 적용한 경우 (버튼 클릭시). 필터없이 전체 보고서를로드하는 초기 코드가 작동하지 않았습니다 (formload에서). 그것은 매개 변수 값을 입력하라는 팝업을 보여줍니다.
- 필터가 잘 작동했습니다. 다른 매개 변수 필드를 추가하고 효과를 복제하려고 시도했습니다. 나는 같은 과정을 겪었다. 매개 변수 필드를 추가하고 보고서> 선택 수식> 레코드 선택을 마우스 오른쪽 단추로 클릭 한 다음 다른 행을 추가합니다. 그것은 작동하지 않았다.
내 레코드 선택 수식 편집기에서 다음과 같이 보입니다.
{UserType.UserType} = {?UserType}
{UserStatus.UserStatus} = {?UserStatus}
나는 매개 변수 필드에 할당하는 방법을 모르겠다. 그리고 레코드 선택 수식 편집기를 사용하는 방법을 모른다.
나는이 매개 변수 {UserType.UserType} = {?이 UserType을} 과 UserStatus 매개 변수 필드가 가지고 {UserStatus.UserStatus} = {? 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