Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Apolo

PHC - Programação em XBASE

Mensagens Recomendadas

pc.cesar

Nao existe nada mas podes sempre utilizar TsqL

envio query que procurar o primeiro buraco nas entidades, cria um valor por defeito na numeração da CL

SELECT MIN(no) + 1 AS PROX_ID_LIVRE
FROM ag T
WHERE NOT EXISTS (
    SELECT no FROM ag T1 WHERE T1.no = (T.no + 1))

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Filipe Alves
Em 03/02/2018 às 13:37, pc.cesar disse:

Nao existe nada mas podes sempre utilizar TsqL

envio query que procurar o primeiro buraco nas entidades, cria um valor por defeito na numeração da CL


SELECT MIN(no) + 1 AS PROX_ID_LIVRE
FROM ag T
WHERE NOT EXISTS (
    SELECT no FROM ag T1 WHERE T1.no = (T.no + 1))

Obrigado. Testei mas cria conflito e não funciona quando se pretende adicionar estabelecimentos a um cliente existente.

Alguma sugestão ?

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NelsonPaiva

Alguém sabe em que tabela é que o PHC guarda a informação de quem imprimiu determinado IDU? É que num dossier tenho vários IDU mas tenho um IDU especifico que pretendo controlar as impressões e em que o PHC está a guardar o registo de todas as impressões feitas.

Se formos ao menu "opções diversas - opções com o registo - ver quem já imprimiu este registo" consigo ver quem e quando imprimiu mas apenas no dossier que tenho em aberto.

Se soubesse em que tabela é que essa informação é guardada eu poderia criar um código em que me mostrava quem é que usou aquele IDU especifico e em que em dossiers é que foi usado.

Andei a procurar no dicionários de dados mas apenas consigo encontrar um pequena parte da informação que é mostrada no registo das impressões.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Luis Pais
Em 18/01/2018 às 18:49, camexavi disse:

Boa noite :)

Mais uma vez, venho solicitar a V/ preciosa ajuda.

Estou a criar IDU etiquetas, precisava que quando na linha do dossier o campo "BI.LOBS2" estivesse vazio fosse ler ao campo "ST.DESC5" na tabela ST.

Tenho este código, mas repete sempre o valor da 1ª linha do dossier para as restantes linhas com referencias de artigo diferente.

Obrigado!


Parameters iduvaltsql
select bi
Go top
Scan
u_sqlexec([select desc5,desc6 from st where st.ref=']+alltrim(bi.ref)+['],[curOBS])
 
If empty(m.iduvaltsql)
return curOBS.desc5
else
return m.iduvaltsql
endif
endscan

 

Boa noite,

Relativamente à questão por si colocada, conseguiu resolver?

Estou com um problema idêntico. No IDU das etiquetas, tenho um campo pertencente a uma tabela personalizada.

Ao imprimir a etiqueta, imprime o valor do 1º registo nas referências seguintes, referências essas diferentes

A título de exemplo, no IDU de Inventário de Stock's, ao pretender colocar na etiqueta de inventário a informação de um campo de uma tabela personalizada, usei a associação a "+alltrim(stinv.ref)+". Se utilizasse a associação a "+alltrim(st.ref)+", na etiqueta ía repetir o valor do 1º registo nas seguintes referências.

Daí, dado que não conheço profundamente a framework, calculo que exista um campo estilo "+alltrim(tmpbi.ref)+". Mas não consigo lá chegar.

Caso possa ajudar-me, agradeço.

Cumprimentos,

Luís Pais

Editado por Luis Pais

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
camexavi
14 horas atrás, Luis Pais disse:

Boa noite,

Relativamente à questão por si colocada, conseguiu resolver?

Estou com um problema idêntico. No IDU das etiquetas, tenho um campo pertencente a uma tabela personalizada.

Ao imprimir a etiqueta, imprime o valor do 1º registo nas referências seguintes, referências essas diferentes

A título de exemplo, no IDU de Inventário de Stock's, ao pretender colocar na etiqueta de inventário a informação de um campo de uma tabela personalizada, usei a associação a "+alltrim(stinv.ref)+". Se utilizasse a associação a "+alltrim(st.ref)+", na etiqueta ía repetir o valor do 1º registo nas seguintes referências.

Daí, dado que não conheço profundamente a framework, calculo que exista um campo estilo "+alltrim(tmpbi.ref)+". Mas não consigo lá chegar.

Caso possa ajudar-me, agradeço.

Cumprimentos,

Luís Pais

Boa tarde!

Resolvi, mas de outra forma. Acabei por passar os valores que pretendo da tabela ST para a linha BI.

If !Empty(Alltrim(bi.ref))
	u_sqlexec([select desc5,desc6 from st where ref=?bi.ref],[curVERst])
	
		If bo.ndos=28
			If empty(bi.lobs2)
			Replace bi.lobs2 With curVERst.desc6
			Endif
			If empty(bi.lobs)
			Replace bi.lobs With curVERst.desc5
			Endif
Endif
Endif

 

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
soares chirrute

bom dia!

Sou iniciante em phc. Peço que me ajudem a resolver a seguinte questão, quero criar uma regra que esconda um objecto de um ercã, quando um determinado grupo de utilizadores acede a esse mesmo ecrã.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NelsonPaiva
7 horas atrás, soares chirrute disse:

bom dia!

Sou iniciante em phc. Peço que me ajudem a resolver a seguinte questão, quero criar uma regra que esconda um objecto de um ercã, quando um determinado grupo de utilizadores acede a esse mesmo ecrã.

Penso não estar a dizer nenhuma asneira mas isso não é possível. As regras são executadas ao gravar logo se o utilizador não gravar a regra nem é executada.

Mas podes fazer isso através de personalizações de ecrã. Crias uma personalização sem esse objeto e dizes que essa personalização é para determinado grupo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NelsonPaiva

Estou a tentar criar uma análise mas estou com alguns problemas. Se alguém me conseguir dar uma ajuda.

Explicando o cenário:
Tenho o dossier A e o dossier B.
O dossier B tem uma lista de materiais sendo que o total de custo das restantes linhas é calculado na 1ª linha.
Essa primeira linha é depois importada para o dossier A, sendo que um registo deste dossier terá várias linhas de diferentes dossiers B. Uma das colunas presentes no dossier A já indica qual o nº de dossier do B que origina aquela linha.

Eu queria criar uma análise em que bastava colocar o nº de dossier do "tipo" A e em que era lida a coluna com os nº dos dossiers B pertencentes a esse registo, e a análise fosse buscar cada um desses registos ao dossier B e desse um somatório do total de material agrupado por referência.

Exemplo:
O dossier A com o nº 200 tinha nas linhas os dossiers dos B nº 25, 33 e 20.
Na análise era pedido o nº do dossier A, eu colocava 200 e ele "guardava" os nº 25, 33 e 20 e ia ao dossier B a esses registos o final dava a lista de todas as referências que eram usadas nesses três dossiers e a quantidade.

 

Não sei se me consegui explicar bem.

A parte de ler o nº dos dossiers que fazem parte do registo A é facil. O meu problema é como pegar nesses valores e os usar para ir ao dossiers B e depois apresentar as referências.

Alguém me consegue dar uma ajuda?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pc.cesar
5 horas atrás, NelsonPaiva disse:

Penso não estar a dizer nenhuma asneira mas isso não é possível. As regras são executadas ao gravar logo se o utilizador não gravar a regra nem é executada.

Mas podes fazer isso através de personalizações de ecrã. Crias uma personalização sem esse objeto e dizes que essa personalização é para determinado grupo.

é possivel  fazer isso , basta ir ás propriedades do campo e a primeira opção e dizer quem tem acesso ao campo

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Filipe Alves
12 horas atrás, pc.cesar disse:

é possivel  fazer isso , basta ir ás propriedades do campo e a primeira opção e dizer quem tem acesso ao campo

Olá

E na versão Corporate existe alguma forma de se definir que os utilizadores do X não tem acessos aos artigos de stock/dossiers internos com a marca Y ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NelsonPaiva
Em 16/03/2018 às 22:01, pc.cesar disse:

é possivel  fazer isso , basta ir ás propriedades do campo e a primeira opção e dizer quem tem acesso ao campo

Mas isso nas personalizações de ecrã? Ou é possível fazer numa regra?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
camexavi

Boa tarde ;)

Venho mais uma vez solicitar a vossa ajuda.

Existe um campo no PHC na tabela de faturas, FT3.BARCODE, em que pretendo gravar um código com o seguinte formato:

(ano atual)+ft.ndoc+ft.fno

Estou a tentar criar na opção Valores por defeito no campo FT3.BARCODE mas sem sucesso

Será que podem ajudar?

Obrigado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
camexavi
2 minutos atrás, pc.cesar disse:

Vou verificar,

Mas esse campo já deveria fazer isso a partir da V21 salvo erro.

Segundo informação que obtive, foi descontinuado na V22, isto é o campo existe mas não grava nada

Obrigado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
soares chirrute

bom dia!

mais uma vez espero contar com V/ajuda, 

alguem pode me ajudar com o comando xbase para gravar imagens na base de dados?

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NelsonPaiva
10 horas atrás, soares chirrute disse:

bom dia!

mais uma vez espero contar com V/ajuda, 

alguem pode me ajudar com o comando xbase para gravar imagens na base de dados?

 

Um comando para gravar imagens como assim?

O que pretendes fazer?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pc.cesar

onde e o que queres gravar,,, atenção que as imagens/ficheiros gravados na BD vão fazer a BD crescer

 

CREATE TABLE TuTabla ( Id int, Name varchar(50) not null, imagen varbinary(max) not null ) INSERT INTO TuTabla (Id, Name, imagen) SELECT 1, 'Norman', BulkColumn FROM Openrowset( Bulk 'C:\ImagenFichero.bmp', Single_Blob) as Imagen

atenção que para usar o fox tambem tem de ser validado o tamanho e tipo de ficheiro para poder extrair o mesmo

 

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pc.cesar
Em 17/03/2018 às 10:03, Filipe Alves disse:

Olá

E na versão Corporate existe alguma forma de se definir que os utilizadores do X não tem acessos aos artigos de stock/dossiers internos com a marca Y ?

Não.. só com filtros em advanced

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
camexavi
Em 20/03/2018 às 18:31, pc.cesar disse:

Vou verificar,

Mas esse campo já deveria fazer isso a partir da V21 salvo erro.

Desculpa a insistência, consegues ajudar me?

Obrigado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
soares chirrute
13 hours ago, pc.cesar said:

onde e o que queres gravar,,, atenção que as imagens/ficheiros gravados na BD vão fazer a BD crescer

 

CREATE TABLE TuTabla ( Id int, Name varchar(50) not null, imagen varbinary(max) not null ) INSERT INTO TuTabla (Id, Name, imagen) SELECT 1, 'Norman', BulkColumn FROM Openrowset( Bulk 'C:\ImagenFichero.bmp', Single_Blob) as Imagen

atenção que para usar o fox tambem tem de ser validado o tamanho e tipo de ficheiro para poder extrair o mesmo

 

 

 

No ecrã gestão de stocks, na janela informação adicionei mais um campo para a segunda imagem, criei um botão para adicionar e ver a imagem. Pretendo criar outro botão pra gravar

19 hours ago, NelsonPaiva said:

Um comando para gravar imagens como assim?

O que pretendes fazer?

É o seguinte na ficha de artigos, adicionei mais um campo para a segunda imagem. Agora pretendo criar um botão que me permita gravar essa imagem

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
femo
22 horas atrás, soares chirrute disse:

 

No ecrã gestão de stocks, na janela informação adicionei mais um campo para a segunda imagem, criei um botão para adicionar e ver a imagem. Pretendo criar outro botão pra gravar

É o seguinte na ficha de artigos, adicionei mais um campo para a segunda imagem. Agora pretendo criar um botão que me permita gravar essa imagem

Se o objectivo for apenas a visualização das imagens dos artigos, a minha solução para o problema passaria por colocar as imagens numa pasta partilhada gravadas com o nome do ficheiro [ref].jpg, [ref]_01.jpg  e criar um botão que chamasse esse(s) ficheiro(s). Claro que o caminho de partilha tinha que ser igual em todos os PC's, por isso atribuiria uma letra de unidade (T: por exemplo). Assim não pesariam na BD e toda a gente teria acesso. (É o sistema que utilizo na minha empresa)


Fernando Morais

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
soares chirrute

boas tardes,

Estou a configurar uma loja web, peço a V/ajuda para criar um menu de navegação no cabeçalho contendo  por exemplo:  Bebe, acessórios…

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PHonorato

Boa tarde.

Como é que consigo chamar um programa externo com um argumento?

Se fizer um botão e tentar chamar o programa externo com argumento dá erro (exemplo: programa.exe teste1)(mas se fizer só programa.exe funciona)

O programa externo aceita argumentos depois do nome do programa, dá através de outros programas e através de linha de comandos.

Possivelmente por programação devo conseguir, só preciso mesmo de executar o programa externo com um argumento.

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoseAC

Olá a todos,

estou a tentar construir um IDU com este valores

Tenho um campo numérico   bo.u_valorini  que quero multiplicar 1.23  que é o valor do iva

exemplo se o campo tiver 150€ quando multiplico * 1.23 , devia dar 184.50 mas da-me 185 ( assim funciona mas eu queria eu ele fosse buscar o valor do iva a tabela BI.IVA )

quando tento correr este código não aparece nada  bo.u_valorini * BI.IVA   da-me erro

Alguma ajuda agradeço,

Obrigado

José

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.