如何在2页上打印ListView? [英] How can I print a ListView on 2 pages?
问题描述
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屋!