Boa tarde!
Pessoal trabalho em uma empresa onde estão utilizando o excel (Visual Basic) para extrair informação de um outro sistema (aqueles sistemas de banco, sabe de tela toda preta com o DOS) em imprimindo relatórios a partir destes dados. Estão tendo alguns problemas com estes arquivos então junto com um colega estamos tentando substituir por um pequeno aplicativo em java.
Estou tendo algumas dificuldades para fazer a mesma coisa em java aqui segue um pedaço do código em VB que faz a mesma coisa que desejo fazer:
Método do VB para acessar o sistema
Private Sub CmdoPesquisarDoc_Click()
Declaração das variaveis necessarias para acessar o sistema
Dim PgInicio As Integer
Dim PgFim As Integer
Dim Sys, Sess, MyScreen As Object
Dim x, Linha As Integer
Dim pg, LinhaDoc As Variant
Dim OpRej, Matr, Sen, Agencia As String
Carrega informações da planilha de excel onde esta o login em senha necessarios para acessar o sistema
Matr = Sheets(“Auxiliar”).Cells(4, 2)
Sen = Sheets(“Auxiliar”).Cells(6, 2)
Agencia = Cells(1, 10).Value
Aparentemente cria uma “conexão” com o sistema
Set Sys = CreateObject(“Sistema.exe”)
Set Sess = Sys.ActiveSession
Set MyScreen = Sess.Screen
Até aqui tudo bem consigo fazer isto tranquilamente no java e daqui para baixo que estou tendo dificuldades tanto para enviar quanto para receber as informações no outro sistema.
Move o cursor para uma determinada posição na tela
MyScreen.Moveto 17, 38
Envia uma determinada informação para o posição em que o cursor foi parar. (Este é um subsistema dentro do sistema, acho…)
MyScreen.SendKeys (“522”)
“Pressiona” a tecla enter do teclado para acessar o subsistema
MyScreen.SendKeys ("")
MyScreen.WaitHostQuiet (100)
A partir deste ponto envia as informações de login e senha para logar no subsistema
MyScreen.SendKeys (Matr)
MyScreen.SendKeys ("")
MyScreen.SendKeys (Sen)
MyScreen.SendKeys ("")
MyScreen.WaitHostQuiet (100)
E aqui ele pega as informações da tela e envia para determinadas células do Excel
For pg = PgInicio To PgFim
For Linha = 10 To 18
OpRej = MyScreen.GetString(Linha, 23, 3)
If OpRej = “000” Then
LinhaDoc = Cells(4, 18)
Cells(LinhaDoc, 1) = Cells(1, 6)
Cells(LinhaDoc, 5) = MyScreen.GetString(Linha, 38, 6) 'NDoc
Cells(LinhaDoc, 4) = MyScreen.GetString(Linha, 47, 12) * 1 'Valor
MyScreen.Moveto Linha, 2
MyScreen.SendKeys (“X”)
MyScreen.SendKeys ("")
MyScreen.WaitHostQuiet (100)
Cells(LinhaDoc, 2) = MyScreen.GetString(20, 12, 30) 'Nome
Cells(LinhaDoc, 3) = MyScreen.GetString(20, 63, 14) 'CpfCnpj
MyScreen.SendKeys ("")
MyScreen.WaitHostQuiet (100)
End If
Next
MyScreen.SendKeys ("")
MyScreen.WaitHostQuiet (100)
Ai encima esta o código em VB gostaria de fazer a mesma coisa em java, será que é possível??? Se sim, primeiro alguém pode me “dar uma luz” de como envio informações e movo o cursor.
Grato
Murillo Pontes