PEGAR A DIFERENCA EM PORCENTAGEM ENTRE 2 VALORES
Para preencher um grid normalmente faço assim:
[ô]buscando os dados
[ô]preenchendo o grid
gostaria de mostrar no grid, numa coluna extra a diferença entre duas colunas (campos) em porcentagem
exemplo:
na coluna 3 tenho o campo PREÇO
na coluna 4 tenho o campo PREÇO_COM_LUCRO
ai na coluna 5 gostaria que aparecesse a diferença dos 2 campos em PORCENTAGEM
na pratica:
PRECO PRECO_COM_LUCRO DIFERENÇA
10,00 15,00 [txt-color=#e80000]50,00%[/txt-color]
ou seja, a diferença entre os 2 valores é de 50%
Obs: sempre o campo PRECO_COM_LUCRO é maior que PRECO
isso é para exibir no grid assim:
como eu faço?
[ô]buscando os dados
Call ABRIR_BD_SEM_DATA1
SQL = [Ô]SELECT DESCRICAO, QUANTIDADE, PRECO, VALOR_DESC, (QUANTIDADE * PRECO) AS [SUB-TOTAL], iif(TIPO_DESC = [ô]R[ô], (QUANTIDADE * PRECO) - VALOR_DESC, ((QUANTIDADE * PRECO) * VALOR_DESC)/ 100) as [TOTAL], CODIGO FROM PEDIDOS_ITENS WHERE COD_PEDIDO = [Ô] & Pedido
Set RS = BD.OpenRecordset(SQL)
FormatarGrid_Itens
[ô]preenchendo o grid
Private Sub FormatarGrid_Itens()
With Grid
.Clear
.Cols = 6
.Rows = 2
.ColWidth(0) = 0
.ColWidth(1) = 5800
.ColWidth(2) = 1000
.ColWidth(3) = 1100
.ColWidth(4) = 1000
.ColWidth(5) = 1100
.TextMatrix(0, 1) = [Ô]DESCRIÇÃO[Ô]
.TextMatrix(0, 2) = [Ô]QUANT.[Ô]
.TextMatrix(0, 3) = [Ô]PREÇO[Ô]
.TextMatrix(0, 4) = [Ô]DESC.[Ô]
.TextMatrix(0, 5) = [Ô]TOTAL[Ô]
[ô]colocar os cabeçalho em negrito
For x = 0 To .Cols - 1
.Col = x
.Row = 0
.CellFontBold = True
Next x
[ô]ALINHAMENTO
[ô].ColAlignment(2) = 1
[ô]centralizar o titulo
For f = 0 To .Cols - 1
.Row = 0
.Col = f
.CellAlignment = flexAlignCenterCenter
Next f
Do Until RS.EOF
If Not IsNull(RS!DESCRICAO) Then .TextMatrix(.Rows - 1, 1) = RS!DESCRICAO
If Not IsNull(RS!QUANTIDADE) Then .TextMatrix(.Rows - 1, 2) = RS!QUANTIDADE
If Not IsNull(RS!Preco) Then .TextMatrix(.Rows - 1, 3) = Format(RS!Preco, [Ô]##,##0.00[Ô])
If Not IsNull(RS!VALOR_DESC) Then .TextMatrix(.Rows - 1, 4) = RS!VALOR_DESC
If Not IsNull(RS!Total) Then .TextMatrix(.Rows - 1, 5) = Format(RS!Total, [Ô]##,##0.00[Ô])
RS.MoveNext
.Rows = .Rows + 1
Loop
.Rows = .Rows - 1
End With
End Sub
gostaria de mostrar no grid, numa coluna extra a diferença entre duas colunas (campos) em porcentagem
exemplo:
na coluna 3 tenho o campo PREÇO
na coluna 4 tenho o campo PREÇO_COM_LUCRO
ai na coluna 5 gostaria que aparecesse a diferença dos 2 campos em PORCENTAGEM
na pratica:
PRECO PRECO_COM_LUCRO DIFERENÇA
10,00 15,00 [txt-color=#e80000]50,00%[/txt-color]
ou seja, a diferença entre os 2 valores é de 50%
Obs: sempre o campo PRECO_COM_LUCRO é maior que PRECO
isso é para exibir no grid assim:
como eu faço?
cara isso é regra de 3 simples...
Supondo que :
P=Preço
L=Preço com lucro
R=porcentagem
R = ( L * 100 ) / P
O R vai trazer um valor em porcentagem, que no seu caso sempre será maior que 100, ai vc vai ter que pegar esse resultado e subtrair 100, o resultado será a diferença em porcentagem, logo:
R=R-100
De acordo com seu exemplo:
R=((15 * 100) / 10)-100
R=(1500 / 10)-100
R=(150 ) - 100
R= 50
Defina as variáveis como Double
Supondo que :
P=Preço
L=Preço com lucro
R=porcentagem
R = ( L * 100 ) / P
O R vai trazer um valor em porcentagem, que no seu caso sempre será maior que 100, ai vc vai ter que pegar esse resultado e subtrair 100, o resultado será a diferença em porcentagem, logo:
R=R-100
De acordo com seu exemplo:
R=((15 * 100) / 10)-100
R=(1500 / 10)-100
R=(150 ) - 100
R= 50
Defina as variáveis como Double
tem como fazer isso na SQL para só jogar no flexgrid como um campo?
SELECT (calculo) as campox from.....
SELECT (calculo) as campox from.....
Cara, nunca tentei mas deve dar certo, se tem uma parte na sua sql (((QUANTIDADE * PRECO) * VALOR_DESC)/ 100) ), e ta dando certo é só encaixar essa fórmula, algo como ...
SELECT ( ( (PRECO_COM_LUCRO * 100) / PRECO) - 100 ) AS DIFERENCA
TENTA AI E FALA PRA GENTE..
SELECT ( ( (PRECO_COM_LUCRO * 100) / PRECO) - 100 ) AS DIFERENCA
TENTA AI E FALA PRA GENTE..
Tópico encerrado , respostas não são mais permitidas