Procedimentos globais
Veja também:
O MenuFlex disponibiliza diversos procedimentos para serem usados no dia-a-dia e dar mais produtividade no desenvolvimento da sua aplicação. Todos os procedimentos estão definidos em pacotes contidos no diretório MenuFlex_Library_Pacotes e para serem usados é necessário incluir o comando Use do respectivo pacote.
Neste tópico você encontra a documentação de todos os procedimentos disponíveis no MenuFlex organizados por categorias e também em ordem alfabética.
AbreDocumento
O procedimento AbreDocumento recebe o caminho de um arquivo e solicita ao Sistema Operaciona a abertura no programa padrão registrado para a extensão do arquivo.
Pacote
O procedimento AbreDocumento está definido dentro do pacote AbreDocumento.pkg.
Sintaxe
Send AbreDocumento {sCaminho}
Onde:
- {sCaminho} é o caminho completo do arquivo que se deseja abrir.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado no projeto padrão, dentro da view MinhasMensagens.vw no evento OnClick do botão oAbrirButton:

Observações
- O procedimento sempre abrirá o arquivo com o programa padrão definido para a extensão do arquivo no sistema operacional e não há opção para abrir um arquivo em um programa específico.
Tópicos relacionados
AdicionaCampo
O procedimento AdicionaCampo adiciona no final da estrutura de uma tabela um campo com as informações recebidas nos parâmetros.
Pacote
O procedimento AdicionaCampo está definido dentro do pacote AdicionaCampo.pkg.
Sintaxe
Onde:
- {hNrTabela} é o número da tabela onde será adicionado o campo;
- {sNmCampo} é o nome do campo que será adicionado, e se já existir um campo com o nome informado na tabela, nada será feito;
- {iTipo} é o tipo do campo, podendo ser informado:
- DF_ASCII
- DF_BCD
- DF_BINARY
- DF_DATE
- DF_TEXT
- {iTamanho} é o tamanho total do campo;
- {iPrecision} é a quantidade de casas decimais e só é usado se {iTipo} for DF_BCD;
- {hoCallBack} é o identificador do objeto onde será definida a função CallBack para mostrar o progresso da reestruturação;
- {hoStatusPanel} informe o identificador de um objeto StatusPanel para que o progresso da execução seja exibido nele, ou informe 0 (zero) se não deseja usá-lo.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro do Projeto padrão de atualização da versão 17.0.9 arquivo AtualizaTabelas17_0_9.src:

Observações
- Para que este procedimento funcione a tabela já deve estar aberta em modo exclusivo quando este procedimento for chamado;
- Para testar se o campo foi criado após a execução do procedimento basta utilizar a função ProcuraCampo;
- Para mais detalhes sobre como implementar a função de Callback (parâmetro {hoCallBack}) consulte a documentação do comando Set_Attribute no Help do DataFlex.
Tópicos relacionados
AdicionaLogEvento
O procedimento AdicionaLogEvento gera um registro no log de eventos gerais do sistema.
Pacote
O procedimento AdicionaLogEvento está definido dentro do pacote AdicionaLogEvento.pkg.
Sintaxe
Send AdicionaLogEvento {iCdEvento} {sDescricao}
Onde:
- {iCdEvento} é uma das seguintes constantes que identificam o tipo de evento:
- C_iEventoInformacao (1): Informação
- C_iEventoAviso (2): Aviso
- C_iEventoErro (3): Erro.
- {sDescricao} é a descrição que será gerada no log de evento.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro da Workspace Padrão no processo de Exclusão de Permissão do Usuário, contido dentro do arquivo ExcluiPermissaoUsuario.bp, linha 57.

Observações
- Não é necessário adicionar qualquer informação sobre o usuário, data ou hora do evento na descrição, pois estas informações serão geradas automaticamente pelo procedimento;
- Note que este procedimento não exibe qualquer mensagem ou alerta para o usuário e não deve ser usado em substituição ao comando Error.
AlteraNomeCampo
O procedimento AlteraNomeCampo serve para trocar o nome de um campo já existe em uma determinada tabela.
Pacote
O procedimento AlteraNomeCampo está definido dentro do pacote AlteraNomeCampo.pkg.
Sintaxe
Onde:
- {htNrTabela} é o número da tabela onde será adicionado o campo;
- {sNmCampo} é o nome do campo que será renomeado, e se o campo não existir um campo com o mesmo nome na tabela nada será feito;
- {sNmNovo} é o novo nome que será atribuído ao campo {sNmCampo};
- {hoCallBack} é o identificador do objeto onde será definida a função CallBack para mostrar o progresso da reestruturação;
- {hoStatusPanel} é o identificador de um objeto StatusPanel para que o progresso da execução seja exibido nele, ou 0 (zero) se não quiser usá-lo.
Exemplo
No momento não há nenhum exemplo de uso dessa função.
Observações
- Para que este procedimento funcione a tabela já deve estar abaerta em modo exclusivo quando este procedimento for chamado;
- Para testar se o campo foi alterado após a execução do procedimento basta utilizar a função ProcuraCampo informando o novo nome.
- Para mais detalhes sobre como implementar a função de Callback do parâmetro {hoCallBack} consulte a documentação do comando Set_Attribute no Help do DataFlex.
Tópicos relacionados
- AbreTabelaModoExclusivo
- AdicionaCampo
- AlteraTamanhoCampo
- CampoEstaNoIndice
- ExcluiCampo
- ExcluiIndices
- ProcuraCampo
AlteraTamanhoCampo
O procedimento AlteraTamanhoCampo serve para alterar o tamanho de um campo já existente em uma tabela de acordo com os parâmetros recebidos.
Pacote
O procedimento AlteraTamanhoCampo está definido dentro do pacote AlteraTamanhoCampo.pkg.
Sintaxe
Onde:
- {htNrTabela} é o número da tabela cujo campo terá o tamanho alterado;
- {sNmCampo} é o nome do campo cujo tamanho será alterado;
- {iTamanho} é o novo tamanho total que será atribuído ao campo;
- {iPrecision} é a quantidade de casas decimais que será atribuído ao campo, mas só será usado se o campo for numérico;
- {hoCallBack} é o identificador do objeto onde será definida a função CallBack para mostrar o progresso da reestruturação;
- {hoStatusPanel} é o identificado de um objeto StatusPanel para que o progresso da execução seja exibido nele, ou 0 (zero) se não quiser usá-lo.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro do Projeto de Atualização de Arquivos para a versõa 17.0.10, no pacote AtualizaTabelas17_0_10.pkg, apresentado na imagem baixo na linha 36.

Observações
- Para que este procedimento funcione a tabela já deve estar aberta em modo exclusivo quando este procedimento for chamado;
- Para mais detalhes sobre como implementar a função de Callback (parâmetro {hoCallBack}) consulte a documentação do comando Set_Attribute no Help do DataFlex
Tópicos relacionados
- AbreTabelaModoExclusivo
- AdicionaCampo
- AlteraNomeCampo
- CampoEstaNoIndice
- ExcluiCampo
- ExcluiIndices
- ProcuraCampo
CloseTable
O procedimento CloseTable recebe o número de uma tabela e um booleano que indica se a tabela deve ser mantida aberta (True) ou fechada (False).
Ele foi criado para ser usado em conjunto com a função OpenTable.
Pacote
O procedimento CloseTable está definido dentro do pacote CloseTable.pkg.
Sintaxe
Send CloseTable {hTabela} {bOpenedBefore}
Onde:
- {hTabela} é o número da tabela no filelist que se deseja fechar, sendo possível usar a representação Tabela.File_Number;
- {bOpenedBefore} é um booleano que indica se a tabela estava ou não aberta. Se for True, a tabela será mantida aberta. Se for False, será fechada. Normalmente este booleano será o resultado da utilização da função OpenTable.
Exemplo
Vários exemplos de uso deste procedimento podem ser encontrados nos pacotes do próprio MenuFlex. Abaixo um trecho que mostra
Observação
- Esta função é particularmente útil em situações onde uma tabela será aberta para utilização por um curto período de tempo e, caso não estivesse aberta antes de sua utilização, será fechada ao final.
Tópicos relacionados
ConfiguraPermissoes
O procedimento ConfiguraPermissoes recebe o nome de ativação de um item cadastrado na tabela “Menu” e configura a variável giPermissoes com as permissões que o usuário corrente possui neste objeto.
É especialmente útil quando se deseja abrir uma View a partir de outra e é desejado que a View a ser aberta receba as permissões adequadas que o usuário possui nela.
Pacote
O procedimento ConfiguraPermissoes está definido dentro do pacote ConfiguraPermissoes.pkg.
Sintaxe
Send ConfiguraPermissoes {sNmAtivacao}
Onde:
- {sNmAtivacao} é o nome do objeto cadastrado na tabela menu.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro da Workspace Padrão na view MinhasMensagens.vw botão oResponderButton. Na imagem que segue, o procedimento é chamado na linha 325:

Tópicos relacionados
ExcluiCampo
O procedimento ExcluiCampo serve para remover um campo de uma tabela.
Pacote
O procedimento ExcluiCampo está definido dentro do pacote ExcluiCampo.pkg.
Sintaxe
Onde:
- {hNrTabela} é o número da tabela de onde o campo será excluído;
- {iNrCampo} é o número do campo que será excluído;
- {hoCallBack} é o identificador do objeto onde será definida a função CallBack para mostrar o progresso da reestruturação;
- {hoStatusPanel} é o identificador de um objeto StatusPanel para que o progresso da execução seja exibido nele, ou 0 (zero) se não quiser usá-lo.
Exemplo
Não há um exemplo que demonstre o uso desta função.
Observações
- Para que este procedimento funcione a tabela já deve estar aberta em modo exclusivo quando este procedimento é chamado;
- Para obter o número de um campo a partir de seu nome, use a função ProcuraCampo;
- Para mais detalhes sobre como implementar a função de Callback (parâmetro {hoCallBack}) consulte a documentação do comando Set_Attribute no Help do DataFlex.
Tópicos relacionados
- AbreTabelaModoExclusivo
- AdicionaCampo
- AlteraNomeCampo
- AlteraTamanhoCampo
- CampoEstaNoIndice
- ExcluiIndices
- ProcuraCampo
ExcluiIndices
O procedimento ExcluiIndices serve para excluir todos os índices de uma determinada tabela.
Pacote
O procedimento ExcluiIndices está definida dentro do pacote ExcluiIndices.pkg.
Sintaxe
Send ExcluiIndices {hNrTabela} {hoCallBack} {hoStatusPanel}
Onde:
- {hNrTabela} é o número da tabela cujos índices serão excluídos;
- {hoCallBack} é o identificador do objeto onde será definida a função CallBack para mostrar o progresso da reestruturação;
- {hoStatusPanel} é o identificador de um objeto StatusPanel para que o progresso da execução seja exibido nele, ou 0 (zero) se não quiser usá-lo.
Exemplo
Não há no momento nenhum exemplo de uso deste procedimento.
Observações
- Para que este procedimento funcione a tabela deve estar aberta em modo exclusivo no momento que o procedimento for chamado;
- Para mais detalhes sobre como implementar a função de Callback (parâmetro {hoCallBack}) consulte a documentação do comando Set_Attribute no Help do DataFlex.
Tópicos relacionados
- AbreTabelaModoExclusivo
- AdicionaCampo
- AlteraNomeCampo
- AlteraTamanhoCampo
- CampoEstaNoIndice
- ExcluiCampo
- ProcuraCampo
ExcluirArquivo
O procedimento ExcluirArquivo foi criado para ser um substituto um pouco mais seguro que o comando EraseFile.
O comando EraseFile do DataFlex pode ser perigoso, pois se o desenvovedor passar uma string nula como parâmetro, o comando irá excluir todos os arquivos do diretório corrente.
Pacote
O procedimento ExcluirArquivo está definido dentro do pacote ExcluirArquivo.pkg.
Sintaxe
Onde:
- {sArquivo} é o caminho completo do arquivo que se deseja excluir.
Exemplo
Você pode encontrar exemplos de utilização deste procedimento nos seguintes pacotes que fazem parte do MenuFlex:
- ExportaLogDD.bp
- CondenseTable.pkg
Observação
- ATENÇÃO: Se for informado um caminho de diretório em vez do caminho completo de um arquivo, todos os arquivos dentro do diretório serão excluídos.
ImprimeDocumento
O procedimento ImprimeDocumento recebe o caminho de um arquivo e solicita ao Sistema Operacional a impressão na impressora padrão configurada.
Pacote
O procedimento ImprimeDocumento está definido dentro do pacote ImprimeDocumento.pkg.
Sintaxe
Send ImprimeDocumento {sCaminho}
Onde:
- {sCaminho} é o caminho completo do arquivo que se deseja imprimir.
Exemplo
No momento não há um exemplo de uso deste procedimento.
Tópicos relacionados
NetTime
O procedimento NetTime serve para atualizar a data e hora do computador do usuário com a mesma data e hora de outro computador a partir de seu caminho UNC da rede.
Pacote
O procedimento NetTime está definido dentro do pacote NetTime.pkg.
Sintaxe
Send NetTime {sCaminhoUNC}
Onde:
- {sCaminhoUNC} é caminho UNC da máquina a partir da qual a data e hora do computador serão sincronizadas.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro da Workspace Padrão na dialog Login.dg, no botão oOkButton. Na imagem a seguir a chamada do procedimento é feito na linha 175:

Observações
- Se o usuário não tiver permissão de alterar a data/hora do seu computador, este procedimento não terá nenhum efeito.
OpenAliasFile
O procedimento OpenAliasFile recebe os números das tabelas Alias e Master e faz abertura de ambas as tabelas fazendo a configuração do atributo DF_FILE_ALIAS adequadamente.
Pacote
O procedimento OpenAliasFile está definido dentro do pacote OpenAliasFile.pkg.
Sintaxe
Send OpenAliasFile {hAlias} {hMaster}
Onde:
- {hAlias} é o número da tabela alias (fantasma);
- {hMaster} é o número da tabela master.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro da Workspace Padrão no DataDictionary USUAGRUP.dd. Na imagem abaixo a chamada do procedimento é feito na linha 14:

Observações
- O uso deste procedimento para abrir arquivos fantasmas em vez de utilizar o comando Open garante que não ocorrerá nenhum problema na aplicação pela falta de configuração dos arquivos Master e Alias.
Tópicos relacionados
OpenEmail
O procedimento OpenEmail chama o programa de envio de e-mail padrão da máquina do usuário para criar o novo e-mail com os parâmetros informados.
Pacote
O procedimento OpenEmail está definido dentro do pacote OpenEmail.pkg.
Sintaxe
Onde:
- {sEndereco} é o endereço de e-mail do destinatário;
- {sAssunto} é o assunto do e-mail;
- {sTexto} é o texto do corpo do e-mail;
- {sAnexo} é um parâmetro opcional onde pode-se especificar o caminho de um arquivo para anexar à mensagem, entretanto nem todos os programas de e-mail aceitam este parâmetro.
Exemplo
No momento não há nenhum exemplo para demonstrar o uso deste procedimento.
Observações
- Como os dados são passados usando uma URL, os caracteres precisam ser caracteres seguros para a Internet, e sendo assim é necessário usar um %0d para quebra de linha e um %20 para espaços.
Tópicos relacionados
ShowOpenTables
O procedimento ShowOpenTables serve para exibir a quantidade de tabelas atualmente abertas na aplicação e, opcionalmente, os nomes lógicos de cada uma destas tabelas.
Pacote
O procedimento ShowOpenTables está definida dentro do pacote ShowOpenTables.pkg.
Sintaxe
Send ShowOpenTables [{bShowNames} {bShowDetails}]
Onde:
- {bShowNames} parâmetro do tipo Boolean opcional que se informado como True exibe além da quantidade de tabelas abertas também os nomes destas tabelas;
- {bShowDetails} parâmetro opcional do tipo Boolean que se informado como True exibe ao lado do nome da tabela sua situação em relação à configuração de arquivo fantasma: Default, Master ou Alias.
Exemplo
Um exemplo de uso do procedimento pode ser encontrado dentro da Workspace Padrão no arquivo MenuFlex.src. Na imagem abaixo a chamada do procedimento está na linha 86:

Observações
- Este procedimento só pode ser usado em aplicações Windows.
Tópicos relacionados
Não encontrou o que precisava? Entre em contato conosco.
