Report Builder Duvida.
Ola amigos.
Estou com uma duvida.
Estou com uma solicitação aqui para que o report builder dependendo do que for impresso em uma dbtext uma memo fique como visivel ou nao.
eu fiz da seguinte forma
procedure memo1OnPrint;
begin
if DBText94 = 09316105000129 then
memo1.Visible := True
else
memo1.Visible := False
end;
mas esta dando erro na hora de compliar :( alguem sabe me falar o porque ?
Estou com uma duvida.
Estou com uma solicitação aqui para que o report builder dependendo do que for impresso em uma dbtext uma memo fique como visivel ou nao.
eu fiz da seguinte forma
procedure memo1OnPrint;
begin
if DBText94 = 09316105000129 then
memo1.Visible := True
else
memo1.Visible := False
end;
mas esta dando erro na hora de compliar :( alguem sabe me falar o porque ?
Célio Junior
Curtidas 0
Melhor post
Cauê Nishijima
08/04/2014
Na verdade seria 'Text'e não 'Caption'. E dependendo de como é seu código completo talvez não tenho esse seu último 'end'
if DBText94.Text = '09316105000129' then
memo1.Visible := True
else
memo1.Visible := False;
GOSTEI 1
Mais Respostas
Romulo Silva
08/04/2014
Qual erro estar apresentando
não seria a falta do caption
if DBText94.Caption = '09316105000129' then
memo1.Visible := True
else
memo1.Visible := False
end;
não seria a falta do caption
if DBText94.Caption = '09316105000129' then
memo1.Visible := True
else
memo1.Visible := False
end;
GOSTEI 0
Célio Junior
08/04/2014
Valeu galera estava com preça e coloque mais um dbtext mais simples com codigo de filial;
Agora
eu fiz assim :
so que tem o seguinte nao esta dando certo para as outras filials e nao estou conseguindo achar os tipos que o calc do report builder aceita:(
porque eu acho que o mais correto seria fazer um case:(
procedure MemFrioVix2OnPrint;
begin
if DBText96.FieldValue = '2' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '5' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '7' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '9' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '12' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '13' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '14' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
end;
Agora
eu fiz assim :
so que tem o seguinte nao esta dando certo para as outras filials e nao estou conseguindo achar os tipos que o calc do report builder aceita:(
porque eu acho que o mais correto seria fazer um case:(
procedure MemFrioVix2OnPrint;
begin
if DBText96.FieldValue = '2' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '5' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '7' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '9' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '12' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '13' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
if DBText96.FieldValue = '14' then
begin
MemFrioVix2.Visible := True;
end
else
begin
MemFrioVix2.Visible := False;
end;
end;
GOSTEI 0
Célio Junior
08/04/2014
Resolvi com assim :
if ((DBText96.FieldValue = '2') or
(DBText96.FieldValue = '5') or
(DBText96.FieldValue = '7') or
(DBText96.FieldValue = '9') or
(DBText96.FieldValue = '12') or
(DBText96.FieldValue = '13') or
(DBText96.FieldValue = '14'))
then
MemFrioVix.Visible := True
else
MemFrioVix.Visible := False;
end;
erra erro meu mesmo kkk desculpa ai galera:)
if ((DBText96.FieldValue = '2') or
(DBText96.FieldValue = '5') or
(DBText96.FieldValue = '7') or
(DBText96.FieldValue = '9') or
(DBText96.FieldValue = '12') or
(DBText96.FieldValue = '13') or
(DBText96.FieldValue = '14'))
then
MemFrioVix.Visible := True
else
MemFrioVix.Visible := False;
end;
erra erro meu mesmo kkk desculpa ai galera:)
GOSTEI 0
Cauê Nishijima
08/04/2014
Pra evitar essa IF gigante, você pode criar um função ou fazer um loop como o seguinte:
onde 'valor' é uma variável do tipo Integer
O resultado é o mesmo, ai vai em questão de gosto!
for valor in [2,5,7,9,12,13,14] do
begin
if DBText96.FieldValue = IntToStr(valor) then
begin
MemFrioVix.Visible := True;
Break;
end
else
MemFrioVix.Visible := False;
end;
onde 'valor' é uma variável do tipo Integer
O resultado é o mesmo, ai vai em questão de gosto!
GOSTEI 1
Célio Junior
08/04/2014
mas do seu geito é bem mais pratico 1 ne velho :)
GOSTEI 0