-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathfxAlteraPrimeiraLinhaTabela.txt
67 lines (56 loc) · 2.27 KB
/
fxAlteraPrimeiraLinhaTabela.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
let
funcao =
// ------------------------------------------------------------------- INICIO DA FUNCAO -------------------------------------------------------------------
(
NomeCampo as text,
OperacaoLinhaLinha as text,
Tabela as table
)=>
let
/*
// -->> variaveis no momento do desenvolvimento
NomeCampo = "VALOR",
OperacaoLinhaLinha = "each _ * 100",
Tabela = fxRateio,
*/
AlteraPrimeiraLinha =
Table.FromRecords({
Record.TransformFields(
Tabela{0},
{NomeCampo, Expression.Evaluate(OperacaoLinhaLinha)}
)
}),
MantemUltimasLinhas = Table.Skip(Tabela,1),
UneLinhas = Table.Combine({AlteraPrimeiraLinha, MantemUltimasLinhas})
in
if Table.IsEmpty(Tabela) then Tabela else UneLinhas
// ------------------------------------------------------------------- FIM DA FUNCAO -------------------------------------------------------------------
, metadados = [
Documentation.Name = "fxAlteraPrimeiraLinhaTabela",
Documentation.Description = "
by Joviano Silveira (www.joviano.com)
Essa função altera o valor de um registro SOMENTE na primeira linha da tabela.
Ideal para ajustar arredondamentos.
",
Documentation.Examples = {
// exemplo
[
Description = "Multiplicando o valor da primeira linha da coluna 'VALOR' por 100",
Code = "fxAlteraPrimeiraLinhaTabela(
""VALOR"",
""each _ * 100"",
MinhaTabela
)",
Result = "
Vai transformar o texto em função e aplicar à primeira linha da tabela
"
]
}
]
in
Value.ReplaceType(
funcao,
Value.ReplaceMetadata(
Value.Type(funcao),metadados
)
)