Problema com alteração

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Problema com alteração

Mensagem por Netavin »

Boa tarde!
Th uma rotina de inclusão que através do for..next incluo vários itens no mesmo código. Agora tento dar baixa(Pgto) nesse registro e preciso que todos os itens respectivos tbm sejam baixados. Mas apenas um item está sendo baixado(pago). Ex.: Registro 55555 possui 3 itens=> item 1,2 e item 3.
Apenas o primeiro item aparece baixado.

Código: Selecionar todos

Function Baixa2
Local vroma,vbxro

Use CADTORA

If !File("roma.ntx")
    Index on roma to roma
Else
    Set Index to roma
Endif

Set Index to roma

Do While .T.
    Set Cursor on
    Set Color to R+

    /* Cria vari veis */
    Vroma=0
    vbxro=Ctod(" ")
    LIN46()
    Setcolor("B/W,W/B")

    /* Desenha o quadro */
    DispBox(21,29,30,58,chr(219),"BG/W")
    @ 22,30 Clear to 29,57
    @ 48,00 Say PADC(" Pagamento de Romaneios ",80)
    @ 23,31 Say "Romaneio:" Get vroma Pict "99999" Valid !Empty(vroma>0)
    Read

    If Lastkey() = 27
        Tone(1700,1)
        Alert("Opera‡Æo cancelada!")
        Use
        Rest Screen from op3
        Exit
    Endif

    DbSeek(vroma)

    If !Found()
        Set Cursor off
        Tone(1800,1)
        opc:=Alert("Romaneio nÆo existe!")
        Return
    Endif

	If Statu = "PAGO"
        Tone(1700,2)
        opc:=Alert("Aten‡Æo!;J  foi pago em "+dtoc(bxrom))
        Return
    Endif

    @ 24,31 Say "Toreiro   :" + vend
    @ 25,31 Say "Data Baixa:" Get vbxro Valid !Empty(vbxro)
    Read

    If Lastkey() = 27
        Tone(1000);tone(500)
        Alert("Baixa cancelada!")
        Loop
	Endif
    
	If Updated()
		Tone(1700,1)
		Alert("Baixa efetuada")
		Repl bxrom with vbxro, Statu with "PAGO"
		DbCommit()
    	        Tone(1700,1)

    	        If opc:=Alert("Continua?",{"Sim","NÆo"},"w/b") = 1
        	    Loop
    	        Else
        	    Use
        	    Rest Screen from op3
        	Exit
    	  Endif
    Endif

Enddo
DbCloseAll()
Return
... uma luz por favor!!
Agradecimentos antecipados.

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

Re: Problema com alteração

Mensagem por rosalvo rosa »

Netavin escreveu: If Statu = "PAGO"
Tone(1700,2)
opc:=Alert("Aten‡Æo!;J  foi pago em "+dtoc(bxrom))
Return
Endif

Código: Selecionar todos

aqui vc deve colocar :
n_tem:= 0
While codigo(campo do registro) = nnnnn (sua variavel) .and. !Eof()
    if Statu <> "PAGO"
        n_tem:=1 
        Exit
    Endif
    Skip
EndDo
if n_tem = 1
   continue...
endIf

etc etc
não sei se entendi, mas se era isso, está aí.
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem por Netavin »

Boa noite amigos do Fórum!
Olá caro colega Rosalvo!

Código: Selecionar todos

aqui vc deve colocar : 
n_tem:= 0 
While codigo(campo do registro) = nnnnn (sua variavel) .and. !Eof() 
    if Statu <> "PAGO" 
        n_tem:=1 
        Exit 
    Endif 
    Skip 
EndDo 
if n_tem = 1 
   continue... 
endIf 

etc etc [/Quote]
Vamos a luta!
Grato!

Netavin

Valeu demais sua dica. Foi o ponta-pé inicial para que eu conseguisse chegar num resultado positivo.
Ficou assim:

Código: Selecionar todos

While roma=vroma .and. !eof()
   If Statu <> "PAGO"
      Repl bxrom with vbxro, statu with "PAGO"
      DbCommit()
      Skip
   Else
      Tone(1700,1)
					
       If opc:=Alert("Continua?",{"Sim","NÆo"},"w/b") = 1
          Loop
       Else
          Use
           Rest Screen from op3
           Exit
       Endif
    Endif
Enddo
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Vc já tentou usar o dbedit ou o browse para montar os itens para cadastro/baixa.
Isso facilita muito a entrada e alteração dos dados.
É uma das tecnicas usadas para N.F.
Vc monta o cabeçalho e depois entra com todos os itens da N.F.
Se for uma conta com vários vencimentos, vc entra com o código do cliente e o sistema abre uma janela com todos os vencimentos. Vc localiza qual ele vai pagar e faz a devida baixa. Limpo.
Vc pode colocar uma opção para marcar lançamento para baixa. Aperta uma tecla e o sistema executa as baixas marcadas.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem por Netavin »

Olá mui prezado gvc!
Há alguns anos atrás eu tinha uma enorme facilidade em aprender/assimilar qualquer coisa que eu me propusesse a aprender. Infelizmente devo te confessar que atualmente encontro muita dificuldade para aprender novas coisas, como seria o caso.
Não é comum alguém confessar isso, não é ?
Admiro muito quando vejo exemplos dessa técnica. É muito prático e eficiente. Eu ainda programo o "arroz com feijão".
Gosto demais da conta de programar em Clipper sô !! Estou engatinhando no VFP. Porém não consigo deixar do velho clipper.
Então, só estou fazendo as implementações que realmente preciso com urgência mesmo.
Gostaria muitíssimo de ter tempo para me dedicar ao estudo da programação. Minha esposa ainda me pergunta o porquê fico mexendo com isso se não dependo disso para me sustentar; que com meus 50 anos deveria deixar a programação de lado.
Nem pensar !!!! :|
É grande a minha gratidão para com você e todos os amigos do Fórum. Pois dispensam seu tempo a tantas pessoas e a mim, para nos ajudar.
... assim vou indo.

Grande abraço!

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Entendi e respeito.
Só não entendi pq sua esposa não deixa um menino (de só 50 anos) se divertir um pouco. Essas nossas mães são terríveis.

De qualquer forma, boa sorte. Vc é bem vindo.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Responder