sunset Posted February 24, 2021 Report Share Posted February 24, 2021 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. Como Gostaria de programar Algum dos nobres colegas ja tem solução ? Ou tem alguma indicação de solução. Grato. Quote Link to comment Share on other sites More sharing options...
sygecom Posted February 24, 2021 Report Share Posted February 24, 2021 Tenho esse exemplo guardado a anos, talvez lhe ajude. Veja em anexo TstShowMenu.rar Quote Link to comment Share on other sites More sharing options...
Wellington Vieira Posted February 24, 2021 Report Share Posted February 24, 2021 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" Quote Link to comment Share on other sites More sharing options...
sunset Posted February 26, 2021 Author Report Share Posted February 26, 2021 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 ? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.