Nesse vídeo demonstraremos a utilização da função RepExtract, que serve para extrair a imagem gravada no repositório de imagens do Protheus.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe410
Extrai uma foto de um cadastro para uma pasta do sistema operacional
@type Function
@author Atilio
@since 28/03/2023
@obs
Função RepExtract
Parâmetros
+ cChave , Caractere , Chave com o nome do arquivo no repositório
+ cNome , Caractere , Nome do arquivo que será gerado no sistema operacional
+ lNeedOpen , Lógico , Identifica se precisa abrir o repositório
+ lOverwrite , Lógico , Define se será sobrescrito caso encontre o arquivo
Retorno
+ lRet , Lógico , Retorna .T. se conseguiu extrair ou .F. se não
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe410()
Local aArea := FWGetArea()
Local cBusca := ""
Local cFotoProd := ""
Local cPastaTmp := "C:\spool\"
//Abre o cadastro de produtos
DbSelectArea('SB1')
SB1->(DbSetOrder(1)) //B1_FILIAL + B1_COD
//Pede pro usuário inserir uma descrição e faz a busca com DbSeek
cBusca := FWInputBox("Insira o código do produto para o DbSeek:")
If SB1->(MsSeek(FWxFilial("SB1") + AvKey(cBusca, "B1_COD")))
//Se tiver todo do produto
If ! Empty(SB1->B1_BITMAP)
//Define o nome da foto
cFotoProd := cPastaTmp + "produto_" + Alltrim(SB1->B1_COD)
//Faz a extração da imagem do Protheus
RepExtract(Alltrim(SB1->B1_BITMAP), cFotoProd)
//Se deu certo de extrair a imagem, será impressa
If File(cFotoProd + ".bmp") .Or. File(cFotoProd + ".jpg")
FWAlertSuccess("Foto extraída com sucesso!", "Teste RepExtract")
EndIf
EndIf
EndIf
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.