PDA

View Full Version : كمك براي پرينت datagridview



hallaji
سه شنبه 28 خرداد 1387, 21:04 عصر
كل برنامه من اينه :


namespace amval
{
publicpartialclassPrint : Form
{
DataGridViewPrinter MyDataGridViewPrinter;

public Print()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
MyDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
SqlConnection c = newSqlConnection();
c.ConnectionString = "server=(local);database=amval;uid=mh;password=1234 56";
SqlDataAdapter ada = newSqlDataAdapter();
DataSet ds = newDataSet();
ada.SelectCommand = newSqlCommand();
ada.SelectCommand.Connection = c;
ada.SelectCommand.CommandText = "select tozih,code,name from kala where markaz='" + CboMarkaz.Text + "' and vahed='"+ CboVahed.Text + "' and otag='"+TxtOtag.Text+"'";
ada.SelectCommand.CommandType = CommandType.Text;
ada.Fill(ds, "markaz");
c.Open();
MyDataGridView.AutoGenerateColumns = true;
MyDataGridView.DataSource = ds;
MyDataGridView.DataMember = "markaz";
c.Close();
MyDataGridView.Columns["name"].HeaderCell.Value = "شـــــــرح";
MyDataGridView.Columns["code"].HeaderCell.Value = "شماره اموال";
MyDataGridView.Columns["tozih"].HeaderCell.Value = "تـوضيحـات";
MyDataGridView.ColumnHeadersDefaultCellStyle.Font = newFont("zar", 16, FontStyle.Bold, GraphicsUnit.Point);
MyDataGridView.ColumnHeadersDefaultCellStyle.BackC olor = SystemColors.ControlDark;
MyDataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
MyDataGridView.DefaultCellStyle.Font = newFont("zar", 12, FontStyle.Regular, GraphicsUnit.Point);
MyDataGridView.DefaultCellStyle.BackColor = Color.Empty;
MyDataGridView.AlternatingRowsDefaultCellStyle.Bac kColor = SystemColors.ControlLight;
MyDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single;
MyDataGridView.GridColor = SystemColors.ControlDarkDark;
MyDataGridView.AutoResizeColumns(DataGridViewAutoS izeColumnsMode.AllCells);



}
privatevoid Print_Load(object sender, EventArgs e)
{
SqlConnection con = newSqlConnection();
SqlDataAdapter adapter = newSqlDataAdapter();
DataTable dt = newDataTable();
con.ConnectionString = "server=(local);database=amval;uid=mh;password=1234 56";
adapter.SelectCommand = newSqlCommand();
adapter.SelectCommand.Connection = con;
adapter.SelectCommand.CommandText = "select name from markaz";
adapter.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
string name = (string)dr["name"];
CboMarkaz.Items.Add(name);
}
}
privatevoid CboMarkaz_TextChanged(object sender, EventArgs e)
{
CboVahed.Items.Clear();
SqlConnection conn = newSqlConnection();
SqlDataAdapter ada = newSqlDataAdapter();
DataTable dta = newDataTable();
conn.ConnectionString = "server=(local);database=amval;uid=mh;password=1234 56";
ada.SelectCommand = newSqlCommand();
ada.SelectCommand.Connection = conn;
ada.SelectCommand.CommandText = "select name from vahed where markaz='" + CboMarkaz.Text + "'";
ada.Fill(dta);
foreach (DataRow dro in dta.Rows)
{
string name= (string)dro["name"];
CboVahed.Items.Add(name);
}
}

privatevoid button2_Click(object sender, EventArgs e)
{
Close();
}
privatevoid button3_Click(object sender, EventArgs e)
{

if (SetupThePrinting())
MyPrintDocument.Print();
}
privatevoid MyPrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
bool more = MyDataGridViewPrinter.DrawDataGridView(e.Graphics) ;
if (more == true)
e.HasMorePages = true;
}
privatevoid button4_Click(object sender, EventArgs e)
{
if (SetupThePrinting())
{
PrintPreviewDialog MyPrintPreviewDialog = newPrintPreviewDialog();
MyPrintPreviewDialog.Document = MyPrintDocument;
MyPrintPreviewDialog.ShowDialog();
}
}
privatebool SetupThePrinting()
{
PrintDialog MyPrintDialog = newPrintDialog();
MyPrintDialog.AllowCurrentPage = false;
MyPrintDialog.AllowPrintToFile = false;
MyPrintDialog.AllowSelection = false;
MyPrintDialog.AllowSomePages = false;
MyPrintDialog.PrintToFile = false;
MyPrintDialog.ShowHelp = false;
MyPrintDialog.ShowNetwork = false;

if (MyPrintDialog.ShowDialog() != DialogResult.OK)
returnfalse;
MyPrintDocument.DocumentName = "Customers Report";
MyPrintDocument.PrinterSettings = MyPrintDialog.PrinterSettings;
MyPrintDocument.DefaultPageSettings = MyPrintDialog.PrinterSettings.DefaultPageSettings;
MyPrintDocument.DefaultPageSettings.Margins = newMargins(40, 40, 40, 40);
MyDataGridViewPrinter = newDataGridViewPrinter(MyDataGridView, MyPrintDocument, true, true, "شركت\nشهرستان واحد استفاده كننده " + CboVahed.Text+"\n"+CboMarkaz.Text + " "+ "شماره اتاق " +TxtOtag.Text + " ", newFont("zar", 14, FontStyle.Bold, GraphicsUnit.Point),Color.Black, true);
returntrue;
}

privatevoid CboMarkaz_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
SendKeys.Send("{TAB}");
}

}
}


كمكي كه از دوستان ميخواستم اينه كه چطور ميتونم شهرستان و واحد استفاده كننده و اتاق را در داخل يك Border نشان بدهم(يعني وقتي ميخواهم Header صفحه را چاپ كنم در داخل يك Border‌چاپ كنم:گریه:).

hallaji
سه شنبه 28 خرداد 1387, 21:09 عصر
اگه فايل DataGridViewPrinter.cs هم نياز بود بگين تا اونم بزارم.