Jump to content
Fivewin Brasil

augustogomes

Membros
  • Posts

    69
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by augustogomes

  1. Em 05/02/2024 at 12:00, emotta disse:

    Augusto eu tenho um software de gestão de ponto 100% na nuvem e utilizado por milhares de empresas

    veja nosso site www.apontafacil.com.br

    no próprio site tem um local para fazer contato mas se precisar me chame no meu email pessoal: emotta@gmail.com

    abraços

     

     

    EEmotta, obrigado pela resposta.

    Vou acessar seu site e voltarei a falar pelo seu email.

     

    Grato

  2. Bom dia pessoal, espero que esteja tudo bem com vocês.

    Alguém aqui do grupo trabalha com relógios de ponto e/ou software para o ponto? 

    Estou precisando para a minha empresa, se alguém trabalhar com isto entre em contato comigo.

     

    Grato

    Augusto

     

  3. Jorge, ele subsititui todos os dados da tabela porque o comando fica trucado, se não mudar o caracter ele entende assim

    UPDATE sup0040
     SET
      codfis = ' 878',
      desfis = 'LIXA D'

    desta forma é como se fosse um replace all, como o Rogério Figueira citou anteriormente.

    Mas estou mudando como a sugestão dele mesmo, trocar o caracter antes do comando.

  4. Boa tarde a todos.

    Voltei neste tópico porque descobrir o que esta acontecendo com o update

    Quando faço um update assim:

    UPDATE sup0040
     SET
      codfis = ' 878',
      desfis = 'LIXA D'AGUA',
      unifis = 'UN',
      clanbm = '01069000',
      WHERE sr_recno = '              1'

    a palavra lixa d'agua não consegue processar pois a aspa do texto interrompe o processo, causando erro no sql e faz com que o replace seja em toda a tabela.

    usando a função sr_startlog, vi que na sqlrdd ele salva o campo com 2 aspas simples, desta forma o sql reconhece como uma unica aspas no processo

    usando a rdd do sqlrdd e vendo no log, a linha de comando fica assim:

    UPDATE sup0040
     SET
      codfis = ' 878',
      desfis = 'LIXA D''AGUA',
      unifis = 'UN',
      clanbm = '01069000',
      WHERE sr_recno = '              1'

    Pergunto aos colegas que usam sql e até mesmo o sqlrdd a mais tempo que eu, como vocês fazem em caso como este, tem alguma opção no banco de dados que tem que ativar para tratar automaticamente a aspa simples, ou teria que tratar campo a campo, substituindo o ' por ''?

    estou usando o postgresql 9.5

     

     

  5.  

    Augusto,
    O que manda o gerenciador do banco de dados substituir o registro correto é o comando
    WHERE "sr_recno" = 1595
    Então verifique que nos casos de erro, o registro não está sendo corretamente identificado para o WHERE .
    Nesses casos, por padrão o gerenciador sql faz um replace all.

    []´s

     

    Obrigado pela dica, na rotina não teria como o registro não existir, mas vou testar e analisar sua sugestão.

  6. Boa tarde pessoal

    Estou com um problema com o update no postgresql, ocorreram poucas vezes este ano, mas causa um grande estrago.

    o cliente altera um cadastro e no momento de salvar o postgresql salva todos os registros da tabela com o mesmo dado

    eu estou usando o postgre 9.5 com sqlrdd, e costumo usar assim:

    clSql  := UPDATE "sup0007" SET ;
                CodEmp = ::avCarrega[1]:cCodEmp ,;
                NomEmp = ::avCarrega[1]:cNomEmp ,;
                FanEmp = ::avCarrega[1]:cFanEmp ,;
                EndEmp = ::avCarrega[1]:cEndEmp ,;
                RedEmp = ::avCarrega[1]:cRedEmp ,;
                NumCep = ::avCarrega[1]:cNumCep ,;
                Bairro = ::avCarrega[1]:cBairro ,;
                TelEmp = ::avCarrega[1]:cTelEmp ,;
                TelEm2 = ::avCarrega[1]:cTelEm2 ,;
                Ativar = clAtivar ,;
                UltUsu = oCarVar:cUser ,;
                UltMod = date()        ,;
                Operad = oCarVar:cUser ,;
                Updated= date()         ;
                WHERE sr_recno = ? 

                  alParam := {::avCarrega[1]:SR_RECNO}
            SR_BeginTransaction()
            
            Try
            
                oSql := SR_GetConnection()
                 
                apCode := SR_SQLParse( clSql, @nErr, @nPos )
                cResu := SR_SQLCodeGen( apCode, alParam, oSql:nSystemID )
                nErr := oSql:Exec( cResu )

    este é um exemplo usando a sqlrdd pra converter o codigo, mas tenho outro caso que uso o comando direto no oSql:Exec sem passar pelo sr_sqlcodegen e também deu o problema.

    este comando acima, gera o comando abaixo para o postgre

    UPDATE 
      "sup0007"
     SET
      "codemp" = E'3000286',
      "nomemp" = E'CONTE COMIGO',
      "fanemp" = E'CONTE',
      "endemp" = E'RUA BEABA,98',
      "redemp" = ' ',
      "numcep" = E'89837-000',
      "bairro" = E'CENTRO',
      "telemp" = E'3999999',
      "telem2" = E'89999427',
      "ativar" = E'FF',
      "ultusu" = E'AUGUSTO',
      "ultmod" = E'2019-10-01',
      "operad" = E'AUGUSTO',
      "updated" = E'2019-10-01' WHERE "sr_recno" = 1595

    Não vejo erro no comando, isto ocorre muitas vezes em todo meu sistema, mas este erro ocorreu poucas vezes.

    Alguém tem ideia do que pode ser? Algo na Tabela, no banco, etc.

  7.  

     

    Boa Tarde,

    Quais erros apresenta?

     

     

     

    Apresenta este erro, não acha estas funções

     

    mthread.c:
    Turbo Incremental Link 6.80 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.
    Error: Unresolved external '__endthreadex' referenced from X:\XHARBOUR_NOVO\LIB\VMMT.LIB|threadmt
    Error: Unresolved external '__beginthreadex' referenced from X:\XHARBOUR_NOVO\LIB\VMMT.LIB|threadmt
    Error: Unable to perform link
    * Linking errors *

  8.  

    Bom Dia,

      Verifique este material https://pt.stackoverflow.com/questions/95233/o-que-é-uma-thread-como-ela-funciona

     

    Irei pegar alguns exemplos do samples e postar. 

    Outro detalhe importante, thread do harbour é melhor que xharbour.

     

     

    Obrigado Gilmer, vi o material e entendi como funciona mas não estou conseguindo compilar com o xharbour, peguei uns exemplos que você postou em outro tópico 

    porém não consigo compilar, quais libs tenho que adicionar para compilar estes exemplos?

    Grato

    Augusto

     

  9. Bom dia.

    Eu atendo muitos clientes com inscrição de produtor rural, no estado de MG tem clientes com inscrição de produtor rural, (gerada pelo município), esta não é inscrição estadual, para a inscrição ter validade na NFE, ela tem que ser inscrição estatual (IE) mesmo que seja com CPF ou CNPJ,  acesse o site do sintegra e veja se a inscrição aparece como estadual.

    No meu sistema eu valido com a dll do sintegra DllInscE32.dll antes de enviar a nfe.

    Inscrição de produtor (antiga) eu informo apenas na observação, pois para a emissão de nfe ela é tratada como isento ou não contribuinte.

     

  10. Boa tarde pessoal.

    Resolvi NFE assim:

    Atualizei a flexdocs para a versao 4.05a mesmo e coloquei o vdesc = 0.00

    ficando a chamada da fatura assim na classe Gilmer

         oItem := TVoNfeCobr()
              
                oItem:nFat := cvNroNot (numero da nf)
                oItem:vOrig:= avDadosNfe[1]:total_vNF  // valor total
                oItem:vDesc:= "0.00"
                oItem:vLiq := avDadosNfe[1]:total_vNF // valor total

    no xml ficou assim

    <cobr>
    <fat>
    <nFat>00123</nFat>
    <vOrig>3000.00</vOrig>
    <vDesc>0.00</vDesc>
    <vLiq>3000.00</vLiq>
    </fat>
    <dup>
    <nDup>001</nDup>
    <dVenc>2018-09-18</dVenc>
    <vDup>3000.00</vDup>
    </dup>
    </cobr>
    <pag>
    <detPag>
    <indPag>1</indPag>
    <tPag>99</tPag>
    <vPag>3000.00</vPag>
    </detPag>
    <vTroco>0</vTroco>
    </pag>

  11. Boa tarde

    Estou tendo um erro na classe, quando informo informações para a TAG compra, por exemplo o xPed, gera erro na classe.

    alguém pode me ajudar?

    exemplo no fonte

    oNFe:SetValue("compra", 'xNEmp' ,  'a')
    oNFe:SetValue("compra", 'xPed' ,  'c')

    NFe:SetValue("compra", 'xCont' ,  'b')

     

    ERRO

    Um Erro ocorreu em: 06/07/2018, 14:03:31

       Descrição do Erro: Error BASE/1111  Erro nos parƒmetros: LEN
       Args:
         [   1] = U   

    Stack Calls
    ===========
       Chamado por:  => LEN( 0 )
       Chamado por: C:\desenv\work2\sewin\Faturamento\VONFE2G_v4.000 => TVONFE2G:SETVALUEII( 282 )
       Chamado por: C:\desenv\work2\sewin\Faturamento\VONFE2G_v4.000 => TVONFE2G:SETVALUE( 265 )

  12. Durante muito tempo apanhei pra entender como fazer um painel ou todos, abrir comprimido. Hoje com a ajuda de uns tópicos enviado pelo Kapiaba, consegui fazer.

    veja o exemplo anterior abrindo todos os painéis comprimidos.

    #include "FiveWin.ch"
    
    //----------------------------------------------------------------------------//
    
    function Main()
    
       local oWnd, oExBar, oPanel1, oPanel2, oPanel3, oPanel4 
       local bClick := { | o | MsgInfo( o:GetText() ) }
       local nFecha:=0,nc:=0
          
       DEFINE WINDOW oWnd TITLE "FWH Class TExplorerBar"
       
       oWnd:SetSize( 350, 600 )
    
       oExBar = TExplorerBar():New()
       oExBar:nTopColor := RGB( 97, 236, 77 )
       oExBar:nBottomColor := RGB( 97, 236, 77 )
    
       oPanel1 = oExBar:AddPanel( "One", "..\bitmaps\32x32\people.bmp" )
       oPanel1:lSpecial = .T.   
       oPanel1:AddLink( "First item", bClick, "..\bitmaps\16x16\additem.bmp" )
       oPanel1:AddLink( "Second item", bClick, "..\bitmaps\16x16\copy.bmp" )
          
       oPanel2 = oExBar:AddPanel( "Two", "..\bitmaps\32x32\case.bmp" )
       oPanel2:SetColor( CLR_RED, CLR_MAGENTA)
       oPanel2:AddLink( "First item", bClick, "..\bitmaps\16x16\adddbf.bmp" )
       oPanel2:AddLink( "Second item", bClick, "..\bitmaps\16x16\delete0.bmp" )
       oPanel2:AddLink( "Third item", bClick, "..\bitmaps\16x16\envelope.bmp" )
       oPanel2:AddLink( "Fourth item", bClick, "..\bitmaps\16x16\copy.bmp" )
    
       oPanel3 = oExBar:AddPanel( "Three", "..\bitmaps\32x32\graphics.bmp" )
       oPanel3:AddLink( "First item", bClick, "..\bitmaps\16x16\adddbf.bmp" )
       oPanel3:AddLink( "Second item", bClick, "..\bitmaps\16x16\delete0.bmp" )
       oPanel3:AddLink( "Third item", bClick, "..\bitmaps\16x16\envelope.bmp" )
       
       oPanel4 = oExBar:AddPanel( "Four" )
       oPanel4:AddLink( "First item", bClick, "..\bitmaps\16x16\additem.bmp" )
       oPanel4:AddLink( "Second item", bClick, "..\bitmaps\16x16\copy.bmp" )
     
    oExBar:Refresh()
    
    
    // Comprime todos os paineis
    for nFecha:=1 to 4
    	oExBar:aPanels[nFecha]:nHeight = oExBar:aPanels[nFecha]:nTitleHeight
    	For nC:=nFecha+1 To Len (oExBar:aPanels)
    	  oExBar:aPanels[nC]:nTop -= oExBar:aPanels[nFecha]:nBodyHeight
    	Next     
    	oExBar:aPanels[nFecha]:lCollapsed:=.T.   // muda o icone de expandido para comprimido
    next	
       oWnd:oClient = oExBar
       
       ACTIVATE WINDOW oWnd
    
    return nil
    
    //----------------------------------------------------------------------------//
     
    

     

  13. Obrigado Kapiaba

    Com relação as cores, se eu tirar o manifest, funciona.

    Mas sobre perder o cabeçalho, não consegui resolver.

    A listbox e montada mas conforme o uso, o cabeçalho some. Isto não acontece com xbrowse.

    abaixo um exemplo da chamda da listbox

                  REDEFINE LISTBOX oBrwPesq ;
                       FIELDS (olDbf)->&(clCamp1),(olDbf)->&(clCamp2);
                        HEADERS (clCab1),(clCab2);
                        ID 4003 ;
                        UPDATE;
                        OF oDlgPesq ;
                     ON DBLCLICK (nlRecno := (olDbf)->( Recno() ), llValRet:= .T., oDlgPesq:End()) 

      oBrwPesq:aActions:={ {|| I_TrocaProcura(1,oBrwPesq,(olDbf),clCab1,clOrder1,clCamp1) },;
                                  {|| I_TrocaProcura(1,oBrwPesq,(olDbf),clCab2,clOrder2,SUBS(clCamp2,1,6)) }}


       oBrwPesq:nClrBackHead := nRGB( 190, 200, 255 )
       oBrwPesq:bKeyDown:={|nKeyBus|  IF(nKeyBus == VK_RETURN,(nlRecno := (olDbf)->( Recno() ), llValRet:= .T., oDlgPesq:End()),I_TeclaBrw( nKeyBus )) }
       oBrwPesq:lMChange := .F.     
     

           

  14. Entendi Theotokos,  da forma que faz ele funciona mesmo.

    Pelo jeito para o cCaption funcionar ele guarda os dados na definição dos gets, da forma que faço não deu certo, mas já entendi, obrigado pela resposta.

     

    CIACPD

    oGet1:ctext() -> valor alterado

    oGet1:Value()-> valor do objeto antes da alteração

    Ambos tem o mesmo valor no VALID.

     

  15.  

    para saber se o campo foi alterado eu comparos os dois... 

    mais ou menos assim... é que estou viajando então não tem como postar para vc a rotina,,, mas faço isto assim que possivel

    REDEFINE GET oGet VAR cNome PICT "@!X" Valid ( ValidNome(oGet))

    Function ValidNome(oGet)

    cConteudoAtual  := oGet:oGet:Buffer

    cConteudoAntes := oGet:cCaption

    If cConteudoAtual <> cConteudoAntes

        MsgInfo("Get Alterado","Alterado")

    EndIf

    Return(.t.)

     

    É desta forma que eu estava testando, mas no meus testes a oGet:cCaption sempre esta vazia.

    Eu faço assim

    defino as variaveis com valores vazios

    cNome:= spac(30)

    Defino os gets 

    REDEFINE GET oGet VAR cNome PICT "@!X" Valid ( ValidNome(oGet))

    carrego valor a variavel

    cNome:="EXEMPLO"

    oGet:refresh()

    Quando Digita o valor cNome e vai pro Valid a oGet:cCaption retorna vazio.

    Minha versão é o Five 1608. 

×
×
  • Create New...