coluna_mesmo_campo

12/03/2010

Estou com um sério problema, eu tenho que gerar um relatório onde eu tenho ex


Epi                                 CA                             OBS                                     EPI                       CA                    OBS




ou seja, os mesmo campo com 2 colunas. Eu estou usando o freereport, nao sei como fazer isto no free,
estou tentanto fazer no cliente dataset criando por exemplo     EPI1,EPI2,CA1,CA2,OBS1,OBS1 para jogar os valores. Se puder ensinar como fazer no freereport ok senão eu estou mandando o exemplo como eu fiz com clientdataset.


Epi1                             CA1                             OBS1                                     EPI2                    CA2        OBS2           

teoricamente iria funcionar, mas nao estou conseguindo fazer até chego perto, vou te mostar como esta retorna com as instrucao que eu fiz

Epi                                 CA                             OBS                                     EPI                       CA                    OBS
Jose                               23                                eeee                                  errado                 errado              errado
Lucas                             24                               rrrrrrrr                               Joao                       222                   5


onde esta escrito "errado"  no relatório esta tudo em branco, eu nao estou conseguindo por exemplo, jogar
joao , 222 5  para cima para que os campos vazios fiquem por ultimo. Vou mandar o comando inteiro.

sql :
    DMConsulta.cds_conaux.Close;
    DMConsulta.cds_conaux.CommandText  := ' select   codltcat,codfuncao,codsetor,codempresa,codepi,epi.nome,lfse.obs,lfse.ca from ltcat_funcao_setor_epi lfse        '+
                                          ' join epi on(lfse.codepi = epi.codigo) where  lfse.codltcat = '+iCodLtcat+'and lfse.bloq = ''N''  and lfse.flag = ''S'' '+
   ' group by codltcat,codsetor,codfuncao,codempresa,codepi,epi.nome,lfse.obs,lfse.ca  order by lfse.codsetor,lfse.codfuncao   ';
    DMConsulta.cds_conaux.Open;
// agora o procedimento

DMConsulta.cds_conaux.First;
    CodSetAnt     := DMConsulta.cds_conaux.fieldbyname('codsetor').AsString;
    CodFuncAnt    := DMConsulta.cds_conaux.fieldbyname('codfuncao').AsString;
    while not(DMConsulta.cds_conaux.Eof) do
    begin
        funcoesltcatepi.Append;

        funcoesltcatepi.FieldByName('codltcat').AsInteger     :=  DMConsulta.cds_conaux.fieldbyname('codltcat').AsInteger;
        funcoesltcatepi.FieldByName('codempresa').AsInteger   :=  DMConsulta.cds_conaux.fieldbyname('codempresa').AsInteger;
        funcoesltcatepi.FieldByName('codfuncao').AsInteger    :=  DMConsulta.cds_conaux.fieldbyname('codfuncao').AsInteger;
        funcoesltcatepi.FieldByName('codsetor').AsInteger     :=  DMConsulta.cds_conaux.fieldbyname('codsetor').AsInteger;
        funcoesltcatepi.FieldByName('codepi1').AsInteger       :=  DMConsulta.cds_conaux.fieldbyname('codepi').AsInteger;
        funcoesltcatepi.FieldByName('nomeepi1').AsString       :=  DMConsulta.cds_conaux.fieldbyname('nome').AsString;
        funcoesltcatepi.FieldByName('obs1').AsString           :=  DMConsulta.cds_conaux.fieldbyname('obs').AsString;
        funcoesltcatepi.FieldByName('ca1').AsString            :=  DMConsulta.cds_conaux.fieldbyname('ca').AsString;


        DMConsulta.cds_conaux.Next;
        IF NOT (DMConsulta.cds_conaux.EOF) Then
           BEGIN

              IF (CodSetAnt <> DMConsulta.cds_conaux.fieldbyname('codsetor').AsString) OR
                 (CodFuncAnt <> DMConsulta.cds_conaux.fieldbyname('codfuncao').AsString) Then
                 Begin
                   CodSetAnt     := DMConsulta.cds_conaux.fieldbyname('codsetor').AsString;
                   CodFuncAnt    := DMConsulta.cds_conaux.fieldbyname('codfuncao').AsString;
                   Continue;
                 End;

              funcoesltcatepi.FieldByName('codepi2').AsInteger       :=  DMConsulta.cds_conaux.fieldbyname('codepi').AsInteger;
              funcoesltcatepi.FieldByName('nomeepi2').AsString       :=  DMConsulta.cds_conaux.fieldbyname('nome').AsString;
              funcoesltcatepi.FieldByName('obs2').AsString           :=  DMConsulta.cds_conaux.fieldbyname('obs').AsString;
              funcoesltcatepi.FieldByName('ca2').AsString            :=  DMConsulta.cds_conaux.fieldbyname('ca').AsString;
           END;

        CodSetAnt     := DMConsulta.cds_conaux.fieldbyname('codsetor').AsString;
        CodFuncAnt    := DMConsulta.cds_conaux.fieldbyname('codfuncao').AsString;
        funcoesltcatepi.Post;
        DMConsulta.cds_conaux.Next;

    end;

Jose Boas

Jose Boas

Curtidas 0

Respostas

Rodrigo Mourão

Rodrigo Mourão

12/03/2010

Olá Jose,

Ficou confuso sua solicitação. Para adiantar um relatorio se resolve no select, o gerador de relatorio seja ele qual for deve ser usando apenas para criar a forma com o relatorio sera gerado/visualizado.

Seria melhor me informar qual o banco vc utiliza bem como quais tabelas farao parte do processo e o que voce realmente quer fazer. Talvez ai possamos ajudálo.

Att,


P.s.: a consultoria nao cobre programas de terceiros por isso acho melhor focamos no select e ai vc usa o gerador de relatorio que quisre.
GOSTEI 0
Jose Boas

Jose Boas

12/03/2010

Eu preciso imprimir como se fosse estiqueta, pois o espaço que tenho entre uma banda e outrae pequena e para aproveitar eu quero colocar em duas colunas, o mesmo campo assim ficaria :



Nome                                   Apelido                                       NOme                             Apelido

Só que eu nao sei fazer no freereport, eu estava tentando do fazer no clientdataset, ou seja, eu iria montar na unha
heheeh

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

12/03/2010

Olá Amigo com a tempestado aqui no RJ no FDS fiquei sem net.Desculpe a demora em responder.

Bem como falei a consultoria nao cobre componentes de terceiros não seria nem o caso este mas e que eu nao conheco o free report, poderia ser em RAVE ?

Posso te mandar um exemplo disso em Rave com uma tabela padrao do delphi so para ver s ete atende.

Me confirma sua versão do Delphi eu te mando.

Att,


GOSTEI 0
Jose Boas

Jose Boas

12/03/2010

Pode serdou uma olhada.
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

12/03/2010

Vou providenciar, e em breve post aqui. Att,
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

12/03/2010

Olá amigo,
   Segue abaixo o link de um exemplo feito com o Rave Reports.


http://video.devmedia.com.br/discovirtual/192388/Rave 2 colunas.rar


   O mesmo em seu componente dataBand, tem uma propriedade Columns, onde você diz o número de colunas, no caso coloquei 2 colunas, e ele exibe os dados em duas colunas.




Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

12/03/2010

OLá amigo, consegui analisar o exemplo ?

Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

12/03/2010

Olá amigo, por falta de retorno fechamos o chamado, se existir dúvida reabriremos o mesmo.

Um abraço

Wesley Y
GOSTEI 0
POSTAR