ajuda Fast report
15/12/2005
0
estou precisando de uma apostila ou tutorial do fast report
até hj eu so tinha mexido com quick report ..mas agora preciso de um melhor!!
Eu dei uma olhada no fast e ele parece ser muito bom...so que eu não estou conseguindo fazer ele interagir com o delphi..
ex: eu quero q a minha aplicação consiga enxergar os componentes que estão dentro do fast e vice -versa (Scripts)
grato
Henry
Henrytpc
Posts
16/12/2005
Elixandre
o acesso feito nele é de maneira referencial assim como é feito rave.
exemplo : (acessar o memo no fast que no quick seria com com um TQrLabel), usaria algo assim antes de dá um preview ou um print no fastreport
var
Memo1 : TfrxMemoView;
begin
inherited;
Memo1 := D_Modulo.frxReport.FindObject(´LB_EMP´) as TfrxMemoView;
Memo1.Text := D_Modulo.ALoginGeral.NME_LOJA;
Memo1 := D_Modulo.frxReport.FindObject(´MEMO1´) as TfrxMemoView;
Memo1.Text := ´Tabela de Preço - (´+ TP_Tabela.Items[TP_Tabela.ItemIndex]+´)´;
end;
assim como as funções o fast dentro do seu editor tem uma ambiente parecido como o editor do delphi usando nele o mesmo delphi pascal que usamos mas temos perceber que nem todas as funcões estão lá , mas mesmo assim tem uma boa parte das mais usadas no delphi , mas se ñ existir vc pode criar em unit qualquer e registar para acessar dentro de editor da fast . Usando o evento OnUserFunction do FrxReport , exemplo :
function TD_Modulo.frxReportUserFunction(const MethodName: String;
var Params: Variant): Variant;
begin
if (AnsiCompareText(MethodName,´MediaPrazo´)=0) then
begin
Result := MediaPrazo(Params[0],´-´);
end;
if (AnsiCompareText(MethodName,´IsImpar´)=0) then
begin
Result := IsImpar(Params[0]);
end;
if (AnsiCompareText(MethodName,´GetEmpresa´)=0) then
begin
Result := GetEmpresa;
end;
if (AnsiCompareText(MethodName,´GetUser´)=0) then
begin
Result := GetUser;
end;
end;
resumido , o fast é fantastico , mas temos que usar determinado esquemas para ultilizar ou simular a integração que quickreport tem com o editor do delphi .
Qualquer duvida entre em contato no forum
16/12/2005
Henrytpc
vc saberia me dizer se é possivel importar um grafico do excel para dentro do fast report... tb estou precisando disso
Grato
Henry
16/12/2005
Elixandre
19/12/2005
Henrytpc
Eu não entendi direito essa parte de mandar funcões de uma unit para dentro do fast.
Se não for incomodar vc poderia repetir a explicação
Grato
Henry
21/12/2005
Elixandre
o componente principal do fast é ´FrxReport´ como vc sabe , na parte de eventos ele possui o evento ´UserFunction´ que é disparada toda vez que vc faz a ultilização de alguma função dentro do editor de relatório do fast, ok ?
bem então o que acontece , toda vez que vc usa uma função o fast verifica se existe na sua biblioteca interna , caso ñ existe ele dispara o evento ...
um exemplo dentro do evento do componente do fast , (no meu sistema o componente de relatorio esta dentro de um tmodulo) que toda vez vou chamar um relatório uso este componente , já vi caso que as pessoas quando vão usar um fast colocam um componente deste pra cada relatório em quanto é mais organizado passar a informação em tempo de execução qual relatório o componente vai abri ... bem voltando ao assunto da função ...
function TD_Modulo.frxReportUserFunction(const MethodName: String;
var Params: Variant): Variant;
begin
if (AnsiCompareText(MethodName,´MediaPrazo´)=0) then
begin
Result := MediaPrazo(Params[0],´-´);
end;
1º. ´MediaPrazo´ foi a função que criei que quero acessar de dentro do editor do fast.
2º. quando uso ´AnsiCompareText(MethodName,´MediaPrazo´)=0´ estou vallidado qual foi a função que disparou o evento e se for o mesmo nome executa o que vem apos da validação.
3º quando uso , ´Result := MediaPrazo(Params[0],´-´); ´ estou chamando a função que será retorna dentro editor , ´result´ é variant .
se vc percebeu o parametro do evento Params é Variant, então ele também poderá ser um vetor ... então pra cada parametro da sua função ela vai corresponder a um vetor ...
exemplo :
parametro 1 = Params[0]
parametro 2 = Params[1]
parametro 3 = Params[2]
etc ...
então minha função MediaPrazo poderia ter sido feita com mais parametros então sua chamada poderia ter sido feita assim :
MediaPrazo(Params[0],Params[1],Params[2],Params[3],´-´)
então cada params seria uma valor vindo da fonte de dados do relatório , então basicamente o relatório pede o resultado usando a função e passado os dados do relatório retornando com o resultado da função ....
bom , ñ sei se fui mais claro , quqlquer coisa manda outro tópico com sua dúvida
29/12/2005
Henrytpc
Desculpa te encher o saco denovo mas agora me encontro com a seguite duvida
estou precisando montar um grafico no formato pizza onde para cada ponto é mudada a cor
Notei que existe uma propriedade que faz isso (ColorEathPoint) mas as cores apresentadas não deixam o grafico com uma aparencia legal, eu gostaria de estar trabalhando com outras cores
vc sabe me dizer se isso é possivel
se eu não fui muito claro na minha pergunta... me fale que tentarei reformula la
Grato
Henry
30/12/2005
Elixandre
03/01/2006
Henrytpc
É isso que eu estou querendo...preciso montar graficos mais estilosos que os disponiveis no fast
se vc puder me mandar um exemplo eu agradeço
Grato
Henry
Clique aqui para fazer login e interagir na Comunidade :)