using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
namespace cyh.General
{
/// <summary>
/// 报表每个单元打印前事件
/// </summary>
/// <param name="sender">发生事件的对象</param>
/// <param name="source">来源:1:页头 2:表头 3:表格 4:表脚 5:页脚 6:条码</param>
/// <param name="PageIndex">当前页号</param>
/// <param name="RowIndex">当前行号</param>
/// <param name="Caption">标题</param>
/// <param name="Field">绑定字段</param>
/// <param name="Value">打印前值</param>
public delegate void ReportUnitAfterPrint(object sender, ReportBandType source, int PageIndex, int RowIndex, string Caption, string Field, ref string Value, EventArgs e);
/// <summary>
/// 发生事件的来源:1:页头 2:表头 3:表格 4:表脚 5:页脚 6:条码
/// </summary>
public enum ReportBandType { PageHeader=1, TableHeader, TableDetail, TableFooter, PageFooder, BarCode };
/// <summary>
///表格线的类型 1:三栏表,2:有边框的三栏,4:完全网格
/// </summary>
public enum ReportGridLine :int { Nothing=0, Three=1, Border=2,Full=4}
/// <summary>
/// 报表主体设置
/// </summary>
internal struct ReportMain
{
/// <summary>
/// 打印机名
/// </summary>
public string printerName;
/// <summary>
/// 纸张大小
/// </summary>
public Size pageSize;
/// <summary>
/// 页边距
/// </summary>
public System.Drawing.Printing.Margins Margins;
/// <summary>
/// 获取或设置纸张类型(pageSize为空时有效)
/// </summary>
public System.Drawing.Printing.PaperKind PaperKind;
/// <summary>
/// 获取或设置每行高度(以0.1毫米为单位)
/// </summary>
public int DetailHeight;
/// <summary>
/// 获取或设置每页行数(0:自动计算)
/// </summary>
public int DetailRows;
/// <summary>
/// 获取或设置打印开始页
/// </summary>
public int BeginPage;
/// <summary>
/// 获取或设置打印结束页(0:最后一页)
/// </summary>
public int EndPage;
/// <summary>
/// 获取或设置打印方向
/// </summary>
public bool Landscape;
/// <summary