Jump to content
pudjanty

Pequena expressão PHC

Recommended Posts

pudjanty

Boas,

Já dei voltas e mais voltas à procura da informação que preciso e não encontro em lado nenhum.

E não precisam de me dizer para ir falar com o meu implementador PHC pois a coisa não correu bem e já não falamos.

Ah, e falar diretamente com a PHC como já vi várias vezes sugerido noutros tópicos também não resultou. Os problemas foram muitos e tivemos que nos desenrascar praticamente sozinhos.  :wallbash:

Isto para não dizer que a "enciclopédia PHC" deve ser dos segredos informáticos mais bem guardados do mundo...Vê-se que anda muita gente feliz e a ganhar bom dinheiro à conta de totós como eu! 😡

Basicamente o que preciso é de criar um campo numa impressão de um dossier interno (lista de artigos para outlet) em que se o artigo estiver localizado no armazém n.º20 (que corresponde à loja) imprime na lista a expressão "artigo de exposição". É básico certo?

Tentei algo do género:

BI.ARMAZEM=20

PRINT 'ARTIGO DE EXPOSIÇÃO'

Tentei algumas variações mas o erro é sempre o mesmo: "A expressão do SELECT do IDU está incorreta."

Alguém me pode por favor explicar a sintaxe correta desta expressão sff? Please!

Obrigado!

Abraços

Share this post


Link to post
Share on other sites
DocasOrelhas

Olá!

Lamento imenso esses problemas com a PHC. Se calhar devias procurar outro Revendedor (se o problema não for pagar pela assistência: ninguém trabalha de borla).

Mas o que pedes é muito fácil (para quem sabe, vais dizer...).

Partindo do principio que estás a usar uma impressão definida (IDU):

- crias um campo de texto, com o texto 'ARTIGO DE EXPOSIÇÃO', na secção das linhas;

- na caixa de Propriedades, escolhes clicas 2x em Imprimir quando;

- No ecrã de condições de impressão, clicas no botão (fundo, lado direito), para construir a expressão;

- Escolhes o campo Armazém, e no separador de T-SQL, escreves: bi.armazem=20

- Gravas tudo e experimentas;

- Na prática estás a dizer ao PHC para imprimir o campo de texto apenas quando o armazém for 20

Saudações,

Ricardo P.

Share this post


Link to post
Share on other sites
rui.campos

Boa noite

Meu caro a informação prestada pelo Ricardo P não está completamente correcta

Efectivamente é um "imprimir quando", no entanto a expressão T-SQL deve retornar um valor logico

(case when bi.armazem = '20' then convert(bit,1) else convert(bit,0) end)

No tipo de Campo devera colocar L

Ao seu dispor

RC

Share this post


Link to post
Share on other sites
pudjanty

Entretanto tive de férias e deixei o assunto em banho maria.

Muito obrigado pela ajuda, vou experimentar!

Cumps

Share this post


Link to post
Share on other sites
pudjanty

Boas,

Após experimentar a expressão sugerida pelo Rui, percebi que a coisa não pode ser exactamente assim (culpa minha) e será ligeiramente mais complexa...

O que acontece é que estando todos os artigos em exposição na loja (armazém 20) mesmo que haja em stock, ele imprime sempre "artigo de exposição" em tudo.

A expressão deverá assim determinar que o artigo estando no armazém 20 "e" só no 20 é que o texto "artigo de exposição" é impresso, ou seja se nas restantes localizações o stock for <=0, então faz a impressão...

Estou certo de que isto mesmo assim será relativamente simples não?

Abraço

Share this post


Link to post
Share on other sites
rui.campos

Ba noite

Envie-me os seu contactos por favor e teri o maior gosto em ajudar na resolução do problema bem como enviar-lhe a enciclopédia PHC

rui.campos@t4c.pt

Cumprimentos

  • Vote 1

Share this post


Link to post
Share on other sites
pc.cesar

Boas

, tenho larga experiencia em PHC, e no teu caso em concreto tambem tenho uma possivel solução, tenho varios clientes com loja onde uma das listagem pedidas é o stock em cada armazem, e o que pedes é bastante simples,

Edita o IDU e coloca o campo stock no IDU de seguida vai á opção propriedades no separardor do TSQL e coloca o sequinte

(case when (select stock from sa where sa.ref=st.ref and sa.armazem=20)=(select sum(stock) from sa where sa.ref=st.ref) then CAST(stock AS CHAR) else CAST(stock AS CHAR(9)) + ' Exposicao' end)

desta forma tens o que pretendes::

se dominas o SQL

executa a sequinte query

select ref, design,
, case when (select stock from sa where sa.ref=st.ref and sa.armazem=3)=(select sum(stock) from sa where sa.ref=st.ref) then CAST(stock AS CHAR) else CAST(stock AS CHAR(9)) + ' Exposicao' end
,(select stock from sa where sa.ref=st.ref and sa.armazem=3)
,(select sum(stock) from sa where sa.ref=st.ref
from st where 1=1
and st.ref like ' O TUA REFERENCIA'
and (select stock from sa where sa.ref=st.ref and sa.armazem=3)>1

Se precisares de mais cfaria[at]desenvolve.net

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
pfmc

Ba noite

Envie-me os seu contactos por favor e teri o maior gosto em ajudar na resolução do problema bem como enviar-lhe a enciclopédia PHC

rui.campos@t4c.pt

Cumprimentos

Boa noite,

Por gentileza, ainda poder-me-ia enviar uma cópia dessa enciclopédia, tenho alguns trabalhos em curso, para quais seria uma ajuda preciosa.

Desde já o meu obrigado

Share this post


Link to post
Share on other sites
flipe

Viva! Este grande benemérito do Rui Campos, já não anda na área? Ninguém ficou com a famosa enciclopédia? Que a possa disponibilizar, bah...

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.