Formatar máscara no Reports dinâmicamente
14/10/2008
É possível formatar o número de casas decimais de um campo no Oracle Reports dinâmicamente. Um exemplo de uso deste recurso é quando o usuário deseja escolher a precisão das informações.
1. Passo – Criar uma Procedure no Reports
Procedure Config_Format ( P_Format IN NUMBER) is Begin Srw.Attr.Mask := Srw.ForMatMask_Attr; If P_Format = 0 Then Srw.Attr.ForMatMask := '-NNNGNNNGNNNGNN0'; ElsIf P_Format = 1 Then Srw.Attr.ForMatMask := '-NNNGNNNGNNNGNN0D0'; ElsIf P_Format = 3 Then Srw.Attr.ForMatMask := '-NNGNNNGNNNGNN0D000'; Elsif P_Format = 4 Then Srw.Attr.ForMatMask := '-NGNNNGNNNGNN0D0000'; ElsIf P_Format = 5 Then Srw.Attr.ForMatMask := '-NNNGNNNGNN0D00000'; ElsIf P_Format = 6 Then Srw.Attr.ForMatMask := '-NNGNNNGNN0D000000'; ElsIf P_Format = 7 Then Srw.Attr.ForMatMask := '-NGNNNGNN0D0000000'; Else Srw.Attr.ForMatMask := '-NNNGNNNGNNNGNN0D00'; End If; Srw.Set_Attr(0,Srw.Attr); End;
2. Passo – Criar uma Trigger no Campo a ser alterado o Formato
--Incluir a linha abaixo antes do Return(True) Config_Format( 4 ); --número de decimais
Comentários aqui
Tags: Oracle Reports
