我的问题是这样的:
我有多张报表,不想预览直接打印,报表默认设置为A4纸。我的操作是这样的
我的报表 myReport= new Report(); //实例化一个报表已经做好的报表
myReport.SetDataSource(加载数据集);
//获取打印设置上面打印机名称
myReport.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName;//设置打印机纸张  下面这句要不要无无谓,在我看来,不起作用
myReport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;//直接打印
myReport.PrintToPrinter(PrintDialog1.PrinterSettings.Copies(获取打印份数), false, 0, 0);到此也可以打印,可是每次打印的时候出来的都是默认纸盒1的纸张,也可就是说在打印之前的页面设置,仅打印机名起了作用,其它不起作用,不管你之前页面设置是纸盒1还是纸盒2上,每次都从纸盒1进纸,我想问问大家如何根据页面设置动态的选择纸盒来源。
myReport.PrintOptions.PaperSource =在这里应该怎么赋值; //我是这样赋值,提示不能隐式转换类
myReport.PrintOptions.PaperSource =MyPrintDg.PrinterSettings.PaperSources;请大家帮帮忙,如果能正常根据动态设置打印机纸张来源进纸,保证马上给分?
其实我的问题也就是:多张不同报表如何一次性打印出来,在不进行预览的情况下。

解决方案 »

  1.   

    还有一种思路,这个是调word的打印功能。Process myPro = new Process();
    myPro.StartInfo.FileName = "c:\\test.doc";
    myPro.StartInfo.Verb = "Print";
    myPro.StartInfo.CreateNoWindow = true;
    myPro.Start();
      

  2.   

    Report.PrintOptions.PaperSource=xxx 
    Auto 打印纸张来源于打印机自动选择的纸盒。 
    Cassette 打印纸张来源于 cassette 纸盒。 
    Envelope 打印纸张来源于 envelope 纸盒。 
    EnvManual 打印纸张来源于手动信封送纸器。 
    FormSource 打印纸张来源于格式源纸盒。 
    LargeCapacity 打印纸张来源于大容量纸盒。 
    LargeFmt 打印纸张来源于大号纸盒。 
    Lower 打印纸张来源于 lower 纸盒。 
    Manual 打印纸张来源于 manual 纸盒。 
    Middle 打印纸张来源于 middle 纸盒。 
    SmallFmt 打印纸张来源于小号纸盒。 
    Tractor 打印纸张来源于 tractor 送纸器。 
    Upper 打印纸张来源于 upper 纸盒。 这个行吗?