Probléme pour exporter les données BD vers word sous format tableau
Bonjour ,
Je suis devant un probléme plutot simple si j'avais utilisé crystal report sur visual studio mais du moment que j'utilise la version 2012 de VS crytal report est devenue payant bref , mon besoin c'est que j'ai une requéte que je veux envoyer vers un document word sous format tableay sachant que je dois mettre avant le tableau une entéte et aprés le tableau le footer .
Aprés une recherche sur internet j'ai trouvé par mal de librairie qui font l'exportation d'une datagrid vers word mais le probléme je n'arrive pas à mettre du text avec
voila un bout de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Spire.DataExport.RTF.RTFExport rtfExport = new Spire.DataExport.RTF.RTFExport();
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Word Documents (*.doc)|*.doc";
sfd.FileName = "export.doc";
if (sfd.ShowDialog() == DialogResult.OK)
{
rtfExport.DataSource = Spire.DataExport.Common.ExportSource.DataTable;
rtfExport.DataTable = this.dataGridView1.DataSource as DataTable;
// rtfExport.ActionAfterExport = Spire.DataExport.Common.ActionType.OpenView;
RTFStyle rtfStyle = new RTFStyle();
rtfExport.RTFOptions.TitleStyle.Alignment = Spire.DataExport.RTF.RtfTextAlignment.Center;
rtfStyle.FontColor = Color.Blue;
rtfStyle.BackgroundColor = Color.LightGreen;
rtfExport.RTFOptions.DataStyle = rtfStyle;
rtfExport.FileName = sfd.FileName;
rtfExport.SaveToFile();
Word.Application oWord = new Word.Application();
oWord.Visible = true;
Word.Document oDoc = oWord.Documents.Open(sfd.FileName);
Word.Paragraph oPara1 = oDoc.Content.Paragraphs.Add();
Word.Paragraph oPara2 = oDoc.Content.Paragraphs.Add();
oPara1.Format.SpaceAfter = 10;
oPara1.Range.Text = "RIFAS DISTRIBUTION " + Environment.NewLine + " Adresse: AVENUE MOULAY ABDERAHMAN ET HASSNE THABIT" + Environment.NewLine + " RESIDENCE RABWA MAGASIN 1" + Environment.NewLine + " CP Ville: 14000 KENITRA" + Environment.NewLine + " Téléphone:0537364611 / Fax: 0537366883" + Environment.NewLine + " Intitulé: DEVIS";
oPara1.Range.InsertParagraph();
oPara2.Format.SpaceAfter = 10;
oPara2.Range.Text = "Nous restons à votre disposition pour toute information complémentaire." + Environment.NewLine + "Cordialement," + Environment.NewLine + "Si ce devis vous convient, veuillez nous le retourner signé précédé de la mention :" + Environment.NewLine + "BON POUR ACCORD ET EXECUTION DU DEVIS" + Environment.NewLine + "Date : Signature : " + Environment.NewLine + "Validité du devis : 3 mois ";
oPara2.Range.InsertParagraph();
} |
Merci de votre aide
Probléme pour exporter les données BD vers word sous format tableau
c'est bon j'ai pu résoudre le problème tt seul comme un grand en utilisant crystal report ci joint le code pour les gens qui sont intéressés
j'ai creer une form1 ou j'ai mis le composant "crystal report viewer " et un fichier crystal report.rpt ce dernier j'ai glissé dessus tous les champs que je voulais afficher dans le crystal report viewer ce code on le met dans la form load de la form1
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
private void Form1_Load_1(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(Global.cn);
con.Open();
openForm();
SqlCommand com = new SqlCommand("Select qte,pu_net,montant_ttc,ref_produit FROM ligne_devis where num_devis='" + myValue + "'", con);
com.CommandType = CommandType.Text;
SqlDataAdapter sdt = new SqlDataAdapter(com);
DataTable ds = new DataTable();
sdt.Fill(ds);
CrystalReport1 crp = new CrystalReport1();
crp.SetDataSource(ds);
crystalReportViewer1.ReportSource = crp;
crystalReportViewer1.Refresh();
con.Close();
} |
Mais il reste que j'ai un problème myValue qui est dans ma requéte c'est le num_devis venant d'une form Devis alors j'ai mis la variable num_devis en public pour qu'elle soit visible en dehors de la classe et j'ai instancié la forme Devis dans la forme form1 pour faire appel à la variable num_devis or quand j'instancie la variable ce mets en null voila un bout de code :
Form1
Code:
1 2 3 4 5 6
| private void openForm()
{
mondevis = new Devis();
mondevis.Show();
myValue = mondevis.myValue() ;
} |
Form Devis
public string myValue()
{ return tb_num_devis.Text; }
Merci de votre aide