如何在2页上打印ListView? [英] How can I print a ListView on 2 pages?

查看:54
本文介绍了如何在2页上打印ListView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

b $ b我有一份报告。

在报告页面我有一个ComboBox A ListView和一个打印按钮。

一个月内有31条记录。

一切正常我可以滚动记录,但是当我想要打印时,我只能看到ReportMonthOutput页面中的20条。

如何在2页中查看记录。

Hi,
I have a report.
In the Report Page I have a ComboBox A ListView and a Print button.
It has 31 records the days of a month.
All is OK I can scroll the records, but when I want to print I can see only 20 in ReportMonthOutput page.
How can a see the records in 2 pages.



命名空间MonoJob.Views

{

    ///< summary>

    ///可以单独使用或导航到框架内的空白页面。

    ///< / summary>

    public sealed partial class ReportMonthOutput:Page

    {

        //指向主页面的指针,用于访问输入和输出框架及其内容。

        // MainPage rootPage = null;


namespace MonoJob.Views
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class ReportMonthOutput : Page
    {
        // A pointer back to the main page which is used to gain access to the input and output frames and their content.
        // MainPage rootPage = null;

       私人字符串[] SHORT_MONTH_NAMES =新的字符串[] {"扬","二月"," MAR","四月","五月","君","七月","八月" ,"Sep","Oct",
"Nov","Dec","Dec"," };
        private string [] MONTH_NAMES = new string [] {" January","February"","March"","April","May","June","July","August"和,

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; "九月","十一月","十一月","十二月";};

        private string[] SHORT_MONTH_NAMES = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
        private string[] MONTH_NAMES = new string[] { "January", "February", "March", "April", "May", "June", "July", "August",
                                "September", "October", "November", "December"};

        private readonly ObservableCollection< MonthlyTotals> itemsListView = new ObservableCollection< MonthlyTotals>();

       列表与LT; MonthlyTotals> monthlyTotalsList;

        private readonly ObservableCollection<MonthlyTotals> itemsListView = new ObservableCollection<MonthlyTotals>();
        List<MonthlyTotals> monthlyTotalsList;

        DayJsViewModel dayJsViewModel = null;

        DayJsViewModel dayJsViewModel = null;

       的ObservableCollection< DayJViewModel> dayJsT = null;

        ObservableCollection<DayJViewModel> dayJsT = null;

        ReportYear rootPage = null;

        ReportYear rootPage = null;

        Windows.Storage.ApplicationDataContainer localSettings =

       Windows.Storage.ApplicationData.Current.LocalSettings;

       私人字符串txtYearS ="";&b $ b       私人字符串txtMonthS ="";

        Windows.Storage.ApplicationDataContainer localSettings =
       Windows.Storage.ApplicationData.Current.LocalSettings;
        private string txtYearS = "";
        private string txtMonthS = "";

        private int txtYearSI = 0;

        private int txtMonthSI = 1;

        private int txtYearSI = 0;
        private int txtMonthSI = 1;

   

        public void SetContent(String content)

        {

            txtYearS = content.Substring(0,4);

            txtYearSI = Convert.ToInt16(txtYearS);

            txtYear1.Text = txtYearS;

           

            int len1 = content.Length;

   
        public void SetContent(String content)
        {
            txtYearS = content.Substring(0, 4);
            txtYearSI = Convert.ToInt16(txtYearS);
            txtYear1.Text = txtYearS;
           
            int len1 = content.Length;

            txtMonthS = content.Substring(4,len1 - 4);

            txtMonthSI = Convert.ToInt16(txtMonthS);

            txtMonth1.Text = txtMonthS;

        //&NBSP;&NBSP;&NBSP; txtMonth1.Text = len1.ToString();

            txtMonthS = content.Substring(4, len1 - 4);
            txtMonthSI = Convert.ToInt16(txtMonthS);
            txtMonth1.Text = txtMonthS;
        //    txtMonth1.Text = len1.ToString();

           返回;

        }

            return;
        }

        public ReportMonthOutput()

        {

           this.InitializeComponent();

        public ReportMonthOutput()
        {
           this.InitializeComponent();

          // loadDataViewListM(txtYearSI,txtMonthSI);

        }

          // loadDataViewListM(txtYearSI, txtMonthSI);
        }

        private void loadDataViewListM(int year3,int month3)

        {

            //计算每月总计

        private void loadDataViewListM(int year3, int month3)
        {
            //Calculate Monthly Total

            dayJsViewModel = new DayJsViewModel();

            dayJsT = dayJsViewModel.GetDayJsYM(year3.ToString()+ month3.ToString()); //&NBSP; ymT1);

            dayJsViewModel = new DayJsViewModel();
            dayJsT = dayJsViewModel.GetDayJsYM(year3.ToString() + month3.ToString()); //  ymT1);

           列表与LT;串GT; list = new List< string>();

            List<string> list = new List<string>();

            foreach(dayJsT中的var prime)//使用foreach循环遍历列表

            {

                list.Add(prime.ymd1J.ToString()+":" + prime.day1J.ToString());

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP; }

            foreach (var prime in dayJsT) // Loop through List with foreach
            {
                list.Add(prime.ymd1J.ToString() + ":" + prime.day1J.ToString());
            }

           列表与LT;双> listPayJD = new List< double>();

            foreach(dayJsT中的var prime1)//使用foreach循环浏览列表$
            {

                listPayJD.Add(System.Convert.ToDouble(prime1.PayJ.ToString()));

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; }

            List<double> listPayJD = new List<double>();
            foreach (var prime1 in dayJsT) // Loop through List with foreach
            {
                listPayJD.Add(System.Convert.ToDouble(prime1.PayJ.ToString()));
            }

            double sum2 = 0.0;

            sum2 = listPayJD.Sum();

            double sum2 = 0.0;
            sum2 = listPayJD.Sum();

            txtTotal1.Text =" Total $" + MONTH_NAMES [month3 - 1] +" :&NBSP; " + sum2.ToString(); // listPayJ [0];

         

            MyListViewP.DataContext = dayJsT;  // monthlyTotalsList;

           MyListViewP.ItemsSource = dayJsT;  // monthlyTotalsList;

        }

            txtTotal1.Text = "Total $ " + MONTH_NAMES[month3 - 1] + " :  " + sum2.ToString(); //listPayJ[0];
         
            MyListViewP.DataContext = dayJsT;  //monthlyTotalsList;
           MyListViewP.ItemsSource = dayJsT;  //monthlyTotalsList;
        }

        private string GetMonthlyPay(string ym1T2)

        {

            string monthPay ="" ;;

            dayJsViewModel = new DayJsViewModel()

            dayJsT = dayJsViewModel.GetDayJsYM(ym1T2);

        private string GetMonthlyPay(string ym1T2)
        {
            string monthPay = "";
            dayJsViewModel = new DayJsViewModel()
            dayJsT = dayJsViewModel.GetDayJsYM(ym1T2);

           列表与LT;双> listPayJD = new List< double>();

            if(dayJsT.Count> 0)

            {

               的foreach(在dayJsT VAR prime1)//循环用foreach

&NBSP列表;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP; {

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; listPayJD.Add(System.Convert.ToDouble(prime1.PayJ.ToString()));

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP; }

            List<double> listPayJD = new List<double>();
            if (dayJsT.Count > 0)
            {
                foreach (var prime1 in dayJsT) // Loop through List with foreach
                {
                    listPayJD.Add(System.Convert.ToDouble(prime1.PayJ.ToString()));
                }

                double sum3 = 0.0;

                sum3 = listPayJD.Sum();

                monthPay = sum3.ToString();

            }
           否则为
            {

                monthPay =" 0";&
            }
            return monthPay;

                double sum3 = 0.0;
                sum3 = listPayJD.Sum();
                monthPay = sum3.ToString();
            }
            else
            {
                monthPay = "0";
            }
            return monthPay;

        }

        }

        private void MyListviewLoaded(object sender,RoutedEventArgs e)

        {

            loadDataViewListM(txtYearSI,txtMonthSI);

        }&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;

        private void MyListviewLoaded(object sender, RoutedEventArgs e)
        {
            loadDataViewListM(txtYearSI, txtMonthSI);
        }      

    }

    }

}

ADRIAN DIBU

ADRIAN DIBU

推荐答案



这是代码中RichText的分页,但是如何为ListView执行此操作呢?把列表的内容放在  。富文本的集合

Hi,
It is a pagination for RichText in this code, but how can I do it for ListView or how can I put the content of the list in  a collection of RichText.

&NBSP;保护覆盖无效OnNavigatingFrom(NavigatingCancelEventArgs E)

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; {

            if(document == null)return;

 protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
        {
            if (document == null) return;

            document.Paginate - = printDocument_Paginate;

            document.GetPreviewPage - = printDocument_GetPreviewPage;

            document.AddPages - = printDocument_AddPages;

            document.Paginate -= printDocument_Paginate;
            document.GetPreviewPage -= printDocument_GetPreviewPage;
            document.AddPages -= printDocument_AddPages;

            //删除打印初始化的处理程序。

            PrintManager manager = PrintManager.GetForCurrentView();

            manager.PrintTaskRequested - = manager_PrintTaskRequested;

            // Remove the handler for printing initialization.
            PrintManager manager = PrintManager.GetForCurrentView();
            manager.PrintTaskRequested -= manager_PrintTaskRequested;

            PrintContainer.Children.Clear();

        }

            PrintContainer.Children.Clear();
        }

        private void PrepareContent()

        {

            if(page1 == null)

            {

                //&NBSP; page1 = new PageForPrinting();

                page1 = new ReportMonthOutput();

                StackPanel的标题=(StackPanel中)page1.FindName(QUOT;报头QUOT);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP; header.Visibility = Windows.UI.Xaml.Visibility.Visible;

        private void PrepareContent()
        {
            if (page1 == null)
            {
                //  page1 = new PageForPrinting();
                page1 = new ReportMonthOutput();
                StackPanel header = (StackPanel)page1.FindName("header");
                header.Visibility = Windows.UI.Xaml.Visibility.Visible;

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP; (page1 as ReportMonthOutput).SetContent(" 2013" +" 4");

            }

                  (page1 as ReportMonthOutput).SetContent("2013" + "4");
            }

            PrintContainer.Children.Add(page1);

            PrintContainer.InvalidateMeasure();

            PrintContainer.UpdateLayout();

        }

            PrintContainer.Children.Add(page1);
            PrintContainer.InvalidateMeasure();
            PrintContainer.UpdateLayout();
        }

        void manager_PrintTaskRequested(PrintManager sender,PrintTaskRequestedEventArgs args)

        {

            PrintTask task = null;

           任务= args.Request.CreatePrintTask(QUOT;收费年Toyals" ;, sourceRequested =>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; / /任务= args.Request.CreatePrintTask(QUOT;年报告与QUOT ;, sourceRequested =>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;


&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; {

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;     sourceRequested.SetSource(source);

           });


       }

        void manager_PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            PrintTask task = null;
            task = args.Request.CreatePrintTask("Pay Year Toyals", sourceRequested =>
            // task = args.Request.CreatePrintTask("Year Report", sourceRequested =>       
            {
                sourceRequested.SetSource(source);
            });
        }

        void printDocument_AddPages(object sender, AddPagesEventArgs E)

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; {

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;     for(int i = 0; i< pages.Count; i ++)

        & NBSP;&NBSP;&NBSP; {

                document.AddPage(pages [i]);

            }

        void printDocument_AddPages(object sender, AddPagesEventArgs e)
        {
            for (int i = 0; i < pages.Count; i++)
            {
                document.AddPage(pages[i]);
            }

            PrintDocument printDoc =(PrintDocument)sender;

            printDoc.AddPagesComplete();

        }

            PrintDocument printDoc = (PrintDocument)sender;
            printDoc.AddPagesComplete();
        }

        void printDocument_GetPreviewPage(object sender,GetPreviewPageEventArgs e)

        {

            PrintDocument printDoc =(PrintDocument)sender;

        void printDocument_GetPreviewPage(object sender, GetPreviewPageEventArgs e)
        {
            PrintDocument printDoc = (PrintDocument)sender;

            printDoc.SetPreviewPage(e.PageNumber,pages [e.PageNumber - 1]);
$
        }

            printDoc.SetPreviewPage(e.PageNumber, pages[e.PageNumber - 1]);
        }

        void printDocument_Paginate(object sender,PaginateEventArgs e)

        {

            pages.Clear();

            PrintContainer.Children.Clear();

        void printDocument_Paginate(object sender, PaginateEventArgs e)
        {
            pages.Clear();
            PrintContainer.Children.Clear();

            RichTextBlockOverflow lastRTBOOnPage;

            PrintTaskOptions printingOptions =((PrintTaskOptions)e.PrintTaskOptions);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; PrintPageDescription pageDescription = printingOptions.GetPageDescription(0);

            RichTextBlockOverflow lastRTBOOnPage;
            PrintTaskOptions printingOptions = ((PrintTaskOptions)e.PrintTaskOptions);
            PrintPageDescription pageDescription = printingOptions.GetPageDescription(0);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; lastRTBOOnPage = AddOnePrintPreviewPage(NULL,pageDescription);

            lastRTBOOnPage = AddOnePrintPreviewPage(null, pageDescription);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;而(lastRTBOOnPage.HasOverflowContent&安培;&安培; lastRTBOOnPage.Visibility == Windows.UI.Xaml.Visibility.Visible)

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP; {

                lastRTBOOnPage = AddOnePrintPreviewPage(lastRTBOOnPage,pageDescription);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; }

            while (lastRTBOOnPage.HasOverflowContent && lastRTBOOnPage.Visibility == Windows.UI.Xaml.Visibility.Visible)
            {
                lastRTBOOnPage = AddOnePrintPreviewPage(lastRTBOOnPage, pageDescription);
            }

            if(pagesCreated!= null)

            {

                pagesCreated.Invoke(pages,null);

            }

            if (pagesCreated != null)
            {
                pagesCreated.Invoke(pages, null);
            }

            PrintDocument printDoc =(PrintDocument)sender;

            PrintDocument printDoc = (PrintDocument)sender;

            printDoc.SetPreviewPageCount(pages.Count,PreviewPageCountType.Intermediate);

        }

            printDoc.SetPreviewPageCount(pages.Count, PreviewPageCountType.Intermediate);
        }

        private RichTextBlockOverflow AddOnePrintPreviewPage(RichTextBlockOverflow lastRTBOAdded,PrintPageDescription printPageDescription)

        {

            FrameworkElement页面;

            RichTextBlockOverflow链接;

        private RichTextBlockOverflow AddOnePrintPreviewPage(RichTextBlockOverflow lastRTBOAdded, PrintPageDescription printPageDescription)
        {
            FrameworkElement page;
            RichTextBlockOverflow link;

            if(lastRTBOAdded == null)

            {

                page = page1;&
                StackPanel页脚=(StackPanel)page.FindName(" footer");

              &NBSP;&NBSP; footer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

            }
           否则为
            {

                page = new ContinuationPage(lastRTBOAdded);

            }

            if (lastRTBOAdded == null)
            {
                page = page1;
                StackPanel footer = (StackPanel)page.FindName("footer");
                footer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else
            {
                page = new ContinuationPage(lastRTBOAdded);
            }

            page.Width = printPageDescription.PageSize.Width;

            page.Height = printPageDescription.PageSize.Height;

            page.Width = printPageDescription.PageSize.Width;
            page.Height = printPageDescription.PageSize.Height;

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;网格printableArea =(网格)page.FindName(QUOT; printableArea");

            Grid printableArea = (Grid)page.FindName("printableArea");

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;双MARGINWIDTH = Math.Max(printPageDescription.PageSize.Width - printPageDescription.ImageableRect.Width,printPageDescription.PageSize.Width *左* 2);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;双MARGINHEIGHT = Math.Max(printPageDescription.PageSize.Height - printPageDescription.ImageableRect.Height,printPageDescription.PageSize.Height *顶* 2);

            double marginWidth = Math.Max(printPageDescription.PageSize.Width - printPageDescription.ImageableRect.Width, printPageDescription.PageSize.Width * left * 2);
            double marginHeight = Math.Max(printPageDescription.PageSize.Height - printPageDescription.ImageableRect.Height, printPageDescription.PageSize.Height * top * 2);

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; printableArea.Width = page1.Width - marginWidth;

            printableArea.Height = page1.Height - marginHeight;

            printableArea.Width = page1.Width - marginWidth;
            printableArea.Height = page1.Height - marginHeight;

            PrintContainer.Children.Add(page);

            PrintContainer.InvalidateMeasure();

            PrintContainer.UpdateLayout();

            PrintContainer.Children.Add(page);
            PrintContainer.InvalidateMeasure();
            PrintContainer.UpdateLayout();

            //查找最后一个文本容器,查看内容是否溢出为
           链接=(RichTextBlockOverflow)page.FindName(QUOT; continuationPageLinkedContainer");

            // Find the last text container and see if the content is overflowing
            link = (RichTextBlockOverflow)page.FindName("continuationPageLinkedContainer");

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; //检查这是否是最后一页

           如果(link.HasOverflowContent&安培;!&安培; link.Visibility == Windows.UI.Xaml.Visibility.Visible)

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP; {

                StackPanel页脚=(StackPanel)page.FindName(" footer");

              &NBSP;&NBSP; footer.Visibility = Windows.UI.Xaml.Visibility.Visible;

            }

            // Check if this is the last page
            if (!link.HasOverflowContent && link.Visibility == Windows.UI.Xaml.Visibility.Visible)
            {
                StackPanel footer = (StackPanel)page.FindName("footer");
                footer.Visibility = Windows.UI.Xaml.Visibility.Visible;
            }

            //将页面添加到页面预览集合中$
            pages.Add(page);

            // Add the page to the page preview collection
            pages.Add(page);

           返回链接;

        }

            return link;
        }

祝你好运


这篇关于如何在2页上打印ListView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆