GERANDO UM RELATORIO PARA WORD
Galera to com um problema..... to fazendo que com um Datagredview busque por data as comandas do meu programa...
e tem um botão de impressão que faço com que ele gere um relatorio no word porém ele só gera sempre a primeira linha do datagrid na imagem a baixo estou apenas fazendo a pesquisa
fiz apenas um teste com as 2 primeiras celulas do datagrid pra ver se ele dava certo ;s ta aqui o código que usei
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
Dim oPara3 As Word.Paragraph
[ô]Start Word and open the document template.
oWord = CreateObject([Ô]Word.Application[Ô])
oWord.Visible = True
oDoc = oWord.Documents.Add
[ô]Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
oPara1.Range.Text = [Ô]Heading 1[Ô]
oPara1.Range.Font.Bold = True
oPara1.Format.SpaceAfter = 24 [ô]24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter()
[ô]Insert a paragraph at the end of the document.
[ô]** \endofdoc is a predefined bookmark.
oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range)
oPara2.Range.Text = [Ô]Heading 2[Ô]
oPara2.Format.SpaceAfter = 6
oPara2.Range.InsertParagraphAfter()
[ô]Insert another paragraph.
oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range)
oPara3.Range.Text = [Ô]This is a sentence of normal text. Now here is a table:[Ô]
oPara3.Range.Font.Bold = False
oPara3.Format.SpaceAfter = 24
oPara3.Range.InsertParagraphAfter()
[txt-color=#007100]Aqui é onde ele taca pro word as cosias que tem na grid porém ele taca apenas a 1 linha do grid
[/txt-color]
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range, 3, 5)
oTable.Range.ParagraphFormat.SpaceAfter = 6
oTable.Cell(1, 1).Range.Text = DataGridViewpdata.CurrentRow.Cells(1).Value.ToString
oTable.Cell(1, 2).Range.Text = DataGridViewpdata.CurrentRow.Cells(2).Value.ToString
oTable.Rows.Item(1).Range.Font.Bold = True
oTable.Rows.Item(1).Range.Font.Italic = True
[ô]All done. Close this form.
Me.Close()
Se alguiem puder me ajudar com esse problema ou ajudar a resolver de outra maneira agradeço
e tem um botão de impressão que faço com que ele gere um relatorio no word porém ele só gera sempre a primeira linha do datagrid na imagem a baixo estou apenas fazendo a pesquisa
fiz apenas um teste com as 2 primeiras celulas do datagrid pra ver se ele dava certo ;s ta aqui o código que usei
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
Dim oPara3 As Word.Paragraph
[ô]Start Word and open the document template.
oWord = CreateObject([Ô]Word.Application[Ô])
oWord.Visible = True
oDoc = oWord.Documents.Add
[ô]Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
oPara1.Range.Text = [Ô]Heading 1[Ô]
oPara1.Range.Font.Bold = True
oPara1.Format.SpaceAfter = 24 [ô]24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter()
[ô]Insert a paragraph at the end of the document.
[ô]** \endofdoc is a predefined bookmark.
oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range)
oPara2.Range.Text = [Ô]Heading 2[Ô]
oPara2.Format.SpaceAfter = 6
oPara2.Range.InsertParagraphAfter()
[ô]Insert another paragraph.
oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range)
oPara3.Range.Text = [Ô]This is a sentence of normal text. Now here is a table:[Ô]
oPara3.Range.Font.Bold = False
oPara3.Format.SpaceAfter = 24
oPara3.Range.InsertParagraphAfter()
[txt-color=#007100]Aqui é onde ele taca pro word as cosias que tem na grid porém ele taca apenas a 1 linha do grid
[/txt-color]
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item([Ô]\endofdoc[Ô]).Range, 3, 5)
oTable.Range.ParagraphFormat.SpaceAfter = 6
oTable.Cell(1, 1).Range.Text = DataGridViewpdata.CurrentRow.Cells(1).Value.ToString
oTable.Cell(1, 2).Range.Text = DataGridViewpdata.CurrentRow.Cells(2).Value.ToString
oTable.Rows.Item(1).Range.Font.Bold = True
oTable.Rows.Item(1).Range.Font.Italic = True
[ô]All done. Close this form.
Me.Close()
Se alguiem puder me ajudar com esse problema ou ajudar a resolver de outra maneira agradeço
E assim que fica quando gero o relatório
só ta aparecendo as 2 primeiras linhas pq nao terminei de colocar as linhas do datagrid.. e é apenas um teste ;s
só ta aparecendo as 2 primeiras linhas pq nao terminei de colocar as linhas do datagrid.. e é apenas um teste ;s
Citação::
E assim que fica quando gero o relatório
só ta aparecendo as 2 primeiras linhas pq nao terminei de colocar as linhas do datagrid.. e é apenas um teste ;s
OBS : ta aparecendo as 2 primeiras colunas
Faça seu login para responder