Clipper On Line • Ver Tópico - Pesquisa em tópicos

Pesquisa em tópicos

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Pesquisa em tópicos

Mensagempor rubens » 18 Jan 2018 12:38

Boa tarde...

Vou desenvolver um sistema aqui para a equipe de louvor da minha igreja e a principio vou salvar o nome do hino/cântico, data , o responsável e a letra ou link para o arquivo. Até aí tudo bem... mas pensei em incrementar mais um pouco, colocando tópicos ou tags para pesquisa. Tipo aquele Cântico fala a respeito de perdão, amor ao próximo, Tom que foi tocado, etc... Igual as Tags de alguns fórums.
Como eu faria essa consulta?
Alguma idéia?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Pesquisa em tópicos

Mensagempor Itamar M. Lins Jr. » 18 Jan 2018 17:52

Ola!
Outras linguagens... Se bem que, não sei o por quê, o pessoal trata HTML como linguagem "de marcação". Aff!! Não é linguagem ?
Qual é a diferença neste caso, entre marcação e programação ? Marcando estamos programando também rsrsrsrs!

https://www.w3schools.com/howto/howto_css_tooltip.asp

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Pesquisa em tópicos

Mensagempor Claudio Soto » 18 Jan 2018 23:28

Itamar M. Lins Jr. escreveu:Ola!
Outras linguagens... Se bem que, não sei o por quê, o pessoal trata HTML como linguagem "de marcação". Aff!! Não é linguagem ?
Qual é a diferença neste caso, entre marcação e programação ? Marcando estamos programando também rsrsrsrs!

https://www.w3schools.com/howto/howto_css_tooltip.asp

Saudações,
Itamar M. Lins Jr.


Tal vez sirva de ayuda
https://es.m.wikipedia.org/wiki/Lenguaje_de_marcado

Un lenguaje de marcado o lenguaje de marcas es una forma de codificar un documento que, junto con el texto, incorpora etiquetas o marcas que contienen información adicional acerca de la estructura del texto o su presentación.

El lenguaje de marcas más extendido es el HTML (HyperText Markup Language, lenguaje de marcado de hipertexto), fundamento del World Wide Web (entramado de comunicación de alcance mundial).

Los lenguajes de marcado suelen confundirse con lenguajes de programación. Sin embargo, no son lo mismo, ya que el lenguaje de marcado no tiene funciones aritméticas o variables, como poseen los lenguajes de programación. Históricamente, el marcado se usaba y se usa en la industria editorial y de la comunicación, así como entre autores, editores e impresores.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Pesquisa em tópicos

Mensagempor Itamar M. Lins Jr. » 19 Jan 2018 08:38

Ola!
Isso, mesmo que diz dizer. Mas com o HTML 5 está até mais complexo programar do que algumas linguagens.
//Campo GET com PICTURE e VALIDAÇÃO!
<form>
   <label>Telefone: <input required name="tel" pattern="\([0-9]{2}\)[\s][0-9]{4}-[0-9]{4}"></label> (xx) xxxx-xxxx
   <input type=submit value=Enviar>
  </form>

No caso os navegadores são o OS ou RunTime... http://code.designinterativo.etc.br/formulario-responsivo/ Como pode ver não é um texto, ou documento marcado, mas sim uma tela igual a qualquer outra feita como se fosse qualquer linguagem, para armazenar dados.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Pesquisa em tópicos

Mensagempor rubens » 22 Jan 2018 11:43

Pensei em criar 5 campos na tabela, tag1, tag2, tag3. tag4 e tag5. Criar um indice com estes 5 campos e pesquisar usando wildseek ou até mesmo set filter to, já que não vai ter máquina em rede.

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Pesquisa em tópicos

Mensagempor dbdc5554 » 22 Jan 2018 14:16

se as tags estiverem dentro da bases
eu tentaria AT(

ao invez de criar indices e o usaurio ter que informar tags

ai bastava na hora de pesquizar ele informar os campos

ai com .and. e .or . vc mata

eu uso ; = and e : = or ai localizo os produtos que tenha as palavra podendo selecionar and e or

se precisar posso separar o codigo que uso

+- 12.000 resistros na base de produto por ex:

crio um dbf temporario varro o dbf gravando e depois exibo um browser do resultado

+_ 1 Segundo isso tudo
Paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Pesquisa em tópicos

Mensagempor rubens » 22 Jan 2018 16:26

Blz... Paiva... uai se quiser mandar... agradeço...
As vezes é uma lagartixa e a gente enxerga um dragão !!!

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Pesquisa em tópicos

Mensagempor dbdc5554 » 23 Jan 2018 08:32

case dado == [TNOME]

        tnome = maiusculo(tnome)  && fun‡Æo para Tirar Acentua‡Æo
        @ l,c say tnome

        xlen  = len(alltrim(var))

        select gmprod
        set order to 4
        seek pempresa+pfilial+var
        if  !found()

            xdelimitador = [ ]   &&    ; = e    : = ou
            xfilt1 := space(10)
            xfilt2 := space(10)
            xfilt3 := space(10)

            tem_valor_para_pesquiza = .f.
            npos := at("//",tnome)
            tnomev = 0.00
            if  npos > 0
                tnomev = alltrim(substr(tnome,npos+2,40))
                tnome = substr(tnome,1,npos-1)+space(40)
                nposv := at(".",tnomev)
                if  nposv > 0
                    tnomevi = val(substr(tnomev,1,nposv-1))
                    tnomevd = alltrim(substr(tnomev,nposv+1,2))
                    if  len(tnomevd) = 1
                        tnomev = tnomevi+(val(tnomevd) / 10)
                    else
                        tnomev = tnomevi+(val(tnomevd) / 100)
                    endif
                else
                    nposv := at(",",tnomev)
                    if  nposv > 0
                        tnomevi = val(substr(tnomev,1,nposv-1))
                        tnomevd = alltrim(substr(tnomev,nposv+1,2))
                        if  len(tnomevd) = 1
                            tnomev = tnomevi+(val(tnomevd) / 10)
                        else
                            tnomev = tnomevi+(val(tnomevd) / 100)
                        endif
                    else
                        tnomev = val(tnomev)
                    endif
                endif
            endif

            tnomev = round(tnomev,2)
            if  tnomev <> 0.00
                tem_valor_para_pesquiza = .t.
            endif

            npos := at(";",tnome)
            if  npos > 0
                xdelimitador = [;]
                xnome := alltrim(substr(tnome,1,npos-1))
                xresto := alltrim(substr(tnome,npos+1,40))
                npos := at(";",xresto)
                if  npos > 0
                    xfilt1  := alltrim(substr(xresto,1,npos-1))
                    xresto2 := alltrim(substr(xresto,npos+1,40))
                    npos := at(";",xresto2)
                    if  npos > 0
                        xfilt2 := alltrim(substr(xresto2,1,npos-1))
                        xfilt3 := alltrim(substr(xresto2,npos+1,40))
                    else
                        xfilt2 := alltrim(substr(xresto2,npos+1,40))
                    endif
                else
                    xfilt1 := alltrim(xresto)
                endif
            else
                npos := at(":",tnome)
                if  npos > 0
                    xdelimitador = [:]
                    xnome := alltrim(substr(tnome,1,npos-1))
                    xresto := alltrim(substr(tnome,npos+1,40))
                    npos := at(":",xresto)
                    if  npos > 0
                        xfilt1 := alltrim(substr(xresto,1,npos-1))
                        xresto2 := alltrim(substr(xresto,npos+1,40))
                        npos := at(":",xresto2)
                        if  npos > 0
                            xfilt2 := alltrim(substr(xresto2,1,npos-1))
                            xfilt3 := alltrim(substr(xresto2,npos+1,40))
                        else
                            xfilt2 := alltrim(substr(xresto2,npos+1,40))
                        endif
                    else
                        xfilt1 := alltrim(xresto)
                    endif
                else
                    xnome := alltrim(var)
                endif
            endif

            select gmprod
            set order to 4
            if  !empty(xnome)
                set softseek on
                seek pempresa+pfilial+xnome
                set softseek off
            else
                go top
            endif

            select xgmprod
            zap

            select gmprod
            do while .t.

               if  !empty(xnome)
                   if  substr(gmprod->nome,1,len(xnome)) <> xnome  .or. ;
                       eof()
                       exit
                   endif
               else
                  if  eof()
                      exit
                   endif
               endif

               * Ignora estoque zerado

               if  crloja->wcrpedf = [S]   && filtra Produtos Zerados
                   if  gmprod->qt_estoque = 0
                      *msginfo("filta zerado skip "+gmprod->nome)
                       skip
                       loop
                   endif
               endif

               if  gmgrup->tp = [N]  && NAo aparecer na Venda
                   skip
                   loop
               endif
               if  gmprod->negativo = [S]
                   skip
                   loop
               endif
               if  tprt2_29  =  [S]  &&    Bloq Prod Autom S/N:   Bloqueia Vender/Preco de Produto Automatico"
                   if  gmprod->grupo =  pgrupo_automatico
                       skip
                       loop
                   endif
               endif

               if  tem_valor_para_pesquiza = .t.
                   if  tnomev <> round(gmprod->pr_venda,2)
                       skip
                       loop
                   endif
               endif

               xgrava = .t.
               gmprod__nome  = gmprod->nome
               do case
                  case  temai_03  =  [S]    && pag 23 Concatena Descricao Na Pesquiza do Produto PAg 23
                        do case
                           case  tprt2_24 =   [2]   && pag 18 Usa Aplicacao no gmprod
                                 gmprod__nome  = gmprod__nome + gmprod->descricao + gmprod->aplicacao
                           case  tprt2_24 =   [S]   && pag 18 Usa Aplicacao no gmprod
                                 gmprod__nome  = gmprod__nome + gmprod->descricao
                           case  tprt2_24 =   [A]   && pag 18 Usa Aplicacao no gmprod
                                 gmprod__nome  = gmprod__nome + gmprod->aplicacao
                        endcase

                  case  pcgc  =  [aaaaaaaaaaaaaaaaaa]  .or. ;
                        pcgc  =  [bbbbbbbbbbbbbbbbbb]
                        gmprod__nome  = gmprod__nome + gmprod->aplicacao

               endcase

               if  xdelimitador = [;]   && AND
                   if  at(xfilt1,gmprod__nome) = 0
                       xgrava = .f.
                   else
                       if  !empty(xfilt2)
                           if  at(xfilt2,gmprod__nome) = 0
                               xgrava = .f.
                           else
                               if  !empty(xfilt3)
                                   if  at(xfilt3,gmprod__nome) = 0
                                       xgrava = .f.
                                   endif
                               endif
                           endif
                       endif
                   endif
               else
                   if  xdelimitador = [:]   && OR
                      *msgstop("antes "+gmprod__nome+[*]+xfilt1+[*]+xfilt2+[*]+xfilt3)
                       xgrava = .f.
                       if  at(xfilt1,gmprod__nome) > 0
                           xgrava = .t.
                       else
                           if  !empty(xfilt2)
                               if  at(xfilt2,gmprod__nome) > 0
                                   xgrava = .t.
                               else
                                   if  !empty(xfilt3)
                                       if  at(xfilt3,gmprod__nome) > 0
                                           xgrava = .t.
                                       endif
                                   endif
                               endif
                           endif
                       endif
                   else
                       xgrava = .t.
                   endif
               endif

              if  pcgc  =  [111111111111111170]
                  if  gmprod->grupo = [048]
                      if  pnivel < [2]
                          xgrava = .F.
                      endif
                  endif
              endif

               if  xgrava = .t.

                  if pdeposito  = [S]
                     tdeposito = gmprod->deposito
                     if  tdeposito  $[123]
                         tbalcao    = [N]
                     else
                         tbalcao    = [S]
                         tdeposito  = [ ]
                     endif
                   endif

                       xyz_pr_venda    =     gmprod->pr_venda
                       xyz_pr_vendax   =     gmprod->pr_venda
                       xyz_pr_ataca    =     gmprod->pr_ataca

                   select xgmprod
                   do proappend
                   replace  xgmprod->empresa     with  gmprod->empresa       ,;
                            xgmprod->filial      with  gmprod->filial        ,;
                            xgmprod->item        with  gmprod->item          ,;
                            xgmprod->grupo       with  gmprod->grupo         ,;
                            xgmprod->nome        with  gmprod->nome          ,;
                            xgmprod->unidade     with  gmprod->unidade       ,;
                            xgmprod->fornec      with  gmprod->fornec        ,;
                            xgmprod->est_minimo  with  gmprod->est_minimo   ,;
                            xgmprod->qt_estoque  with  gmprod->qt_estoque   ,;
                            xgmprod->estoque_n   with  gmprod->estoque_n    ,;
                            xgmprod->estoque_c   with  gmprod->estoque_c    ,;
                            xgmprod->estoquedel  with  gmprod->estoquedel   ,;
                            xgmprod->pr_custoo   with  gmprod->pr_custoo     ,;
                            xgmprod->pr_custo    with  gmprod->pr_custo      ,;
                            xgmprod->cfop        with  gmprod->cfop          ,;
                            xgmprod->cst         with  gmprod->cst           ,;
                            xgmprod->perc_icms   with  gmprod->perc_icms     ,;
                            xgmprod->descnf      with  gmprod->descnf        ,;
                            xgmprod->cst_ipi     with  gmprod->cst_ipi       ,;
                            xgmprod->pr_mediac   with  gmprod->pr_mediac     ,;
                            xgmprod->pr_venda    with  xyz_pr_venda          ,;
                            xgmprod->pr_vendax   with  xyz_pr_vendax         ,;
                            xgmprod->pr_ataca    with  xyz_pr_ataca          ,;
                            xgmprod->pr_promo    with  gmprod->pr_promo      ,;
                            xgmprod->percomi     with  gmprod->percomi       ,;
                            xgmprod->med01       with  gmprod->med01         ,;
                            xgmprod->med02       with  gmprod->med02         ,;
                            xgmprod->balcao      with  tbalcao               ,;
                            xgmprod->local       with  gmprod->local         ,;
                            xgmprod->deposito    with  tdeposito

                   do case
                      case  temai_03  =  [S]    && pag 23 Concatena Descricao Na Pesquiza do Produto PAg 23
                            do case
                               case  tprt2_24 =   [2]   && pag 18 Usa Aplicacao no gmprod
                                     replace  xgmprod->descricao   with  gmprod->descricao
                                     replace xgmprod->aplicacao   with  gmprod->aplicacao
                               case  tprt2_24 =   [S]   && pag 18 Usa Aplicacao no gmprod
                                     replace  xgmprod->descricao   with  gmprod->descricao
                               case  tprt2_24 =   [A]   && pag 18 Usa Aplicacao no gmprod
                                     replace xgmprod->aplicacao   with  gmprod->aplicacao
                            endcase

                      case  pcgc  =  [asasssaaaaaaaaaaaa]
                            replace xgmprod->aplicacao   with  gmprod->aplicacao
                   endcase

                   if  tinte_19  =  [S]  .or. ;  &&  Usa tabela colecao nos produtos
                       tinte_19  =  [M]          &&  Usa tabela colecao nos produtos
                       replace  xgmprod->colecao     with  gmprod->colecao
                   endif

               endif

               select gmprod
               skip
            enddo

            select xgmprod
            go top
            ncod = space(04)
            xregq = reccount()+7
            if  xregq > 24
                if  Wvw_GetScreenWidth() > 800
                    xregq = 30
                else
                    xregq = 24
                endif
            endif

            if  tinte_19  =  [S]  .or. ;  &&  Usa tabela colecao nos produtos  PAg 21
                tinte_19  =  [M]          &&  Usa tabela colecao nos produtos
                set relation to xgmprod->empresa + xgmprod->filial +;
                                xgmprod->grupo           into gmgrup ,;
                             to xgmprod->empresa +  xgmprod->filial +;
                                xgmprod->colecao                     into gmcole
            else
                set relation to xgmprod->empresa + xgmprod->filial +;
                                xgmprod->grupo           into gmgrup
            endif
            dbselec(01,01,xregq,79,[Itens],[XGMPRODGN],@ncod)
Nota de Moderação:
Toledo: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro