coluna_mesmo_campo
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;
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
Curtidas 0
Respostas
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.
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
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
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
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,
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
12/03/2010
Pode serdou uma olhada.
GOSTEI 0
Rodrigo Mourão
12/03/2010
Vou providenciar, e em breve post aqui.
Att,
GOSTEI 0
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
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
12/03/2010
OLá amigo, consegui analisar o exemplo ?
Um abraço
Wesley Y
Um abraço
Wesley Y
GOSTEI 0
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
Um abraço
Wesley Y
GOSTEI 0