|
|
|
สั่ง print จาก DataGridView ลงบนซองจดหมาย ไปต่อไม่ได้ครับ... |
|
|
|
|
|
|
|
ไปต่อไม่ได้ครับ หลายวันแล้วครับ รบกวนผู้รู้ด้วยครับ
ใช้ C# และ linq บน vs2010 ครับ
โปรแกรมคือ....
เรียกข้อมูลขึ้นมาแสดงจากสองตาราง
แล้ว เลือก ว่าจะ Print จากแถวไหน
หากเป็นแท็บสีเขียวแสดงว่า print
กดปุ่ม พิมพ์ที่เลือก แล้ว ข้อความก็ถูกพิมพ์ลงบน ซองจดหมายครับ
(เอาเพียงฟิว ชื่อ สกุล และที่อยู่ รหัสไปรษณ์ เท่านั้นครับ)
รบกวนด้วยนะครับ ลองหลายท่า หลายวิชา
อาจารย์ก็หลายท่านแล้วในเว็บ ขออภัยไปต่อไม่ได้จริงๆ ครับ
..................................................................................................................
...................................................................................................................
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
namespace WindowsFormsApplication1
{
public partial class Form8 : Form
{
public Form8()
{
InitializeComponent();
}
DataClasses1DataContext db = new DataClasses1DataContext();
private void Form8_Load(object sender, EventArgs e)
{
var ps = from x in db.b_totals
from y in db.b_members
where x.Total_s == y.id_s
&& x.Total_k == y.id_k
orderby x.Total_name
select new
{
ปกติ = x.Total_s,
คู่สมรส = x.Total_k,
ชื่อ = x.Total_name,
สกุล = y.surname,
สถานะ = y.status1,
ยอดเงิน = (new string[] { "S", "M" }).Contains(y.status1) ? (y.status1 == "S" ?
Convert.ToInt32(x.Total_Total_s) : Convert.ToInt32(x.Total_Total_m)) : 0,
ที่อยู่ = y.address + y.amphur + y.country,
รหัส = y.code
};
dataGridView1.DataSource = ps.ToList();
label2.Text = dataGridView1.RowCount.ToString();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value.ToString() == "1")
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.YellowGreen;
else
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = dataGridView1.DefaultCellStyle.BackColor;
}
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
private void Form8_KeyDown(object sender, KeyEventArgs e)
{
}
}
}
Tag : .NET, LINQ, C#
|
ประวัติการแก้ไข 2012-09-06 12:26:10 2012-09-06 12:28:47 2012-09-06 12:30:09 2012-09-06 12:32:59 2012-09-06 12:33:49 2012-09-06 12:35:20
|
|
|
|
|
Date :
2012-09-06 12:24:36 |
By :
โบโน |
View :
1603 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
private void buttonPrint_Click(object sender, EventArgs e)
{
// query ข้อมูลที่เลือก
List<DataGridViewRow> selectedData = (from drvRow in dataGridView1.Rows.Cast<DataGridViewRow>()
where (bool)drvRow.Cells["dataGridViewCheckBoxColumn1"].Value == true
select drvRow).ToList();
// วนลูปเอาไปใช้
foreach (DataGridViewRow drvRow in selectedData)
{
Type type = drvRow.DataBoundItem.GetType();
string Name = (string)type.GetProperty("ชื่อ").GetValue(drvRow.DataBoundItem, null);
string SurName = (string)type.GetProperty("สกุล").GetValue(drvRow.DataBoundItem, null);
string Address = (string)type.GetProperty("ที่อยู่").GetValue(drvRow.DataBoundItem, null);
string ZipCode = (string)type.GetProperty("รหัสไปรษณ์").GetValue(drvRow.DataBoundItem, null);
}
}
|
|
|
|
|
Date :
2012-09-06 12:57:07 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณพี่ข้างบนมากครับ (น่าจะใช้ชื่อหน่อยนะครับ หรืออีเมลก็ได้ เผื่ออยากตอบแทนครับ)
ผมงมๆลองดูต่อ ก็ยังไม่ได้ครับ
รบกวนท่านพี่ ต่ออีกนิดครับ
ช่วง private void printDocument1_PrintPage ล่างสุด
ไม่ทราบว่ารับค่ามาอย่างไร แล้วเขียนออกอย่างไร ครับ
ขอบคุณมากครับ
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
// query ข้อมูลที่เลือก
List<DataGridViewRow> selectedData = (from drvRow in dataGridView1.Rows.Cast<DataGridViewRow>()
where (bool)drvRow.Cells["dataGridViewCheckBoxColumn1"].Value == true
select drvRow).ToList();
// วนลูปเอาไปใช้
foreach (DataGridViewRow drvRow in selectedData)
{
Type type = drvRow.DataBoundItem.GetType();
string Name = (string)type.GetProperty("ชื่อ").GetValue(drvRow.DataBoundItem, null);
string SurName = (string)type.GetProperty("สกุล").GetValue(drvRow.DataBoundItem, null);
string Address = (string)type.GetProperty("ที่อยู่").GetValue(drvRow.DataBoundItem, null);
string ZipCode = (string)type.GetProperty("รหัสไปรษณ์").GetValue(drvRow.DataBoundItem, null);
}
printDocument1.Print();
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
}
|
ประวัติการแก้ไข 2012-09-06 14:51:07 2012-09-06 14:52:40 2012-09-06 15:33:43 2012-09-06 16:01:56 2012-09-06 16:02:33
|
|
|
|
Date :
2012-09-06 14:49:57 |
By :
โบโน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เชื่อเขาเลยอ่ะ บางทีผมก็งงว่าเขางงอะไรเหมือนกันนะ
ที่เขียนให้ คือข้อมูลที่เราเลือกไว้ใน datagridview
จากนั้นก็เอาข้อมูลในแต่ละ row ที่เลือกไปใช้ต่อ แค่นี้เอง
Code (C#)
private void buttonPrint_Click(object sender, EventArgs e)
{
// query ข้อมูลที่เลือก
List<DataGridViewRow> selectedData = (from drvRow in dataGridView1.Rows.Cast<DataGridViewRow>()
where (bool)drvRow.Cells["dataGridViewCheckBoxColumn1"].Value == true
select drvRow).ToList();
// วนลูปเอาไปใช้ (ให้เขียนต่อเองจากนี้ ไม่ได้ให้โค้ดทั้งหมด แค่เรียก dataitem จาก datagridview ให้)
foreach (DataGridViewRow drvRow in selectedData)
{
Type type = drvRow.DataBoundItem.GetType();
string Name = (string)type.GetProperty("ชื่อ").GetValue(drvRow.DataBoundItem, null);
string SurName = (string)type.GetProperty("สกุล").GetValue(drvRow.DataBoundItem, null);
string Address = (string)type.GetProperty("ที่อยู่").GetValue(drvRow.DataBoundItem, null);
string ZipCode = (string)type.GetProperty("รหัสไปรษณ์").GetValue(drvRow.DataBoundItem, null);
// do some thing
// เอา SurName ไปใช้
// เอา Name ไปใช้
// เอา Address ไปใช้
// เอา ZipCode ไปใช้
}
}
|
|
|
|
|
Date :
2012-09-07 08:20:55 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆ อีกครั้งครับ
|
ประวัติการแก้ไข 2012-09-07 08:51:26
|
|
|
|
Date :
2012-09-07 08:49:16 |
By :
โบโน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษนะครับ ผมมันแย่เองครับ 1 อาทิตย์แล้ว ไม่ได้อะไรต่อเลย...
ลองแล้ว แต่ มันทำไม่ได้จริงๆ ครับ
มันนึกไม่ออกเลยครับว่า จะรับค่ามายังไง
แล้วสั่งฟริ๊นต่อยังไง หลังจากที่เรา select แล้ว
ขอโทษจริงๆ ครับที่ทำให้ไม่พอใจครับ
...ต่อว่าได้เต็มที่ครับ อย่างน้อยงานที่ทำจะได้เดินหน้าต่อไป
ขอบคุณมากๆทุกคำชี้แนะครับ ช่วยผมด้วยครับ!!
|
ประวัติการแก้ไข 2012-09-11 10:26:10
|
|
|
|
Date :
2012-09-11 10:24:49 |
By :
โบโน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาข้อมูลที่ได้มา มา create pdf ได้มะ
จัดหน้าดีๆ ให้พอดีซอง
จากนั้นก็วนลูปอีกทีเพื่อปริ้น pdf
|
|
|
|
|
Date :
2012-09-11 12:57:23 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|