01、dataview->datatable->dataset->rptprint
DataTable MTTable = new DataTable()
MTTable = (DataTable)DataGridView2.DataSource;
MTTable.TableName = "MTType";
ds.Tables.Add(MTTable);
ds.WriteXml("D:/MTType09.Xml", XmlWriteMode.WriteSchema);
ds.WriteXml("D:/MTType03.Xml", XmlWriteMode.WriteSchema);
// PubFun.ViewReport(ds, "MTType");*/
MTTable.WriteXml(Application.StartupPath + @"\Temp\MTType.xml", XmlWriteMode.WriteSchema);
ReportDocument rd = new ReportDocument();
if (!Directory.Exists(Application.StartupPath + @"\Temp\"))
{
Directory.CreateDirectory(Application.StartupPath + @"\Temp\");
}
File.Copy(PubFun.GetServersPath() + @"\CustomReports\" + "MTType" + ".rpt", Application.StartupPath + @"\Temp\" + "MTType" + ".rpt", true);
for (int i = 0; i < 100; i++)
{
Application.DoEvents();
System.Threading.Thread.Sleep(30);
}
rd.Load(Application.StartupPath + @"\Temp\" + "MTType" + ".rpt");
rd.SetDataSource(MTTable);
ReportForm p = new ReportForm();
p.ShowReport(rd, "打印");
02、 datatable 实现dataview间行添加---(保留原数据类型)
DataTable dt = new DataTable();
//load
dt.Columns.Add("订仓号", System.Type.GetType("System.String"));
dt.Columns.Add("货柜序号", System.Type.GetType("System.String"));
dt.Columns.Add("货柜号码", System.Type.GetType("System.String"));
dt.Columns.Add("品名及规格", System.Type.GetType("System.String"));
dt.Columns.Add("出货数量", System.Type.GetType("System.Int32"));
dt.Columns.Add("D1", System.Type.GetType("System.String"));
dt.Columns.Add("件数", System.Type.GetType("System.Int32"));
dt.Columns.Add("D2", System.Type.GetType("System.String"));
dt.Columns.Add("净重", System.Type.GetType("System.Int32"));
dt.Columns.Add("D3", System.Type.GetType("System.String"));
dt.Columns.Add("毛重", System.Type.GetType("System.Int32"));
dt.Columns.Add("D4", System.Type.GetType("System.String"));
dt.Columns.Add("申报日期", System.Type.GetType("System.DateTime"));
dt.Columns.Add("编号", System.Type.GetType("System.String"));
//事件
DataRow dr = dt.NewRow();
// DataGridView2.DataSource = dt
// DataGridViewSelectedRowsAddToOtherDGV(DataGridView1, DataGridView2, dataTable);
foreach (DataGridViewRow dgvRow in DataGridView1.SelectedRows)
{
dr["订仓号"] = dgvRow.Cells["订仓号"].Value;
dr["货柜序号"] = dgvRow.Cells["货柜序号"].Value;
dr["货柜号码"] = dgvRow.Cells["货柜号码"].Value;
dr["品名及规格"] = dgvRow.Cells["品名及规格"].Value;
dr["出货数量"] = dgvRow.Cells["出货数量"].Value;
dr["D1"] = dgvRow.Cells["D1"].Value;
dr["件数"] = dgvRow.Cells["件数"].Value;
dr["D2"] = dgvRow.Cells["D1"].Value;
dr["净重"] = dgvRow.Cells["净重"].Value;
dr["D3"] = dgvRow.Cells["D2"].Value;
dr["毛重"] = dgvRow.Cells["毛重"].Value;
dr["D4"] = dgvRow.Cells["D3"].Value;
dr["申报日期"] = dgvRow.Cells["申报日期"].Value;
dr["编号"] = dgvRow.Cells["编号"].Value;
dt.Rows.Add(dr);
}
this.DataGridView2.DataSource = dt;
private void Delete_Click(object sender, EventArgs e)
{
DataGridView2.Rows.Remove(DataGridView2.SelectedRows[0]);
}
03-VB版
----00000000000000000000000000000000003
'更新打印编号
Dim SqlNO As StringBuilder = New StringBuilder("")
SqlNO.AppendLine("IF EXISTS (select Date01 from Ice.UD27 WHERE Date01 = CONVERT(CHAR(10), GETDATE(),120)) ")
SqlNO.AppendLine("begin")
SqlNO.AppendLine("UPDATE Ice.UD27 SET Key1 = Key1 +1 WHERE Key1<>'' AND Date01 =CONVERT(CHAR(10), GETDATE(),120) ")
SqlNO.AppendLine("END ")
SqlNO.AppendLine("ELSE ")
SqlNO.AppendLine("INSERT INTO Ice.UD27 (Key1,Key2,Date01) VALUES(000,N'码头',CONVERT(CHAR(10), GETDATE(),120))")
db.ExecuteSql(SqlNO.ToString)
'打印报表
Try
Dim mysql As StringBuilder = New StringBuilder("")
mysql.AppendLine("select e.ShortChar06 订仓号,e.Key1+'-'+a.key2 as [货柜序号],'' as [货柜号码],a.Character02+ '/'+b.ShortChar06 as [品名及规格] ")
mysql.AppendLine(" ,cast(a.Number04 as int) [出货数量] ,CASE WHEN f.UOMCode ='PC'or f.UOMCode ='KG' THEN N'个' ELSE f.UOMDesc end [D1] ")
mysql.AppendLine(" ,cast(CASE WHEN a.Number10<>0 THEN a.Number10 ELSE a.Number09 END as int) [件数], N'箱' [D2] ")
mysql.AppendLine(",cast(CASE WHEN a.Number36<>0 OR a.CheckBox04=1 THEN a.Number36 ELSE c.NetWeight * a.Number04 END as int) [净重], 'KG' D3 ")
mysql.AppendLine(",cast(d.Number18 as int) 毛重, 'KG' D4")
mysql.AppendLine(" ,d.Date12 申报日期,CONVERT(varchar,GETDATE(),112)+g.key1 [编号] ")
mysql.AppendLine(" from UD28 a ")
mysql.AppendLine(" inner join UD104a e on a.Key1 = e.Key1 and a.company=e.company AND A.KEY2=e.CHILDKEY1 ")
mysql.AppendLine("left join part c with(nolock) on a.shortchar02 = c.partnum and c.company=a.company ")
mysql.AppendLine("left join erp.UOM f on c.company = f.company and c.ium =f. UOMCode ")
mysql.AppendLine("left JOIN UD104 d WITH(NOLOCK) ON a.Key1=d.Key1 and d.company='NSZ' ")
mysql.AppendLine(" left join ud103a b with(nolock) on a.shortchar14=b.ChildKey1 and a.shortchar07=b.ChildKey3 and b.company = 'NSZ' ")
mysql.AppendLine("left join ice.ud27 g on g.Date01 = CONVERT(varchar,GETDATE(),112) and g.Key2 = N'码头' ")
' where d.Key1='GNU000456'
'If fac_cust_search_id_txt.Text <> "" Then
'mysql.AppendLine(" where d.Key1='" + fac_cust_search_id_txt.Text + "' ")
'end if
mysql.AppendLine("order by e.ShortChar06 desc,e.Key1 desc")
Dim dtMT As DataTable = db.ExecuteDt(mysql.ToString)
If oTrans.Session.UserID ="19862" Then Epicor.MIS.Pub.PubFun.MsgShow("提示",mysql.ToString)
'msgbox(dtfp.rows.count)
'dtFP.Merge(FP)
Dim ds As DataSet = New DataSet
dtMT.TableName = "MTType"
ds.Tables.Add(dtMT)
ds.WriteXml("D:\MTType022.Xml",XmlWriteMode.WriteSchema)
'msgbox(ds.tables("MTType02").Rows.Count)
PubFun.ViewReport(ds, "MTType")
Catch ex As Exception
PubFun.MsgShow(ex.Message,System.Reflection.MethodBase.GetCurrentMethod)
End Try