Função que cria um novo arquivo de trabalho / tabela.
Exemplo da Rotina:
cArq := CriaTrab(aEstruturaTabela, lNova)
Exemplo 1- Criação de tabela temporária:
//Bibliotecas
#Include "Protheus.ch"
/*/{Protheus.doc} zTeste
Função de Teste
@type function
@author Terminal de Informação
@since 13/11/2016
@version 1.0
@example
u_zTeste()
/*/
User Function zTeste()
Local aArea := GetArea()
Local cAliasTmp := "TMP_"+RetCodUsr()
Local cFiles
Local cMark := "OK"
Local aStruTmp := {}
Local cTexto := ""
//Adicionando a Estrutura (Campo, Tipo, Tamanho, Decimal)
aStruTmp:={}
aAdd(aStruTmp,{ "TMP_COD", "C", 005, 0})
aAdd(aStruTmp,{ "TMP_NOME", "C", 050, 0})
aAdd(aStruTmp,{ "TMP_NASC", "D", 008, 0})
aAdd(aStruTmp,{ "TMP_IDADE", "N", 003, 0})
//Criando tabela temporária
cFiles := CriaTrab( aStruTmp, .T. )
dbUseArea( .T.,"DBFCDX", cFiles, cAliasTmp, .T., .F. )
//Gerando o registro 1
RecLock(cAliasTmp,.T.)
TMP_COD := "00001"
TMP_NOME := "Daniel Atilio"
TMP_NASC := sToD("19930712")
TMP_IDADE := 22
(cAliasTmp)->(MsUnlock())
//Gerando o registro 2
RecLock(cAliasTmp,.T.)
TMP_COD := "00002"
TMP_NOME := "Daniel Hudson"
TMP_NASC := sToD("19830712")
TMP_IDADE := 32
(cAliasTmp)->(MsUnlock())
//Gerando o registro 3
RecLock(cAliasTmp,.T.)
TMP_COD := "00003"
TMP_NOME := "Daniel"
TMP_NASC := sToD("19730712")
TMP_IDADE := 42
(cAliasTmp)->(MsUnlock())
//Percorre os registros e monta mensagem de texto
(cAliasTmp)->(DbGoTop())
While !(cAliasTmp)->(EoF())
cTexto += (cAliasTmp)->TMP_COD+"-> "+Alltrim((cAliasTmp)->TMP_NOME)+", nascido em "+dToC((cAliasTmp)->TMP_NASC)+" ("+cValToChar((cAliasTmp)->TMP_IDADE)+" anos)"+Chr(13)+Chr(10)
(cAliasTmp)->(DbSkip())
EndDo
Aviso('Atenção', cTexto, {'Ok'}, 02)
//Se tiver aberto o alias, fecha e exclui o temporário
If Select(cAliasTmp)>0
(cAliasTmp)->(DbCloseArea())
EndIf
fErase(cAliasTmp + GetDBExtension())
RestArea(aArea)
Return
Observações:
– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;
Referências:
– TDN
