如何根据具体情况从数据表中选择特定列 [英] how to select particular columns from the data table based on specific condition
本文介绍了如何根据具体情况从数据表中选择特定列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
先生,
贝娄是我生成pdf报告的代码。在我的ff_fillAddress();包括办公地址和住址。我想根据Add_Type =office等条件在我的pdf报告中单独显示这些地址。如果有人知道答案,请帮我找到解决方案
sir,
bellow is my code for generating pdf report.here in my ff_fillAddress(); includes office address and residence address.i want to display these address separately in my pdf report based on condition like Add_Type="office".if any one knows the answer please help me to find the solution
public PdfPTable PdfPTable_Employeeaddressdetails(Document document, PdfWriter writer,string letter)
{
DataTable dt = ff_fillAddress();
////string O = dt.Rows[0]["Add_Type"].ToString();
System.Data.DataView view = new System.Data.DataView(dt);
System.Data.DataTable selected = view.ToTable("Selected", false, dt.Columns[10].ColumnName.ToString(), dt.Columns[3].ColumnName.ToString(), dt.Columns[4].ColumnName.ToString(), dt.Columns[5].ColumnName.ToString(), dt.Columns[6].ColumnName.ToString(), dt.Columns[7].ColumnName.ToString(), dt.Columns[8].ColumnName.ToString(), dt.Columns[9].ColumnName.ToString());
iTextSharp.text.pdf.PdfPTable PdfTableN = new iTextSharp.text.pdf.PdfPTable(selected.Columns.Count);
PdfTableN.WidthPercentage = 90f;
iTextSharp.text.pdf.PdfPCell pcel1 = new PdfPCell(new Phrase(new Chunk("Address Type", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address1", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address2", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address3", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("PO Box", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Phone", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Mobile", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Email", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
for (int rowss = 0; rowss < selected.Rows.Count; rowss++)
{
for (int columnn = 0; columnn < selected.Columns.Count; columnn++)
{
iTextSharp.text.pdf.PdfPCell pcel2 = new PdfPCell();
//if (selected.Rows[rowss][columnn].ToString() == letter)
//{
//pcel2 = new PdfPCell(new Phrase(mode, textfont1));
//}
//else
//{
pcel2 = new PdfPCell(new Phrase(new Chunk(selected.Rows[rowss][columnn].ToString(), textfont1)));
//}
pcel2.HorizontalAlignment = 1;
pcel2.Border = 0;
PdfTableN.AddCell(pcel2);
}
}
if (selected.Rows.Count != 0)
{
document.Add(PdfTableN);
}
else
{
Paragraph err = new Paragraph("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t NA");
document.Add(err);
}
return PdfTableN;
}<pre lang="c#">
推荐答案
hiiiii
i在创建pdf报告时使用此代码,你只需要填充数据表中的数据,就可以轻松复制数据表数据到pdf文件,这里我创建了表格,以及pdf文件中写的数据表中的所有数据,我希望这对你有帮助,回复我
hiiiii
i used this code while creating pdf report , u just need to fill data in datatable ,it is so easy to copy datatable data to pdf file ,here i created table , and all data from datatable written on pdf file , i hope this will helpful for u ,reply me
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.Data.Odbc;
//using PdfFileWriter;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp;
using iTextSharp.xmp;
using System.Diagnostics;
using System.IO;
namespace ActivityDetails
{
public partial class ProjectwiseReport : Form
{
public ProjectwiseReport()
{
InitializeComponent();
}
OdbcConnection con = new OdbcConnection(Globaldata.ConnectionString);
OdbcCommand cmd = new OdbcCommand();
private void ProjectwiseReport_Load(object sender, EventArgs e)
{
con.Open();
}
private void CreatePdf_Click(object sender, EventArgs e)
{
try
{
Globaldata.SQLQuery = "Select * from ProjectMaster";
DataSet ds = new DataSet();
DataTable datatable = ds.Tables.Add("Table");
cmd.CommandText = Globaldata.SQLQuery;
OdbcDataAdapter da = new OdbcDataAdapter(Globaldata.SQLQuery, con);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
Document document = new Document();
PdfWriter.GetInstance(document, new FileStream("e:\\abcd.pdf", FileMode.Create)); //???????????
document.Open();
PdfPTable table = new PdfPTable(datatable.Columns.Count);
for (int i = 0; i < datatable.Rows.Count; i++)
{
for (int j = 0; j < datatable.Columns.Count; j++)
{
table.AddCell(new Phrase(datatable.Rows[i][j].ToString()));
}
}
document.Add(table); //??table
document.Close();
MessageBox.Show("pdf created successfully..");
Process p = new Process();
p.StartInfo = new ProcessStartInfo("e:\\abcd.pdf");
p.Start();
}
catch (DocumentException ex)
{
MessageBox.Show("error...");
}
}
}
}
public PdfPTable PdfPTable_Employeeaddressdetails(Document document, PdfWriter writer,string mode,string letter)
{
DataTable dtresult = ff_fillAddress();
var result = from r in dtresult.AsEnumerable()
where r.Field<string>("Add_Type") == letter
select r;
DataTable dt = result.CopyToDataTable();
System.Data.DataView view = new System.Data.DataView(dt);
System.Data.DataTable selected = view.ToTable("Selected", false, dt.Columns[10].ColumnName.ToString(), dt.Columns[3].ColumnName.ToString(), dt.Columns[4].ColumnName.ToString(), dt.Columns[5].ColumnName.ToString(), dt.Columns[6].ColumnName.ToString(), dt.Columns[7].ColumnName.ToString(), dt.Columns[8].ColumnName.ToString(), dt.Columns[9].ColumnName.ToString());
iTextSharp.text.pdf.PdfPTable PdfTableN = new iTextSharp.text.pdf.PdfPTable(selected.Columns.Count);
PdfTableN.WidthPercentage = 90f;
iTextSharp.text.pdf.PdfPCell pcel1 = new PdfPCell(new Phrase(new Chunk("Address Type", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address1", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address2", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Address3", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("PO Box", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Phone", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Mobile", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
pcel1 = new PdfPCell(new Phrase(new Chunk("Email", textfont)));
pcel1.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
pcel1.HorizontalAlignment = 1;
pcel1.Border = 0;
PdfTableN.AddCell(pcel1);
for (int rowss = 0; rowss < selected.Rows.Count; rowss++)
{
for (int columnn = 0; columnn < selected.Columns.Count; columnn++)
{
iTextSharp.text.pdf.PdfPCell pcel2 = new PdfPCell();
if (selected.Rows[rowss][columnn].ToString() == letter)
{
pcel2 = new PdfPCell(new Phrase(mode, textfont1));
}
else
{
pcel2 = new PdfPCell(new Phrase(new Chunk(selected.Rows[rowss][columnn].ToString(), textfont1)));
}
pcel2.HorizontalAlignment = 1;
pcel2.Border = 0;
PdfTableN.AddCell(pcel2);
}
}
if (selected.Rows.Count != 0)
{
document.Add(PdfTableN);
}
else
{
Paragraph err = new Paragraph("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t NA");
document.Add(err);
}
return PdfTableN;
}
PdfPTable_Employeeaddressdetails(pdfDoc, writer,"Office","O");
这篇关于如何根据具体情况从数据表中选择特定列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文