Fórum Casas decimais diferentes em um mesmo relatorio c/ Quick Rep #168599
09/07/2003
0
Lazaro Capel
Curtir tópico
+ 0Posts
09/07/2003
Aroldo Zanela
Gostei + 0
10/07/2003
Lazaro Capel
mas . . . oque realmente preciso saber é como mudar de mascara a cada linha do relatório, variando conform o cadastro do produto que esta sendo listado.
Gostei + 0
10/07/2003
Kfe
Ponha um qrlabel na detail banda
no evento before print faça o seguinte:
if datasetUNIDADE.value=´kg´ then
qrlabel1.caption:=formatfloat(´mascaraKG´,datasetVALOR.value)
else
if datasetUNIDADE.value=´g´ then
qrlabel1.caption:=formatfloat(´mascaraG´,datasetVALOR.value)
e assim por diante. Só não esqueça de trocar onde está mascararKG pela mascara de kilograma (#,0.00 ou a que vc escolher)
Espero qeui ajude
até mais
Gostei + 0
10/07/2003
Jairroberto
Seguindo os conselhos de alguns desenvolvedores experientes, sempre dou preferência por manter as regras de negócio separadas da camada de exibição e manipulação das informações. Sendo assim, acho mais adquado escrever a rotina de exibição do valor em um lugar que seja acessível tanto para o relatório como para o DBEdit ou DBGrid do formulário de exibição e entrada de dados, ou mesmo para a rotina de exportação.
Por isso, acho bastante conveniente, neste caso, usar o evento [b:0863ae2166]OnGetText[/b:0863ae2166] do objeto TField que representa o campo VALOR. Este evento ocorre sempre que o campo precisa ser exibido. Veja um exemplo:
procedure TForm1.Query1VALORGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin if DisplayText then begin if Query1UNIDADE.AsString = ´Kg´ then Text := FormatFloat(´,0.00´, Sender.AsFloat) else if Query1UNIDADE.AsString = ´ton´ then Text := FormatFloat(´,0.000´, Sender.AsFloat) else if Query1UNIDADE.AsString = ´g´ then Text := FormatFloat(´,0.0000´, Sender.AsFloat) else Text := Sender.AsString; end else Text := Sender.AsString; end;
Os parâmetros recebidos pelo evento são:
Sender: TField = objeto correspondente ao campo cujo texto de exibição deve ser retornado
var Text: String = string à qual deverá ser atribuído o texto de exibição desejado
DisplayText: Boolean = indica se o evento deve retornar a propriedade DisplayText (formatado pela máscara informada em DisplayMask ou EditFormat) ou AsString do campo
Um abraço,
Jair
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)