Jump to content
Fivewin Brasil

Theotokos

Membros
  • Posts

    1,796
  • Joined

  • Last visited

  • Days Won

    31

Posts posted by Theotokos

  1. 5 horas atrás, Rogerio Figueira disse:

    Bom dia Edu.

    Eu não sei se existe vantagem em usar o SQLRDD. Eu fiz minha migração usando o tDolphin, estou contente com a solução mas agora existe uma opção melhor que é a solução nativa do FiveWin nas últimas versões.

    No caso dos pedidos: pode continuar usando dbf local e depois salvar a partir dele no SqL, mas pode ser diferente:
    Eu faço assim: quando salva o pedido, já cria o registro no SQL e depois vai inserindo os itens do pedido direto no sql a cada inclusão de item.
    Uso matrizes para guardar os dados de cada item. Quando o usuário clica Salvar o item, o sistema monta o comando SQL a partir dos valores da matriz.
    No caso, existe uma tabela para os dados gerais do pedido e uma tabela com todos os itens de todos os pedidos.
    Exemplo parcial:

            cQry := 'INSERT INTO `itpedi` SET '
            cQry += 'codite = "'+ xi+'",'
            cQry += 'codped = "'+ matriz[1]+'",'
            cQry += 'codped_id = "'+ alltrim(str(matriz[45]))+'",'
            cQry += 'produt_id = "'+ alltrim(str(matriz[43]))+'",'
            cQry += 'fornec_id = "'+ alltrim(str(matriz[44]))+'",'        
            cQry += 'qtd_ped = "'+ alltrim(str(matriz[2]))+'",'
            cQry += 'qtd_ent = "'+ alltrim(str(matriz[18]))+'",'
            cQry += 'aentre = "'+ alltrim(str(matriz[19]))+'",'
            cQry += 'codpro = "'+ matriz[3]+'",'
            cQry += 'codfor = "'+ matriz[6]+'",'
            cQry += 'preco_unit = "'+ alltrim(str(matriz[4]))+'",'
            cQry += 'preco_tot = "'+ alltrim(str(matriz[8]))+'",'
            cQry += 'status = "'+ matriz[5]+'",'
            cQry += 'pdesc = "'+ alltrim(str(matriz[9]))+'"'

            sysrefresh()
            oQry2   := oServer:sqlQuery( cQry)
            sysrefresh()


    []´s

     

    boa tarde poderia explicar melhor sobre tDolphin, como usar o que instalar.... etc....

     

  2. Function VerRotaVisitadas(aDd)  // aDd = Nome, Endereco, Bairro, Cidade, Estado
    Local cHtml:="", oOle, x1:=0, nD1 := 1
    
         *oOle:= CreateObject("InternetExplorer.Application")
         *oOle:Visible    := .t.   // Apresenta o Browser
         *oOle:ToolBar    := .f.   // Desativa a barra de ferramentas
         *oOle:StatusBar  := .f.   // Desativa a barra de status
         *oOle:MenuBar    := .f.   // desativa a barra de menu
    
            cHtml+='<head>'+CRLF
            cHtml+='<title>Mapeamento dos Clientes</title>'+CRLF
            cHtml+='<style type="text/css">'+CRLF
            cHtml+='#mapa{width:1200px;'+CRLF
            cHtml+='height:1000px}'+CRLF
            cHtml+='</style>'+CRLF
            cHtml+='<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>'+CRLF
            cHtml+='<script type="text/javascript">'+CRLF
            cHtml+='var map = null;'+CRLF
            cHtml+='function carregar(){'+CRLF
            cHtml+='var latlng = new google.maps.LatLng(-3.787522,-38.518066);'+CRLF
            cHtml+='var myOptions = {'+CRLF
            cHtml+='zoom: 14,'+CRLF
            cHtml+='center: latlng,'+CRLF
            cHtml+='mapTypeId: google.maps.MapTypeId.ROADMAP};'+CRLF
            cHtml+='map = new google.maps.Map(document.getElementById("mapa"), myOptions);'+CRLF
            *
            For nD1 := 1 To Len(aDd)
               cNome_Google		 := aDd[nD1,1]
    			  cEndereco_Google := aDd[nD1,2]
    			  cBairro_Google	 := aDd[nD1,3]
               cCidade_Google	 := aDd[nD1,4]
    			  cEstado_Google	 := aDd[nD1,5]
    			  x1++
               fBus	:= "Carro_1.JPG"  
               cHtml	+= ' '+CRLF
               cHtml	+= 'var endereco'+Alltrim(Str(x1))+'="'+Alltrim(cEndereco_Google)+' - '+Alltrim(cBairro_Google)+' - '+Alltrim(cCidade_Google)+' - '+AllTrim(cEstado_Google)+'";'+CRLF
               cHtml	+= 'geocoder = new google.maps.Geocoder();'+CRLF
               cHtml	+= 'geocoder.geocode({"address":endereco'+Alltrim(str(x1))+'}, function(results, status){ if( status = google.maps.GeocoderStatus.OK){ latlng = results[0].geometry.location;'+CRLF
               cHtml	+= 'markerInicio'+Alltrim(Str(x1))+' = new google.maps.Marker({position: latlng,map: map, title:"'+Alltrim(cNome_Google)+'", icon: "'+fBus+'"});'+CRLF
               cHtml	+= [var infowindow = new google.maps.InfoWindow({ content: '<strong>]+Alltrim(cNome_google)+[</strong><br>]+Alltrim(cEndereco_Google)+[, ]+Alltrim(cBairro_Google)+[ ]+Alltrim(cCidade_Google)+[ ]+Alltrim(cEstado_Google)+[<BR>]+['});]+CRLF
               cHtml	+= 'google.maps.event.addListener(markerInicio'+Alltrim(Str(x1))+', "click", function(event) { infowindow.open(map,markerInicio'+Alltrim(Str(x1))+');});'+CRLF
               cHtml	+= 'map.setCenter(latlng); } });'+CRLF
               cHtml	+= ' '+CRLF
               *
            Next nD1
            *
            cHtml+='}'+CRLF
            cHtml+='</script>'+CRLF
            cHtml+='</head>'+CRLF
            cHtml+='<body onload="carregar()">'+CRLF
            cHtml+='<div id="mapa"></div>'+CRLF
            cHtml+='</body>'+CRLF
            cHtml+='</html>'+CRLF
    
             MemoWrit("visitarota.html",chtml)  // uRegPath = "c:\test"
    
     			ShellExecute(GetActiveWindow(),"open",'visitarota.html')
     
            *oOle:Navigate2("visitarota.htm")
    
            *hWnd:=oOle:hWnd
            *BringWindowToTop(hWnd)
    
    Return nil

    tenho esse em meus arquivos aqui... não me lembro quem postou no forum...  vê se ajuda...

    Ah! se tiver alguma melhoria ai, compartilha com gente... Vlw!!!!

    eu ainda não usei, mas vá que uma hora a gente precisa... rsrsrsrsrsrsrs

  3. Bom Dia!

    Preciso enviar uma msg em uma rede local, ou seja, de um micro para outro micro na rede... a situação é o seguinte... nos terminais de venda na loja, os vendedores nao tem acesso para liberar qdo o cliente tem algum bloqueio ou qdo tem um desconto maior... então precisa do gerente ou a pessoa autorizada colocar seu usuário e senha para liberar a venda... então o vendedor tem que ficar chamando... queria que qdo isso acontecer, o sistema envie uma msg na rede para o micro(s) configurado (onde estaria a pessoa autorizada a liberar) avisando que o terminal "X" precisa ser liberado...

    Alguem conhece uma forma de fazer isso? tentei usar o cmd "MSG *" do windows, mas sem sucesso, o cmd funciona no micro local mas os terminais não recebe a msg...

    obgdao!!!

  4.     If "DATA" $ Upper(cCampo)
           oGetPsq:oGet:Picture := "99/99/9999 à 99/99/9999"
           oGetPsq:cPicture     := "99/99/9999 à 99/99/9999" 
         Else
           oGetPsq:oGet:Picture := "@!X"
           oGetPsq:cPicture     := "@!X" 
       EndIf
       
       oGetPsq:VarPut( cProcura )
       oGetPsq:Refresh()

  5.  

    Valdir então não faça assim, crie uma tabela apenas com DOIS campos sendo:

    ID CARACTER  TAMANHO: 2

    CHECK CARACTER TAMANHO: 1

     

    Desta forma a tabela terá apenas dois campos porem pra cada identificador (ID) terá um registro. Deixe como chave principal da tabela o ID. Pra saber se está com CHECK basta fazer um SEEK nesta tabela pelo ID e se existir vc verifica se o campo CHECK está preenchido. Se estiver preenchido ele está com o CHECK e se nao existir ou estiver em branco está SEM CHECK.

    Não crie a tabela desta forma que está fazendo não, é muito mais complicado pra se manter assim. É minha dica.

     

     

    Assim não teria que ter mais um campo então,um ID para o operador (Codigo do Usuario)? assim poderia checar o acesso para cada usuário.

    ID_OP      Space(02)

    ID_CHK,  Numeric 4     0

    CHECK  Logical

     

     

  6.  

    Olá Beto.

    Obrigado, o Márcio (VRB) já me conseguiu, Valeu!

    Eu não sabia marcar como "RESOLVIDO" rsrsrsrsrsrs



    Um abraço,

    Alexandre Pereira

    olá!! que bom que conseguiu.... será que vc pode compartilhar... ronecoura@gmail.com

    obgdão!!!

  7.  

    - Bom dia, achei mais essa variavel perdida cTelefoneEmpresa tem que retirar ou carregar ela, execitei como ADM o zap estava setado em outro usuario, setou para o usuário que enviei ( ou enviaria ) a mensagem, porem não carregou a mensagem.

    Avançando....

    HASA

    as variaveis vc desconsidera,coloque a sua,pois são que adaptei para o meu sistema. onde pega o nome da empresa onde esta instalado osistema...

    cNomeEmpresa := nome da empresa.... assim vai

  8. Adaptei a rotina abaixo e funciona... só que este usa whatsapp no navegador... 

     

     

    Function RLIWhatsapp( cPara, cMens )
    **************************
      Local oShell,wCodCli,lSair,lOk
      
      DEFAULT cMens := "Vem nos Visitar... Estamos lhe esperando..."
      
      If  !IsInternet()
          MsgInfo("Necessário Uma Conexão com Internet !"+CRLF+"Operação cancelada")
          Return(.f.)
      Endif

      cPara:=cPara
      cNome:="RL Informatica"
      
      CursorWait()
      
      nSegs:=0
      cSair:='S'
      
      If empty(nSegs)
         nSegs:=15 // 10 segundos
      Endif

      cPara:=AjustaFone( cPara )

      If Empty( cPara )
         MsgInfo("Número do telefone de "+cNome+" inválido, verifique!")
         return(.f.)
      endif

      cHora:=Time()
      nHora:=val(substr(cHora,1,2)+substr(cHora,4,2))
      cHora:=iif(nHora>=0000 .and. nHora <=1200 ,"Bom Dia, " , ""   )
      cHora:=iif(nHora>=1201 .and. nHora <=1800 ,"Boa Tarde, ",cHora)
      cHora:=iif(nHora>=1801 .and. nHora <=2359 ,"Boa Noite, ",cHora)
      
      cCabc:= cHora+"A *"+AllTrim(cNomeEmpresa)+"* tem um recado para voce!"
      
      oShell:= CreateObject( "WScript.Shell" )
      oShell:run("https://web.whatsapp.com/send?phone="+cPara)
      
      WaitSeconds(nSegs)
      oShell:sendkeys("~")
      WaitSeconds( 3 )
      oShell:SendKeys(".......")
      WaitSeconds( 3 )
      
      oShell:sendkeys(" _"+AllTrim(cCabc)+"_ ")  ; WaitSeconds( 3 )   ; oShell:SendKeys("~") ; WaitSeconds( 1 )
      oShell:sendkeys(AllTrim(cMens))               ; WaitSeconds( 3 )   ; oShell:SendKeys("~") ; WaitSeconds( 1 )
      
      oShell:sendkeys("*Nosso contato: _"+cTelefoneEmpresa+"_*") ; WaitSeconds( 3 )   ; oShell:SendKeys("~") ; WaitSeconds( 3 )
      
      If cSair="S"
         oShell:SendKeys("%{F4}")  // ALT+F4 fecha o navegador, mas deixar aberto fica mais rápido....
      Endif
      
      CursorArrow()
      
    Return nil

  9. vlw, @Jmsilva

    talvez não tenha entendido, mas a questão é que o Usuário vai digital em um campo de pesquisa, ora o usuário digita José Antônio, ora vai digitar Jose Antonio, para fazer a pesquisa, e gostaria que o sistema retornasse a pesquisa entendendo que a mesma pessoa, independente da acentuação... Então penso que ao digitar com acentuação, o sistema teria que converter os caracteres sem a acentuação e fazer a pesquisa....

     

  10. Boa noite, e ótimo carnaval a todos......

    como posso verificar em uma pesquisa qdo o usuário digita palavras com acentuação ou sem acentuação, exemplo, uma pesquisa de cliente onde o usuário pode digita:

    José Antonio... , Jose Antônio... , Jose Antonio...

    sendo que muitas vezes se trata da mesma pessoa, ou ainda queremos mostrar todos os José Antônio, independente da acentuação...

    existe alguma função que permita comparar a string sem acentuação?

  11. Pode parecer besta, mas me surgiu essa questão....

    o que muda em relação ao funcionamento do sistema no cliente, com relação a velocidade, memória, algo assim... se criarmos a variaves da seguinte formas :

    * Variaveis de todos os botoes de um certo dialog

         aBtn_Dlg1[5]    ==> ou seja são cinco botoes cada um utilizando no fonte aBtn[1], aBtn[2], aBtn[x]

    ou

        aBtn_Dlg_1, aBtn_Dlg_2, aBtn_Dlg_3, aBtn_Dlg_4, aBtn_Dlg_4

  12.  

    Já pensou em usar o Mikrotik? 

    Se bem configurado parece que o sistema está sendo rodado localmente.

    oi, não conheço e nunca ouvi falar.... rsrsrsrs

    Pode por favor passar mas informação, onde baixar, é gratuito ou não, e a configuração como seria?

    obgdão!!!

     

  13. Valeu Pessoal, muito obgdo... Entendo que a solução viável seria transforma tudo para SQL, porem sem condição no momento, por isso pensei em uma solução mais rápido... Já que o cliente esta enchendo o saco... rsrsrsrsrsrs

    @marcioe contratando a VPN direto com provedor de internet melhora a velocidade (trafego) do arquivo DBF?

     

  14. Bom dia!!!

    Alguem já utilizou o hamachi para conexão entre dois locais (loja) em cidades diferentes? fiz um teste e funcionou, porem achei muito lento, queria saber se alguem conhece sabe se tem como melhorar a velocidade, se é configuração ou não da certo para utilizar em nossos sistema... 

    Pensei em utilizar o hamachi para conexão por utilizar em meus sistemas banco de dados DBF´s + CDX ainda... :(

    * existe algum perigo para os dados em usar com hamachi, tipo corromper dados, algo assim...

    VlW!!! Fkem com Deus!!!

  15. pode-se tmb criar um cadastro de promoções... onde vc entra com o codigo do produto e as condições desta promoção... preco, qtde limite, dt.valida promoção... etc....

    ai no modulo de venda vc verifica se este produto esta no cadastro de promoções e realiza a condição...

     

×
×
  • Create New...