Ir para o conteúdo
Apolo

PHC - Programação em XBASE

Mensagens Recomendadas

pc.cesar    5
pc.cesar

Boas

O codigo correcto segue em baixo, verifique nao testei

___________
Erros 
1) No select faltava o stamp (bi.bistamp) da linha a fazer o update
2) No update :
            para utilizar o comando update pelo SQL, deveria  controlar se o ecra não esta em modo de edição ou introdução, se estiver a browlist nao deveria abrir
            se o ecra estiver em modo de edição ou introdução deveria ser corrigido  atravès do replace
_______
Possivel melhoria:
   Na BI existe o campo peso, que preenche o peso existente na ficha do produto, e este sim utilizado para actualizar, mas este campo nao fica visivel nas linhas
   ao utilizar a campo u_pesogr, este pode ficar disponivel nas linhas e editavel, e desta forma nao necessita da browlist, pode apresentar uma mensagem ao gravar a indicar que faltam pesos.

_______

select bi
u_sqlexec([SELECT bi.bistamp, bi.bostamp,  ref,design, qtt, peso, u_pesogr, u_pesogr as u_pesogr2 FROM bi where bi.bostamp=']+alltrim(bi.bostamp)+['],[PESOS])


Declare list_tit(4),list_cam(4),list_pic(4),list_tam(4),list_tag(4),list_ronly(4)
list_tit(1) = 'Ref'
list_tit(2) = 'Desginação'
list_tit(3) = 'Qtt'
list_tit(4) = 'Peso'

List_cam(1) = 'PESOS.ref'
List_cam(2) = 'PESOS.design'
List_cam(3) = 'PESOS.qtt'
List_cam(4) = 'PESOS.u_pesogr'


list_pic(1) = ''
list_pic(2) = ''
list_pic(3) = ''
list_pic(4) = ''

list_tam(1) = 100
list_tam(2) = 300
list_tam(3) = 100
list_tam(4) = 100


list_ronly(1) = .t.
list_ronly(2) = .t.
list_ronly(3) = .t.
list_ronly(4) = .f.

m.escolheu=.f.
browlist('Correção de Pesos','PESOS','Browlist1',.t.,.F.,.F.,.F.,.F.,'',.t.)

IF m.escolheu=.t.
go top
select PESOS
scan
 x1 = [ update bi set peso=']+StrTran(astr(PESOS.u_pesogr, 10, 3), ',', '.')+[' where bi.bistamp=']+alltrim(pesos.bistamp)+[' ]
 u_sqlexec(x1)
endscan


endif

 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
camexavi    0
camexavi

Muito obrigado @pc.cesar já funciona.

Só ficou a faltar o refresh do dossier,  para ver os valores alterados, sem precisar de clicar no botão atualizar.

Será que podes indicar-me qual o comando e onde colocar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
camexavi    0
camexavi
50 minutos atrás, pc.cesar disse:

colocar no final da tecla


sbo.refresh()

 

já coloquei mas não funciona!!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
camexavi    0
camexavi

continua sem funcionar o refresh

O código que ficou a funcionar conforme o que pretendo está abaixo, será que tenho alguma coisa que impede o refresh??

Mais uma vez, muito obrigado pela ajuda!!

if sbo.adding=.t. or sbo.editing=.t.

mensagem('Para usar esta opção, o dossier não pode estar a ser editado ou criado novo...','directa')

else

select bi
u_sqlexec([SELECT bi.bistamp, bi.bostamp, ref, design, qtt, u_pesogr FROM bi where bi.bostamp=']+alltrim(bi.bostamp)+['],[PESOS])


Declare list_tit(4),list_cam(4),list_pic(4),list_tam(4),list_tag(4),list_ronly(4)
list_tit(1) = 'Ref'
list_tit(2) = 'Desginação'
list_tit(3) = 'Qtt'
list_tit(4) = 'Peso'

List_cam(1) = 'PESOS.ref'
List_cam(2) = 'PESOS.design'
List_cam(3) = 'PESOS.qtt'
List_cam(4) = 'PESOS.u_pesogr'


list_pic(1) = ''
list_pic(2) = ''
list_pic(3) = ''
list_pic(4) = ''

list_tam(1) = 100
list_tam(2) = 300
list_tam(3) = 100
list_tam(4) = 100


list_ronly(1) = .t.
list_ronly(2) = .t.
list_ronly(3) = .t.
list_ronly(4) = .f.

m.escolheu=.f.
 browlist('Correção de Pesos','PESOS','Browlist1',.t.,.F.,.F.,.F.,.F.,'',.t.)

IF m.escolheu=.t.
go top
select PESOS
scan
x1 = [update bi set u_pesogr=']+StrTran(astr(PESOS.u_pesogr, 10, 3), ',', '.')+[' where bi.bistamp=']+alltrim(pesos.bistamp)+[' ]
u_sqlexec(x1)
endscan
endif

endif

sbo.refresh

 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pc.cesar    5
pc.cesar

Vou testar

Retire o

if m.escolheu=.t.

Endif

Assim so actualiza a última linha alterada 

 

-------

Dentro do scan pode controlar se o valor foi alterado e se for efectua o update

Editado por pc.cesar
+

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
camexavi    0
camexavi
1 hora atrás, pc.cesar disse:

Vou testar

Retire o

if m.escolheu=.t.

Endif

Assim so actualiza a última linha alterada 

 

-------

Dentro do scan pode controlar se o valor foi alterado e se for efectua o update

Peço desculpa @pc.cesar mas acho que não entendi o que sugeriu.

Contudo já retirei

if m.escolheu=.t.

mas continua sem funcionar o refresh do dossier

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
camexavi    0
camexavi

Boa tarde.

No PHC a opção exportar nos mapas definidos permite criar ficheiro TXT Delimitado com TAB's (.TXT), mas os campos de texto ficam delimitados por aspas.

Será possível exportar o mesmo ficheiro mas sem aspas a delimitar os campos?

Mais uma vez obrigado!

 

Partilhar esta mensagem


Link 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