реорганизовать InitializeLayout метода, который я имею в виду, чтобы извлечь весь код, написанный для этого метода (как правило, форматирования столбцов для отображения или другой конфигурации один раза сетки) и поместить все в другом методе непосредственно вызываемом из ваш код.
Затем, когда ваш пользователь нажимает кнопку, чтобы распечатать сетку, инициализируйте gridReport с тем же источником данных, вызовите тот же общий код и выполните конкретное скрытие для столбцов второй сетки.
Это псевдокод предположит, что вы объявили две сетки (grdMain с исходными данными и grdReport использовать для печати) также я предполагаю наличие ultraGridPrintDocument, чтобы начать процесс печати
private void gridMain_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
CommonInitializeLayout(gridMain, e);
}
private void CommonInitializeLayout(UltraWinGrid grd, InitializeLayoutEventArgs e)
{
UltraGridBand b = e.Layout.Bands[0];
// Now do the customization of the grid passed in, for example....
b.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
b.Override.AllowAddNew = AllowAddNew.No;
b.Override.NullText = "(Not available)";
b.Columns["CustName"].Header.Caption = "Customer Name";
....... etc ....
}
private void cmdMakeReport_Click(object sender, EventArgs e)
{
// This assignment will trigger the InitializeLayout event for the grdReport
grdReport.DataSource = grdMain.DataSource;
// Now the two grids have the same columns and the same data
// Start to hide the columns not desired in printing
grdReport.DisplayLayout.Bands[0].Columns["CustID"].ExcludeFromColumnChooser =
ExcludeFromColumnChooser.True
grdReport.DisplayLayout.Bands[0].Columns["CustID"].Hidden = true;
// .... other columns to hide.....
// Now print the grdReport
ultraGridPrintDocument.Grid = grdReport;
ultraGridPrintDocument.Print();
}
private void gridReport_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
CommonInitializeLayout(griReport, e);
}
Что такая ошибка? –
Infragistics.Win.UltraWinGrid.UltraGridColumn 'не содержит конструктор, который принимает аргументы «0», я не уверен, что мне нужно назначить newCol новым UltraGridColumn()? Его клон или копия меня интересует – Standage
Почему вы пытаетесь клонировать столбцы, а не добавляете новый в сетку? Что вы получаете, клонируя колонку? Что вы пытаетесь выполнить с помощью UltraGrid? – alhalama