Jump to content
Fivewin Brasil

Ladinilson

Membros
  • Posts

    523
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by Ladinilson

  1. Fiz em uma época e funcionou muito bem mas desisti do projeto pois demandava muuuita coisa para trabalhar com DBF junto com SQL.
    Como era de automação e era para lojas de que tinham matriz e filiais, a internet falhava e ficava complicado atualizar estoque, cadastro de clientes e principalmente o contas a receber porque o cliente podia comprar em uma loja e pagar a parcela em outra liberando assim seu crédito mas hoje em dia existe a replicação e os gatilhos com SQL que resolvem tudo isso.
    Sugiro que vá nesta direção que terás o êxito pretendido.

    Abraços

  2. Bom dia senhores,

    Fiz uma rotina de auditoria para meus sistemas para gravar todas as ações dos usuários no programa (e isso já rendeu alguns dividendos aos donos de empresas rsrs) pois nela tens como comprovar e contradizer alguns funcionários que acham que não estão sendo monitorados.

    Durante minha vida já vi de tudo o que os funcionários são capazes de fazer em um empresa como o responsável pelas entregas e notas para embarque para o dia seguinte que trocava as datas para o caixa então o patrão não via o dinheiro cair e seu estoque só diminuia. Entendi que aquilo era uma GRANDE FALHA do meu sistema mas fica a lição de que os caras se encontrarem uma brecha, vão fazer, coisa de brasileiro né?

    E também uma outra maneira é a proteção dos seus DBFs com uma simples rotina que todos do forum conhecem....

    PROTEGE(.f.,<nomeDBF.DBF>) // .T. PROTEGE E .F. LIBERA
      
    FUNCTION PROTEGE(lProtec, cFile)
    LOCAL nHandle := 0, cBuffer := space(32)
    nHandle := FOPEN(cFile, FO_READWRITE + FO_SHARED)
    IF nHandle # -1
       IF FRead(nHandle, @cBuffer, 32) == 32
          IF lProtec    // Protege
             IF substr( cBuffer, 1, 1 ) # chr(26)
                cBuffer := chr(26) + substr( cBuffer, 1, 31)
             ENDIF
          ELSE                // Desprotege
             IF substr(cBuffer, 1, 1) == chr(26)
               cBuffer := substr( cBuffer, 2, 31 ) + Chr( 0 )
             ENDIF
          ENDIF
          FSEEK( nHandle, 0 )
          FWRITE( nHandle, cBuffer, 32 )
       ENDIF
       FCLOSE( nHandle )
    ENDIF
    RETURN( FError() )

    Entendemos agora meu caro mas acho que a solução de "catar" o que o meliante digita não seria a correta pois na mesma levada, estaria expondo TODOS da empresa e certamente o dono vai querer isso para outros fins, se é que tu me entendes.
    Abs
     

  3. 26 minutos atrás, kapiaba disse:

    Boa tarde, explique melhor. Passou a impressão que você está querendo "pegar" dados ou senhas de alguém; se sim, você deve buscar na NET(Se for descoberto, o processo é caro, pois é crime), por programas espiões. Programação comercial não é feito para esta finalidade. Se não entendi, minhas mais sinceras desculpas.

    Abs.

     

    Regards, saludos.

    Pensei a mesma coisa pois existem programas que fazem isso mas o antivirus detectam eles e como o João, fiquei em dúvida da finalidade disso e de antemão te peço desculpas pelo nossos questionamentos.

  4. 15 horas atrás, rochinha disse:

    Amiguinhos,

    Coloquei um post aqui e tentei colocar também no forum parceiro e obtive uma mensagem de segurança. Parece que ao enviar minha postagem foi deslogado várias vezes mostrando algo como:

     

    Estou desconfiando que o senhor também não é o Rochinha aqui neste forum kkkk
    Brincadeira meu nobre mas também não vi problemas lá.

  5. Bom dia meus caros,
    alguém ja desenvolveu algum aplicativo de força de vendas claro em outra linguagem?
    tenho muitos lugares que podera fazer esta pergunta mas preferi aqui dar este apoio ao senhores que acredito também que o suporte será melhor devido a ligar as vendas como meu programa de automação comercial

    Podem me chamara pelo whatsapp
    91 98054-9339

     

    Obrigado

  6. 11 minutos atrás, emotta disse:

    Quando eu comercializava a solução em desktop, minha solução para proteger contra pirataria foi gerar uma KEY para o cliente com base na razão social do cadastro de empresa e a data de validade da key.

    Então o cara até conseguia copiar o sistema porem todos os relatórios sairiam com a razão social liberada e se ele alterasse a razão social, a key se tornaria inválida e ele teria que pedir a nova key ou usar o sistema com a razão social de outro.

    Se quiser adotar esse modelo me avisa que preparo um exemplo simples e vc mesmo poderá alterar o algoritmo de geração da KEY a seu gosto.

    Boa Mota mas como tenho vários sistemas, alguns não se usa dados de empresas em muitos porções do programa.
    Tenho a rotina também a autorização pela internet através de uma conexão SQL mas essa então é ainda mais fácial para quem pirateia.
    Li um artigo que em Delphi que tem esta função e também usando comandos do Windows é possível mas em Clipper/Harbour/xHarbour, nada concreto.

  7. 5 minutos atrás, vailtom disse:

    Olá,

    O número serial do HD pode ser trocado a qqer momento, existem softwares que permitem alterar isto e nem precisa formatar nada.

    Sei disso, mas segundo alguns sites e até mesmo aqui, o serial de fábrica não muda ou esta informação esta incorreta Vailton?

  8. Ouvi sobre projeto descontinuado do XHarbour e já tenho material para a migração para o Harbour mas quais as vantagens que notaram em performance e recursos e sua continualidade no sentido de que apenas seria nesse horizonte que continuaríamos a usar esta ferramenta?

    Abraços

  9. Bom dia pessoal

    Sei que o assunto já foi discutido no tópico...

    Mas a rotina com a DLL não funcionou e a minha preocupação vem de um que nem conhecimento muito em informática e tampouco de um programador, me levantar esta preocupação quanto a segurança de nossos sistemas pois todos sabem que existem vários programas para burlar isso.
    Alguém teve realmente a preocupação com isso pois SOMENTE COM O SERIAL DE FÁBRICA nos daria essa segurança porque o nSerialHD() muda este serial ao HD ser formatado e me parece que os programas podem quebrar esta segurança feita por ele.

    Obrigado

     

  10. 1 hora atrás, gunafe disse:

    Bom dia,

    Verifique na pasta onde voce colocou o exe pra testar a lib se existe o arquivo : PixQRCode.bmp

    Outra coisa, voce precisa passar os dados, ou seja, chave, nome, cidade e valor que o qrcode vai ser mostrado na dialog gerada e pode ser lido pelo aplicativo do banco;

    existe tambem a possibilidade de enviar via zap/email o codigo usado pra gerar o qrcode, onde o pagador pode copiar e colar no aplicativo do banco pra pagar o pix.

    Peço desculpas pela mensagem que aparece antes, era somente um teste de posicionamento que precisei mostrar na tela e esqueci de tirar, segue novo arquivo anexo já corrigido.

    A lib pode ser usada livremente para os testes necessarios por 20 dias, a partir dai, caso seja do interesse, posso liberar o uso sem restrição por uma pequena taxa.

    CODEPIX.lib 11 kB · 0 downloads

    Pensei que era uma contribuição!!!
    Mas tudo bem amigo, temos que valorizar nossos esforços e trabalho.
    Abraços 

  11. 1 hora atrás, Theotokos disse:

    ALGUEM TESTOU? FIZ O TESTE E NÃO GEROU O ARQUIVO COM QR-CODE, ALEM DE CHAMAR UMA MSG COM 3 DATAS E DEPOIS MOSTRA UMA DIALOG COM OS DADOS, POREM NÃO GEROU O ARQUIVO...

    TALVEZ SERIA MELHOR GERAR DIRETO O ARQUIVO E TMB TER A OPÇAO DE ESCOLHER O NOME E A PASTA DO ARQUIVO

     

     

    Realmente aparece uma dialog com 3 datas como se fosse nosso famoso "debug" e depois uma dialog sem o qrcode.
    Amigo Gunafe acho que só criando a figura do QRCode seria suficiente e a dialog de apresentação dele, ficava por nossa conta mas claro amigo não querendo abusar de sua bondade.
     

  12. 1 hora atrás, gunafe disse:

    Boa Noite,

    É gerado um bitmap do qrcode com os dados do pix a receber, que o pagador pode ler com o aplicativo do banco. Este qrcode é gravado no diretorio onde está seu exe, mas a cada novo pagamento, ele é superposto.  Basta compilar a lib junto com o exemplo que vou postar abaixo que voce vê como funciona:

    
    
    #include "FiveWin.ch"
    //------------------------------------------------
    Function Main()
    
       local t_CHAVE  := '+55DDDNUMERODOTELEFONE',;
             t_NOME   := 'NOMEDOBENEFICIARIO',;
             t_CIDADE := 'NOMEDACIDADE',;  // Ex.: RIO DE JANEIRO
             t_VALOR  := 10.00
    
    
       Pag_Pix( t_CHAVE, t_NOME, t_CIDADE, t_VALOR )
    
    Return Nil

     

    Excelente!!

    Obrigado pela contribuição!

  13. 5 horas atrás, gunafe disse:

    Bom dia,

    Pequena lib para gerar qrcode pix.

    modo de usar :  compilar a lib junto com seu sistema, xharbour + bcc7

    fazer a seguinte chamada : Pag_Pix( t_CHAVE, t_NOME, t_CIDADE, t_VALOR )

    onde:

            t_CHAVE  := '+55DDDNUMERODOTELEFONE' OU 'CNPJ/CPF' OU 'EMAIL' OU 'CHAVE ALEATORIA'
             t_NOME   := 'NOME DO RECEBEDOR'
             t_CIDADE := 'CIDADEDORECEBEDOR'
             t_VALOR  := VALOR DO PIX( EX.: 10.00 )

     

    CODEPIX.rar 178 kB · 11 downloads

    Amigo ele gera um bitmap ou figura que armazena no hd?
    Qual o retorno da função?
     

  14. 11 minutos atrás, kapiaba disse:

    Mais ou menos isso, ponha todos os nomes de impressoras da pasta de impressora que geram PDF e bloqueie:
     

     

    
        REDEFINE BUTTON oPdfCreator  ID 301 OF oDlg                              ;
                 ACTION( ESCOLHER_PDFCREATOR( cPreview, oLbx, cPrint, 2 ) )
    	
    FUNCTION ESCOLHER_PDFCREATOR( cPreview, oLbx, cPrint, cFlag )
    	    LOCAL oPrn
    	    PRINTER oPrn FROM USER // open oPrint object with the printer
    	    IF EMPTY( oPrn:hDC )
    	       MsgStop( "Atenção Usuário:                 " +CRLF+ ;
                    "Você Não Escolheu Uma Impressora " +CRLF+ ;
                    "Virtual na Pasta de Impressoras. " +CRLF+ ;
                    "Impressora Não Esta Pronta!!     " +CRLF+ ;
                    "Deve Estar Conectada/Instalada.  " +CRLF+ ;
                    "Você Só Pode Usar a Impressora   " +CRLF+ ;
                    "Virtual(PDF) Para Gerar Arquivo  " +CRLF+ ;
                    "no Formato:   *.PDF              " +CRLF+ ;
                    "ADOBE READER(PDF)                ",       ;
                    "Impressora Virtual Não Escolhida " )
    	       oPrn:End()
    	       RETURN NIL
    	    ENDIF
    	    cPrint := oPrn:GETMODEL()
        oPrn:End()
    	    //-> Se o Nome da Impressora For uma destas impressoras virtual faça o bloqueio, liste todas as impressoras de PDFs da pasta de impressoras.
        IF cPrint == [PDFCreator]          .OR. ;
           cPrint == [BroadGun pdfMachine] .OR. ;
           cPrint == [pdfFactory]          .OR. ;
           cPrint == [pdfFactory Pro]      .OR. ;
           cPrint == [Bullzip PDF Printer] .OR. ;
           cPrint == [CutePDF Writer]      .OR. ;
           cPrint == [Expert PDF Pro]      .OR. ;
           cPrint == [doPDF v7]
    	       ? "Desculpe Mano, Proibido gerar PDFs Pelo Dono da Empresa"
    	       RETURN( .F. )
    	    ENDIF
    	RETURN( .T. )
    

     

    Regards, saludos.

    achei bacana o "Desculpe mano!" kkkkkk
    Valeu Kapi!

  15. 40 minutos atrás, kapiaba disse:

    Buenos dias. Desligue em: PRV2PDF.PRG ou na RPREVIEW.PRG. Abs.

     

    Regards, saludos.

    Fiz já isso meu caro mas mesmo assim podes direcionar para uma impressora tipo MICROSOFT PRINT TO PDF,  PDF24 ou Wondershare PDFelement.

    Lá no botão de impressão tem a lista das impressoras ou a impressora DEFAULT pode ser uma dessas.
    O cliente não quer que relatórios da empresa possam serem copiados para pen drives e hoje em dia tem muitos programas que editam o PDFs.

    Esperamos muito para podermos imprimir em PDF agora quero o contrário kkkk

  16. Bom dia meus caros,

    Existe uma maneira de impedir que o cliente possa criar um arquivo PDF a partir da impressão na RPreview?
    Pensei e "setar" a impresora pegando o nome e ser for diferente de configurada no sistema, ele trava a operação tipo:

       ImpAnt := PrnGetName()
       IF ImpAnt != "EPSON L3150"
          IF NSGYESNO("Impressora não ativa, setar a mesma?!","Impressão")
             SetDefaultPrinter( "EPSON L3150" )    
          ENDIF   
       ENDIF

    Sendo assim força a imprimir somente para a impressora específica.

    Abs

  17. 14 minutos atrás, edutraini disse:

    Bom dia Ladinilson obrigado pela dica achei interessante o unico problema é que o cliente quer receber isso no celular 

    Entao preciso que rotina enviei via whats ou algum aplicativo no celular que fiqeui lendo esse arquivo na nuvens e mostrasse a venda

     

    Entendi, tem um tópico recente aqui sobre  whatsapp veja se alguém ja desenvolveu algo.

    Abraços

  18. 19 minutos atrás, edutraini disse:

    Bom dia, Pessoal 

    Agora que miguei meu sistema para sql meu cliente esta pedindo para que ele receba no celular aviso de vendas 

    Alguem tem alguma sugestão de qual aplicativo usar pode ser via whats ou derrepente um aplicativo no celular 

    Agradeço

     

    Já que usas sql, faria um banco de dados em nuvens e ao fazer uma venda, enviaria os dados da venda para esse arquivo e na central, uma rotina que a cada 1 minuto ou a gosto, ficasse verificando se tem algum pedido nesse arquivo em nuvem e se caso tivesse, baixava ele para o servidor.
    Vejo como uma solução simples e eficiente, pois na central separam os produtos, emitem a nf e já fazem a entrega.

    Sei que precisas apenas do aviso mas serviria da mesma lógica para este caso.

    Abs

  19. 12 minutos atrás, SISCO disse:

    Não sei se alguém teve esse tipo de problema,  quando estou em uma tela feita em pelles e tento copiar um descrição ao colar em outra tela pelles vai só a metade da descrição.

    Ex.: ABOTOADURA COM PRENDEDOR DE GRAVATA   ==> copiar 

     colar ==> ABOTOADURA COM 

    Já verifiquei o tamanho do campo recebido está do mesmo tamanho.

    Se alguém tiver a solução, ficarei grato.

    Veja se os Fonts estão iguais nas duas telas.

×
×
  • Create New...