Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Numeração de Faturas

Bom dia,

Estou com uma dificuldade em um processo que preciso,

Anexei um qvw com um exemplo da minha massa de dados, a questão e o seguinte, preciso de uma regra no script que enumere (classifique) as faturas, trazendo 1 pra 1ª Fatura, 2...3... e assim por diante, usando como regra a data de inicio de vigência.

Fiz uma massa teste pra vocês terem noção de como e a nossa base, nosso sistema traz a competência de geração (comp) como 201406 (06/2014), 201405 (05/2014)

acho que sera uma coisa simples mas não estou conseguindo pensar em como fazer esse calculo no script e criar esse campo

não sei se fui claro na explicação, se alguém puder ajudar.

Labels (1)
10 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, não entendi a necessidade dessa sequencia, mas você pode fazer assim:

Dados_TMP:

Load * inline

[

Cliente, Fatura, DtIniVig, Comp

1001, 010001, 01/04/2014, 201404

1001, 010002, 01/04/2014, 201405

1001, 010003, 01/04/2014, 201406

1002, 011001, 01/06/2014, 201406

1003, 020001, 01/05/2014, 201405

1003, 020002, 01/05/2014, 201406

1004, 030003, 01/06/2014, 201406

]

;

DADOS:

LOAD

  AutoNumber(DtIniVig&'|'&Fatura, 'NumeroFatura') AS NumeroSeqFatura,

  *

Resident Dados_TMP

Order By DtIniVig, Fatura;

DROP Table Dados_TMP;

Qlikfique-se

Tonial.

Don't Worry, be Qlik.
Anonymous
Not applicable
Author

a necessidade e a seguinte, vou fazer um calculo de comissão, nos contratos iniciados no dia 01 do mês eu posso pegar a 1ª mensalidade e aplicar a % de comissão, nos contratos iniciados após o dia 01 eu tenho que pegar a 2ª mensalidade, pois a 1ª não esta com o valor cheio.

Então eu preciso de um campo que me informe se esta fatura é a 1ª ou a 2ª para usa-la no set analysis com a regra se o contrato inicia dia 01 ou não.

então esse numero sequencial tem que ser por cliente.

eduardo_sommer
Partner - Specialist
Partner - Specialist

Dê uma olhada na modificação que fiz no seu Load Inline:

Load *,

if (Cliente=peek(Cliente), Peek(Ordem)+1, 1) as Ordem

inline

[

Cliente, Fatura, DtIniVig, Comp

1001, 010001, 01/04/2014, 201404

1001, 010002, 01/04/2014, 201405

1001, 010003, 01/04/2014, 201406

1002, 011001, 01/06/2014, 201406

1003, 020001, 01/05/2014, 201405

1003, 020002, 01/05/2014, 201406

1004, 030003, 01/06/2014, 201406

];

Eduardo

eduardo_sommer
Partner - Specialist
Partner - Specialist

Se você necessitar que a numeração seja reiniciada a cada Comp, é só acrescentar no if, ficando:

if (Cliente=peek(Cliente) and Comp=peek(Comp), Peek(Ordem)+1, 1) as Ordem


Eduardo

Clever_Anjos
Employee
Employee

Grande Ornelas,

Tem que ser no script?

Uma função rank simples resolve.

Veja anexo

Clever_Anjos
Employee
Employee

Uma solução usando script

Load

*,

if(

    Exists(Cliente),

    rangesum(Peek('X'),1),

    1

    ) as X

inline

[

Cliente, Fatura, DtIniVig, Comp

1001, 010001, 01/04/2014, 201404

1001, 010002, 01/04/2014, 201405

1001, 010003, 01/04/2014, 201406

1002, 011001, 01/06/2014, 201406

1003, 020001, 01/05/2014, 201405

1003, 020002, 01/05/2014, 201406

1004, 030003, 01/06/2014, 201406

];

Anonymous
Not applicable
Author

Clever Anjos preciso desde valor em scrip pois na dimensão do gráfico preciso pegar apenas as 2ª mensalidades dos contratos iniciados após o dia 01.

Um "problema" e que na minha App não carrego os dados inline, são alguns Qvd's que são ligados (Ligações e Join's) e me dão uma base, essa que mandei foi apenas uma amostra das informações que tenho dentro desta app, pois seria inviável coloca-la inteira aqui (muitos dados)

tentei ajustas os exemplos passados pelo Clever e pelo Eduardo para o script que tenho, porém não da certo.

eduardo_sommer
Partner - Specialist
Partner - Specialist

Leandro,

Pode ser que o problema com a expressão que te passei esteja relacionado com a ordenação dos dados.Para funcionar, você deve tê-los na ordem de Cliente e data (ou Comp). Se você quiser a numeração reiniciando a cada Competência, tem que usar a segunda expressão que eu passei.

Eduardo

Clever_Anjos
Employee
Employee

Leandro,

Ao final de todas as cargas, faça um LOAD RESIDENT ORDER BY Cliente, Fatura calculando esse flag.

Deve funcionar.