Pergunte aqui
1

Function ou Sub com parâmetros opcionais ou Pré definidios

perguntadas 2019-02-17 20:43:12 +0100

imagem do gravatar de Marco Salles

updated 2019-03-01 18:01:13 +0100

sub Retornar_Ultimas_Dozes_Vendas (ByVal Automatico As Boolean )

Gostaria que este Parâmetro Automatico fosse Opcional na chamada ou seja se nada for passado ele assume um determinado Valor

Chamo assim

Retornar_Ultimas_Dozes_Venda(True)

ou

Retornar_Ultimas_Dozes_Venda(False)

Mas preciso chamar assim

Retornar_Ultimas_Dozes_Venda() ou Retornar_Ultimas_Dozes_Venda(false) ou Retornar_Ultimas_Dozes_Venda(True)

em algumas linguagens isso é permitido . Como fazer isso no Calc da Libreoffice ??

Obrigado

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

2

respondidas 2019-02-17 21:31:28 +0100

imagem do gravatar de Grafeno

Boa tarde,

Na linguagem Basic do LibreOffice existe a Instrução Optional que torna o parâmetro opcional. Então você deve testar no código o parâmetro com a função IsMissing( NomeParametro ). Por exemplo:

Sub MsgTipo( Optional nTipo )

   If IsMissing( nTipo ) Then
     msgbox "Tipo omitido"
   Else
     msgbox "Tipo informado: " & nTipo
   End If

End Sub

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Obrigado , acho que ajuda muito .. Mas caso não seja informado ele assume um valor pre definido ? No caso de Inteiros por exemplo geralmente é o zero

Existe algo na Linguagem Basic do Libre Office que possa pre definir este parâmetro e o mesmo assuma um valor caso não seja definido ?

Muito obrigado

imagem do gravatar de Marco SallesMarco Salles ( 2019-02-17 22:06:03 +0100 )editar

Tente assim, no vba funciona, não sei no LO basic. Defina o valor a variavel opcional logo que vc declara o argumento do procedimento/função:

Sub MsgTipo( Optional nTipo As String = "Seu valor padrão" )

     msgbox "Tipo informado: " & nTipo


End Sub

fonte: https://docs.microsoft.com/pt-br/dotn...

imagem do gravatar de mrkalvinmrkalvin ( 2019-02-18 18:51:33 +0100 )editar

Obrigado @mrkalvin ... Então pensei que pudesse ser desta forma tb precedito do Optional porém o compilador não aceita

Obrigado ... Muito obrigado

Aguardo sugestões

imagem do gravatar de Marco SallesMarco Salles ( 2019-02-19 02:22:56 +0100 )editar
1

Acredito que o arranjo mais aproximado com o que você quer é, por exemplo:

Sub Retornar_Ultimas_Dozes_Venda(Optional nParam )

If IsMissing( nParam ) Then
  nParam = 0
End If

...

Você identifica que o parâmetro não foi passado com IsMissing() e então define o valor padrão dentro da cláusula If. Parece que não existe esse "atalho" do VBA.

imagem do gravatar de GrafenoGrafeno ( 2019-02-21 01:00:11 +0100 )editar

Interessante . Obg

Obg mesmo

imagem do gravatar de Marco SallesMarco Salles ( 2019-02-21 23:55:15 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-02-17 20:43:12 +0100

Lidas: 27 vezes

Última atualização: Feb 18