- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PROBLEMAS NA GRAVAÇÂO DE ITENS NA TABELA DE DADOS(PROBLEMS IN THE ITEMS RECORD IN DATA TABLE)
×
Linguagem de Programação ADVPL
Perguntas PROBLEMAS NA GRAVAÇÂO DE ITENS NA TABELA DE DADOS(PROBLEMS IN THE ITEMS RECORD IN DATA TABLE)
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás - 8 anos 11 meses atrás #29908
por viniciusbsilva
PROBLEMAS NA GRAVAÇÂO DE ITENS NA TABELA DE DADOS(PROBLEMS IN THE ITEMS RECORD IN DATA TABLE) foi criado por viniciusbsilva
Olá pessoal,
Estou fazendo um programa de registro de backup e estou tento alguns problemas para gravar os dados na tabela
Vou explicar como funciona:
1 - Menu com 4 opções são elas: [1]Cadastrar, [2]Excluir, [3]Registrar e [4]Movimentar.
2 - Quando for digitada a opção [1], são solicitados o código da fita, data do cadastro(sugerindo a data atual) e Meses de validade. Depois isso é gravado no banco de dados.
3 - Quando for digitada a opção [2], são solicitados o código da fita e uma confirmação de exclusão. Depois o campo D_E_L_E_T_ é marcado com "*".
4 - Quando for digitada a opção [3], são solicitados o código da fita, o programa verifica se a fita foi cadastrada se não tiver sido cadastrada é apresentado um alerta se não é solicitado tipo de backup: [1]Semanal ou [2]Mensal, código da sessão, data do backup, localização, data de retorno pro MSL em semanas, data de retorno pro MSL em DD/MM/AAAA e depois uma tela com as próximas movimentações. Depois os dados são gravados na tabela de dados.
5 - Quando for digitada a opção [4], são solicitados o código da fita e o novo local nas opções de novos locais tem: [1]MSL, [2]Mochila, [3]Cofre e [4]Espera. Se for digitado [1](MSL) quer dizer que a fita venceu, então os campos: data da próxima movimentação, data de retorno, data do backup, tipo do backup e código da sessão, são apagados. Se for digitado qualquer uma das outras opções é gravado o novo local na tabela de dados e é encerrado.
Agora vamos aos problemas:
1 - Eu não estou conseguindo fazer com que seja excluido os itens da tabela de dados quando for selecionada a opção [1] na movimentação.
2 - Não estou conseguindo também, alterar somente o LOCAL quando digitado a opção 2 na movimentação.
3 - Não estou conseguindo gravar a data de cadastro e os meses de validade da fita na opção 2 de registro(Mesmo que nessa opção não seja solicitado a data de cadastro e os meses de validade).
Meu código:
Qualquer dúvida estarei a disposição.
Tradução de português para inglês:
Translate from Portuguese to English:
Hello guys,
I'm doing a backup registry program and'm having some trouble write data in the table.
I will explain how it works:
1 - 4 menu options they are: [1] Post, [2] Delete [3] Record and [4] Move.
2 - When [1] is entered, it is requested the tape code, date of registration (suggesting the current date) and Months of validity. After it is recorded in the database.
3 - When you entered the [2] are requested the tape code and a delete confirmation. After the D_E_L_E_T_ field is marked "*".
4 - When [3] is entered, it is requested the tape code, the program checks whether the tape was registered unless it has been registered is shown an alert if it is not requested type of backup: [1] Weekly or [2 ] Monthly, session code, backup date, location, return date pro MSL in weeks, return date pro MSL in DD / MM / YYYY and then a screen with the next moves. After the data is written in the data table.
5 - When [4] is entered, the tape code and the new location are requested on options for new places have: [1] MSL, [2] Backpack, [3] Safe and [4] expected. If you enter [1] (MSL) means that the tape won, then the fields: the next move date, return date, date of the backup, the backup type and session string are deleted. If you enter any of the other options is written to the new location in the data table and exits.
Now for the problems:
1 - I am unable to make it excluded the items in the data table when you select the option [1] on the drive.
2 - I'm not getting too, only change the LOCATION when typed option 2 on the drive.
3 - I am not managing to record the registration date and the expiration months of the ribbon on the second registration option (Even if this option is not requested the registration date and the month validity).
My code:
Any doubt I will be available
Estou fazendo um programa de registro de backup e estou tento alguns problemas para gravar os dados na tabela
Vou explicar como funciona:
1 - Menu com 4 opções são elas: [1]Cadastrar, [2]Excluir, [3]Registrar e [4]Movimentar.
2 - Quando for digitada a opção [1], são solicitados o código da fita, data do cadastro(sugerindo a data atual) e Meses de validade. Depois isso é gravado no banco de dados.
3 - Quando for digitada a opção [2], são solicitados o código da fita e uma confirmação de exclusão. Depois o campo D_E_L_E_T_ é marcado com "*".
4 - Quando for digitada a opção [3], são solicitados o código da fita, o programa verifica se a fita foi cadastrada se não tiver sido cadastrada é apresentado um alerta se não é solicitado tipo de backup: [1]Semanal ou [2]Mensal, código da sessão, data do backup, localização, data de retorno pro MSL em semanas, data de retorno pro MSL em DD/MM/AAAA e depois uma tela com as próximas movimentações. Depois os dados são gravados na tabela de dados.
5 - Quando for digitada a opção [4], são solicitados o código da fita e o novo local nas opções de novos locais tem: [1]MSL, [2]Mochila, [3]Cofre e [4]Espera. Se for digitado [1](MSL) quer dizer que a fita venceu, então os campos: data da próxima movimentação, data de retorno, data do backup, tipo do backup e código da sessão, são apagados. Se for digitado qualquer uma das outras opções é gravado o novo local na tabela de dados e é encerrado.
Agora vamos aos problemas:
1 - Eu não estou conseguindo fazer com que seja excluido os itens da tabela de dados quando for selecionada a opção [1] na movimentação.
2 - Não estou conseguindo também, alterar somente o LOCAL quando digitado a opção 2 na movimentação.
3 - Não estou conseguindo gravar a data de cadastro e os meses de validade da fita na opção 2 de registro(Mesmo que nessa opção não seja solicitado a data de cadastro e os meses de validade).
Meu código:
User Function MCT016
*************************
Local nTela := 0
Local lExecute := .T.
local cReadAux := " "
Private cOpcMenu := " "
Private cDataCad := " "
Private cTipoBack := " "
Private cLocal := " "
Private cCodSessao := " "
Private cDtretorno := " "
Private cDtBackup := " "
Private cNovoLocal := " "
Private cProxMov := " "
Private cProxsMov := " "
Private cProMov := " "
Private nMesVal := 0
Private nSemRet := 0
While lExecute
nTela := 1
While nTela <= 1
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Escolha uma opcao")
TerSay(01, 00, "[1]Cadastrar")
TerSay(02, 00, "[2]Excluir")
TerSay(03, 00, "[3]Registrar")
TerSay(04, 00, "[4]Movimentar")
TerSay(05, 00, "[ ]")
cOpcMenu := " "
TerGetRead(05, 01, @cOpcMenu,, {|| cOpcMenu == "1" .Or. cOpcMenu == "2" .Or. cOpcMenu == "3" .Or. cOpcMenu == "4"})
If TerEsc()
nTela --
Exit
EndIf
nTela ++
While nTela <= 2
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Leia a fita:")
cIDFita := Space(8)
TerGetRead(01, 00, @cIDFita,, {|| !Empty(cIDFita)})
If TerEsc()
nTela--
Exit
EndIf
TerGetRead(00, 00, @cReadAux,,)
If TerEsc()
nTela --
Exit
EndIf
If cOpcMenu == "1"
TerCls()
TerCBuffer()
TerIsQuit()
ZBF ->(dbSetOrder(1)) //Altera o indice corrente da tebela
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))//Pesquisa pelo codigo da fita para que depois possa ser feito uma condição
VTAlert("Fita ja cadastrada")
Loop
EndIf
TerSay(00, 00, "Data do cadastro:")
cDataCad := Space(8)
U_TerData(@cDataCad, 01, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Meses de validade:")
nMesVal := 36
TerGetRead(01, 00, @nMesVal, "@E 99", {|| !Empty(nMesVal) .And. Positivo(nMesVal)})
If TerEsc()
nTela --
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_VALID := nMesVal
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_LOCAL := "1"
ZBF->(MsUnLock())
VTAlert("Fita cadastrada", "Cadastrar")
ElseIf cOpcMenu == "2"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
If !Empty(ZBF->ZBF_IDSES)
VTAlert("Fita com backup gravado", "Excluir")
Loop
Else
If U_TerYesNo("Excluir fita", "Deseja excluir a fita?", "S")
RecLock("ZBF", .F.)
ZBF->(dbDelete())
ZBF->(MsUnLock())
VTAlert("Fita excluida!", "Excluir")
Else
Loop
EndIf
EndIf
Else
VTAlert("Fita nao cadastrada", "Excluir")
Loop
EndIf
ElseIf cOpcMenu == "3"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Tipo de backup")
TerSay(01, 00, "[1]Semanal")
TerSay(02, 00, "[2]Mensal")
TerSay(03, 00, "[ ]")
cTipoBack := " "
TerGetRead(03, 01, @cTipoBack,, {|| cTipoBack == "1" .Or. cTipoBack == "2"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Codigo da sessao:")
cCodSessao := Space(15)
TerGetRead(01, 00, @cCodSessao,, {|| !Empty(cCodSessao)})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data do backup:")
U_TerData2(@cDtBackup, 01, .T., 2, "Subtracao")
If TerEsc()
nTela--
Exit
EndIf
If cTipoBack == "1"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Localizacao")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cLocal := "2"
TerGetRead(05, 01, @cLocal,, {|| cLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data de retorno pro")
Tersay(01, 00, "MSL em SEMANAS:")
nSemRet := 4
TerGetRead(02, 01, @nSemRet,,{|| !Empty(nSemRet)})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
nSemret := nSemRet * 7
TerSay(00, 00, "Data de retorno pro")
TerSay(01, 00, "MSL em DD/MM/AAAA:")
U_TerData2(@cDtRetorno, 02, .T., nSemRet, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Proxima movimentacao")
TerSay(01, 00, "Para a [2]Mochila.")
TerSay(02, 00, "Do dia:")
U_TerData(@cProxMov, 03, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerSay(04, 00, "Ate o dia:")
U_TerData2(@cProxsMov, 05, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [3]Cofre")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProxsMov, 02, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 21, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
VTAlert("Depois, expira e volta para o [1]MSL", "Movimentacoes")
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_LOCAL := cLocal
ZBF->ZBF_DTBKP := StoD(cDtBackup)
ZBF->ZBF_TIPO := cTipoBack
ZBF->ZBF_IDSES := cCodSessao
ZBF->ZBF_DTRET := StoD(cDtRetorno)
ZBF->ZBF_DTPMOV := StoD(cProxMov)
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_VALID := nMesVal
ZBF->(MsUnLock())//Destrava o registro
VTAlert("Backup registrado", "Registrar")
ElseIf cTipoBack == "2"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Localizacao")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cLocal := "2"
TerGetRead(05, 01, @cLocal,, {|| cLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data de retorno pro")
TerSaY(01, 00, "MSL em semanas:")
nSemRet := 52
TerGetRead(02, 01, @nSemRet,,{|| !Empty(nSemRet)})
If TerEsc()
nTela--
Exit
EndIf
TeGetRead(00, 00, @cReadAux,,)
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
nSemRet := nSemRet * 7
TerSay(00, 00, "Data de retorno pro")
TerSay(01, 00, "MSL em DD/MM/AAAA:")
U_TerData2(@cDtRetorno, 02, .T., nSemRet, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Proxima movimentacao")
TerSay(01, 00, "Para a [2]Mochila.")
TerSay(02, 00, "Do dia:")
U_TerData(@cProxMov, 03, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerSay(04, 00, "Ate o dia:")
U_TerData2(@cProxsMov, 05, .T., 7, "Soma")
If TerCls()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [3]Cofre")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProxsMov, 02, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 210, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [4]Daniel")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProMov, 02, .T., 210, "Soma")
If TerCls()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 360, "Soma")
If TerEsc()
nTela--
Exit
EndIf
RecLock("ZBF", .T.)
VTAlert("Depois, expira e volta para o [1]MSL", "Movimentacoes")
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_LOCAL := cLocal
ZBF->ZBF_DTBKP := StoD(cDtBackup)
ZBF->ZBF_TIPO := cTipoBack
ZBF->ZBF_IDSES := cCodSessao
ZBF->ZBF_DTRET := StoD(cDtRetorno)
ZBF->ZBF_DTPMOV := StoD(cProxMov)
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_VALID := nMesVal
ZBF->(MsUnLock())//Destrava o registro
VTAlert("Backup registrado", "Registrar")
EndIf
Else
VTAlerT("Fita nao cadastrada", "Registro")
EndIf
ElseIf cOpcMenu == "4"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Novo local")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cNovoLocal := " "
TerGetRead(05, 01, @cNovoLocal,, {|| cNovoLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
If cNovoLocal == "1"
ZBF(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
RecLock("ZBF", .F.)
ZBF->(dbDelete())
ZBF->(MsUnLock())
VTAlert("Movimentacao registrada!", "Movimentar")
Else
VTAlert("Fita nao cadastrada", "Movimentar")
Loop
EndIf
ElseIf cNovoLocal # "1"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_LOCAL := cNovoLocal
ZBF->(MsUnLock())
VTAlert("Fita movimentada", "Movimentar")
Else
VTAlert("Fita nao cadastrada", "Movimentar")
Loop
EndIf
EndIf
EndIf
nTela--
Exit
EndDo
EndDo
If nTela <= 0
If U_TerYesNo("Sair da rotina", "Deseja sair da rotina?", "S")
lExecute := .F.
Exit
Else
Loop //Ao contrário do exit, o Loop cancela as próximas verificações que o laço irá fazer e sobe para a primeira linha no While
EndIf
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
EndDo
Return
Qualquer dúvida estarei a disposição.
Tradução de português para inglês:
Translate from Portuguese to English:
Hello guys,
I'm doing a backup registry program and'm having some trouble write data in the table.
I will explain how it works:
1 - 4 menu options they are: [1] Post, [2] Delete [3] Record and [4] Move.
2 - When [1] is entered, it is requested the tape code, date of registration (suggesting the current date) and Months of validity. After it is recorded in the database.
3 - When you entered the [2] are requested the tape code and a delete confirmation. After the D_E_L_E_T_ field is marked "*".
4 - When [3] is entered, it is requested the tape code, the program checks whether the tape was registered unless it has been registered is shown an alert if it is not requested type of backup: [1] Weekly or [2 ] Monthly, session code, backup date, location, return date pro MSL in weeks, return date pro MSL in DD / MM / YYYY and then a screen with the next moves. After the data is written in the data table.
5 - When [4] is entered, the tape code and the new location are requested on options for new places have: [1] MSL, [2] Backpack, [3] Safe and [4] expected. If you enter [1] (MSL) means that the tape won, then the fields: the next move date, return date, date of the backup, the backup type and session string are deleted. If you enter any of the other options is written to the new location in the data table and exits.
Now for the problems:
1 - I am unable to make it excluded the items in the data table when you select the option [1] on the drive.
2 - I'm not getting too, only change the LOCATION when typed option 2 on the drive.
3 - I am not managing to record the registration date and the expiration months of the ribbon on the second registration option (Even if this option is not requested the registration date and the month validity).
My code:
User Function MCT016
*************************
Local nTela := 0
Local lExecute := .T.
local cReadAux := " "
Private cOpcMenu := " "
Private cDataCad := " "
Private cTipoBack := " "
Private cLocal := " "
Private cCodSessao := " "
Private cDtretorno := " "
Private cDtBackup := " "
Private cNovoLocal := " "
Private cProxMov := " "
Private cProxsMov := " "
Private cProMov := " "
Private nMesVal := 0
Private nSemRet := 0
While lExecute
nTela := 1
While nTela <= 1
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Escolha uma opcao")
TerSay(01, 00, "[1]Cadastrar")
TerSay(02, 00, "[2]Excluir")
TerSay(03, 00, "[3]Registrar")
TerSay(04, 00, "[4]Movimentar")
TerSay(05, 00, "[ ]")
cOpcMenu := " "
TerGetRead(05, 01, @cOpcMenu,, {|| cOpcMenu == "1" .Or. cOpcMenu == "2" .Or. cOpcMenu == "3" .Or. cOpcMenu == "4"})
If TerEsc()
nTela --
Exit
EndIf
nTela ++
While nTela <= 2
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Leia a fita:")
cIDFita := Space(8)
TerGetRead(01, 00, @cIDFita,, {|| !Empty(cIDFita)})
If TerEsc()
nTela--
Exit
EndIf
TerGetRead(00, 00, @cReadAux,,)
If TerEsc()
nTela --
Exit
EndIf
If cOpcMenu == "1"
TerCls()
TerCBuffer()
TerIsQuit()
ZBF ->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
VTAlert("Fita ja cadastrada")
Loop
EndIf
TerSay(00, 00, "Data do cadastro:")
cDataCad := Space(8)
U_TerData(@cDataCad, 01, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Meses de validade:")
nMesVal := 36
TerGetRead(01, 00, @nMesVal, "@E 99", {|| !Empty(nMesVal) .And. Positivo(nMesVal)})
If TerEsc()
nTela --
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_VALID := nMesVal
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_LOCAL := "1"
ZBF->(MsUnLock())
VTAlert("Fita cadastrada", "Cadastrar")
ElseIf cOpcMenu == "2"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
If !Empty(ZBF->ZBF_IDSES)
VTAlert("Fita com backup gravado", "Excluir")
Loop
Else
If U_TerYesNo("Excluir fita", "Deseja excluir a fita?", "S")
RecLock("ZBF", .F.)
ZBF->(dbDelete())
ZBF->(MsUnLock())
VTAlert("Fita excluida!", "Excluir")
Else
Loop
EndIf
EndIf
Else
VTAlert("Fita nao cadastrada", "Excluir")
Loop
EndIf
ElseIf cOpcMenu == "3"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Tipo de backup")
TerSay(01, 00, "[1]Semanal")
TerSay(02, 00, "[2]Mensal")
TerSay(03, 00, "[ ]")
cTipoBack := " "
TerGetRead(03, 01, @cTipoBack,, {|| cTipoBack == "1" .Or. cTipoBack == "2"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Codigo da sessao:")
cCodSessao := Space(15)
TerGetRead(01, 00, @cCodSessao,, {|| !Empty(cCodSessao)})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data do backup:")
U_TerData2(@cDtBackup, 01, .T., 2, "Subtracao")
If TerEsc()
nTela--
Exit
EndIf
If cTipoBack == "1"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Localizacao")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cLocal := "2"
TerGetRead(05, 01, @cLocal,, {|| cLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data de retorno pro")
Tersay(01, 00, "MSL em SEMANAS:")
nSemRet := 4
TerGetRead(02, 01, @nSemRet,,{|| !Empty(nSemRet)})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
nSemret := nSemRet * 7
TerSay(00, 00, "Data de retorno pro")
TerSay(01, 00, "MSL em DD/MM/AAAA:")
U_TerData2(@cDtRetorno, 02, .T., nSemRet, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Proxima movimentacao")
TerSay(01, 00, "Para a [2]Mochila.")
TerSay(02, 00, "Do dia:")
U_TerData(@cProxMov, 03, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerSay(04, 00, "Ate o dia:")
U_TerData2(@cProxsMov, 05, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [3]Cofre")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProxsMov, 02, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 21, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
VTAlert("Depois, expira e volta para o [1]MSL", "Movimentacoes")
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_LOCAL := cLocal
ZBF->ZBF_DTBKP := StoD(cDtBackup)
ZBF->ZBF_TIPO := cTipoBack
ZBF->ZBF_IDSES := cCodSessao
ZBF->ZBF_DTRET := StoD(cDtRetorno)
ZBF->ZBF_DTPMOV := StoD(cProxMov)
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_VALID := nMesVal
ZBF->(MsUnLock())
VTAlert("Backup registrado", "Registrar")
ElseIf cTipoBack == "2"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Localizacao")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cLocal := "2"
TerGetRead(05, 01, @cLocal,, {|| cLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Data de retorno pro")
TerSaY(01, 00, "MSL em semanas:")
nSemRet := 52
TerGetRead(02, 01, @nSemRet,,{|| !Empty(nSemRet)})
If TerEsc()
nTela--
Exit
EndIf
TeGetRead(00, 00, @cReadAux,,)
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
nSemRet := nSemRet * 7
TerSay(00, 00, "Data de retorno pro")
TerSay(01, 00, "MSL em DD/MM/AAAA:")
U_TerData2(@cDtRetorno, 02, .T., nSemRet, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Proxima movimentacao")
TerSay(01, 00, "Para a [2]Mochila.")
TerSay(02, 00, "Do dia:")
U_TerData(@cProxMov, 03, .T.)
If TerEsc()
nTela--
Exit
EndIf
TerSay(04, 00, "Ate o dia:")
U_TerData2(@cProxsMov, 05, .T., 7, "Soma")
If TerCls()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [3]Cofre")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProxsMov, 02, .T., 7, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 210, "Soma")
If TerEsc()
nTela--
Exit
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Dps. para o [4]Daniel")
TerSay(01, 00, "Do dia:")
U_TerData2(@cProMov, 02, .T., 210, "Soma")
If TerCls()
nTela--
Exit
EndIf
TerSay(03, 00, "Ate o dia:")
U_TerData2(@cProMov, 04, .T., 360, "Soma")
If TerEsc()
nTela--
Exit
EndIf
RecLock("ZBF", .T.)
VTAlert("Depois, expira e volta para o [1]MSL", "Movimentacoes")
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_IDFITA := cIDFita
ZBF->ZBF_LOCAL := cLocal
ZBF->ZBF_DTBKP := StoD(cDtBackup)
ZBF->ZBF_TIPO := cTipoBack
ZBF->ZBF_IDSES := cCodSessao
ZBF->ZBF_DTRET := StoD(cDtRetorno)
ZBF->ZBF_DTPMOV := StoD(cProxMov)
ZBF->ZBF_DTCAD := StoD(cDataCad)
ZBF->ZBF_VALID := nMesVal
ZBF->(MsUnLock())
VTAlert("Backup registrado", "Registrar")
EndIf
Else
VTAlerT("Fita nao cadastrada", "Registro")
EndIf
ElseIf cOpcMenu == "4"
TerCls()
TerCBuffer()
TerIsQuit()
TerSay(00, 00, "Novo local")
TerSay(01, 00, "[1]MSL")
TerSay(02, 00, "[2]Mochila")
TerSay(03, 00, "[3]Cofre")
TerSay(04, 00, "[4]Daniel")
TerSay(05, 00, "[ ]")
cNovoLocal := " "
TerGetRead(05, 01, @cNovoLocal,, {|| cNovoLocal $ "1234"})
If TerEsc()
nTela--
Exit
EndIf
If cNovoLocal == "1"
ZBF(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
RecLock("ZBF", .F.)
ZBF->(dbDelete())
ZBF->(MsUnLock())
VTAlert("Movimentacao registrada!", "Movimentar")
Else
VTAlert("Fita nao cadastrada", "Movimentar")
Loop
EndIf
ElseIf cNovoLocal # "1"
ZBF->(dbSetOrder(1))
If ZBF->(dbSeek(xFilial("ZBF")+cIDFita))
RecLock("ZBF", .T.)
ZBF->ZBF_FILIAL := xFilial("ZBF")
ZBF->ZBF_LOCAL := cNovoLocal
ZBF->(MsUnLock())
VTAlert("Fita movimentada", "Movimentar")
Else
VTAlert("Fita nao cadastrada", "Movimentar")
Loop
EndIf
EndIf
EndIf
nTela--
Exit
EndDo
EndDo
If nTela <= 0
If U_TerYesNo("Sair da rotina", "Deseja sair da rotina?", "S")
lExecute := .F.
Exit
Else
Loop
EndIf
EndIf
TerCls()
TerCBuffer()
TerIsQuit()
EndDo
Return
Any doubt I will be available
Ultima edição: 8 anos 11 meses atrás por viniciusbsilva.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PROBLEMAS NA GRAVAÇÂO DE ITENS NA TABELA DE DADOS(PROBLEMS IN THE ITEMS RECORD IN DATA TABLE)
Tempo para a criação da página:0.122 segundos