Jump to content
Fórum Script Brasil
  • 0

(Resolvido) QRDBText


João Paulo Taraciuk

Question

Boa tarde a todos, gostaria de saber se tem como eu colocar dois QRDBText em um relatório de maneira que o segundo fosse posicionado logo após terminarem os caracteres do primeiro, tipo o primeiro seria nome da rua e o segundo seria o número, então se o nome da rua tivesse 5 caracteres, o segundo QRDBText começaria um caractere após, e assim por diante.

valeu!!!

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Colega, até dá pra fazer isto...

veja se entende este codigo :

procedure TForm1.Button1Click(Sender: TObject);
var rua, nr : string;
begin
   rua := 'AV Pedro Alvares Cabral';
   nr := '123';
   label1.Caption := trim(rua) + ' ' + nr;
end;

procedure TForm1.Button2Click(Sender: TObject);
var n, m : integer;
begin
   QRLabel1.Caption := 'AV Pedro Alvares Cabral';
   QRLabel2.Caption := '123';

   QRLabel1.Caption := trim(QRLabel1.Caption);
   n := length(QRLabel1.Caption) * 7;
   QRLabel2.Left := QRLabel1.Left + n;
end;

OBS: os dois QRLabel1 ( poderiam ser QRDBtext ) podem estar um ao lado do outro ou um em cima do outro, tanto faz, mas desde que estejam na mesma linha horizontal.

abraço

Link to comment
Share on other sites

  • 0
Boa tarde a todos, gostaria de saber se tem como eu colocar dois QRDBText em um relatório de maneira que o segundo fosse posicionado logo após terminarem os caracteres do primeiro, tipo o primeiro seria nome da rua e o segundo seria o número, então se o nome da rua tivesse 5 caracteres, o segundo QRDBText começaria um caractere após, e assim por diante.
João Paulo Taraciuk, outra sugestão é fazer uso do componente TQRExpr.

Você pode utilizar o Wizard, clicando no botãozinho "..." da propriedade Expression e construir uma expressão, utilizando os botões que na tela aparecem:

- Database Field (campo das tabelas que você tem acesso no relatório);

- Function (funções disponíveis e que serão interpretadas e resolvidas pelo componente);

- Variable (de pouca utilidade neste caso);

- Outros botões de operções (+, -, *, /, ...)

Observe que a cada botão acionado, pode ser aberta uma nova janela para possibilitar uma nova composição. A medida que você vai clicando OK, vai montando a expressão final.

Um exemplo de valor para a propriedade baseando no seu caso: IBQuery1.NOME_RUA +IF(IBQuery1.NUM <> '', ', ' + IBQuery1.NUM,'')

- inicialmente acionei o botão Database Field e selecionei o campo NOME_RUA;

- adicionei o sinal "+", visto que queremos concatenar strings e eu supus que NUM é um string, caso contrário, ainda seria necessário utilizar a função STR (Other);

- acionei o botão Function e selecionei Logical->IF e cliquei em Continue. Na tela que aparece, vamos compor a expressão de avaliação;

-> primeiro argumento - Logical Value. Aciona o botão "..." e montamos a expressão IBQuery1.NUM <> '', utilizando os recursos já mencionados. Com esta expressão queremos dizer que ser NUM for diferente de nulo, o resultado será verdadeiro;

-> segundo argumento (p/ resultado verdadeiro) - Value. Aciona o botão "..." e montamos a expressão ', ' + IBQuery1.NUM. Esta expressão é a concatenação da vírgula, que virá após o nome da rua, com o número do imóvel;

-> terceiro argumento (p/ resultado falso) - Value. Aciona o botão "..." e colocamos apenas '', de modo que ser não há número, não concatenamos nada.

É por aí e funciona muito bem, depois que você se entende com este tipo de expressão mais compléxa.

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...