Guest Visitante Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 Pessoal....Eu tenho um relatorio no quick report.....simples..ele mostra o total de extras do funcionario assim:funcionario: Jose da Silvadata.........QtdHorasExtras-----Percentual de aumento de HE.=======================================janeiro 10 100,00%fev 15 50,00%mar 20 33,33%abril 15 -25,00%ou seja eu gostaria que no percentual aparecesse o percentual de horas extras eu relação ao registro anterioro problema é que não to conseguindo fazer este calculo...eu usei um QRexpr com esta expressão= SUM(((query1.QTDHE) / SUM(query1.QTDHE)*100)-100)MAS não da certo.....alguém poderia me ajudar...?muito Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 Perdão...pessoal...meu nome não saiu...saiu com Visitante ai Logei e estou inserindo de novo o meu tópico..Pessoal....Eu tenho um relatorio no quick report.....simples..ele mostra o total de extras do funcionario assim:funcionario: Jose da Silvadata.........QtdHorasExtras-----Percentual de aumento de HE.=======================================janeiro.................... 10................................. 100,00%fev ..........................15................................. 50,00%mar......................... 20................................. 33,33%abril ........................15.................................. -25,00%ou seja eu gostaria que no percentual aparecesse o percentual de horas extras eu relação ao registro anterioro problema é que não to conseguindo fazer este calculo...eu usei um QRexpr com esta expressão= SUM(((query1.QTDHE) / SUM(query1.QTDHE)*100)-100)MAS não da certo.....alguém poderia me ajudar...? :( muito Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 ou seja eu gostaria que no percentual aparecesse o percentual de horas extras eu relação ao registro anterioro problema é que não to conseguindo fazer este calculo...Eder, você poderia dar um exemplo de como deveria ser o resultado para ajudar a entender? Quem sabe possa dar alguma sugestão.[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 Olá Eder,faz assim:declare tres variaveis, uma integer e duas Real:var Form1: TForm1; i : integer; Porc, vlAnt : Real; seu relatório deve ter um QRBand Title, correto? no evento BeforePrint desse band coloque: procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin i := 1; end; Pra exibir o valor da porcentagem, use um QRLabel, e no evento OnPrint coloque: procedure TForm1.QRLabel1Print(sender: TObject; var Value: String); begin if i = 1 then begin Value := '100,00%'; vlAnt := Query1.FieldByName('QtdHorasExtras').Value; inc(i); end else begin Porc := (Query1.FieldByName('QtdHorasExtras').Value - vlAnt) / vlAnt * 100; vlAnt := Query1.FieldByName('QtdHorasExtras').Value; Value := FormatFloat('0.00',Porc)+'%'; end; end;Entedeu?Abs. Propr'amador. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 Amigo..Programador....deu certo o seu codigo..porem teve dois probleminhas...que não to conseguindo resolver...1º-quando a hora extra do camarada for 0 zero ai da erro na divisão..2º-Como são varios funcionarios..primeiro o relatorio lista um de cada vez...ou seja lista o jose depois a maria e assim por diante....e ao termino de cada um ,....ele faz um somatorio de horas extras....o problema é que no termino de cada um.....quando vai pro proximo ...o primeiro registo deveria dar percentual 0 zero pois se é o primeiro não aumentou nem diminuiu ...certo?? o que ele está fazendo é conta do ultimo funcionario..entendeu??é como se fosse tudo um unico funcionario.........de mais ele calculo legal...Terias alguma solução pra resolver estes pequenos problemas?Um abraço e muito grato por ajudar...t+ ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 28, 2006 Denunciar Share Postado Novembro 28, 2006 Eder,quanto ao erro da divisão, é só colocar um ifTForm1.QRLabel1Print(sender: TObject; var Value: String); begin if i = 1 then begin Value := '0,00%'; vlAnt := Query1.FieldByName('QtdHorasExtras').Value; inc(i); end else begin if Query1.FieldByName('QtdHorasExtras').Value > 0 then begin Porc := (Query1.FieldByName('QtdHorasExtras').Value - vlAnt) / vlAnt * 100; Value := FormatFloat('0.00',Porc)+'%'; end else Value := '0,00%'; vlAnt := Query1.FieldByName('QtdHorasExtras').Value; end; end;E quanto ao outro problema, se você usar um QRBand Detail pra exibir os funcionarios e um QRSubDetail para exibir as horas é só você colocar no evento BeforePrint ou AfterPrint do QRBand Detail o código pra zerar o valor de i da mesma forma como fiz no QRBand Title aí você pode até tirar esse código do Band Title.Entendeu???Abs. Progr'amador. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Novembro 28, 2006 Denunciar Share Postado Novembro 28, 2006 :yeah: Amigão.....deu tudo certinho.... :clap: :clap: ficou ótimo...Valeu...muito grato..mesmo..só não entendi..bem o seu codigo....gostaria que você me desse uma preve descrição se possivel..da variavel que você criou chamada (I)NÃO ENtendi o que ela faz realmente....De mais meu amigo..muito Grato e até.t+ :thumbsup: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 28, 2006 Denunciar Share Postado Novembro 28, 2006 Vixi, esse negoço de esplicação eu só meio ruim, eu num tenho aquela linguagem tecnicas dos caras aí, sou autodidata :D O QuickReport abre o relatório em um especie de loop, ou seja, ele abre um funcionario em seguida os registros de horas, outro funcionario e os registros, etc..., então cada print (before ou after) do band dos funcioario ele retorna o valor de i = 1, aí é spó execultar aquele IF i = 1.funcionario 1i = 1i = 2i = 3i = 4-------funcionario 2i = 1i = 2i = 3i = 4na verdade a váriavel i é simplesmente pra identificar o inicio de cada funcionario entende, i := 1, só pra indicar a primeira linha, já que a primeira hora extra não é calculado a porcentagem.Hehe,eu acho deu pra entender!ou não!??Abs. Progr'amador. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Novembro 29, 2006 Denunciar Share Postado Novembro 29, 2006 eu acho deu pra entender!ou não!??Resposta: Deu pra entender sim... muito bom.. você é modesto...sabe explicar muito bemValeu..amigão...muito grato pela ajuda...t+ :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Visitante
Pessoal....
Eu tenho um relatorio no quick report.....simples..ele mostra o total de extras do funcionario assim:
funcionario: Jose da Silva
data.........QtdHorasExtras-----Percentual de aumento de HE.
=======================================
janeiro 10 100,00%
fev 15 50,00%
mar 20 33,33%
abril 15 -25,00%
ou seja eu gostaria que no percentual aparecesse o percentual de horas extras eu relação ao registro anterior
o problema é que não to conseguindo fazer este calculo...
eu usei um QRexpr com esta expressão= SUM(((query1.QTDHE) / SUM(query1.QTDHE)*100)-100)
MAS não da certo.....
alguém poderia me ajudar...?
muito Grato
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.