Histórico da Página
CONTEÚDO
- Visão Geral
- Exemplo de utilização
- Objeto de negócio
- Smart View
- Programas e imagem de exemplo utilizadas
01. VISÃO GERAL
Neste documento, é possível entender como trabalhar com imagens no Smart View a partir do desenvolvimento do Objeto de Negócio no Datasul.
02. EXEMPLO DE UTILIZAÇÃO
Objeto de negócio
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:
Bloco de código 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):
Bloco de código 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):
Bloco de código 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.
Smart View
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:
- Vá em "Design" no relatório:
- 1- Criar "Caixa de Imagem";
- 2- Arrastar a caixa de imagem no design do relatório;
- 3- Vincular o campo "Img" para dentro da caixa de imagem.
- Vá em "Prever" e enviar os parâmetros necessários para execução;
- A imagem aparecerá dentro do relatório em questão:
- Vá em "Design" no relatório:
03. Programas e imagem de exemplo utilizadas
View file name svHistorLogin.p height 250
...

