REGISTROS POR DATA

 Tópico anterior Próximo tópico Novo tópico

REGISTROS POR DATA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#499022 - 11/01/2022 12:08:19

ANDERSONHELP
SOCORRO
Cadast. em:Julho/2016


Última edição em 11/01/2022 12:26:52 por ANDERSONHELP

Bom dia
tenho uma tabela com data e quantidade
na qual eu sempre ordeno por data
exemplo:
DATA    QT
01/01    10
03/01     5
05/01    12

como eu posso fazer para ir zerando essas quantidades, via codigo, do primeiro pra baixo?
exemplo, supondo que eu tenha que descontar 12 unidades
ele vai para o primeiro registro que é do dia 01/01 e abate as 10, restando 2
depois ele vai para o dia 03/01 e abate esses 2, restando 3, quando completar a quantidade pedida, no caso os 12, dai sai fora do loop
alguem pode me ajudar via codigo ?

tentei do while, for next, etc, porem nao consegui com nenhum






#499029 - 11/01/2022 14:23:22

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O campo é data mesmo ou só um campo string com esses números?

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499030 - 11/01/2022 15:17:14

ANDERSONHELP
SOCORRO
Cadast. em:Julho/2016


O campo é data mesmo e a quantidade é numero longo



#499031 - 11/01/2022 15:24:39

ANDERSONHELP
SOCORRO
Cadast. em:Julho/2016


O campo é data mesmo e a quantidade é numero longo
Citação:
:
O campo é data mesmo ou só um campo string com esses números?

Preciso um código que faça ele ir deduzindo registro a registro essas quantidades até zerar



#499032 - 11/01/2022 16:07:40

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O que me parece é que você está tentando fazer um regime de FIFO(ou em português PEPS). Somente pelos totais vai ficar bem difícil de fazer, mesmo sendo possível. E pode te levar à diversas inconsistências. Tem outro tópico aqui onde expliquei e exemplifiquei isso. Mesmo que consigamos te ajudar à fazer o código pra fazer o que você quer, a base da coisa não está correta e você estará entrando em uma 'toca de coelho' que vai te sugar muito tempo e cabelos brancos no futuro. Certamente vai ser mais simples refazer agora que está no começo do que consertar tudo que pode dar errado no futuro.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499036 - 11/01/2022 18:37:56

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 11/01/2022 18:53:27 por JABA

        dim vetor() as decimal = {10, 5, 12}
        dim valor_abate as decimal = 12
        
        For x as integer = 0 to vetor.Length-1
            if valor_abate > vetor(x) then
                valor_abate = valor_abate - vetor(x)
                vetor(x) = 0
            else
                vetor(x) = vetor(x) - valor_abate
                valor_abate = 0
                exit for
            end if
        next
        
        'para mostrar os dados alterados
        For y as integer = 0 to vetor.Length-1
            Console.WriteLine(vetor(y))
        next


_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#499037 - 11/01/2022 19:32:02

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Mostro como ficaria, mas você está cavando uma cova pra se enterrar, veja o exemplo


_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499038 - 11/01/2022 19:42:20

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Melhorei um pouco o exemplo, pra ficar mais claro

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário