Jump to content
Fivewin Brasil

Menu - retornar a ultima posição


sunset

Recommended Posts

Bom Dia.

Qual a possibilidade de fazer o MENU retornar a ultima posição, após sair de uma chamada de uma function(), alguns clientes tem pedido isso, insistentemente principalmente os que usam outros sistemas que tem o recurso.

Como uso atualmente.

iERPMENU.gif

 

Como Gostaria de programar 

FortesMenu.gif

 

Algum dos nobres colegas ja tem solução ? Ou tem alguma indicação de solução.

 

Grato. 

 

Link to comment
Share on other sites

function BuildMenu()
		 MENU oMenu
              MENUITEM "&Manutenções"
                 MENU
                   //MENUITEM "teste wait"                                        action ( testewait(),ShowMenu() )
                   ///separator
				   MENUITEM "Loja(s)"                                           action ( manutencao_lojas(),ShowMenu() )
                   separator
                   //MENUITEM "Teste"                                           action ( teste_qualquer() )
                   //separator
                   MENUITEM "Usuario e senhas"                                  action ( cad_senhas(),ShowMenu() )
                   separator
                   MENUITEM "Status de inatividade"                             action ( fninativo(),ShowMenu() )
                   separator
                   MENUITEM "Representantes"                                    action ( listbox_representantes(),ShowMenu() )
                   separator
				   MENUITEM "Região do Cliente"                                 action ( cadastro_de_regiao(),ShowMenu() )
                   separator
                   MENUITEM "Clientes"                                          action ( listbox_clientes(),ShowMenu() )
                   separator
                   MENUITEM "Fornecedores"                                      action ( listbox_fornecedores(),ShowMenu() )
                   MENUITEM "Transportadoras"                                   action ( listbox_transportadoras(),ShowMenu() )
                   separator
                   MENUITEM "Linha da fábrica"
                     MENU 
                       MENUITEM "Detalhes da produção"                          action ( detalhe(),ShowMenu() )
                     ENDMENU
				   separator
                   MENUITEM "Unidades"                                          action ( listbox_unidade("sim"),ShowMenu() )
                   separator
                   MENUITEM "Marca(s)"                                          action ( esmarca(),ShowMenu() )
                   separator                                                         
                   MENUITEM "Grupo de Produtos"                                 action ( listbox_grupo("sim"),ShowMenu() )
                   MENUITEM "Subgrupo de Produtos"                              action ( listbox_subgrupo("sim"),ShowMenu() )
                   MENUITEM "Gênero de Produtos"                                action ( listbox_genero("sim"),ShowMenu() )
                   separator
                   MENUITEM "Produto"                                           action ( listbox_produto(),ShowMenu() )
                   separator
                   MENUITEM "Tipos de movimento"                                action ( listbox_tipomovimento("sim"),ShowMenu() )
                   separator
                   MENUITEM "CTRC"                                              action( ctrc(),ShowMenu() )
                   separator
                   //MENUITEM "Conta de energia"                                  action( energia(),ShowMenu() )
                   //separator
                   //MENUITEM "Conta de telefone"                                 action( contafone(),ShowMenu() )
                   //separator
                   MENUITEM "Sped Fiscal"                                       action ( spedfiscal(),ShowMenu() )
                   separator
                   MENUITEM "Sintegra"                                          action ( fazsintegra(),ShowMenu() )
                   separator
                   MENUITEM "Entrada Imediata"                                  action ( acertoen("E"),ShowMenu() )
                   separator
                   MENUITEM "Saída   Imediata"                                  action ( acertoen("S"),ShowMenu() )
                   separator
				   MENUITEM "Transformação"                                     action ( transformacao("R"),ShowMenu() )
				   separator
                   MENUITEM "Modelagem de produtos"                             action ( modelagem(),ShowMenu() )
                   separator
                   MENUITEM "Transferência de produtos"                         action ( transferencia("T"),ShowMenu() )
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   separator
                   MENUITEM "Sair"                                              action (janela_principal:end())
                 ENDMENU
              MENUITEM "M&ovimentações"
                 MENU
                   //MENUITEM "Envia E-mail com HTML"      name "bmpICON31"       action ( envia_email() )
                   //separator
                   MENUITEM "Lançamento de nota fiscal de entrada"              action ( entrada_nf(),ShowMenu() )
                   separator
                   MENUITEM "Entrada por pedido"                                action ( entrada_pd(),ShowMenu() )
                   separator
                   MENUITEM "Orçamentos"                                        action ( orcamento("S"),ShowMenu() )
                   separator
                   MENUITEM "Emissão de pedidos"                                action ( pedido("S","P"),ShowMenu() )
                   separator
                   MENUITEM "Venda expresso"                                    action ( pedido("S","T"),ShowMenu() )
                   separator
				   MENUITEM "Acompanha produção"                                action ( acompanha_producao_isopor(),ShowMenu() )
				   separator
                   MENUITEM "Emite nota fiscal de entrada"                      action ( emite_nf_pedido("S","P"),ShowMenu() )
                   separator
                   MENUITEM "Gera o inventário"                                 action ( inventario_fisico(1,1),ShowMenu() )
                   separator
                   MENUITEM "Inventário"                                        action ( inventario(),ShowMenu() )
                   separator
                   MENUITEM "Administração de compras"                          action ( adm_compras("S","P"),ShowMenu() )
                   //separator
                   //MENUITEM "Entrada de pedidos"                              action ( pedido("E"),ShowMenu() )
                   separator
                   MENUITEM "Venda consignado"                                  action ( venda_consignado(),ShowMenu() )
                   separator
                   MENUITEM "Manutenção de Agenda/Atendimento"                  action ( atendimento(),ShowMenu() )
				   separator
                   MENUITEM "Lança credito/debito para clientes"                action ( ver_credito_debito(),ShowMenu() )
                   separator
                   MENUITEM "Acertos"                                           action ( acerto(),ShowMenu() )
                   separator
                   MENUITEM "Relatório para conferência de acertos"             action ( corrente(),ShowMenu() )
                   separator
                   MENUITEM "Movimentação de cheques"                           action ( cheques("P"),ShowMenu() )
                   separator
                   MENUITEM "Movimentação de cheques BAIXADOS"                  action ( cheques("B"),ShowMenu() )
                   separator
				   MENUITEM "Reserva de produtos"                               action ( reservacli("S"),ShowMenu() )
                   separator
				   MENUITEM "Lançamento de promoções"                           action ( promocao("E"),ShowMenu() )
                   separator
				   MENUITEM "Cidades exclusivas para não vender"                action ( exclusivo_cid(),ShowMenu() )
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                   //separator
                   //MENUITEM "Titulo provisorio do menu"
                 ENDMENU
              MENUITEM "&Faturamento"
                 MENU
                   MENUITEM "UF - Estados"                                           action ( listbox_uf(),ShowMenu()    )
                   separator
                   MENUITEM "CST/CSOSN - Código da situação tributária"              action ( listbox_cst(),ShowMenu()   )
                   separator
                   MENUITEM "NCM - Nomenclatura Comum ao Mercosul"                   action ( listbox_ncm(),ShowMenu()   )
                   separator
                   MENUITEM "CEST - Código Especificador da Substituição Tributária" action ( listbox_cest(),ShowMenu()   )
                   separator
                   //MENUITEM "CSOSN - Código de Operação no Simples Nacional"       action ( listbox_csosn(),ShowMenu() )
                   //separator
                   MENUITEM "CFOP - Código Fiscal de Operação"                       action ( listbox_cfop(),ShowMenu()  )
                   separator
				   MENUITEM "Altera dados fiscais dos produtos"                      action ( altera_dados_fiscais(),ShowMenu()  )
				   separator
                   MENUITEM "Tipos de operacões fiscais."                            action ( listbox_operacao(),ShowMenu() )
                   separator
                   MENUITEM "Contigência da NOTA FISCAL ELETRÔNICA"                  action (altera_emissao("N"),ShowMenu() )
                   separator
                   MENUITEM "Contigência da NOTA FISCAL CONSUMIDOR ELETRÔNICA"       action (altera_emissao("C"),ShowMenu() )
                   separator
                   MENUITEM "Gerencia Nota fiscal Eletronica (NF-e)"                 action ( gerenciador_notafiscal("","N","N",""),ShowMenu()  )
                   separator
                   MENUITEM "Gerencia Nota fiscal Eletronica (NFC-e)"                action ( gerenciador_notafiscal("","N","C",""),ShowMenu()  )
                 ENDMENU
              MENUITEM "&Central de análise"                                         action ( analise_loja(),ShowMenu()  )
			  //MENUITEM "&Integração aplicativos externos"
              //   MENU
			  //	   MENUITEM "Impressora fiscal SALC"
			  //	      MENU
			  //	         MENUITEM "SALC | Cadastro de ECF"                           action ( listbox_ecf(),ShowMenu() )
              //           separator
              //           MENUITEM "SALC | Aliquota impressora fiscal"                action ( listbox_aliq(),ShowMenu() )
              //           separator
              //           MENUITEM "SALC | Meios de pagamento"                        action ( listbox_meiospagamentos(),ShowMenu() )
              //           separator
              //           MENUITEM "SALC | Processa retorno de cupom fiscal"          action ( processa_retorno_cupom(1),ShowMenu() )
			  //	      ENDMENU
			  //	   //separator
			  //	   //MENUITEM "Palmtops ACC Informática"
			  //	   //   MENU
			  //	   //      MENUITEM "ACC | Exporta arquivos para palmtop"             action ( exporta_palm_acc(),ShowMenu() )
              //     //      separator
              //     //      MENUITEM "ACC | Importa arquivos do palmtop"               action ( importa_palm_acc(),ShowMenu() )
			  //	   //   ENDMENU
              //   ENDMENU
              MENUITEM "Fi&nanceiro"
                 MENU
                   MENUITEM "Moedas"                                            action ( listbox_moedas(),ShowMenu() )
                   separator
                   //MENUITEM "Cotação de moedas via Internet"                    action ( cotacao(),ShowMenu() )
                   //separator
                   MENUITEM "Plano de contas"                                   action ( listbox_plano_de_contas(),ShowMenu() )
                   separator
                   MENUITEM "Meios de pagamento"                                action ( listbox_meiospagamentos(),ShowMenu() )
                   separator
                   MENUITEM "Formas de pagamento"                               action ( listbox_condicoespagamentos(),ShowMenu() )
                   separator
                   MENUITEM "Contas a receber"                                  action ( receber("R"),ShowMenu() )
                   separator
                   MENUITEM "Boleto bancário"                                   action ( boletobc(),ShowMenu() )
                   separator
                   MENUITEM "Contas a pagar"                                    action ( receber("P"),ShowMenu() )
                   separator
                   MENUITEM "Cadastro de caixa"                                 action ( listbox_caixas(),ShowMenu() )
                   separator
                   MENUITEM "Movimento de caixa"                                action ( movcaixa(),ShowMenu() )
                   separator
                   MENUITEM "Fluxo de caixa"                                    action ( fluxodecaixa(),ShowMenu() )
				   separator
                   MENUITEM "Movimentação de cheques"                           action ( cheques("P"),ShowMenu() )
                   separator
                   MENUITEM "Movimentação de cheques BAIXADOS"                  action ( cheques("B"),ShowMenu() )
                 ENDMENU
              //MENUITEM "&Banco"
              //MENUITEM "Converter sysaut para rw"                             action ( converte_sysaut_rw() )
              //MENUITEM "Importa arquivo"                                      action ( teste() )   // arrasta arquivo para tela
              MENUITEM "&Relatórios"
                 MENU
                   MENUITEM "Clientes"                                          action ( relato_clientes(),ShowMenu() )
                   separator
                   MENUITEM "Clientes que deixaram de comprar"                  action ( relato_clientes_que_nao_compram(),ShowMenu() )
                   separator
                   MENUITEM "Vendas no período"                                 action ( relato_vendas_periodo_scusto(),ShowMenu() )
                   separator
                   //MENUITEM "Vendas no período com custo"                     action ( relato_vendas_periodo_custo(),ShowMenu() )
                   //separator
                   //MENUITEM "Vendas por produto"                              action ( relato_vendas_por_produto(),ShowMenu() )
                   //separator
				   MENUITEM "Vendas por Item"                                   action (relato_vendas_item(),ShowMenu())
				   separator
                   MENUITEM "Estoque custo Unitario"                            action ( inventario_fisico(1,2),ShowMenu() )
                   separator
                   MENUITEM "Estoque custo Total"                               action ( inventario_fisico(2,2),ShowMenu() )
                   separator
				   MENUITEM "Relatório de produtos com NCM em branco"           action ( ncm_em_branco(),ShowMenu() )
				   separator
				   MENUITEM "Relatório de produtos por NCM"                     action ( relato_ncm(),ShowMenu() )
				   separator
				   MENUITEM "Relatório de produtos por CST/CSOSN"               action ( relato_cst(),ShowMenu() )
				   separator
				   MENUITEM "Relatório de produtos por fornecedor"              action ( produto_fornecedor(),ShowMenu() )
				   separator
                   MENUITEM "Listagem de preço"                                 action ( listagem_de_preco(),ShowMenu() )
                   separator
                   MENUITEM "Notas fiscais emitidas"                            action ( notas_emitidas(),ShowMenu() )
                   separator
                   MENUITEM "Notas fiscais entradas"                            action ( notas_entradas(),ShowMenu() )
                   separator
                   MENUITEM "Resumo fiscal"                                     action ( resumo_fiscal(),ShowMenu() )
                   separator
                   MENUITEM "DRE"                                               action ( dre(),ShowMenu() )
                   separator
                   MENUITEM "Vendas/Grupos de mercadorias"                      action ( vendasgrupos(),ShowMenu() )
                   separator
                   MENUITEM "Lucros e prejuizos no período"                     action ( lucrosprejuizos(),ShowMenu() )
                   separator
                   MENUITEM "Curva ABC"                                         action ( curvaabc(),ShowMenu() )
                   separator
                   MENUITEM "Relatório de sugestão de compra"                   action ( sugestao_de_compra(),ShowMenu() )
                   separator
                   MENUITEM "Contas a pagar"
                      MENU
                        menuitem "Títulos em aberto"                         action ( relaberto("B"),ShowMenu() )
                        separator
                        menuitem "Títulos Pagos"                             action ( relaberto("Q"),ShowMenu() )
                        separator
                        menuitem "Lista plano de contas"                     action ( relplanoc("P"),ShowMenu() )
                      ENDMENU
                   separator
                   MENUITEM "Contas a receber"
                      MENU
                        menuitem "Títulos em aberto"                         action ( relabertoReceber("B"),ShowMenu() )
                        separator
                        menuitem "Títulos recebidos"                         action ( relabertoReceber("Q"),ShowMenu() )
                        separator
                        menuitem "Lista plano de contas"                     action ( relplanoc("R"),ShowMenu() )
                      ENDMENU
                   separator
                   MENUITEM "Relatório para conferência de acertos"          action ( corrente(),ShowMenu() )
                 ENDMENU
             // MENUITEM "Rádio e TV"
             //    MENU
             //     MENUITEM "Rádio (Jovempan Campinas)"   ACTION MostrarWMP( "http://www.dnip.com.br/link/jovempancampinas.wmx", "Radio Jovem Pan (Campinas)" )
             //     MENUITEM "Rádio (Globo Gov.Valadares)" ACTION MostrarWMP( "http://www.dnip.com.br/link/globogv64k.wmx", "Radio Globo (Gov.Valadares)" )
             //     MENUITEM "Rádio (Tempo FM)"            ACTION MostrarWMP( "http://www.tempofm.com.br/tempofm3.asx", "Radio Tempo FM" )
             //     MENUITEM "Rádio (O Povo AM)"           ACTION MostrarWMP( "mms://srv2.zoeweb.tv/zoenet-14", "Radio O Povo AM" )
             //     MENUITEM "Rádio (Calypso FM)"          ACTION MostrarWMP( "mms://zoeweb.tv/zoenet-15", "Radio Calypso FM" )
             //     MENUITEM "Rádio (Canção Nova)"         ACTION MostrarWMP( "http://www.cancaonova.com/radiofm.asx", "Radio Canção Nova" )
             //     SEPARATOR
             //     MENUITEM "Tv Canção Nova"  ACTION MostrarWMP( "http://www.cancaonova.com/tvcn.asx", "TV Canção Nova" )
             //     MENUITEM "Tv Rede Vida"    ACTION MostrarWMP( "mms://wmedia.telium.com.br/redevida", "TV Rede Vida" )
             //     MENUITEM "Tv Novo Tempo"   ACTION MostrarWMP( "http://ntmc.novotempo.org.br/tvnovotempo-vivo.asx", "TV Novo Tempo" )
             //     MENUITEM "Tv Rede Brasil"  ACTION MostrarWMP( "mms://rbtv.interrogacaodigital.net/rbtv", "TV Rede Brasil" )
             //     MENUITEM "Tv Cultura"      ACTION MostrarWMP( "mms://streaming.net2.com.br/tvcultura", "TV Cultura" )
             //     MENUITEM "Tv Escola"       ACTION MostrarWMP( "mms://refletor.mec.gov.br/tvescola", "TV Escola" )
             //     MENUITEM "Tv Jangadeiro (SBT)"  ACTION MostrarWMP( "mms://201.12.119.29/tvjangadeiro", "TV Jangadeiro (SBT)" )
             //    ENDMENU
              MENUITEM "Administração do site"
			  MENUITEM "&Troca de empresa"                                       action ( listbox_lojas(),testsenha() )
              MENUITEM "&Alterna a senha "                                       action ( testsenha() )
         ENDMENU
return oMenu


#define KEYEVENTF_KEYUP 2
//----------------------------------------------------------------------------//
Function ShowMenu( oM, nNiv )
                        
    Local cMv
    Local nChr
    Local nItem
    Local oLItM
    Local cMov := ""
    
    Default oM   := WndMain():oMenu
    Default nNiv :=0
    oLItM := oM : LastItem()
    For nItem := 1 to Len( oM : aItems )
        If( ValType( oM : aItems[ nItem ] : bAction ) == 'O' )
            cMv := ShowMenu( oM : aItems[ nItem ] : bAction, nNiv + 1 )
            If( Right( cMv, 1 ) == "x" )
                cMov += Chr( If( nNiv =0, VK_DOWN, VK_RIGHT ) ) + cMv
                If( nNiv == 0 )
                    cMov := Left( cMov, Len( cMov ) - 1 )
                    keybd_event( VK_MENU, 0, 0, 0 )
                    keybd_event( VK_MENU, 0, KEYEVENTF_KEYUP, 0 )
                    For nChr := 1 to Len( cMov )
                        keybd_event( Asc( SubStr( cMov, nChr, 1 ) ), 0, 0, 0 )
                        keybd_event( Asc( SubStr( cMov, nChr, 1 ) ), 0, KEYEVENTF_KEYUP, 0 )
                    Next i
                    Return( .t. )
                End
                Return cMov
            End
        Else
            If( oM : aItems[ nItem ] : nId == oLItM : nId )
                Return cMov + "x"
            End
        End
        If( !Empt( oM : aItems[ nItem ] : cPrompt ) ) // se não for um separador
            cMov +=Chr( If( nNiv == 0, VK_RIGHT, VK_DOWN ) )
        End
    Next nItem
 
Return if( nNiv ==0, .f., "" )
    
DLL32 FUNCTION keybd_event ( bVk as _INT,bScan as _INT, dwFlags as LONG, dwExtraInfo as LONG ) AS LONG ;
      PASCAL LIB "user32.dll"

 

Link to comment
Share on other sites

Obrigado, pelas dicas

 

De fato funciona, desde que eu não use a RIBBONBAR, então com ela ativa, ao voltar para o menu, a ação quando a RIBBONBAR está ativa ele fica como se tivesse pressionado o ALT das teclas de atalho.

Existe alguma forma de não chamar as teclas de atalho do key para o ribbonbar e usa-las para o MENU ?

 

image.png.eb0578f481aae2f9c0d74efde8e415d2.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...