-
Incremente de Colunas por VBA
By Marcos Augusto Soares,Boa noite,
Estou precisando de um auxilio quanto a montar um código que faça mesclagens automáticas de intervalos que possuem dados iguais. Como é possivel observar na imagem abaixo.
Tenho vários dados nas colunas de apenas uma linha, tenho que mesclar as colunas da linha que possuem o mesmo mês.
https://uploaddeimagens.com.br/imagens/KoYRIB4
Conseguem me ajudar?
Desde já agradeço!
Att., Marcos
- 0 replies
-
Re: Envio DMR (AT) via webservices.
By Psousa,On 2/23/2022 at 3:36 PM, desconfiado said:O código é simples demais. No envio de ficheiros tens basicamente 3 funções:
- RegistarFicheiro
- SubstituirFicheiro
- ConsultarFicheiro
Se programas em .NET podes utilizar os webservices references do próprio VS para obter as especificações dos serviçosa através da WSDL. Depois é só chamar os serviços.
É um bocado básico mas aqui tens o código.
private void RegistarFicheiro() { try { SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro(); if (ckTeste.CheckState == Windows.Forms.CheckState.Checked) myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; else myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; myWS.Credentials = GetMyCredentials(); byte[] myFile = System.IO.File.ReadAllBytes(txtFicheiro.Text); var resp = myWS.registarFicheiro(myFile, Path.GetFileName(txtFicheiro.Text)); txtID.Text = resp; registaLog("Registo Ficheiro (ID: " + txtID.Text + ") " + txtFicheiro.Text, resp); MsgBox("Ficheiro registado com sucesso. ID Ficheiro: " + resp, MsgBoxStyle.Information); } catch (Exception ex) { Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical); registaLog("Erro Registo Ficheiro " + txtFicheiro.Text, ""); } } private void SubstituirFicheiro() { string idAnt = txtID.Text; try { SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro(); if (ckTeste.CheckState == Windows.Forms.CheckState.Checked) myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; else myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; myWS.Credentials = GetMyCredentials(); byte[] myFile = System.IO.File.ReadAllBytes(txtFicheiro.Text); var resp = myWS.substituirFicheiro(myFile, txtFicheiro.Text, txtID.Text); txtID.Text = resp; registaLog("Substituição Ficheiro com ID: " + TxtIDant.Text + " por ficheiro (ID: " + txtID.Text + ") " + txtFicheiro.Text, resp); MsgBox("Ficheiro substituido com sucesso. ID Ficheiro: " + resp, MsgBoxStyle.Information); } catch (Exception ex) { Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical); registaLog("Erro Registo Ficheiro " + txtFicheiro.Text, ""); } } private void ConsultarFicheiro() { try { SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro(); if (ckTeste.CheckState == Windows.Forms.CheckState.Checked) myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; else myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl"; myWS.Credentials = GetMyCredentials(); var resp = myWS.consultarFicheiro(txtID.Text); switch (resp.estado) { case "0": { string dirPath = Path.GetDirectoryName(txtFicheiro.Text); string nomeFich = dirPath + @"\" + resp.nomeFicheiro; File.WriteAllBytes(nomeFich, resp.lstErrosAlertasZip); registaLog("Ficheiro " + resp.estadoFicheiro + ", ID: " + txtID.Text + ", Fich=" + resp.nomeFicheiro, txtID.Text); var abre = MsgBox("Ficheiro " + resp.estadoFicheiro + "." + IIf(resp.dataEntregaSpecified, Constants.vbNewLine + "Data Entrega: " + resp.dataEntrega, "") + IIf(resp.dataLimiteSubstituicaoSpecified, Constants.vbNewLine + "Data Limite Substituição: " + resp.dataLimiteSubstituicao, "") + "Pretende abrir o ficheiro para consultar os alertas/erros?", MsgBoxStyle.YesNo); if (abre) Process.Start(nomeFich); break; } default: { MsgBox(resp.mensagem, MsgBoxStyle.Information); break; } } } catch (Exception ex) { Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical); } }
Depois tens mais 2 serviços, um de consulta da situação do funcionário e outro de registo de vinculo do funcionário. Mas como digo são bastante básicos.
Boas.
Já alguém teve este erro ao usar o webservice consultar ficheiro. Parece que a resposta do webservice não está conforme a defnição do wsdl:
"The content type multipart/related; boundary=MIME_Boundary; " & vbTab & "start=""<7170517611704357129-5f12cc37.18738f148f9.45ca>""; " & vbTab & "type=""application/xop+xml""; start-info=""text/xml"" of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '--MIME_Boundary" & vbCrLf & "Content-ID: <7170517611704357129-5f12cc37.18738f148f9.45ca>" & vbCrLf & "Content-Type: application/xop+xml; type=""text/xml""; charset=utf-8" & vbCrLf & "Content-Transfer-Encoding: 8bit" & vbCrLf & vbCrLf & "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbLf & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""><soapenv:Header/><S:Body xmlns:S=""http://schemas.xmlsoap.org/soap/envelope/""><ges:consultarFicheiroResponse xmlns:ges=""http://app.seg-social.pt/ws/gr/gestaoficheiro"" xmlns:ent=""http://app.seg-social.pt/ws/gr/entidade""><return><dataEntrega>2023-03-31+01:00</dataEntrega><dataLimiteSubstituicao>2023-04-10+01:00</dataLimiteSubstituicao><nomeFicheiro>TSU202302</nomeFicheiro><estado>0</estado><lstErrosAlertasZip><inc:Include href=""cid:5f12cc37:18738f148f9:45cb"" xmlns:inc=""http://www.w3.org/2004/08/xop/include""/></lstErrosAlertasZip><estadoFicheiro>Rejeitado</estadoFicheiro></return></ges:consultarFicheiroResponse></S:Body></soapenv:Envelope>" & vbCrLf & "--MIME_Boundary" & vbCrLf & "Content-ID: <5f12cc37:18738f148f9:45cb>" & vbCrLf & "Content-Type: application/'."
Resolvido... falatva encoding. mtom 🙂
- 40 replies
-
Re: AT - questões legais
By Cerzedelo,Provavelmente dentro em breve, a AT irá apresentar com pompa e circunstância um instrumento semelhante ao apresentado pelo Ministério da Justiça, onde o chatGPT responde aos internautas. Também com o tipo de respostas que muitas vezes a AT dá, a diferença não será muita.
https://justica.gov.pt/Servicos/Guia-pratico-da-Justica-Versao-Beta
- 6,580 replies
-
Re: Utilizar Webservices da AT
-
Falha comunicacao com Servidor de Autenticacao (500)
By fernando,Desde hoje recebo o erro Falha comunicacao com Servidor de Autenticacao (500)
Alude a um erro 33
A princípio pensei que fosse um problema de atraso de tempo para o handshake, mas depois de sincronizar o tempo, o erro persiste
Os certificados são válidos, então descarto esse problema
Alguém mais tem esse problema
Atenciosamente
- 0 replies
-
Re: Números impressos como código ASCII em vez de número normal
-
Re: Utilizar Webservices da AT
-
Re: Utilizar Webservices da AT