Apanhando de um código
05/07/2012
0
Peguei hj um sistema para dar manutenção e quando vi ele foi escrito em VB. Bem, eu desenvolver outro em C#, mas preciso fazer uma pequena alteração e estou meio confuso. A alteração é o seguinte. O programa ele pega uns arquivos em docx, e substitui alguns textos, precedidos de @. Acontece que o programador amarrou para apenas um cliente com cod. 61 e a view no MySql também está amarrada para esse cliente. Estou postando o código só para pedir ajuda aos colegas de como alterar para que ele pegue outros clientes também.
Cod. Botão Gerar:
Private Sub Cls_Gera_Arquivo_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cls_Gera_Arquivo_Button.Click
Dim Cultura As System.Globalization.CultureInfo = New System.Globalization.CultureInfo(pt-BR)
Dim Formato As System.Globalization.DateTimeFormatInfo = Cultura.DateTimeFormat
Dim Dia As Integer = DateTime.Now.Day
Dim Ano As Integer = DateTime.Now.Year
Dim Contador As Integer = 1
Dim Mes As String = cultura.TextInfo.ToTitleCase(formato.GetMonthName(DateTime.Now.Month))
Dim DiadaSemana As String = cultura.TextInfo.ToTitleCase(formato.GetDayName(DateTime.Now.DayOfWeek))
Dim dataporExtenso As String = dia & de & Mes & de & ano
Dim StringConexao As MySqlConnection
StringConexao = New MySqlConnection
StringConexao.ConnectionString = server=192.168.0.104;user id=root;password=rtdpc;database=cls
StringConexao.Open()
Try
If CDate(PCP_DataMaskedTextBox.Text) > CDate(MaskedTextBox1.Text) Then
MsgBox(Data final não pode ser menor que a inicial!, MsgBoxStyle.Information, Cls)
GoTo Final
End If
Copiando Arquivo Original
Dim ArquivoOriginal As String
Dim DiretorioDestino As String
Dim Arquivos As FileInfo
Dim MsReader As MySql.Data.MySqlClient.MySqlDataReader
Dim MyCommand As New MySqlCommand(Select * From Cls.view_multicobra_docs V Where DtBaixa Between & Format(CDate(PCP_DataMaskedTextBox.Text), yyyy-MM-dd) & And & Format(CDate(MaskedTextBox1.Text), yyyy-MM-dd) & ;, StringConexao)
MsReader = MyCommand.ExecuteReader
If MsReader.HasRows = False Then
MsgBox(Sem Imagens nesse período!, MsgBoxStyle.Information, Cls)
GoTo Final
End If
While MsReader.Read
ObjWord = Nothing
ArquivoOriginal = C:\Docs_Word\Not_Cod_61_01.docx
DiretorioDestino = C:\Docs_Word\Not_Cod_61_Bck & Contador & .docx
If Directory.Exists(DiretorioDestino) Then
Directory.Delete(DiretorioDestino)
End If
FileCopy(ArquivoOriginal, DiretorioDestino)
ObjWord = CreateObject(Word.Application)
ObjWord.Documents.Open(DiretorioDestino)
SubstituiVariavel(@Destinatario , & MsReader(0) & )
SubstituiVariavel(, )
SubstituiVariavel(@Data , & São Paulo, & dataporExtenso & )
SubstituiVariavel(, )
SubstituiVariavel(@Endereco , & MsReader(1) & )
SubstituiVariavel(, )
SubstituiVariavel(@Bairro , & MsReader(2) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cep , & MsReader(3) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cidade , & MsReader(4) & )
SubstituiVariavel(, )
SubstituiVariavel(@Uf , & MsReader(5) & )
SubstituiVariavel(, )
SubstituiVariavel(@Nome_Banco , & MsReader(6) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cnpj_Banco , & MsReader(7) & )
SubstituiVariavel(, )
SubstituiVariavel(@Numero_Contrato , & MsReader(8) & )
SubstituiVariavel(, )
SubstituiVariavel(@Parcela , & MsReader(9) & )
SubstituiVariavel(, )
SubstituiVariavel(@Vencimento , & MsReader(10) & )
SubstituiVariavel(, )
SubstituiVariavel(@Valor , & MsReader(11) & ( & NumeroToExtenso(MsReader(11)) & ) & )
SubstituiVariavel(, )
SubstituiVariavel(@Endereco_Escrit , & MsReader(12) & )
SubstituiVariavel(, )
SubstituiVariavel(@Telefone_Escrit , & MsReader(13) & )
SubstituiVariavel(, )
SubstituiVariavel(@Numero_Objeto , & MsReader(17) & MsReader(14) & BR & )
SubstituiVariavel(, )
SubstituiVariavel(@Data_Envio , & MsReader(15) & )
SubstituiVariavel(, )
SubstituiVariavel(@Destinatario , & MsReader(0) & )
SubstituiVariavel(, )
SubstituiVariavel(@Ocorrencia , & MsReader(16) & )
SubstituiVariavel(, )
SubstituiVariavel(@Registro , & MsReader(18) & )
Registro = MsReader(18)
ObjWord.Run(ExportaPdf, & MsReader(18) & )
ObjWord.ActiveDocument.Close()
ObjWord.Quit()
ObjWord = Nothing
Contador = Contador
Thread.Sleep(2000)
End While
Final:
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Cls documentos)
Finally
StringConexao.Close()
MsgBox(Encerrado, MsgBoxStyle.Critical, Cls documentos)
End Try
End Sub
Código do Método SubstituiVariavel.
Private Sub SubstituiVariavel(ByVal Achar As String, ByVal Substituir As String)
With ObjWord.Selection.Find
.Text = Achar.ToString
.Replacement.Text = Substituir.ToString
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute = True
ObjWord.Selection.Select()
System.Windows.Forms.Clipboard.SetDataObject(Substituir)
ObjWord.Selection.Paste()
End While
End With
End Sub
Cod. Botão Gerar:
Private Sub Cls_Gera_Arquivo_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cls_Gera_Arquivo_Button.Click
Dim Cultura As System.Globalization.CultureInfo = New System.Globalization.CultureInfo(pt-BR)
Dim Formato As System.Globalization.DateTimeFormatInfo = Cultura.DateTimeFormat
Dim Dia As Integer = DateTime.Now.Day
Dim Ano As Integer = DateTime.Now.Year
Dim Contador As Integer = 1
Dim Mes As String = cultura.TextInfo.ToTitleCase(formato.GetMonthName(DateTime.Now.Month))
Dim DiadaSemana As String = cultura.TextInfo.ToTitleCase(formato.GetDayName(DateTime.Now.DayOfWeek))
Dim dataporExtenso As String = dia & de & Mes & de & ano
Dim StringConexao As MySqlConnection
StringConexao = New MySqlConnection
StringConexao.ConnectionString = server=192.168.0.104;user id=root;password=rtdpc;database=cls
StringConexao.Open()
Try
If CDate(PCP_DataMaskedTextBox.Text) > CDate(MaskedTextBox1.Text) Then
MsgBox(Data final não pode ser menor que a inicial!, MsgBoxStyle.Information, Cls)
GoTo Final
End If
Copiando Arquivo Original
Dim ArquivoOriginal As String
Dim DiretorioDestino As String
Dim Arquivos As FileInfo
Dim MsReader As MySql.Data.MySqlClient.MySqlDataReader
Dim MyCommand As New MySqlCommand(Select * From Cls.view_multicobra_docs V Where DtBaixa Between & Format(CDate(PCP_DataMaskedTextBox.Text), yyyy-MM-dd) & And & Format(CDate(MaskedTextBox1.Text), yyyy-MM-dd) & ;, StringConexao)
MsReader = MyCommand.ExecuteReader
If MsReader.HasRows = False Then
MsgBox(Sem Imagens nesse período!, MsgBoxStyle.Information, Cls)
GoTo Final
End If
While MsReader.Read
ObjWord = Nothing
ArquivoOriginal = C:\Docs_Word\Not_Cod_61_01.docx
DiretorioDestino = C:\Docs_Word\Not_Cod_61_Bck & Contador & .docx
If Directory.Exists(DiretorioDestino) Then
Directory.Delete(DiretorioDestino)
End If
FileCopy(ArquivoOriginal, DiretorioDestino)
ObjWord = CreateObject(Word.Application)
ObjWord.Documents.Open(DiretorioDestino)
SubstituiVariavel(@Destinatario , & MsReader(0) & )
SubstituiVariavel(, )
SubstituiVariavel(@Data , & São Paulo, & dataporExtenso & )
SubstituiVariavel(, )
SubstituiVariavel(@Endereco , & MsReader(1) & )
SubstituiVariavel(, )
SubstituiVariavel(@Bairro , & MsReader(2) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cep , & MsReader(3) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cidade , & MsReader(4) & )
SubstituiVariavel(, )
SubstituiVariavel(@Uf , & MsReader(5) & )
SubstituiVariavel(, )
SubstituiVariavel(@Nome_Banco , & MsReader(6) & )
SubstituiVariavel(, )
SubstituiVariavel(@Cnpj_Banco , & MsReader(7) & )
SubstituiVariavel(, )
SubstituiVariavel(@Numero_Contrato , & MsReader(8) & )
SubstituiVariavel(, )
SubstituiVariavel(@Parcela , & MsReader(9) & )
SubstituiVariavel(, )
SubstituiVariavel(@Vencimento , & MsReader(10) & )
SubstituiVariavel(, )
SubstituiVariavel(@Valor , & MsReader(11) & ( & NumeroToExtenso(MsReader(11)) & ) & )
SubstituiVariavel(, )
SubstituiVariavel(@Endereco_Escrit , & MsReader(12) & )
SubstituiVariavel(, )
SubstituiVariavel(@Telefone_Escrit , & MsReader(13) & )
SubstituiVariavel(, )
SubstituiVariavel(@Numero_Objeto , & MsReader(17) & MsReader(14) & BR & )
SubstituiVariavel(, )
SubstituiVariavel(@Data_Envio , & MsReader(15) & )
SubstituiVariavel(, )
SubstituiVariavel(@Destinatario , & MsReader(0) & )
SubstituiVariavel(, )
SubstituiVariavel(@Ocorrencia , & MsReader(16) & )
SubstituiVariavel(, )
SubstituiVariavel(@Registro , & MsReader(18) & )
Registro = MsReader(18)
ObjWord.Run(ExportaPdf, & MsReader(18) & )
ObjWord.ActiveDocument.Close()
ObjWord.Quit()
ObjWord = Nothing
Contador = Contador
Thread.Sleep(2000)
End While
Final:
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Cls documentos)
Finally
StringConexao.Close()
MsgBox(Encerrado, MsgBoxStyle.Critical, Cls documentos)
End Try
End Sub
Código do Método SubstituiVariavel.
Private Sub SubstituiVariavel(ByVal Achar As String, ByVal Substituir As String)
With ObjWord.Selection.Find
.Text = Achar.ToString
.Replacement.Text = Substituir.ToString
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute = True
ObjWord.Selection.Select()
System.Windows.Forms.Clipboard.SetDataObject(Substituir)
ObjWord.Selection.Paste()
End While
End With
End Sub
Pjava
Curtir tópico
+ 0
Responder
Posts
05/07/2012
Pjava
Dá erro aqui:
Imports MySql.Data.MySqlClient
e aqui
Dim StringConexao As MySqlConnection
StringConexao = New MySqlConnection
Como eu faço para resolver isso e como no VB eu coloco um path dinâmico. Não sei nada de VB, passei de Delphi para C#, nada de VB. Trocar essa linha por uma que seja dinâmica
ArquivoOriginal = C:\Docs_Word\Not_Cod_61_01.docx
Imports MySql.Data.MySqlClient
e aqui
Dim StringConexao As MySqlConnection
StringConexao = New MySqlConnection
Como eu faço para resolver isso e como no VB eu coloco um path dinâmico. Não sei nada de VB, passei de Delphi para C#, nada de VB. Trocar essa linha por uma que seja dinâmica
ArquivoOriginal = C:\Docs_Word\Not_Cod_61_01.docx
Responder
Clique aqui para fazer login e interagir na Comunidade :)