Olá Pessoal,
Estou tendo um problema com meu Tbrowse que coloco pra editar um .dbf. É o seguinte, enquanto eu estou incluindo itens no temp, o Tbrowse atualiza normalmente, ou seja, ele automaticamente adiciona os itens que eu mandei pra esse .dbf. No entanto, quando eu entro no Tbrowser para excluir um item,
ele repete a primeira linha do .dbf até a linha que excluir, mas se eu exclui a primeira linha, ele atualiza normalmente. Entao, meu problema é quando excluo um item que nao esteja na primeira linha.
Agradeço antecipadamente a ajuda de todos.
Obrigado
************************ CODIGO FONTE **************
RESTORE SCREEN FROM TELA_PRINC
set color to w+/b
DO CABECALHO WITH "ENTRADA DE MERCADORIAS","ENTRADA"
********************* VARIAVEIS ****************
nTIPODEOP = 00
aDESCMERC = SPACE(40)
aCODF = SPACE(06)
TIPO = SPACE(01)
aCODBARRA = SPACE(13)
nQTE = 000000
nPRUNIT = 0000.00
nPROTAL = 00000.00
WEXCLU = SPACE(01)
wFINAL = SPACE(01)
nQTELANC = 000000
nCODLAN = SPACE(06)
NUMITENS = 000
nNUMMOV = 00000
nPRAZO1 = 000
nPRAZO2 = 000
nPRAZO3 = 000
nPRAZO4 = 000
dTVENCLANC = CTOD(" / / ")
***************** ARRAYS ************************
DECLARE PROCTIPON := { "COD","DESC" }
DECLARE PROCTIPOF := { "99","@! " }
DECLARE PROCTIPOL := { "CODIGO","TIPO DE OPERACAO" }
DECLARE PROCTIPOSUP := { "_","_" }
DECLARE PROCPRODN := { "CCM01DSMER","NCM01VLCUS" }
DECLARE PROCPRODF := { "@!","9999999.99" }
DECLARE PROCPRODL := { "DESCRICAO DA MERCADORIA","CUSTO" }
*************** VERIFICA INDEXACOES **************
if !file("OPERACOES01.ntx")
use OPERACOES
index on COD to OPERACOES01
endif
if !file("TEMP02.ntx")
use TEMP
index on DESCMERC to TEMP02
endif
if !file("CMCA0204.ntx")
use CMCA02
index on CCM02CDMER to CMCA0204
endif
************* DEFINE AREAS DE TRABALHO ************
SELE 01
USE OPERACOES INDEX OPERACOES01 ALIAS OPERACOES
SELE 02
USE CMCA01 INDEX CMCA0102 ALIAS CMCA01
SELE 03
USE CMCA02 INDEX CMCA0201 ALIAS CMCA02
SELE 04
USE CMCA02 INDEX CMCA0204 ALIAS CMCA0204
SET EXCLU ON
SELE 05
USE MOVIMENTACAO INDEX MOVIMENTACAO01 ALIAS MOVIMENTACAO
SELE 06
USE PAGAR INDEX PAGAR03 ALIAS PAGAR
SELE 07
USE TEMP INDEX TEMP02 ALIAS TEMP
ZAP
SET EXCLU OFF
***************** TBROWSER ***********************
MOSTRALANC := TBrowseDB(09,00,19,78)
oColumn := TBColumnNew(" ",{|| TEMP->DESCMERC})
oColumn2 := TBColumnNew(" ",{|| TEMP->QTE})
oColumn3 := TBColumnNew(" ",{|| TEMP->PRUNIT})
oColumn4 := TBColumnNew(" ",{|| TEMP->PRTOTAL})
MOSTRALANC:addColumn(ocolumn)
MOSTRALANC:addColumn(ocolumn2)
MOSTRALANC:addColumn(ocolumn3)
MOSTRALANC:addColumn(ocolumn4)
******************* PEGA TIPO DE OPERACAO ********
@ 04,00 to 04,79 DOUBLE
@ 03,00
@ 03,00 say "[TIPO DE OPERACAO:]"
@ 03,20 GET nTIPODEOP PICT "99"
READ
IF LASTKEY () = 27
RETURN
ENDIF
SELE OPERACOES
SEEK nTIPODEOP
IF !FOUND()
SAVE SCREEN TO DBEDIT1
SET COLOR TO B/W
GO TOP
DBEDIT (04,20,10,60,PROCTIPON,"FIRMSHOW",PROCTIPOF,PROCTIPOL,PROCTIPOSUP)
@ 24,12 SAY MENSAGEM
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
RESTORE SCREEN FROM DBEDIT1
@ 03,20 CLEAR TO 03,79
@ 03,20 SAY DESC
INKEY(0)
ELSE
@ 03,20 CLEAR TO 03,79
@ 03,20 SAY DESC
@ 03,40 SAY nTIPODEOP
ENDIF
@ 05,00 SAY " DESCRICAO QTE PR.UNIT PR.TOTAL "
@ 06,00 TO 06,79 DOUBLE
@ 08,00 TO 08,79
@ 20,00 TO 20,79
@ 21,00
@ 22,00
@ 21,04 SAY "Total de Itens:"
@ 22,04 say "Total da Nota.:"
DO WHILE .T.
SELE TEMP
COUNT TO NUMITENS
@ 21,20 CLEAR TO 21,24
@ 21,20 SAY NUMITENS
nVALTOTAL = 0000000.00
SELE TEMP
GO TOP
DO WHILE !EOF()
nVALTOTAL = PRTOTAL + nVALTOTAL
SKIP
ENDDO
@ 22,20 CLEAR TO 22,24
@ 22,20 SAY nVALTOTAL
IF aDESCMERC = "SAIR"
RETURN
ENDIF
aDESCMERC = " "
@ 07,00
@ 07,04 GET aDESCMERC PICT "@!"
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF aDESCMERC = " "
do while .t.
while (! MOSTRALANC:stabilize())
nkey = inkey()
if nkey != 0
exit
endif
enddo
if MOSTRALANC:stable()
nkey = inkey()
endif
if nkey == 5
MOSTRALANC:up()
elseif nkey == 24
MOSTRALANC:down()
elseif nkey == 19
MOSTRALANC:left()
elseif nkey == 4
MOSTRALANC:right()
elseif nkey == 1
MOSTRALANC:home()
elseif nkey == 6
MOSTRALANC:end()
elseif nkey == 18
MOSTRALANC:pageUp()
elseif nkey == 3
MOSTRALANC:pageDown()
elseif nkey == 31
MOSTRALANC:goTop()
elseif nkey == 30
MOSTRALANC:goBottom()
elseif nkey == 29
MOSTRALANC:panHome()
elseif nkey == 23
MOSTRALANC:panEnd()
elseif nkey == 26
MOSTRALANC:panLeft()
elseif nkey == 2
MOSTRALANC:panRight()
elseif nkey == 27
EXIT
LOOP
elseif nkey == 7
@ 23,15 say "Tem certeza que deseja excluir esse item? [S/N]"
@ 23,63 get wexclu pict "@!" VALID wEXCLU$"SN"
read
if wexclu = "S"
@ 23,15 CLEAR TO 23,64
DO RRLOC
delete
dbcommit()
UNLOCK
SET EXCLUSIVE ON
PACK
SET EXCLUSIVE OFF
go bottom
skip -10
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
ELSE
@ 23,15 CLEAR TO 23,64
LOOP
Endif
ELSEIF nKEY == -4
SAVE SCREEN TO ATUALIZA
DO JANELA WITH 11,20,16,55
@ 12,22 SAY "Digite o prazo:"
@ 12,39 GET nPRAZO1 PICT "999"
READ
@ 12,43 GET nPRAZO2 PICT "999"
READ
@ 12,47 GET nPRAZO3 PICT "999"
READ
@ 12,51 GET nPRAZO4 PICT "999"
READ
@ 23,15 SAY "Deseja finalizar e atualizar esta entrada? [S/N]"
@ 23,64 get wfinal pict "@!" VALID wFINAL$"SN"
READ
IF wFINAL = "S"
SELE TEMP
GO TOP
DO WHILE !EOF()
SELE MOVIMENTACAO
GO BOTTOM
nNUMMOV = SEQUENCIA + 1
DO RRLOC
APPEND BLANK
REPL SEQUENCIA WITH nNUMMOV
REPL TIPODEOP WITH nTIPODEOP
REPL CODMERC WITH TEMP->CODMERC
REPL DESCMERC WITH TEMP->DESCMERC
REPL PRUNIT WITH TEMP->PRUNIT
REPL PRTOTAL WITH TEMP->PRTOTAL
REPL PRAZO1 WITH nPRAZO1
REPL PRAZO2 WITH nPRAZO2
REPL PRAZO3 WITH nPRAZO3
REPL PRAZO4 WITH nPRAZO4
SELE TEMP
SKIP
ENDDO
SELE TEMP
GO TOP
DO WHILE !EOF()
nQTELANC = QTE
nCODLANC = CODMERC
DO PREENCHE1 WITH nCODLANC
SELE CMCA0204
SEEK nCODLANC
nQTELANC = nQTELANC + NCM02QTLJ1
DO RRLOC
REPL NCM02QTLJ1 WITH nQTELANC
UNLOCK
SELE TEMP
SKIP
ENDDO
IF nTIPODEOP = 02
dTVENCLANC = dTSYSTEM+nPRAZO1
SELE PAGAR
DO RRLOC
APPEND BLANK
REPL EMISSAO WITH DTSYSTEM
REPL NUMMOV WITH nNUMMOV
REPL DTVENC WITH dTVENCLANC
REPL VLDUP WITH nVALTOTAL
REPL VLSALDO WITH nVALTOTAL
UNLOCK
ENDIF
IF nTIPODEOP = 03
SELE PAGAR
dTVENCLANC = dTSYSTEM+nPRAZO1
DO RRLOC
APPEND BLANK
REPL EMISSAO WITH dTSYSTEM
REPL NUMMOV WITH nNUMMOV
REPL DTVENC WITH dTVENCLANC
REPL VLDUP WITH nVALTOTAL
REPL VLSALDO WITH nVALTOTAL
UNLOCK
SELE TEMP
GO TOP
DO WHILE !EOF()
nQTELANC = QTE
nCODLANC = CODMERC
DO PREENCHE1 WITH nCODLANC
SELE CMCA0204
SEEK nCODLANC
nQTELANC = nQTELANC + NCM02FILJ1
DO RRLOC
REPL NCM02QTLJ1 WITH nQTELANC
UNLOCK
SELE TEMP
SKIP
ENDDO
ENDIF
aDESCMERC = "SAIR"
EXIT
ENDIF
IF WFINAL = "N"
RESTORE SCREEN FROM ATUALIZA
@ 23,00 TO 23,79
LOOP
ENDIF
endif
enddo
ELSE
SELE TEMP
go bottom
skip -10
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
SELE CMCA01
SEEK RTRIM(aDESCMERC)
SAVE SCREEN TO DBEDIT2
SET COLOR TO B/W
DBEDIT (08,15,20,70,PROCPRODN,,PROCPRODF,PROCPRODL,PROCTIPOSUP)
SET COLOR TO W+/B
RESTORE SCREEN FROM DBEDIT2
@ 07,00 CLEAR TO 07,79
@ 07,04 SAY CCM01DSMER
@ 07,47 GET nQTE PICT "999999"
READ
IF nQTE = 0
DO MENSAGEM WITH "Quantidade NAO pode ser ZERO, Tente Novamente",.T.
LOOP
ENDIF
@ 07,47 CLEAR TO 07,53
@ 07,45 SAY nQTE
nPRUNIT = nCM01VLCUS
@ 07,49 SAY nPRUNIT PICT "9999.99"
nPRTOTAL = nQTE * nPRUNIT
@ 07,66 SAY nPRTOTAL PICT "99999.99"
SELE TEMP
DO RRLOC
APPEND BLANK
REPL CODMERC WITH CMCA01->CCM01CDMER
REPL DESCMERC WITH CMCA01->CCM01DSMER
REPL QTE WITH nQTE
REPL PRUNIT WITH nPRUNIT
REPL PRTOTAL WITH nPRTOTAL
REPL ATUALIZADO WITH "N"
UNLOCK
go bottom
skip -10
@ 07,45 CLEAR TO 07,79
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
ENDIF
ENDDO
CLOSE DATA
RETURN
function firmshow
IF LASTKEY() = 27
RETURN 0
ENDIF
@ 24,20 say MENSAGEM
return 1
[/code]
Tbrowser repetindo linha ao excluir
Moderador: Moderadores
-
emanuelrdantas
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 04 Mar 2007 22:00
Uso assim:
Resolve.. a proposito: CARA TU DEU UM PACK ali depois do DELETE ?!?! Pq isto?
Código: Selecionar todos
DELETE
SKIP
IF EOF()
GO BOTTOM
ENd
-
emanuelrdantas
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 04 Mar 2007 22:00
Rpz, Nao deu certo
Tentei fazer o que vc disse, mas nao deu certo. Por favor, gostaria que vc explicasse o porque da sua solucao, sou iniciante e no tbrowse, tô pior ainda.
O pack que vc perguntou é porque ja tentei de tudo, até o pack, ai desisti e ficou lá, mas ja tirei
Obrigado novamente
Emanuel
O pack que vc perguntou é porque ja tentei de tudo, até o pack, ai desisti e ficou lá, mas ja tirei
Obrigado novamente
Emanuel
-
emanuelrdantas
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 04 Mar 2007 22:00
Postanto o codigo novamente.
Oi Pessoal, estou postanto o código novamente. O anterior copiei e colei, mas nao funcionou. Ficou tudo na mesma linha. Fiz ainda algumas pequenas alteraçoes, mas nada relacionado à exclusão o Tbrowser, pois nao tenho a solucao. Por Favor, pessoal me ajudem, preciso entregar pelo menos o controle de estoque essa semana para a realizao de um balanco
Muito Obrigado
Emanuel
Muito Obrigado
Emanuel
Código: Selecionar todos
RESTORE SCREEN FROM TELA_PRINC
set color to w+/b
DO CABECALHO WITH "ENTRADA DE MERCADORIAS","ENTRADA"
********************* VARIAVEIS ****************
nTIPODEOP = 00
aDESCMERC = SPACE(40)
aCODF = SPACE(06)
TIPO = SPACE(01)
aCODBARRA = SPACE(13)
nQTE = 000000
nPRUNIT = 0000.00
nPROTAL = 00000.00
nPRTOTALIG = 00000.00
WEXCLU = SPACE(01)
wFINAL = SPACE(01)
nQTELANC = 000000
nQTEIGUAL = 000000
aCODLAN = SPACE(06)
aCODIGUAL = SPACE(06)
aREABRIR = SPACE(01)
NUMITENS = 000
nNUMMOV = 00000
nPRAZO1 = 000
nPRAZO2 = 000
nPRAZO3 = 000
nPRAZO4 = 000
dTVENCLANC = CTOD(" / / ")
***************** ARRAYS ************************
DECLARE PROCTIPON := { "COD","DESC" }
DECLARE PROCTIPOF := { "99","@! " }
DECLARE PROCTIPOL := { "CODIGO","TIPO DE OPERACAO" }
DECLARE PROCTIPOSUP := { "_","_" }
DECLARE PROCPRODN := { "CCM01DSMER","NCM01VLCUS" }
DECLARE PROCPRODF := { "@!","9999999.99" }
DECLARE PROCPRODL := { "DESCRICAO DA MERCADORIA","CUSTO" }
*************** VERIFICA INDEXACOES **************
if !file("OPERACOES01.ntx")
use OPERACOES
index on COD to OPERACOES01
endif
if !file("TEMP02.ntx")
use TEMP
index on DESCMERC to TEMP02
endif
if !file("CMCA0204.ntx")
use CMCA02
index on CCM02CDMER to CMCA0204
endif
if !file("TEMP01.ntx")
use TEMP
index on CODMERC to TEMP01
endif
if !file("CMCA0101.ntx")
use CMCA01
index on CCM01CDMER to CMCA0101
endif
************* DEFINE AREAS DE TRABALHO ************
SELE 01
USE OPERACOES INDEX OPERACOES01 ALIAS OPERACOES
SELE 02
USE CMCA01 INDEX CMCA0101,CMCA0102 ALIAS CMCA01
SELE 03
USE CMCA02 INDEX CMCA0201,CMCA0204 ALIAS CMCA02
SET EXCLU ON
SELE 05
USE MOVIMENTACAO INDEX MOVIMENTACAO01 ALIAS MOVIMENTACAO
SELE 06
USE PAGAR INDEX PAGAR03 ALIAS PAGAR
SELE 07
USE TEMP INDEX TEMP01,TEMP02 ALIAS TEMP
COUNT TO NUMITENS
IF NUMITENS > 0
@ 24,02 SAY "A Ultima Entrada NAO foi Atualizada. Deseja Reabrir-la? [S/N]"
@ 24,64 GET aREABRIR
READ
IF aREABRIR = "N"
ZAP
ENDIF
ENDIF
SET EXCLU OFF
***************** TBROWSER ***********************
MOSTRALANC := TBrowseDB(09,00,19,78)
oColumn := TBColumnNew(" ",{|| TEMP->DESCMERC})
oColumn2 := TBColumnNew(" ",{|| TEMP->QTE})
oColumn3 := TBColumnNew(" ",{|| TEMP->PRUNIT})
oColumn4 := TBColumnNew(" ",{|| TEMP->PRTOTAL})
MOSTRALANC:addColumn(ocolumn)
MOSTRALANC:addColumn(ocolumn2)
MOSTRALANC:addColumn(ocolumn3)
MOSTRALANC:addColumn(ocolumn4)
******************* PEGA TIPO DE OPERACAO ********
@ 04,00 to 04,79 DOUBLE
@ 03,00
@ 03,00 say "[TIPO DE OPERACAO:]"
@ 03,20 GET nTIPODEOP PICT "99"
READ
IF LASTKEY () = 27
RETURN
ENDIF
SELE OPERACOES
SEEK nTIPODEOP
IF !FOUND()
SAVE SCREEN TO DBEDIT1
SET COLOR TO B/W
GO TOP
DBEDIT (04,20,10,60,PROCTIPON,"FIRMSHOW",PROCTIPOF,PROCTIPOL,PROCTIPOSUP)
@ 24,12 SAY MENSAGEM
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
RESTORE SCREEN FROM DBEDIT1
@ 03,20 CLEAR TO 03,79
@ 03,20 SAY DESC
INKEY(0)
ELSE
@ 03,20 CLEAR TO 03,79
@ 03,20 SAY DESC
@ 03,40 SAY nTIPODEOP
ENDIF
@ 05,00 SAY " DESCRICAO QTE PR.UNIT PR.TOTAL
"
@ 06,00 TO 06,79 DOUBLE
@ 08,00 TO 08,79
@ 20,00 TO 20,79
@ 21,00
@ 22,00
@ 21,04 SAY "Total de Itens:"
@ 22,04 say "Total da Nota.:"
DO WHILE .T.
SELE TEMP
COUNT TO NUMITENS
@ 21,20 CLEAR TO 21,24
@ 21,20 SAY NUMITENS
nVALTOTAL = 0000000.00
SELE TEMP
GO TOP
DO WHILE !EOF()
nVALTOTAL = PRTOTAL + nVALTOTAL
SKIP
ENDDO
@ 22,20 CLEAR TO 22,24
@ 22,20 SAY nVALTOTAL
IF aDESCMERC = "SAIR"
RETURN
ENDIF
aDESCMERC = " "
@ 07,00
@ 07,04 GET aDESCMERC PICT "@!"
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF aDESCMERC = "* "
SELE TEMP
go bottom
skip -10
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
do while .t.
while (! MOSTRALANC:stabilize())
nkey = inkey()
if nkey != 0
exit
endif
enddo
if MOSTRALANC:stable()
nkey = inkey()
endif
if nkey == 5
MOSTRALANC:up()
elseif nkey == 24
MOSTRALANC:down()
elseif nkey == 19
MOSTRALANC:left()
elseif nkey == 4
MOSTRALANC:right()
elseif nkey == 1
MOSTRALANC:home()
elseif nkey == 6
MOSTRALANC:end()
elseif nkey == 18
MOSTRALANC:pageUp()
elseif nkey == 3
MOSTRALANC:pageDown()
elseif nkey == 31
MOSTRALANC:goTop()
elseif nkey == 30
MOSTRALANC:goBottom()
elseif nkey == 29
MOSTRALANC:panHome()
elseif nkey == 23
MOSTRALANC:panEnd()
elseif nkey == 26
MOSTRALANC:panLeft()
elseif nkey == 2
MOSTRALANC:panRight()
elseif nkey == 27
EXIT
LOOP
elseif nkey == 7
@ 23,15 say "Tem certeza que deseja excluir esse item? [S/N]"
@ 23,63 get wexclu pict "@!" VALID wEXCLU$"SN"
read
if wexclu = "S"
@ 23,15 CLEAR TO 23,64
DO RRLOC
delete
skip
if eof()
go bottom
endif
DBCOMMIT()
UNLOCK
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
ELSE
@ 23,15 CLEAR TO 23,64
LOOP
Endif
ELSEIF nKEY == -4
SAVE SCREEN TO ATUALIZA
DO JANELA WITH 11,20,16,55
@ 12,22 SAY "Digite o prazo:"
@ 12,39 GET nPRAZO1 PICT "999"
READ
@ 12,43 GET nPRAZO2 PICT "999"
READ
@ 12,47 GET nPRAZO3 PICT "999"
READ
@ 12,51 GET nPRAZO4 PICT "999"
READ
@ 23,15 SAY "Deseja finalizar e atualizar esta entrada? [S/N]"
@ 23,64 get wfinal pict "@!" VALID wFINAL$"SN"
READ
IF wFINAL = "S"
SELE TEMP
GO TOP
DO WHILE !EOF()
SELE MOVIMENTACAO
GO BOTTOM
nNUMMOV = SEQUENCIA + 1
DO RRLOC
APPEND BLANK
REPL SEQUENCIA WITH nNUMMOV
REPL TIPODEOP WITH nTIPODEOP
REPL CODMERC WITH TEMP->CODMERC
REPL DESCMERC WITH TEMP->DESCMERC
REPL PRUNIT WITH TEMP->PRUNIT
REPL PRTOTAL WITH TEMP->PRTOTAL
REPL PRAZO1 WITH nPRAZO1
REPL PRAZO2 WITH nPRAZO2
REPL PRAZO3 WITH nPRAZO3
REPL PRAZO4 WITH nPRAZO4
SELE TEMP
SKIP
ENDDO
SELE TEMP
GO TOP
DO WHILE !EOF()
nQTELANC = QTE
aCODLANC = CODMERC
DO PREENCHE1 WITH aCODLANC
SELE CMCA02 &&
SEEK aCODLANC
nQTELANC = nQTELANC + NCM02QTLJ1
DO WHILE .T.
DO RRLOC
REPL NCM02QTLJ1 WITH nQTELANC
UNLOCK
SKIP
IF CCM02CDMER = aCODLANC
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELE TEMP
SKIP
ENDDO
IF nTIPODEOP = 02
dTVENCLANC = dTSYSTEM+nPRAZO1
SELE PAGAR
DO RRLOC
APPEND BLANK
REPL EMISSAO WITH DTSYSTEM
REPL NUMMOV WITH nNUMMOV
REPL DTVENC WITH dTVENCLANC
REPL VLDUP WITH nVALTOTAL
REPL VLSALDO WITH nVALTOTAL
UNLOCK
SELE TEMP
GO TOP
DO WHILE !EOF()
nQTELANC = QTE
aCODLANC = CODMERC
DO PREENCHE1 WITH aCODLANC
SELE CMCA02 &&
SEEK aCODLANC
nQTELANC = NCM02QTMAX - nQTELANC
DO WHILE .T.
DO RRLOC
REPL NCM02QTMAX WITH nQTELANC
UNLOCK
SKIP
IF CCM02CDMER = aCODLANC
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELE TEMP
SKIP
ENDDO
ENDIF
IF nTIPODEOP = 03
SELE PAGAR
dTVENCLANC = dTSYSTEM+nPRAZO1
DO RRLOC
APPEND BLANK
REPL EMISSAO WITH dTSYSTEM
REPL NUMMOV WITH nNUMMOV
REPL DTVENC WITH dTVENCLANC
REPL VLDUP WITH nVALTOTAL
REPL VLSALDO WITH nVALTOTAL
UNLOCK
SELE TEMP
GO TOP
DO WHILE !EOF()
nQTELANC = QTE
aCODLANC = CODMERC
DO PREENCHE1 WITH aCODLANC
SELE CMCA02 &&
SEEK aCODLANC
nQTELANC = nQTELANC + NCM02FILJ1
DO WHILE .T.
DO RRLOC
REPL NCM02FILJ1 WITH nQTELANC
UNLOCK
SKIP
IF CCM02CDMER = aCODLANC
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELE TEMP
SKIP
ENDDO
ENDIF
aDESCMERC = "SAIR"
EXIT
ENDIF
IF WFINAL = "N"
RESTORE SCREEN FROM ATUALIZA
@ 23,00 TO 23,79
LOOP
ENDIF
endif
enddo
ELSEIF aDESCMERC = " "
aCODBARRA = " "
@ 07,04 CLEAR TO 07,79
@ 07,04 GET aCODBARRA
READ
SELE CMCA02
SEEK aCODBARRA
IF !FOUND()
DO MENSAGEM WITH "Codigo de Barra NAO Encontrado, Tente Novamente",.t.
LOOP
ELSE
nCODIGUAL = CCM02CDMER
DO PREENCHE1 WITH nCODIGUAL
SELE TEMP
go bottom
skip -10
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
SELE CMCA01
SEEK nCODIGUAL
@ 07,00 CLEAR TO 07,79
@ 07,04 SAY CCM01DSMER
ENDIF
ELSE
SELE TEMP
go bottom
skip -10
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
SELE CMCA01
SEEK RTRIM(aDESCMERC)
SAVE SCREEN TO DBEDIT2
SET COLOR TO B/W
DBEDIT (08,15,20,70,PROCPRODN,,PROCPRODF,PROCPRODL,PROCTIPOSUP)
SET COLOR TO W+/B
RESTORE SCREEN FROM DBEDIT2
@ 07,00 CLEAR TO 07,79
@ 07,04 SAY CCM01DSMER
nCODIGUAL = CCM01CDMER
ENDIF
nQTE = 0
SELE TEMP
SEEK nCODIGUAL
IF !FOUND()
@ 07,47 GET nQTE PICT "999999"
READ
IF nQTE = 0
DO MENSAGEM WITH "Quantidade NAO pode ser ZERO, Tente Novamente",.T.
LOOP
ENDIF
@ 07,47 CLEAR TO 07,53
@ 07,45 SAY nQTE
nPRUNIT = CMCA01->NCM01VLCUS
@ 07,49 SAY nPRUNIT PICT "9999.99"
nPRTOTAL = nQTE * nPRUNIT
@ 07,66 SAY nPRTOTAL PICT "99999.99"
SELE TEMP
DO RRLOC
APPEND BLANK
REPL CODMERC WITH CMCA01->CCM01CDMER
REPL DESCMERC WITH CMCA01->CCM01DSMER
REPL QTE WITH nQTE
REPL PRUNIT WITH nPRUNIT
REPL PRTOTAL WITH nPRTOTAL
REPL ATUALIZADO WITH "N"
UNLOCK
go bottom
skip -10
@ 07,45 CLEAR TO 07,79
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
ELSE
DO MENSAGEM WITH "Este Produto Ja foi Lançado, A QTE sera ADICIONADA",.t.
@ 07,47 GET nQTE PICT "999999"
READ
IF nQTE = 0
DO MENSAGEM WITH "Quantidade NAO pode ser ZERO, Tente Novamente",.T.
LOOP
ENDIF
@ 07,47 CLEAR TO 07,53
@ 07,45 SAY nQTE
nPRUNIT = CMCA01->NCM01VLCUS
@ 07,49 SAY nPRUNIT PICT "9999.99"
SELE TEMP
nQTEIGUAL = QTE + nQTE
nPRTOTAL = nQTE * nPRUNIT
nPRTOTALIG = nQTEIGUAL * nPRUNIT
@ 07,66 SAY nPRTOTAL PICT "99999.99"
SELE TEMP
DO RRLOC
REPL CODMERC WITH CMCA01->CCM01CDMER
REPL DESCMERC WITH CMCA01->CCM01DSMER
REPL QTE WITH nQTEIGUAL
REPL PRUNIT WITH nPRUNIT
REPL PRTOTAL WITH nPRTOTALIG
REPL ATUALIZADO WITH "N"
UNLOCK
go bottom
skip -10
@ 07,45 CLEAR TO 07,79
MOSTRALANC:refreshall()
MOSTRALANC:configure()
MOSTRALANC:forcestable()
ENDIF
ENDDO
SET EXCLUSIVE ON
SELE TEMP
ZAP
SET EXCLUSIVE OFF
CLOSE DATA
RETURN
function firmshow
IF LASTKEY() = 27
RETURN 0
ENDIF
@ 24,20 say MENSAGEM
return 1
