Jump to content
Fivewin Brasil

mkyx

Membros
  • Posts

    892
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by mkyx

  1. Boa tarde, João

    Essas opções não alteram a cor da barra de rolagem, mas só linha horizontal onde está o cursor

    Eu preciso aumentar a largura da barra de rolagem vertical, que vai para cima e para baixo que fica ao lado direito da tabela, e tb alterar a cor.

    Se alguém souber,

    Eu agradeço, pela ajuda.

     

     

  2. Boa noite, resolvi assim:

    #include "fivewin.ch"

    function main()
      
      
    define dialog rel_11 title "teste"

    hist:={"ze","mane","maria","pedro","joao"}

    li_1:=15
    _pos:=100
    for qth=1 to 5
        I0:=STRZERO(QTH,3)
        c_obj:="V_H"+I0
        hh:=HIST[qth]
        @ LI_1,50 SAY &C_OBJ. VAR HIST[qth] PIXEL OF rel_11 SIZE _POS,15
        &C_OBJ.:lWantClick = .t.
        &C_OBJ.:bLClicked  = { || _movim(&c_obj.:cvarName) }
        &C_OBJ.:CTOOLTIP:=ALLTRIM(hh)
        &c_obj.:cvarName:=ALLTRIM(hh)
        li_1:=li_1+15
    next       
          
    activate dialog rel_11 centered

    return .t.


    FUNCTION _movim(REL_111)

    ? rel_111

    return .t.

     

    Blz.

     

  3. Boa noite

    eu compilei o programa do hook do teclado e deu erros nas linhas:

    HB_BOOL flag_hhk = FALSE;
    HB_BOOL PAUSE_hhk = FALSE;
    HHOOK hhk = NULL;
     

    deu tipo não reconhecido.

    em que arquivo .h posso encontrar os comando HB_BOOL, HHOOK?

     

     

     

  4. Pessoal o que pode está errado na rotina abaixo, pois eu clico em qualquer um dos nome e só mostra o primeiro nome da lista:

     

    #include "fivewin.ch"

    function main()
      
      
    define dialog rel_11 title "teste"

    hist:={"ze","mane","maria","pedro","joao"}

    li_1:=15
    _pos:=100
    for qth=1 to 5
        I0:=STRZERO(QTH,3)
        c_obj:="V_H"+I0
        hh:=HIST[qth]
        @ LI_1,50 SAY &C_OBJ. VAR HIST[qth] PIXEL OF rel_11 SIZE _POS,15
        &C_OBJ.:lWantClick = .t.
        &C_OBJ.:bLClicked  = { || _movim(hh) }
        &C_OBJ.:CTOOLTIP:=ALLTRIM(hh)
        &c_obj.:cvarName:=ALLTRIM(hh)
        li_1:=li_1+15
    next       
          
    activate dialog rel_11 centered

    return .t.


    FUNCTION _movim(REL_111)
    N_HIST:=""
    for ii=1 to len(REL_11:aControls)
        if upper(REL_11:aControls[ii]:className())="TSAY" .AND. REL_11:aControls[ii]:lFocused   // verifica se é um objeto SAY e se foi o que recebeu o click do mouse
            N_HIST:=rel_11:aControls[ii]:cVarName   // aqui pega o nome da variável
            II:=len(rel_11:aControls)+10   // aqui agiliza para sair do loop for-next
        ENDIF
    next ii

    ? "O nome onde o mouse tocou é = ",N_HIST

    return .t.      

     

    Eu não sei, se essa declaração REL_11:aControls[ii]:lFocused é realmente o comando para saber onde o mouse clicou.

     

    Alguém saberia informar?

     

    Obrigado

     
          

     

  5. boa noite pessoal,

    mudei a forma de atribuição e agora está aparecendo as duas casas decimais.

    mas, mesmo assim, continua com o erro:

    <ICMS>
      <ICMSSN500>
        <orig>0</orig>
        <CSOSN>500</CSOSN>
        <vBCSTRet>0.00</vBCSTRet>
        <pST>0.00</pST>
        <vICMSSTRet>0.00</vICMSSTRet>
        <vICMSSubstituto>0.00</vICMSSubstituto>
        <vBCFCPSTRet>0.00</vBCFCPSTRet>
        <pFCPSTRet>0.00</pFCPSTRet>
        <vFCPSTRet>0.00</vFCPSTRet>
      </ICMSSN500>
    </ICMS>

    agora está indicando que a tag <vICMSSubstituto> não deveria existir,

     

    mas, se eu não coloco aparece a mensagem de erro que diz que falta essa tag e as demais relacionadas.

     

    Alguém tem algum idéia?

     

    Obrigado.

     

  6. Bom dia

    para o caso acima, que começou a vigorar agora, qual o procedimento correto, pois ao solicitar ajuda pra flexdoc, eles disseram que os valores devem ter duas casas decimais, e a classe do Gilmer não colocar casas decimais para valor zerados.

    como preencho os valor:

                               :CSOSN:="500"
                               :vBCSTRet :=0.00
                               :vICMSSTRet :=0.00
                               :pST :=0.00
                               :vBCFCPSTRet :=0.00
                               :pFCPSTRet :=0.00
                               :vFCPSTRet :=0.00
                               :vICMSSubstituto:=0.00
     

    como está na classe:

                aadd( axArray, {"ICMSSN500" , {}, 1  } ); nPos := len(axArray)
                aadd( axArray[nPos][2], {"orig"           , TVoNFeItem():New("N", 1, 1, 1  ,,,oItem:orig )  }  )
                aadd( axArray[nPos][2], {"CSOSN"          , TVoNFeItem():New("N", 1, 1, 3  ,,,oItem:CSOSN )  }  )
    *            if nfc_e="#"
                aadd( axArray[nPos][2], {"vBCSTRet"       , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vBCSTRet   )  }  )
                aadd( axArray[nPos][2], {"pST"            , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:pST         )  }  )
                aadd( axArray[nPos][2], {"vICMSSTRet"     , TVoNFeItem():New("N", 1, 1, 15,2,,oItem:vICMSSTRet   )  }  )
                aadd( axArray[nPos][2], {"vICMSSubstituto", TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vICMSSubstituto         )  }  )
                aadd( axArray[nPos][2], {"vBCFCPSTRet"    , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vBCFCPSTRET )  }  )
                aadd( axArray[nPos][2], {"pFCPSTRet"      , TVoNFeItem():New("N", 1, 1, 6 ,2 ,,oItem:pFCPSTRET   )  }  )
                aadd( axArray[nPos][2], {"vFCPSTRet"      , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vFCPSTRET   )  }  )
     

    e como a classe gera o xml:

    <imposto>
    <vTotTrib>13.71</vTotTrib>
    <ICMS>
    <ICMSSN500>
    <orig>0</orig>
    <CSOSN>500</CSOSN>
    <vBCSTRet>0</vBCSTRet>
    <pST>0</pST>
    <vICMSSTRet>0</vICMSSTRet>
    <vICMSSubstituto>0</vICMSSubstituto>
    <vBCFCPSTRet>0</vBCFCPSTRet>
    <pFCPSTRet>0</pFCPSTRet>
    <vFCPSTRet>0</vFCPSTRet>
    </ICMSSN500>
    </ICMS>
     

    Alguém poderia dar alguma dica?

     

    Obrigado.

     

     

     

     

     

     

     

     

  7. Olá, eu fiz o teste da rotina abaixo, e guardou o ultimo arquivo, da lista, na área de transferência.

    aFiles := xGetFiles("Todos (*.*)|*.*|", "Selecione o arquivo(x)", 1, "", .F. )

    define ClipBoard oClp of odlg   // odlg é um dialog desta rotina 

    for i=1 to len(aFiles)

         oClp:SetText( aFiles[1] )

    next

    para guardar todos os nomes dos arquivos da pasta lida, vc deve concatena-los.

  8. Faz assim

          define ClipBoard oCopiar of objetododialogo // esse comando só pode ser dado uma vez, senao, o comando anterior será desfeito.

    ------------

    aFiles := xGetFiles("Todos (*.*)|*.*|", "Selecione o arquivo(x)", 1, "", .F. )
                // oClp:=TClipboard():New()
               //  oClp:Clear()
    
    define ClipBoard oClp of objetodasuajanela_ou_dialog
    for i=1 to len(aFiles)
       oClp:SetText( aFiles[1] )
    next
    
    

     

  9. Oliveiros:

    nessa rotina de envio do e-social, não falta a linha onde define o certificado?

     

    essa linha:

       oServer:setOption( 3, "CURRENT_USER\MY\" + ::cCertificado )

    -------------------------------

      oServer:Open( "POST", cURL_Envio, .F. )

      oServer:SetRequestHeader( "SOAPAction", cSOAPAction )
      oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
         

    ???
  10. referente ao erro 400, olhem o que diz, em perguntas e repostas no site do e-social:

     

    01.05 - (11/01/2018) Tentando a conexão com o Webservice, o serviço retorna: “a solicitação falhou com status HTTP 400: Bad Request”. Por quê?

    Acessos que retornam falhas de status HTTP 400 são por motivo de solicitação inválida. A solicitação não pôde ser entendida pelo servidor devido à sintaxe incorreta, sendo aconselhado não repetir a solicitação sem os devidos ajustes. Deve ser utilizada exatamente a URL divulgada no portal do eSocial e no Manual de Orientação do Desenvolvedor.

    Os motivos de falhas HTTP podem ser encontrados em sites de pesquisa, veja esta URL, por exemplo: https://support.microsoft.com/pt-br/help/943891/the-http-status-code-in-iis-7-0--iis-7-5--and-iis-8-0. Além disso, é importante verificar a seção "7.9. Certificação digital" do Manual de Orientação do Desenvolvedor, disponível na área de Documentação Técnica. 

  11. Deve ser semelhante à comunicação com balança pelo com1: ou com2:

    para balança, eu tenho uma rotina que lê a porta serial:

    function pegapeso()

    ** LEITURA DA PORTA

    NHANDLE:=Init_Port("COM1",9600,8,0,1,8000)
    OutBufClr(NHANDLE) // Limpa o Buffer de Saida
    OUTCHR(NHANDLE,CHR(5))
    SYSWAIT(0.3)
    Bytes := InbufSize(NHANDLE)
    DADOS=SPACE(20)
    Buffer := InChr( NHANDLE, Bytes, @DADOS)
    UnInt_Port(nHandle)
    dados=alltrim(dados)

    ** tratamento das informações lidas, na variável DADOS

    Q=val(substr(dados,2,5))/1000
    n1:=""
    for i=1 to len(dados)
        i0:=substr(dados,i,1)
        if i0$"0987654321."
           n1:=n1+i0
        endif
    next
    q:=val(n1)
    IF Q<=0
       Q:=0
    ENDIF


    RETURN Q
     

    Talvez sirva para você.

     

  12. use uso assim:

    e_esta:=.F.
    if select("ARQ_VETRA")=0
       e_esta:=.T.
    ELSE
       SELECT ARQ_VETRA  
    endif  
    cSqlQ:="SELECT * FROM VETRA_CLI WHERE CODIGO="+CHR(34)+alltrim(STR(COD))+CHR(34)+";"
    dbUseArea(e_esta, "SQLRDD", cSqlQ, "ARQ_VETRA")
    IF ARQ_VETRA->(EOF())

        ? "FIM DE ARQUIVO, VAZIO"

    ELSE

     

     

        ? "COLOQUE AQUI OS COMANDO PARA MANIPULAR OS REGISTROS ENCONTRADOS"

     

     

    ENDIF

     

  13. Com o surgimento do Windows. Os dbf, que forma feito para a plataforma DOS, não combinam com a plataforma Windows, logo, o correto, é usar os comandos mysql, como: select, update, delete, insert, etc,  pode ser o puro ou via sqlrdd, eu estou migrando tudo para mysql  via sqlrdd.

     

×
×
  • Create New...