Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
    1. Objeto de negócio
    2. Smart View
  3. 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.
        • Image Modified
        • Vá em "Prever" e enviar os parâmetros necessários para execução;
        • A imagem aparecerá dentro do relatório em questão:
        • Image Modified

03. Programas e imagem de exemplo utilizadas

View file
namesvHistorLogin.p
height250

...