Neste documento, é possível entender como trabalhar com imagens no Smart View a partir do desenvolvimento do Objeto de Negócio no Datasul.
Com a imagem de exemplo no final deste documento ou com alguma outra de sua preferência, crie as seguintes instruções no Objeto de Negócio:
Definição da temp-table com tipo BLOB para que receba a imagem em questão:
DEFINE TEMP-TABLE ttCheck NO-UNDO
FIELD resp-anex-conv AS BLOB COLUMN-LABEL 'Img'. |
Definição de variável com o caminho da imagem e copy-lob no campo da temp-table criada no passo anterior (aqui pode ser que sua imagem já esteja gravada em uma tabela no banco de dados, então essa etapa não será necessária):
DEFINE VARIABLE c-caminho AS CHARACTER NO-UNDO INITIAL "C:\Temp\teste2.png". FIND FIRST ttCheck NO-LOCK NO-ERROR. IF NOT AVAIL ttCheck THEN DO: CREATE ttCheck. COPY-LOB FROM FILE c-caminho TO ttCheck.resp-anex-conv NO-CONVERT. END. |
Adição de schemaItem com a temp-table criada, chamando a procedure "calcGetImg" para que trate a imagem e retorne em BASE64-ENCODE (retornando como LONGCHAR):
ASSIGN hTable2 = BUFFER ttCheck:HANDLE.
ASSIGN mySchema = NEW schemaItem("add")
mySchema:svAtrName = "resp-anex-conv"
mySchema:svDatabase = "emsfnd"
mySchema:svTable = hTable2:TABLE
mySchema:svField = "GetImg" //nome da procedure que sera acrescido do prefixo se existir
mySchema:svDisplayName = "Img"
mySchema:svDescription = "Img"
mySchema:svAtrType = "LONGCHAR"
mySchema:svFiltered = NO
mySchema:svRequired = NO
mySchema:svType = 3.
RUN addSchemaItem (mySchema).
...
PROCEDURE calcGetImg:
DEFINE INPUT PARAM bh AS HANDLE NO-UNDO.
DEFINE OUTPUT PARAM cRet AS LONGCHAR NO-UNDO.
DEFINE VARIABLE encmptr AS MEMPTR NO-UNDO.
IF bh:AVAILABLE THEN DO:
COPY-LOB FROM bh:BUFFER-FIELD("resp-anex-conv"):BUFFER-VALUE TO encmptr NO-ERROR.
IF GET-SIZE(encmptr) > 0 THEN DO:
ASSIGN cRet = BASE64-ENCODE(encmptr).
END.
SET-SIZE(encmptr) = 0.
END.
END PROCEDURE. |
Após desenvolver o Objeto de Negócio conforme passos acima e atualizar seu relatório com o objeto de negócio em questão, siga para o Smart View realizando os passos abaixo:


Maiores informações a respeito de incluir, alterar e trabalhar com imagens no Smart View, podem ser vistas no link https://tdn.totvs.com.br/pages/releaseview.action?pageId=815586147.
![]()