0
我正在寫一個程序,使用Excel文件動態地創建發票。一切工作正常,除了報告細節部分顯示了很多行之間的間距,高達2'的間距。我正在使用綁定標籤來創建線條。我已經閱讀,使用XRRichText可以幫助,但它沒有。你能幫我麼?動態XtraReport給了我很多線之間的間距詳細信息
報告:
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
{
public XtraReport1()
{
InitializeComponent();
}
public void AddBoundLabel(String bindingMember, Rectangle bounds)
{
XRLabel label = new XRLabel();
Detail.Controls.Add(label);
label.Font = new Font("Arial", 8);
label.Location = bounds.Location;
label.Size = bounds.Size;
label.DataBindings.Add("Text", null, bindingMember);
label.CanGrow = true;
label.CanShrink = true;
label.HeightF -= 50;
label.Padding = 0;
}
private void xrLabel_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
XRRichText label = sender as XRRichText;
e.Cancel = true;
label.HeightF = 1 ;
label.Padding = 0;
}
}
報告生成:
private void button1_Click(object sender, EventArgs e)
{
int cantidad;
string codigo, descripcion;
double pU, pT;
ArrayList listBindingSource = new ArrayList();
List<String> myList = dataGridView1.DataSource as List<String>;
for(int i = 0; i< dataGridView1.Rows.Count; i++)
{
cantidad = Convert.ToInt16(dataGridView1.Rows[i].Cells[0].Value);
codigo = dataGridView1.Rows[i].Cells[1].Value.ToString();
descripcion = dataGridView1.Rows[i].Cells[2].Value.ToString();
pU = Convert.ToDouble(dataGridView1.Rows[i].Cells[3].Value);
pT = Convert.ToDouble(dataGridView1.Rows[i].Cells[4].Value);
listBindingSource.Add(new FacturaRecord(cantidad, codigo, descripcion, pU, pT));
}
XtraReport1 report = new XtraReport1();
report.Margins = new System.Drawing.Printing.Margins(100, 100, 25, 25);
report.DataSource = listBindingSource;
report.xrLabel6.Text = String.Format("Date: {0}", dateTimePicker1.Value.ToShortDateString());
report.xrLabel11.Text = String.Format("Invoice Number {0}", textBox1.Text);
report.xrLabel12.Text = String.Format("Total: ${0}", sum);
report.AddBoundLabel("cantidad", new Rectangle(100, 20, 50, 5));
report.AddBoundLabel("codigo", new Rectangle(150, 20, 100, 5));
report.AddBoundLabel("descripcion", new Rectangle(250, 20, 200, 5));
report.AddBoundLabel("precioUnitario", new Rectangle(500, 20, 50, 5));
report.AddBoundLabel("precioTotal", new Rectangle(600, 20, 50, 5));
ReportPrintTool printTool = new ReportPrintTool(report);
printTool.ShowPreviewDialog();
}
我猜這是在BeforePrint方法中,對嗎? –
您可以在XtraReport構造函數中甚至在Visual Report Designer中更改此設置。 – Uranus