Jump to content
Fivewin Brasil

fluna

Membros
  • Posts

    402
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by fluna

  1. Tabela de promoção:

    Cod_pro, c , 6  , 0
    Preço, n 10 , 2
    quant_max, n, 10, 0
    validade, d , 8, 0

    ->crie uma rotina para cadastrar produtos em promoção.


    1 -ao vender, procure o codigo nessa tabela,

    2 - coloque todos os registros cujo cod_pro corresponda num array

    3-analise o array para questão de datas (validade) válidas;

    4-após digitar a quantidade, verifique se ela é <= quant_max; se for, pegue o preço no array (em vez de usar o do cadastro de produtos)

    ...por aí.

     

     

     

     

     

  2. Acho que todos aqui sabem o que acontece se alguém clica com botão direito em uma pasta (pelo menos no windows 7) e seleciona a opção "Restaurar versões anteriores".  Aí o TI vê que o sistema não está funfando (provavelmente indices comrrompidos ou instalação do mariadb com probelmas) vai .lá, escolhe uma das versões que lhe da na telha e manda ver. resultado: encrenca pro programador.

  3. 
    Como ficou:
    
    
    **************************
    Function Whatsapp( cPara )
    **************************
      Local oShell,wCodCli,lSair,lOk
      If  !IsInternet()
          MsgInfo("Necessário Uma Conexão com Internet !"+CRLF+"Operação cancelada")
          Return(.f.)
      Endif
      wCodCli:=alltrim(right(cpara,5))
      Select cli
      cli->(OrdSetFocus("codigo"))
      seek wcodcli
      lOk:=found()
      Select SRV
      if !lok
         ? "Erro! cliente não encontrado on cadastro!"
         return(.f.)
      endif
      cPara:=alltrim(CLI->FONE_MOVEL)
      cNome:=alltrim(CLI->NOME)
      CursorWait()
      nSegs:=val(GetPvProfString("WhatsApp","SecWaitPage","0",SysArq))
      cMens:=GetPvProfString("WhatsApp","MsgPrinting"    ," ",SysArq)
      cSair:=GetPvProfString("WhatsApp","FechaNavegador" ," ",SysArq)
      If empty(nSegs)
         nSegs:=10 // 10 segundos
         WritePProString( "WhatsApp","SecWaitPage","10",SysArq )
      Endif
      If empty(cMens)
         cMens:="Avisamos que O SEU APARELHO ja esta disponivel! Voce ja pode vir retira-lo."
         WritePProString( "WhatsApp","MsgPrinting",cMens,SysArq )
      Endif
      If empty(cSair)
         cSair:="S"
         WritePProString( "WhatsApp","FechaNavegador","S",SysArq )
      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 "+wNomeEmpresa+" tem um recado para voce!"
      oShell:= CreateObject( "WScript.Shell" )
      oShell:run("https://web.whatsapp.com/send?phone="+cPara)
      WaitSeconds(nSegs)
      oShell:sendkeys("*"+cCabc+"*")                            ; WaitSeconds( 3 )   ; oShell:SendKeys("~") ; WaitSeconds( 1 )
      oShell:sendkeys("_"+cMens+"_")                            ; WaitSeconds( 3 )   ; oShell:SendKeys("~") ; WaitSeconds( 1 )
      oShell:sendkeys("*Nosso contato: "+wFoneEmpresa+"*")      ; 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
    
    *****************************
    FUNCTION AjustaFone( xFone )
    *****************************
      Local i,cLetra,cFone:=""
      For i=1 to len(xFone)
          cLetra:=Substr(xFone,i,1)
          cFone+=iif(cLetra="0","0",iif( val(cletra)>0,cLetra,""))
      Next
      If Substr(cFone,1,2)#"55"
         cFone:="55"+cFone
      Endif
      cFone:=alltrim(cFone)
      If len( cFone ) # 13
         cFone:=" "
      endif
      Return( cFone )

     

  4. Me desculpe, adutheil; talvez eu não tenha me expressado corretamente. A janela a que me refiro é uma página web. O script abre uma nova página web, mesmo que a mesma já esteja aberta no navegador...  Ex: estou com a página do whatszap aberta, mas quando executo o sistema abre outra página do whats em vez de usar a que está aberta.  De qualquer maneira, obrigado pela ajuda.

  5. Tenho uma rotina em que abro uma página web para mandar recado para clientes no whatsapp; o problema é que ele abre várias janelas em vez de usar uma que já está aberta;

     

      if ..... // já existe janela aberta
           *
    
           *
        
      Else
         oShell:run("https://web.whatsapp.com/send?phone="+cPara) ; Sleep(nSecs)
      Endif
    

    Alguém poderia me ajudar a resolver isso?  Tipo, se a página já está aberta, usá-la em vez de abrir outra no navegador

    Obrigado.

  6. É para um sistema se laboratório, onde os exames são criados pelo próprio usuário em duas fases:   Uma: ele cria o texto exame já prontinho, com todo o texto que "der na telha", e define qual parte do texto será preechido, ainda na fase da configuração do exame, ele seta as referencias para cada ponto de digitação; Uma vez terminada a configuração, esse dado são guardasos em um .INI com o mesmo nome do formulário;  Depois, quando for digitar um exame, seleciona o formulário e preenche; na digitação, os sistema vai no ini e "pesquisa" as referencias para o get preenchido.  (temos cerca de 1300 exames, telas genéricas para eles não funcionam, então, transfir para o operador fazer a tela a seu gosto hehehehe. (eles adoraram a idéia)  Inicialmente pensei em usar o TextEdit (rtf), mas deparei-me com com várias dificuldades... (tipo desligar o insert antes de entrar no texto, fazer com que o cursor não "invada" a palavra ao lado... etc.  -Abraços a todos que ajudaram.

  7. ***** PERDÃO, ERRO NO CÓDIGO ANTERIOR ****

    código correto:

    #include "FiveWin.ch"
    //----------------------------------------------------------------------------//
    Function Main()
       local oDlg, oRich
       Define font ofnt name "Lucida Console" size 0,-12
       vTab:={" "}
       vGet:={}
       ctxt:=MemoRead( "Teste.txt" )
       For x=1 to mLcount(cTxt,95)
           cFrase:=MemoLine(cTxt,95,x)
           aadd(vtab,cFrase)
       Next

       DEFINE DIALOG oDlg from 1,1 to 40,100
       lin:=1
       For i=1 to Len( vtab )
           nLin:=lin*9.0
           @ nlin,10 say vtab[ i ] of odlg font oFnt  pixel
           cTxt:=vtab[ i ]
           For x=1 to len( cTxt )
               If substr(ctxt,x,1)="["
                  wtxt:=substr(ctxt,x)
                  nPos:=at("]",wtxt)
                  nTam:=iif(nPos>0,nPos-2,0)
                  cVar:=iif(nTam>0,substr(ctxt,x+1,nTam)," ")
                  If nTam > 0
                     aadd(vGet,{ nlin-2 , (x*3.5)+8.4 , cVar } )
                   Endif
               Endif
           Next
           lin+=.9
       Next
       aadd(vGet,{ NIL , NIL , NIL} )
       For i=1 to Len( vGet )-1
           @ vGet[i,1],vGet[i,2] get oGet Var vGet[i,3] of odlg  pixel noborder // size len(vGet[i,3])*4,8
       Next
       ACTIVATE DIALOG oDlg CENTERED
       Return NIL

     

  8. #include "FiveWin.ch"
    //----------------------------------------------------------------------------//
    Function Main()
       local oDlg, oRich
       Define font ofnt name "Lucida Console" size 0,-12
       vTab:={" "}
       vGet:={}
       ctxt:=MemoRead( "Teste.txt" )
       For x=1 to mLcount(cTxt,95)
           cFrase:=MemoLine(cTxt,95,x)
           aadd(vtab,cFrase)
       Next

       DEFINE DIALOG oDlg from 1,1 to 40,100
       lin:=1
       For i=1 to Len( vtab )
           nLin:=lin*9.0
           @ nlin,10 say vtab of odlg font oFnt  pixel
           cTxt:=vtab
           For x=1 to len( cTxt )
               If substr(ctxt,x,1)="["
                  wtxt:=substr(ctxt,x)
                  nPos:=at("]",wtxt)
                  nTam:=iif(nPos>0,nPos-2,0)
                  cVar:=iif(nTam>0,substr(ctxt,x+1,nTam)," ")
                  If nTam > 0
                     aadd(vGet,{ nlin-2 , (x*3.5)+8.4 , cVar } )
                   Endif
               Endif
           Next
           lin+=.9
       Next
       aadd(vGet,{ NIL , NIL , NIL} )
       For i=1 to Len( vGet )-1
           @ vGet[i,1],vGet[i,2] get oGet Var vGet[i,3] of odlg  pixel noborder // size len(vGet[i,3])*4,8
       Next
       ACTIVATE DIALOG oDlg CENTERED
       Return NIL

     

     

    Exemplo do texto:

     

     

      Este é um texto onde as posições do get dentro dele

      são flutuantes, dependendo de onde estiver um

      colchete [                  ] estilo o bom e velho

      cliper.


       Teste1 [             ]

       Teste2 [    ] e [     ] ou [                      ]


       teste3 [                                          ]

       teste4 [ ],[ ],[ ],[ ],[ ],[ ],[ ]
     

  9. Vc está assinando o .exe dentro dos .RC?

    (colocar no tipo do .RC)

    1 VERSIONINFO
    FILEVERSION 1, 0, 0, 0
    PRODUCTVERSION 1, 0, 0, 0
    FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
    FILEOS VOS__WINDOWS32
    FILETYPE VFT_APP
    {
    BLOCK "StringFileInfo"
    {
    BLOCK "041604B0"
    {
    VALUE "CompanyName", "Nome da softhouse\000"
    VALUE "FileDescription", "Nome-Do-Exe - Titulo-Da-janela-Principal\000"
    VALUE "FileVersion", "1.0\000"
    VALUE "LegalCopyright", "2015,2016 - Nome da softhouse\000"
    VALUE "OriginalFilename", "NOME-DO-EXE.EXE\000"
    VALUE "ProductName", "Nome-do-exe\000"
    VALUE "ProductVersion", "2.0\000"
    }

    }

    BLOCK "VarFileInfo"
    {
    VALUE "Translation", 1046, 1200
    }

    }

  10. Já tive esse problema... a solução seria (se for crachá), colocar no codigo de barras algum caracter que não exista no teclado, no inicio ou no fim do codgo; mas esse caracter deve estar presente apenas no codigo de barra; não deve, obviamente, aparecer na representação numerica (se houver).; aí, o resto é fácil: se o caracter estiver presente, veio do codigo de barras....

  11. Alguém sabe como faço para criar um aplicativo que jogue na bios a sequencia FN+F11? explico: a tecla F11 ta bixada, dai a dificuldade de entrar no wifi; tentei pegar o codigo da tecla fazendo uma "escuta" mas não deu nada! criei um xbrowse e monitorei o nKey para ver se aparecia. Se teclar F11, aparece, mas se teclar FN+F11 não acontece nada...

    detalhe: uso teclado externo porque o do note tá todo bixado... dai a necessidade de criar um aplicativo para "ligar" a placa wifi, cuja sequencia é FN+F11

×
×
  • Create New...