Crystal Reports一定可以,你再研究一下。

解决方案 »

  1.   

    crystal Reports 好像没有代码接口吧,不过你可以把你的所有情况做成视图,把视图都做成报表,然后通过选择不同的报表来得到你想要的结果。
      

  2.   

    crystal Reports可以对报表进行编程的,资料在它的网站上可以下载,祝你好运!
      

  3.   

    我劝你别用Crystal Reports,又大又笨,难于达到目的。
    还是到CodeProject.com去参考一下有关print/report方面的Article/Solution,带Src的喔!BTW,C#Corner也还可以。
      

  4.   

    在运行时修改参数字段:// 声明将参数传递给
    //查看器控件所需的变量。
    ParameterFields paramFields = new ParameterFields ();
    ParameterField paramField = new ParameterField ();
    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
    ParameterRangeValue rangeVal = new ParameterRangeValue ();// 第一个参数是具有多个值的离散参数。// 设置参数字段的名称,它必须
    //和报表中的参数相符。
    paramField.ParameterFieldName = "客户姓名";// 设置第一个离散值并将其传递给该参数。
    discreteVal.Value = "AIC Childrens";
    paramField.CurrentValues.Add (discreteVal);// 设置第二个离散值并将其传递给该参数。
    // discreteVal 变量被设置为新值,这样,以前的设置
    //就不会被覆盖。
    discreteVal = new ParameterDiscreteValue ();
    discreteVal.Value = "Aruba Sport";
    paramField.CurrentValues.Add (discreteVal);// 将该参数添加到参数字段集合。
    paramFields.Add (paramField);// 第二个参数为区域值。paramField 变量
    //被设置为新值,这样,以前的设置就不会被覆盖。
    paramField = new ParameterField ();// 设置参数字段的名称,它必须
    //和报表中的参数相符。
    paramField.ParameterFieldName = "客户 ID";// 设置范围的开始值和结束值并将该范围传递给
    //该参数。
    rangeVal.StartValue = 42;
    rangeVal.EndValue = 72;
    paramField.CurrentValues.Add (rangeVal);// 将第二个参数添加到参数字段集合。
    paramFields.Add (paramField);// 将参数字段集合放入查看器控件。
    crystalReportViewer1.ParameterFieldInfo = paramFields;
      

  5.   

    谢谢楼上的兄弟。你的方法很好。我试试看。你有这方面的作品么?可以给我参考么?
    E_mail: [email protected]