Jump to content
Apolo

PHC - Programação em XBASE

Recommended Posts

verder78

Boa noite caros colegas,

Tenho uns problemas no código xbase:

- Preciso de validar o IBAN e o BIC, alguêm tem um código para o efeito que possa ceder?

- após carregar um cursor, com x numero de campos do ecran, como exportar para um ficheiro XML com o resultado da query?

Obrigado,

Edited by verder78

Share this post


Link to post
Share on other sites
toribeiro

Boa noite,

Precisava desenvolver uma tecla no phc que permites-se importar ficheiros .xls para um cursor possibilitando depois realizar pesquisas. Alguém conhece uma solução?

Obrigado.

Share this post


Link to post
Share on other sites
pc.cesar

Boas

Precisas de importar para utilizar com os stocks e/ou com dossier... de tiveres acesso á enciclopédia tens lá um exemplo..

o ficheiro que pretendes importar e uma exportação de outro software?

existem algumas limitação 1) exel tem de estar instalado 2) o ficheiro tem de ser no formato exel 95 3) nao pode conter colunas vazias,

Share this post


Link to post
Share on other sites
toribeiro

Boas,

O exemplo que encontrei era para um importar um ficheiro .xls para os dossier internos. Mas eu precisava de importar um ficheiro .xls (que está numa pasta do computador) para os stocks e depois conseguir fazer pesquisas por referência mostrando depois o respectivo stock, sempre de acordo com a referencia que estás no phc. Tipo tas na referencia xpto a pesquisa procurará no xls a respectiva referencia e stock.

O ficheiro xls carregado pode ter colunas vazias...

Obrigado pela ajuda.

Share this post


Link to post
Share on other sites
Camarao69

Boa tarde

Precisava de uma ajudinha SFF, preciso que o phc não permita gravar um determinado dossier se já existir um criado para o mesmo cliente ou seja , so quero que o dossier tenha um registo por cliente.

Obrigado

Share this post


Link to post
Share on other sites
pc.cesar

Boas,

deve criar uma regra da framework

tabela BO

- colocar o visto em "A expressão é um programa"

- colocar o visto em "avisa mas deixa gravar" ou " não pode Gravar"

****************************** codigo ******* nao validei

local xbono, xboestab

xbono = astr(bo.no)
xboestab = astr(bo.estab)


** Preparar a instrução de Select
Text to m.cSelbo noshow textmerge
select bo.ndos, bo.no, bo.estab, count(bo.no) registos
from bo where bo.ndos=2
and bo.no='<< astr(xbono) >>'
and bo.estab='<< astr(xboestab) >>'
group by bo.ndos, bo.no, bo.estab
having count(bo.no)>=1
EndText

** Criar o Cursor
if u_sqlexec(m.cSelbo,"meuPC")
 If reccount("meuPC") >=1
	 msg("ja existe um documento para este cliente")
	 return .f.
	 endif
endif

***************************************************************

se tiver duvidas o meu mail é pc.cesar [at] gmail.com

Boa tarde

Precisava de uma ajudinha SFF, preciso que o phc não permita gravar um determinado dossier se já existir um criado para o mesmo cliente ou seja , so quero que o dossier tenha um registo por cliente.

Obrigado

Edited by apocsantos
tag code
  • Vote 1

Share this post


Link to post
Share on other sites
Camarao69

Boas,

deve criar uma regra da framework

tabela BO

- colocar o visto em "A expressão é um programa"

- colocar o visto em "avisa mas deixa gravar" ou " não pode Gravar"

****************************** codigo ******* nao validei

local xbono, xboestab

xbono = astr(bo.no)

xboestab = astr(bo.estab)

** Preparar a instrução de Select

Text to m.cSelbo noshow textmerge

select bo.ndos, bo.no, bo.estab, count(bo.no) registos

from bo where bo.ndos=2

and bo.no='<< astr(xbono) >>'

and bo.estab='<< astr(xboestab) >>'

group by bo.ndos, bo.no, bo.estab

having count(bo.no)>=1

EndText

** Criar o Cursor

if u_sqlexec(m.cSelbo,"meuPC")

If reccount("meuPC") >=1

msg("ja existe um documento para este cliente")

return .f.

endif

endif

***************************************************************

se tiver duvidas o meu mail é pc.cesar [at] gmail.com

Muito Obrigado César, como defino so um dossier neste caso com o numero de dossier ”3” o nome de dossier é “ Preços de Cliente”

Cumps

Marcos

Edited by Camarao69

Share this post


Link to post
Share on other sites
maxx77

Viva,

Tenho uma tabela sql com artigo, operações, componentes.

Precisava de importar isto para o phc por forma a ter uma ficha técnica criada.

Alguem me pode dar umas luzes sobre isto?

obrigado

Share this post


Link to post
Share on other sites
pc.cesar

Depende do circuito que pretendes montar e da versão PHC

Qual a versão PHC

Qual o circuito que pretendes montar ?

gerar ordens de fabrico no PHC

ter apenas a ficha tecnica

ter historico das fichas tecnicas ???

A tabela SQL é PHC ou outra BD?

Share this post


Link to post
Share on other sites
maxx77

PHC 15, quero apenas criar a ficha tecnica a partir de uma tabela sql (phc).

o meu problema é não conhecer as tabelas PHC do manufactor onde são gravadas as fichas técnicas.

Share this post


Link to post
Share on other sites
pc.cesar

Quando pergundo qual a versão pretendo saber se é corporate, advanced ou enterprise

Se tem manufactor, não percebo a necessidade de ficha técnica do artigo no phc!!!

o manufactor é muito mais complexo de trabalhar do que o PHC...

Explique em concreto a necessidade. para analizar.

Para utilizar a informação de modo mais confidencial utilize o meu email pc.cesar[at]gmail.com

Share this post


Link to post
Share on other sites
Camarao69

Bom dia

Alguem me pode dar uma ajuda SFF ?

Preciso de uma regra que me avise se um artigo não tiver stock suficiente para satisfazer o cliente ?

Basicamente o que eu preciso contem esta formula :

if bi.qtt-bi.qtt2>st.stock-st.qttcli

Preciso que ele me avise mas deixe gravar e se possivel que me mostre numa tabela para quem está pendente e quantas unidades

Obrigado.

Edited by Camarao69

Share this post


Link to post
Share on other sites
pc.cesar

Boas, não conhecendo o circuito real, deve experimentar o seguinte:

** Criar Regra
** a Expressão é um programa = SIM
** Avisa violação mas deixa Gravar
**


* -- Documento : Encomenda de Cliente
* -- Alerta Artigos Abaixo do Stock Minimo tendo em conta Encomenda de Ciente / Fornecedor e Entregas
* -- pc.cesar@
* -- Data 16-08-2009
* -- PHC Enterprise + Manufactor
* -- Base de dados: Ambitestes
* -- Código não testado em ambiente real, pode necessitar de ser ajustar á medida do cliente
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
select bo
if (bo.ndos=2) *** Dossier Interno: Encomenda de Cliente

select bi
scan
if get_stref(bi.ref,"ref,design, STOCK, QTTCLI, QTTFOR, stmin, stmax")
		u_stokreal = tempst.STOCK
		u_reserva =tempst.QTTCLI
		u_encforn =tempst.QTTFOR
		u_bistock = bi.qtt

		 u_dif = str((((tempst.stock-QTTCLI) + tempst.QTTFOR) - (bi.qtt-bi.qtt2)),3)

		   *** bi.qtt-bi.qtt2>c2.stock-c1.reserva


if (val(u_dif)<= tempst.stmin)

m.mErros =[]
m.mErros = tempst.ref
m.mErros = m.mErros + [  |   Descrição: ]+ tempst.design
m.mErros = m.mErros + [  |   QTT doc: ] + alltrim(str(bi.qtt))
m.mErros = m.mErros + [  |   Stock minimo: ]+ str(tempst.stmin)
=aadderros(m.mErros)

else
**msg("xx")
endif
endif

endscan


else
return .t.
endif
endif

Share this post


Link to post
Share on other sites
Camarao69

Ola Cesar muito obrigado pela resposta

O meu PHC é o Corporate

Eu so quero que ele me avise mediante a formula bi.qtt-bi.qtt2>st.stock-st.qttcli

está me adar um erro

Erro na Compilação:

endif

Error in line 36: An IF | ELSE | ENDIF statement is missing.

Obrigado

Edited by Camarao69

Share this post


Link to post
Share on other sites
Camarao69

Boa tarde Cesar

Quando lanço uma encomenda da me a seguinte mensagem

Regra com nº interno : 229

Código: 12

Linha: 12

Mensagem 1: Variable 'QTTCLI' is not found.

Mensagem 2:

Local: XRULE22920150409172329

Chamada:

MAINCORP

MAINMAIN

SBO.BOK1.OKBUTTOMDEF1.CLICK

SBO.BOCLASS1.GRAVARDOSSIER

SBO.CHECKRULE

PRGRUN

XRULE22920150409172329

ON...

Ja agora eu nao sei se esta inserida na formula mas eu não queria que ele contasse com os encomedados a fornecedor.

Edited by Camarao69

Share this post


Link to post
Share on other sites
pc.cesar

SUBSTITUIR

u_dif = str((((tempst.stock-QTTCLI) + tempst.QTTFOR) - (bi.qtt-bi.qtt2)),3)

POR

u_dif = str((((tempst.stock-tempst.QTTCLI) + tempst.QTTFOR) - (bi.qtt-bi.qtt2)),3)

Share this post


Link to post
Share on other sites
Camarao69

Sr Cesar obrigado por responder a minha questão

mas náo funcionou, ele grava e não me diz nada,

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.