使用RDLC生成的Excel报表的列标题似乎始于ROW TWO。但是,我需要数据从ROW ONE开始,但我似乎无法弄明白。
我的问题:
有没有办法强制数据行从ROW ONE开始?
RENDERED REPORT看起来像:
如您所见,数据从第2行开始......
我的报告设计师看起来像:
如您所见,列标题位于设计器顶部,字段如下所示。当然,标题和图像位于此区域之上,与数据结果视图区域无关。
我的初始代码看起来像:
我可以发布更多代码。但是,这是“本地驾驶员报告”中唯一的特定内容。出口。
public ActionResult Export(string id)
{
var format = !string.IsNullOrEmpty(id) ? id : SsrsExportFormat.Image.ToString();
var localDrivers = from x in LocalDriverInfo
select new
{
Title = x.Title.TranslatedName,
x.Driver.ConfirmedWith,
x.Driver.CurrentState,
x.Driver.Description,
x.Driver.DesiredState,
x.Driver.LocalDriverId,
x.Driver.LocalDriverTitleId
};
var lsDs = new List<ReportDataSource> { ReportGenerator.GetDataSource(localDrivers, "LocalDrivers"), ReportGenerator.GetDataSource(GetReportResource(), "Resource") };
var lsDsResult = lsDs.ToList();
var message = string.Format("Controller: LocalDrivers, Action: Export(id), "
+ "Parameters: [id: {0}, lsDs count: {1}, format: {2}]"
, id, lsDsResult.Count, format);
TraceHandler.AddEntry(message, TraceHandler.TraceTypes.Information);
//The DeviceInfo settings should be changed based on the reportType
//http://msdn2.microsoft.com/en-us/library/ms155397.aspx
return GetRenderedReport(format, "~/Reports/LocalDrivers/LocalDrivers.rdlc", lsDs, "Local Drivers", ReportGenerator.GetDeviceInfoLetterLandscape(format), null);
}
答案 0 :(得分:2)
确保桌子的顶部和左侧绝对没有空白区域。任何空格都会产生额外的行。
答案 1 :(得分:0)
事实证明,DEVICE INFO设置是这个特定问题的答案。
设备信息XML应该看起来像:
创建“本地报告”时,DeviceInfo会传递到ServerReport.Render method。
<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>
代码看起来像:
注意最后一行......
var deviceInfo = new StringBuilder();
deviceInfo.Append("<DeviceInfo>");
deviceInfo.AppendFormat("<OutputFormat>{0}</OutputFormat>", format);
deviceInfo.AppendFormat("<PageWidth>{0}</PageWidth>", pageWidth);
deviceInfo.AppendFormat("<PageHeight>{0}</PageHeight>", pageHeight);
deviceInfo.AppendFormat("<MarginTop>{0}</MarginTop>", marginTop);
deviceInfo.AppendFormat("<MarginLeft>{0}</MarginLeft>", marginLeft);
deviceInfo.AppendFormat("<MarginRight>{0}</MarginRight>", marginRight);
deviceInfo.AppendFormat("<MarginBottom>{0}</MarginBottom>", marginBottom);
deviceInfo.AppendFormat("<SimplePageHeaders>{0}</SimplePageHeaders>", isSimplePageHeaders);
deviceInfo.Append("</DeviceInfo>");