Jump to content
NunoM

PHC criar botão específico

Recommended Posts

NunoM

Bom dia a todos.

Comecei agora a programar o PHC cá da casa e tenho a seguinte necessidade:

No modulo de assistências necessitava de criar no ecrã dos clientes um botão (ou uma tecla de utilizador) para abrir um novo pedido de assistência para esse cliente.

Alguém me pode ajudar nesta tarefa?

Obrigado. 

Share this post


Link to post
Share on other sites
NunoM
Em 17/10/2018 às 18:28, pc.cesar disse:

select cl

if !empty(cl.no)
  mb_PAorigem="INTRO"
  doread("PA","SPA")
endif

 

Bom dia.

Agradeço a resposta.

o projeto tem andado um pouco parado e só agora voltei a ele.

no ecrã de clientes adiciono um botão com o tipo de acção 2-comando interno?

Como associo o código ao botão?

até agora apenas tenho alterado layouts e adicionado campos, nunca adicionei botão...

Agradeço o apoio.

 

Share this post


Link to post
Share on other sites
pc.cesar

Crias uma tecla CTRL+F12 com o codigo, e no botão

utilizadas no campo comando keyboard "{CTRL+F12}"

 

Share this post


Link to post
Share on other sites
NunoM
Em 15/05/2019 às 20:57, pc.cesar disse:

Crias uma tecla CTRL+F12 com o codigo, e no botão

utilizadas no campo comando keyboard "{CTRL+F12}"

 

Obrigado.

Já consegui fazer o procedimento.

Não querendo abusar...

Quando utilizo a tecla/botão abre o ecrã de pedidos de assistência no entanto não associa o cliente...

tem como fazer?

obrigado

Share this post


Link to post
Share on other sites
pc.cesar

 

select cl

if !empty(cl.no)
mb_PAorigem="INTRO"
doread("PA","SPA")
 replace SPA.No with cl.no
 replace SPA.Nome with cl.nome

endif

Share this post


Link to post
Share on other sites
camexavi

Boa noite,

Mais uma vez venho solicitar a vossa prezada ajuda.

Tenho 2 ecrãs de stock e serviços criados (SST), um tem nome EcraST1 outro tem o nome Ecra ST2

Pretendo criar uma tecla que abra o EcraST1 e outra tecla para EcraST2

Tenho este comando

Doread('ST','SST') mas não consigo definir o nome do ecrã que deve abrir.

 

Agradecia a V/ ajuda.

Obrigado! ;)

 

Share this post


Link to post
Share on other sites
pc.cesar
if not eof("ST") 
    if st.fornec > 0 
    do dbfusefl 
        if u_sqlexec("select " + selfields("FL") + " from FL (nolock) where FL.no = ?st.fornec and FL.estab = ?st.fornestab", "FLLIST") 
            select FLLIST 
            go top
            if not eof() 
            select fl 
            m.v_flstamp = fllist.flstamp 
            u_requery("FL")
            &&Vamos verificar se existe uma personalização para o tipo de fornecedor em causa
                 if u_sqlexec("select formbstamp from formb (nolock) where formb.nome = 'Tipo: ' + ?fl.tipo", "tmpformb") 
                    select tmpformb 
                    go top 
                    if not eof("tmpformb") 
                        doread("FL", "SFL") 
                        sfl.getformc(tmpformb.formbstamp, .t., .f., .t.) 
                    else 
                        msg("Não existe personalização própria para o tipo de fornecedor deste artigo. Vai abrir o ecrã com o desenho por defeito!") 
                        doread("FL", "SFL") 
                    endif 
                    fecha("tmpformb") 
                else 
                    msg("Ocorreu um erro ao tentar aceder à ficha do Fornecedor. Verifique a análise interna, por favor!") 
                endif 
            endif 
        else 
            msg("Ocorreu um erro ao tentar aceder à ficha do Fornecedor. Verifique a análise interna, por favor!") 
        endif 
    else 
        msg("Este artigo não tem Fornecedor Habitual!") 
    endif 
endif 

 

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
camexavi

Desculpa @pc.cesar não entendi se a resposta que deu seria para o meu pedido de ajuda, uma vez que vejo no código referências aos fornecedores.

 

Obrigado  ;)

Share this post


Link to post
Share on other sites
pc.cesar

E um exemplo 

No ecrã de stock abre diferentes ecrãs de fornecedor

Deve adaptar para o desejado

Share this post


Link to post
Share on other sites
camexavi
4 horas atrás, pc.cesar disse:

E um exemplo 

No ecrã de stock abre diferentes ecrãs de fornecedor

Deve adaptar para o desejado

Ok vou verificar

Obrigado 

Share this post


Link to post
Share on other sites
camexavi

Caro @pc.cesar, obrigado pelo exemplo disponibilizado. Já consegui fazer parte do pretendido.

Falta-me um comando para verificar o nome do ecrã personalizado, que está aberto ou em uso.

Será possível a sua ajuda, mais uma vez?

Obrigado ;)

Share this post


Link to post
Share on other sites
camexavi

Tenho uma tecla criada com o código:

Local _guardalabelSST
_guardalabelSST = SST.controlEcra.Caption

If _guardalabelSST='C'
u_sqlexec("select formbstamp from formb (nolock) where formb.nome = 'Artigos VD'", "tmpformb1")
Select tmpformb1
doread("ST", "SST")
sst.getformc(tmpformb1.formbstamp, .T., .F., .T.)
else
u_sqlexec("select formbstamp from formb (nolock) where formb.nome = 'Artigos'", "tmpformb1")
Select tmpformb1
doread("ST", "SST")
sst.getformc(tmpformb1.formbstamp, .T., .F., .T.)
endif

 

Funciona se utilizador for administrador, caso contrário aparece o erro seguinte:
 

Código: 1881
Linha: 0
Mensagem 1: Error with PageCPT - PageOrder : Expression evaluated to an illegal value.
Mensagem 2: SELECT FormcDesignGridCursor

Local: SST.EVALPROPOBJ
Chamada:
         MAINCORP
         MAINMAIN
         UDC_HANDLEEVENTOS.EV_CLICK_XBASEEXP
         RUDCBOTAO
         LIGAERROS
         ON...
         EXECUTAUSERTECLAS
         TCEXEC
         PRGRUN
         XTEC26520190628131145

 

Agradeço mais uma vez a V/ ajuda ;)

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.