A utilização de imagens como marca d'água de relatórios ou documentos é uma prática normalmente associada à segurança. Sistemas precisam inserir marcas d'águas em páginas impressas, a fim de deixar visível que a impressão foi realizada sobre uma circunstância especial.
Existem textos bastante comuns utilizados como marca d'água, como por exemplo: "Rascunho", "Cancelado", "Sem validade", "Para uso interno", etc.
Mas como utilizar marca d'águas no PowerBuilder? Bem, isto é possível através da inserção de imagens nas datawindows, mas imagine o trabalho que pode dar se a quantidade de dataobjects do seu sistema seja alta.
A fim de evitar que cada datawindow seja alterada, eu criei um código que insere a marca d'água dinamicamente em uma datawindow. Veja mais abaixo.
String ls_marca_dagua String ls_datawindow_syntax Long ll_pos // Recupera dinamicamente a sintaxe da datawindow ls_datawindow_syntax = dw_report.DESCRIBE("Datawindow.syntax") // Constrói a sintaxe do controle referente a imagem da marca dágua ls_marca_dagua= 'bitmap(band=foreground filename="Imagens\Marca.gif" x="14" y="28" height="2572" width="2194" border="0" name=p_1 visible="1" )' // Recupera a posição do caractere em que será inserido o controle ll_pos = Pos(ls_datawindow_syntax, "htmltable(") // Modifica a sintaxe data datawindow, inserindo o controle ls_datawindow_syntax = MID(ls_datawindow_syntax, 1, ll_pos -1) + ls_marca_dagua + MID(ls_datawindow_syntax, ll_pos , LEN(ls_datawindow_syntax)) // Recria a datawindow com a nova sintaxe dw_report.CREATE( ls_datawindow_syntax) |
Perceba no código acima que eu trabalhei com a imagem no formato GIF. O motivo disto foi para tentar colocar um pouco de "transparência" à minha marca d'água. Eu só precisei utilizar este formato porque desenvolvi o código fonte em PowerBuilder 10. Se você estiver utilizando a versão 11 do PowerBuilder ou uma superior, pode usar dois recursos mais eficientes para a transparência:
- Ou utilizar uma imagem no formato PNG;
- Ou definir o atributo transparency para o controle de imagem. Veja como ficaria:
...
// Constrói a sintaxe do controle referente a imagem da marca dágua ls_marca_dagua= 'bitmap(band=foreground filename="Imagens\Marca.gif" x="14" y="28" height="2572" width="2194" border="0" name=p_1 visible="1" transparency="50")' ... |
A imagem com a marca utilizada por mim foi esta: