-
Re: PHC GO GetNewInstanceFromReference
Portanto para usar esta função é necessário criar uma lista de KeyValueVO com os parâmetros. Neste caso estamos a criar uma fatura a partir de um dossier. O docId é o nº de série de destino, o origin é a entidade de fonte e o originstamp é o stamp do documento de fonte.
Dim typedWS as new PHCWS.ftWS() Dim parameters As List(Of KeyValueVO) = New List(Of KeyValueVO) Dim val1 As KeyValueVO = New KeyValueVO() val1.key = "originstamp" val1.value="z202408061835061234567890" parameters.Add(val1) Dim val2 As KeyValueVO = New KeyValueVO() val2.key = "docId" val2.value = "1" parameters.Add(val2) Dim val3 As KeyValueVO = New KeyValueVO() val3.key = "origin" val3.value = "Bo" parameters.Add(val3) Dim result = typedWS.getNewInstanceFromReference(parameters) Dim ftBiz As SDKBiz = SDK.Business.CreateBiz("Ft") Dim invoice As FtVO = DirectCast(result.result(0), FtVO) ftBiz.save(invoice)
- 4 replies
-
Re: Utilizar Webservices da AT
-
OpenAI starts offering a biology-tuned LLM
GPT-Rosalind is an LLM trained on biology workflows, available in closed access.
In Ars Technica, 16 de Abril de 2026
- 0 replies
-
New undersea cable cutter risks Internet’s backbone
China cable-cutter demo coincides with more sabotage of subsea Internet cables.
In Ars Technica, 16 de Abril de 2026
- 0 replies
-
Como fazer listagem pdf das faturas mensais ?
Estava a tentar criar uma tecla de utilizador para imprimir em pdf as facturas entre determinadas datas (para contabilidade digital).
Mas o idutopdf é muito lento e bloqueia facilmente. Segue o meu código abaixo (criado com ajuda do Copilot) para ver se alguém tem uma ideia melhor !!!
Obrigado* ============================
* Pedir datas
* ============================
data_inicio = getNome("Data inicial das faturas:", Ctod(""), "Formato: DD.MM.AAAA")
data_fim = getNome("Data final das faturas:", Ctod(""), "Formato: DD.MM.AAAA")IF EMPTY(data_inicio) OR EMPTY(data_fim)
MESSAGEBOX("Tem de indicar ambas as datas.")
RETURN
ENDIFIF data_inicio > data_fim
MESSAGEBOX("A data inicial não pode ser superior à final.")
RETURN
ENDIFinicio_act = Dtos(data_inicio)
fim_act = Dtos(data_fim)* ============================
* Buscar faturas
* ============================
u_sqlexec("SELECT ftstamp, nmdoc, fno, nome FROM ft WHERE fdata BETWEEN '" + inicio_act + "' AND '" + fim_act + "'", "tmp_ft")IF !USED("tmp_ft") OR RECCOUNT("tmp_ft") = 0
MESSAGEBOX("Não existem faturas no intervalo selecionado.")
RETURN
ENDIF* ============================
* Pasta dos PDFs
* ============================
cTempPath = "C:\TEMP\FATURAS\"
IF !DIRECTORY(cTempPath)
MD (cTempPath)
ENDIFm_Attachments = ""
* Nome exato do layout
cLayout = "Fatura A4" && <-- ALTERA AQUI PARA O TEU LAYOUT* ============================
* Loop principal
* ============================
SELECT tmp_ft
nTotal = RECCOUNT()
nAtual = 0SCAN
DOEVENTSnAtual = nAtual + 1
* Criar nome seguro
cNomeCliente = STRTRAN(ALLTRIM(tmp_ft.nome), " ", "_")
cNomeCliente = STRTRAN(cNomeCliente, "/", "-")
cNomeCliente = STRTRAN(cNomeCliente, "\", "-")m_pdfPath = cTempPath + ;
ALLTRIM(tmp_ft.nmdoc) + "_" + ;
ALLTRIM(STR(tmp_ft.fno)) + "_" + ;
cNomeCliente + ".pdf"* ----------------------------
* Medição de tempo
* ----------------------------
t1 = SECONDS()ImprimeDocumento("FT", tmp_ft.ftstamp, cLayout, "PDF", m_pdfPath)
t2 = SECONDS()
* Mostrar tempos
? "------ Documento " + TRANSFORM(nAtual) + " ------"
? "Tempo ImprimeDocumento(): " + TRANSFORM(t2 - t1)
?* Adicionar à lista
m_Attachments = m_Attachments + m_pdfPath + ";"* Libertar memória ocasionalmente
IF (nAtual % 20) = 0
SYS(1104)
ENDIFENDSCAN
IF RIGHT(m_Attachments, 1) = ";"
m_Attachments = LEFT(m_Attachments, LEN(m_Attachments) - 1)
ENDIFMESSAGEBOX("PDFs gerados em: " + cTempPath)
RETURN
- 0 replies
-
Re: SAFT-PT: debate de dúvidas e ideias
-
Re: Re-lançar a revista
-
Re: Webservices - SDR "Volta"
Em 10/04/2026 às 17:29, Cr4zyKingLi0n disse:Sinceramente não me lembro. Mas vê este link da Cegid: https://helpcenter.ila.cegid.com/v10/marketing-vendas/obrigacoes-declarativas1/artigo/sistema-de-deposito-e-reembolso/
Obrigado.
- 5 replies
