我正在使用VS2013和Crystal Report 2013
我正在将30个参数传递给Crystal报告。
它可以正常工作5次,然后出现下一个错误:-
内存已满。没有足够的内存进行操作。
到目前为止我尝试过的事情:-
使用CrystalReport1.Refresh();
却无法解决问题。
感谢任何帮助。
编辑1:-
我知道也许我的问题缺少信息,但是我认为没有任何细节可以帮助您,在这里您可以通过任何方式获得额外的信息,我希望它会有所帮助。
我接下来要申请:-
当我单击“打印”时,下一个可以正常使用
如果我关闭窗口并再次按“打印”,则可以正常工作5到6次, 然后我遇到下一个错误:-
编辑2:-
我的代码是:-
1)创建新表单并拖放Crystal Report Viewer。
2)在加载事件中,我编写了下一个代码:-
private void frmReport_Load(object sender, EventArgs e)
{
try
{
CrystalReport11.SetParameterValue("pName", PatientName);
CrystalReport11.SetParameterValue("pAge", Age);
CrystalReport11.SetParameterValue("pDate", Date);
CrystalReport11.SetParameterValue("P1", Number1);
CrystalReport11.SetParameterValue("P2", Number2);
CrystalReport11.SetParameterValue("P3", Number3);
CrystalReport11.SetParameterValue("P4", Number4);
CrystalReport11.SetParameterValue("P5", Number5);
CrystalReport11.SetParameterValue("P6", Number6);
CrystalReport11.SetParameterValue("P7", Number7);
CrystalReport11.SetParameterValue("pDrugsName1", DrugName1);
CrystalReport11.SetParameterValue("pDrugsName2", DrugName2);
CrystalReport11.SetParameterValue("pDrugsName3", DrugName3);
CrystalReport11.SetParameterValue("pDrugsName4", DrugName4);
CrystalReport11.SetParameterValue("pDrugsName5", DrugName5);
CrystalReport11.SetParameterValue("pDrugsName6", DrugName6);
CrystalReport11.SetParameterValue("pDrugsName7", DrugName7);
CrystalReport11.SetParameterValue("pQTY1", QTY1);
CrystalReport11.SetParameterValue("pQTY2", QTY2);
CrystalReport11.SetParameterValue("pQTY3", QTY3);
CrystalReport11.SetParameterValue("pQTY4", QTY4);
CrystalReport11.SetParameterValue("pQTY5", QTY5);
CrystalReport11.SetParameterValue("pQTY6", QTY6);
CrystalReport11.SetParameterValue("pQTY7", QTY7);
CrystalReport11.SetParameterValue("pTimeOfUse1", TimeOfUse1);
CrystalReport11.SetParameterValue("pTimeOfUse2", TimeOfUse2);
CrystalReport11.SetParameterValue("pTimeOfUse3", TimeOfUse3);
CrystalReport11.SetParameterValue("pTimeOfUse4", TimeOfUse4);
CrystalReport11.SetParameterValue("pTimeOfUse5", TimeOfUse5);
CrystalReport11.SetParameterValue("pTimeOfUse6", TimeOfUse6);
CrystalReport11.SetParameterValue("pTimeOfUse7", TimeOfUse7);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
然后我通过下一个代码调用表单:-
DrugName1 = (txtDrugsName1.Text == string.Empty) ? " " : txtDrugsName1.Text;
DrugName2 = (txtDrugsName2.Text == string.Empty) ? " " : txtDrugsName2.Text;
DrugName3 = (txtDrugsName3.Text == string.Empty) ? " " : txtDrugsName3.Text;
DrugName4 = (txtDrugsName4.Text == string.Empty) ? " " : txtDrugsName4.Text;
DrugName5 = (txtDrugsName5.Text == string.Empty) ? " " : txtDrugsName5.Text;
DrugName6 = (txtDrugsName6.Text == string.Empty) ? " " : txtDrugsName6.Text;
DrugName7 = (txtDrugsName7.Text == string.Empty) ? " " : txtDrugsName7.Text;
Number1 = (txtDrugsName1.Text == string.Empty) ? " " : "1";
Number2 = (txtDrugsName2.Text == string.Empty) ? " " : "2";
Number3 = (txtDrugsName3.Text == string.Empty) ? " " : "3";
Number4 = (txtDrugsName4.Text == string.Empty) ? " " : "4";
Number5 = (txtDrugsName5.Text == string.Empty) ? " " : "5";
Number6 = (txtDrugsName6.Text == string.Empty) ? " " : "6";
Number7 = (txtDrugsName7.Text == string.Empty) ? " " : "7";
QTY1 = (cmbQTY1.Text == string.Empty) ? " " : cmbQTY1.Text;
QTY2 = (cmbQTY2.Text == string.Empty) ? " " : cmbQTY2.Text;
QTY3 = (cmbQTY3.Text == string.Empty) ? " " : cmbQTY3.Text;
QTY4 = (cmbQTY4.Text == string.Empty) ? " " : cmbQTY4.Text;
QTY5 = (cmbQTY5.Text == string.Empty) ? " " : cmbQTY5.Text;
QTY6 = (cmbQTY6.Text == string.Empty) ? " " : cmbQTY6.Text;
QTY7 = (cmbQTY7.Text == string.Empty) ? " " : cmbQTY7.Text;
TimeOfUse1 = (cmbTimeOfUse1.Text == string.Empty) ? " " : cmbTimeOfUse1.Text;
TimeOfUse2 = (cmbTimeOfUse2.Text == string.Empty) ? " " : cmbTimeOfUse2.Text;
TimeOfUse3 = (cmbTimeOfUse3.Text == string.Empty) ? " " : cmbTimeOfUse3.Text;
TimeOfUse4 = (cmbTimeOfUse4.Text == string.Empty) ? " " : cmbTimeOfUse4.Text;
TimeOfUse5 = (cmbTimeOfUse5.Text == string.Empty) ? " " : cmbTimeOfUse5.Text;
TimeOfUse6 = (cmbTimeOfUse6.Text == string.Empty) ? " " : cmbTimeOfUse6.Text;
TimeOfUse7 = (cmbTimeOfUse7.Text == string.Empty) ? " " : cmbTimeOfUse7.Text;
frmReport obj = new frmReport(
txtPatientName.Text,
nudAge.Value.ToString(),
dtpDate.Text,
DrugName1,
DrugName2,
DrugName3,
DrugName4,
DrugName5,
DrugName6,
DrugName7,
QTY1,
QTY2,
QTY3,
QTY4,
QTY5,
QTY6,
QTY7,
TimeOfUse1,
TimeOfUse2,
TimeOfUse3,
TimeOfUse4,
TimeOfUse5,
TimeOfUse6,
TimeOfUse7,
Number1,
Number2,
Number3,
Number4,
Number5,
Number6,
Number7
);
obj.ShowDialog();
答案 0 :(得分:0)
我遇到了同样的问题,这也对我有用:
into frmReport_FormClosing Type crystalReportViewer1.Dispose(); and CrystalReport11.Dispose();