Ir para o conteúdo

Rankings


Conteúdo Popular

A mostrar o conteúdo com mais reputação desde 13-09-2018 em Mensagens

  1. 1 ponto
    A resposta à primeira questão deverá ser colocada à ADSE, eles saberão melhor do que ninguém o que têm disponível. A resposta à segunda questão tem a ver com a linguagem em que estás mais à vontade e em que ambiente a aplicação vai ser executada.
  2. 1 ponto
    valor por defeito SKIP -1 v_armazem = bi.armazem goto bottom replace bi.armazem with v_armazem return bi.armazem
  3. 1 ponto
    Não sei exactamente o que pretende, mas colocar uma lupa de pesquisa nesse campo, é o correcto nao precisa de codigo relativamente ao apresentada, é normal que nao funcione porque no inicio do codigo tem If bo.ndos<>39 and bo.ndos<>40 e se o ecra nao tem registos entao bo.ndos='', alias nesta altura o BO não existe, quando abre o PHC pela primeira ves "sem views" retire o if, para permitir executar em qualquer ecran e altere a query para, TEXT to msel textmerge noshow select bo.bostamp, bo.nmdos, bo.obranome as Referencia, st.design as designacao from bo(nolock) inner join st(nolock) on bo.obranome=st.ref where bo.obranome like '<<alltrim(vRef)>>%' and bo.ndos in (39, 40) order by bo.ndos, bo.obranome ENDTEXT desta forma com o navega vai para o registo... mas a partir de qualquer outro ecra...
  4. 1 ponto
    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
  5. 1 ponto
    colocar no final da tecla sbo.refresh()
  6. 1 ponto
    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
  7. 1 ponto
    local contador1, contador2 contador1=0 contador2=0 select bi scan if bi.u_aprovado = .t. contador1 = contador1 +1 endif if bi.u_aprovado = .f. contador2 = contador2 +1 endif endscan if contador1>=1 and Contador2=0 replace bo.trab5 with "Aprovado totalidade" else if contador1=0 and Contador2>=1 replace bo.trab5 with "Reprovado" else replace bo.trab5 with "Aprovado parcialmente "+astr(contador1) + " / "+ astr(contador2) endif endif
  8. 1 ponto
    Boas, Acho que percebi o conceito da ideia.... Da forma como fizeste em cada linha ele verifica se este tudo bem, ou seja de o dossier tiver 50 linhas existem 100 consultas ao SQL sem necessidade. A regra deverá ser as ultimas a ser executada ou seja coloca no campo ordem da regra 80 assim esta será das ultimas regras a correr. ----------------Forma 1---- com select á BD-------------------- If bo.ndos!=30 return .F. else Text to m.cSelbo noshow textmerge select (select count(bi.U_APROVADO) from bi where bi.ref<>'' and bi.U_APROVADO=1 and Bi.bostamp='<< (Alltrim(bo.bostamp)) >>') aprov , (select count(bi.U_APROVADO) from bi where bi.ref<>'' and bi.U_APROVADO=0 and Bi.bostamp='<< (Alltrim(bo.bostamp)) >>') Naprov , (select count(bi.U_APROVADO) from bi where bi.ref<>'' and Bi.bostamp='<< (Alltrim(bo.bostamp)) >>') total] EndText u_sqlexec(m.cSel,"AprovaBO") If (AprovaBO.aprov=AprovaBO.total) and AprovaBO.Naprov=0 Replace bo.aprovado With .T. Else Replace bo.aprovado With .F. Endif Endif ----------------Forma 2------ sem select á bd -- na teoria é mais rápido ---------------- select bo If bo.ndos=30 replace bo.aprovado=.t. Select bi Go Top Scan For !Empty(bi.ref) if bi.u_aprovado=.f. Replace bo.aprovado With .F. Endif Endscan Endif
×

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.