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
Pjava

Pjava

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
Responder

09/07/2012

Joel Rodrigues

Cara, diz pra nós qual é o erro que dá.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar