Jump to content
Fivewin Brasil

Edu

Membros
  • Posts

    126
  • Joined

  • Last visited

  • Days Won

    3

Reputation Activity

  1. Like
    Edu got a reaction from kapiaba in Rotina para gravar backup Google Drive - Resolvido   
    Kapi,
    Baixei a lib do link que vc enviou mas deu outro erro.
    Executando: ILINK32 @B32.BC
    Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
    Error: 'LIB\HBCURL.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
     
    Sabe o que pode estar causando este erro?
  2. Like
    Edu reacted to rochinha in Emuladores de Balanças Toledo/Filizola   
    Amiguinhos,
    Segue link para baixar Emuladores de Balanças
    @braços
     
  3. Like
    Edu reacted to dorneles in Entrevista com Patrick Mast / xHarbour.com   
    xHarbour.com 
    https://medium.com/harbour-magazine/entrevista-con-patrick-mast-a4f25759d075
  4. Like
    Edu reacted to Jmsilva in Seminário da FiveWin em Julho - Austria   
    Bem Vindos !
    http://www.bergland.info/allgemein/fivewin-seminar-july-2017/
  5. Like
    Edu got a reaction from kapiaba in Comando JOIN com DBF   
    Isso mesmo Kapiaba ! 
    Testei aqui e funcionou. Muito legal!
  6. Like
    Edu got a reaction from HERGON in Pegar os dados do CNPJ por esse site   
    Bom dia!
    Gostei da API! E é de graça!
    Tá na mão:
    ********************************************
    Function GetDadosCNPJ()
        * retorna dados de um CNPJ
        * retorno no formato JSON
        * site que oferece o servico: https://www.receitaws.com.br
        
        Local oServerWS, cUrl, aArray, oCnpj:= SPACE(14)
        
        MsgGet("ReceitaWS", "Informe o CNPJ:", @oCnpj)
        
        cUrl:= "https://www.receitaws.com.br/v1/cnpj/"+Alltrim(oCnpj)
        Try
            oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )  
        Catch e
            ? e:Description
            return nil
        End 
        
        oServerWS:open('GET', cUrl, .f.)
        oServerWS:setRequestHeader('Content-Type'    , 'text/xml; charset=utf-8')    // Obtém ou define o valor de cabeçalho de Content-type HTTP.
        oServerWS:send()    
        
        * Verifica o status do request. Exibe erro se houver
        IF oServerWS:Status != 200 // OK
           MsgStop( Alltrim(STR(oServerWS:Status)) +" - "+ oServerWS:StatusText , "Erro")
            RETURN NIL
        ENDIF
        
        WHILE oServerWS:readyState != 4
           oServerWS:waitForResponse(1000)
        END   
            
        * decodifica o arquivo json e transforma em um array multidimensional
       x :=  hb_jsondecode( oServerWS:responseText, @aArray )
        
        if aArray == nil
            MsgStop("Erro ao retornar os dados. Tente novamente.")
            return nil
        endif
        if aArray['status'] != 'OK' // exibe erros
            MsgStop(aArray['message'], 'Erro')
           return nil
        endif
        
        xbrowse(aArray) // mostra o resultado    
        
    return nil
     
     
     
  7. Like
    Edu reacted to kapiaba in TokenUpper()   
    Vivendo e aprendendo:
    https://vivaclipper.wordpress.com/2014/02/08/tokenupper/

    #include "FiveWin.ch" FUNCTION Main()    //Examples    ? TokenUpper( "Hello, world, here I am!" )    // "Hello, World, Here I Am!"    ? TokenUpper( "Hello, world, here I am!",, 3 )    // "Hello, World, Here I am!"    ? TokenUpper( "Hello, world, here I am!", ",", 3 )    // "Hello, world, here I am!"    ? TokenUpper( "Hello, world, here I am!", " w" )    // "Hello, wOrld, Here I Am!"    ? TokenUpper( Lower( "HELLO, WORLD, HERE I AM LOWER!" ) )    //Tests    ? TokenUpper( "Hello, world, here I am!" ) == "Hello, World, Here I Am!"    ? TokenUpper( "Hello, world, here I am!",, 3 ) == "Hello, World, Here I am!"    ? TokenUpper( "Hello, world, here I am!", ",", 3 ) == "Hello, world, here I am!"    ? TokenUpper( "Hello, world, here I am!", " w" )  ==  "Hello, wOrld, Here I Am!" RETURN NIL

  8. Like
    Edu got a reaction from evertonlb in xBrowse com vários bitmaps   
    Bom dia!
    Evertonlb, acho que desse jeito não funciona porque ou você trabalha com DB ou array. Se você adicionar mais um elemento vai dar erro em tempo de execução pois o array interno do xbrowse : aCols, terá seu tamanho alterado.
    rubensma, a princípio eu não queria fazer isso não pois não sei se vai dar tempo, mas em último caso...
     
    Deixa eu tentar explicar:
    São 4 bitmaps. Por exemplo: A, B, C, D.
    Pode haver as situações A, A+B, A+C, A+D, B, B+C, B+D, C, C+D, D.
    TOTAL = 10.
    Em todo caso estou começando a considerar esta hipótese, pois tentei fazer com botões e ficou muito grande a qtde. de objs na tela e esteticamente ficou devendo um pouco. Estou dando preferência a xBrowse.
     
     
  9. Like
    Edu got a reaction from kapiaba in Teclas de Atalho (Resolvido)   
    Show Kapiaba! Funcionou!
    Many Thanks.
  10. Like
    Edu reacted to kapiaba in Say Vertical com box   
    Usando Window(Janela)

    #include "FiveWin.ch" FUNCTION Main()    LOCAL oWnd, oSay[3], oFont[2]        DEFINE FONT oFont[1] NAME "ARIAL" SIZE 0,20 BOLD NESCAPEMENT 900             DEFINE WINDOW oWnd ;//FROM 1,5 TO 20,65 ;           TITLE "Testing SAY With Design"    @ 180, 30 say osay[2] prompt "" of ownd color 0 size 80,200 font oFont[1]   design  update pixel       ACTIVATE WINDOW oWnd MAXIMIZED          ;         ON INIT  oSay[2]:SAY(180,30,"THIS DONT SHOW",CLR_BLACK,CLR_YELLOW,oFont[1],.t.,)  ;         ON PAINT osay[2]:SAY(180,30,"THIS DONT SHOW",CLR_BLACK,CLR_YELLOW,oFont[1],.t.,) RETURN NIL

  11. Like
    Edu got a reaction from Luiz Fernando in Banco MYSQL   
    Direto da fonte! kkk
    https://dev.mysql.com/doc/refman/5.7/en/error-lost-connection.html
  12. Like
    Edu reacted to aferra in FiveWin e Bootstrap alguem ja testou?   
    olha que interessante
     
    http://forums.fivetechsupport.com/viewtopic.php?f=3&t=33091
  13. Like
    Edu got a reaction from kapiaba in Syntax error em _stddef.h (Resolvido)   
    Resolvido!
    Parece que não precisava fazer nenhum #include "hbjson.h"
    Abs.
     
  14. Like
    Edu got a reaction from kapiaba in FWH 16.08 : Built-in MySql/MariaDB functionality (Updated )   
    Instalando aqui.... Muita emoção!! kkkk
    http://imgur.com/a/2aHWH
     
     
  15. Like
    Edu reacted to kapiaba in FWH 16.08 : Built-in MySql/MariaDB functionality (Updated )   
    XBREPORT
    http://forums.fivetechsupport.com/viewtopic.php?f=3&t=26871&p=149073&hilit=XBREPORT#p149073
  16. Like
    Edu reacted to kapiaba in FWH 16.08 : Built-in MySql/MariaDB functionality (Updated )   
    Koisa Lindja do Pai... kkkkkkkkkkkkkkkkk
    http://imgur.com/a/BcXcn

  17. Like
    Edu got a reaction from Theotokos in Pesquisa incremental no xBrowse com array   
    Boa tarde amigo!
    Fiz assim:
     
    // GET de pesquisa
        REDEFINE GET opesquisa VAR var_pesquisa ID 40 OF oDlg UPDATE ;
                                                             ON CHANGE( ::Assign(), SetPosXbr(var_pesquisa,2,oLbx1) )
    ********************************************************************************
    FUNCTION SetPosXbr(Digitado, xPos, oLbx1)
        * Funcao de pesquisa sensitiva no xBrowse com Array
        LOCAL nPalavra:= UPPER(ALLTRIM(Digitado))
        
        nPos := ASCAN(aPrinProd ,{|X| IF(nPalavra $ Substr(X[xPos], 1, LEN(nPalavra)) , .T. , .F. )})           
         
        IF nPos > 0 
           oLbx1:nArrayAt:= nPos
        ENDIF
        oLbx1:UPDATE()
       oLbx1:REFRESH()
    RETURN .T.
     
  18. Like
    Edu reacted to kapiaba in abreviar nomes   
    http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=17578
  19. Like
    Edu reacted to kapiaba in Fechar um processo local e remoto pelo taskkill   
    https://social.technet.microsoft.com/wiki/contents/articles/2458.fechar-um-processo-local-e-remoto-pelo-taskkill-pt-br.aspx
  20. Like
    Edu reacted to marcioe in Funcao para mostar erros, avisos, informaçoes, ao usuario   
    Amigos, fiz esta funcao que poderá ser melhorada, mas me atende bem. Caso alguem queira incrementar postem para os amigos.
    Trata-se de uma função simples de envio de informaçoes aos uaurios.
    Exemplo de uso Imaginem ao enviar uma Nota Fiscal
    Temos que ver se o Endereço está Preenchido, se o bairro nao é branco, se tem CPF, se o produto esta com NCM, etc... etc..
    Imagina ficar dando MSGSTOP() Em cada um delas.
    Pensando nisso Fiz esta funcao que voce valida e depois mostra tudo em um Browse ao usuario.
    Vejam Exemplo de uma Pre Validação de NF.

    *------------------------------------------------------------------------------- * Data da Criação.: 30-07-2016 * Caida Por.......: Marcio Eduardo (32)99104-0562 * Função que serve para mostrar informaçoes ao usuario (tipo inconsistencia, erro) * Parametros * * v_aRRAY_Inconsistencia = É o array com 08 colunas para as msg * v_TITULO_DIALOG = Titulos da da Dialogo que será Exibida * v_Cabecalho = Passa-se os Cabecalhos Separados do PIPE *------------------------------------------------------------------------------- FUNCTION MOSTRAR_INCONSISTENCIA(v_aRRAY_Inconsistencia,v_TITULO_DIALOG,v_Cabecalho) LOCAL N_ERROS, N_AVISOS, N_INFORMACAO, N_OUTROS, T_TXT_ERROS, T_TXT_AVISOS, T_TXT_INFORMACAO, T_TXT_OUTROS N_ERROS := 0 N_AVISOS := 0 N_INFORMACAO := 0 N_OUTROS := 0 IF EMPTY(v_aRRAY_Inconsistencia) MsgStop('Não Foi Passado as Informações das Inconsistências !'+CHR(13)+ ProcName(),SISTEMA) return .F. ENDIF IF EMPTY(v_TITULO_DIALOG) v_TITULO_DIALOG := SISTEMA ENDIF IF EMPTY(v_Cabecalho) MsgStop('Não Foi Passado o Cabeçalho das Inconsistências !'+CHR(13)+ ProcName(),SISTEMA) return .F. ENDIF a_Cabecalho := hb_atokens(v_Cabecalho,"|") FOR I := 1 TO LEN(a_Cabecalho) v_Cabecalho_01 := alltrim(a_Cabecalho[1]) v_Cabecalho_02 := alltrim(a_Cabecalho[2]) v_Cabecalho_03 := alltrim(a_Cabecalho[3]) v_Cabecalho_04 := alltrim(a_Cabecalho[4]) v_Cabecalho_05 := alltrim(a_Cabecalho[5]) v_Cabecalho_06 := alltrim(a_Cabecalho[6]) v_Cabecalho_07 := alltrim(a_Cabecalho[7]) v_Cabecalho_08 := alltrim(a_Cabecalho[8]) NEXT FOR nTipos := 1 TO LEN(v_aRRAY_Inconsistencia) IF v_aRRAY_Inconsistencia[nTipos,1] $ 'EAI' IF v_aRRAY_Inconsistencia[nTipos,1] = 'E' N_ERROS := N_ERROS + 1 ENDIF IF v_aRRAY_Inconsistencia[nTipos,1] = 'A' N_AVISOS := N_AVISOS + 1 ENDIF IF v_aRRAY_Inconsistencia[nTipos,1] = 'I' N_INFORMACAO := N_INFORMACAO + 1 ENDIF ELSE N_OUTROS := N_OUTROS + 1 ENDIF NEXT T_TXT_ERROS := ALLTRIM(STR(N_ERROS,06,0)) + ' Erro(s)' T_TXT_AVISOS := ALLTRIM(STR(N_AVISOS,06,0)) + ' Alerta(s)' T_TXT_INFORMACAO := ALLTRIM(STR(N_INFORMACAO,06,0)) + ' Informaçoe(s)' T_TXT_OUTROS := ALLTRIM(STR(N_OUTROS,06,0)) + ' Outro(s)' *------------------------------------------------------------------------- Asort( (v_aRRAY_Inconsistencia),,, {|x,y| (x[ 02 ] ) > (y[ 02 ]) } ) *------------------------------------------------------------------------- DEFINE DIALOG oDlg_INCONSISTENCIA RESOURCE "BROWSE_INCONSISTENCIA" TITLE '...:: '+ ALLTRIM(v_TITULO_DIALOG) + ' ::...' Font O_F_DLG oDlg_INCONSISTENCIA:lHelpIcon:=.F. T_TXT_DIALOGO := ' ' + ALLTRIM(v_TITULO_DIALOG) REDEFINE SAY oT_TXT_DIALOGO var T_TXT_DIALOGO ID 4043 OF oDlg_INCONSISTENCIA FONT O_F_GET COLOR CLR_LWHITE,CLR_BFOOT Update *---------------------------------------------------------------------------- oDB_INCONSISTENCIA := TXBrowse():New( oDlg_INCONSISTENCIA ) oDB_INCONSISTENCIA : CreateFromResource( 4049 ) oDB_INCONSISTENCIA:bClrRowFocus := { || { CLR_BLACK, RGB(185,220,255) } } oDB_INCONSISTENCIA: SetArray( (v_aRRAY_Inconsistencia), .t., 1, { 1,2,3,4,5,6,7,8 } ) oDB_INCONSISTENCIA:bClrStd := {|| { COR_LETRAS_GRID, IIF((oDB_INCONSISTENCIA:KeyNo())%2==0, COR_1_bClrStd , COR_2_bClrStd ) } } oDB_INCONSISTENCIA:bClrSelFocus := {|| { M->COR_1_bClrSelFocus, M->COR_2_bClrSelFocus } } oDB_INCONSISTENCIA:bClrRowFocus := {|| { M->COR_1_bClrRowFocus, M->COR_2_bClrRowFocus } } oDB_INCONSISTENCIA:lColDividerComplete := .F. oDB_INCONSISTENCIA:lFooter := .T. oDB_INCONSISTENCIA:lRecordSelector := .T. oDB_INCONSISTENCIA:nHeaderLines := 2.0 oDB_INCONSISTENCIA:nDataLines := 1.5 oDB_INCONSISTENCIA:nColDividerStyle := 4 oDB_INCONSISTENCIA:nRowDividerStyle := 4 oDB_INCONSISTENCIA:nMarqueeStyle := 4 oDB_INCONSISTENCIA:nFooterLines := 1 oDB_INCONSISTENCIA:lAllowColSwapping := .T. // Click no header (.f.)Trava oDB_INCONSISTENCIA:lAllowRowSizing := .T. // Nao move as Linhas (nao sei) oDB_INCONSISTENCIA:l2007 := M->ESTILO_l2007 oDB_INCONSISTENCIA:lAllowRowSizing := .T. oDB_INCONSISTENCIA:nFreeze := 1 // congelar a coluna oDB_INCONSISTENCIA:nStretchCol := 2 oDB_INCONSISTENCIA:nColSel := 2 oDB_INCONSISTENCIA:nDataType := 2 oDB_INCONSISTENCIA:nRowHeight := 35 oDB_INCONSISTENCIA:aCols[02]:SetOrder() *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[01]:nWidth := 035 oDB_INCONSISTENCIA:aCols[01]:cHeader := (v_Cabecalho_01) oDB_INCONSISTENCIA:aCols[01]:nHeadStrAlign := AL_CENTER oDB_INCONSISTENCIA:aCols[01]:nDataStrAlign := AL_RIGHT oDB_INCONSISTENCIA:aCols[01]:AddResource( "#8204" ) ////Erro oDB_INCONSISTENCIA:aCols[01]:AddResource( "#8205" ) ////Alerta oDB_INCONSISTENCIA:aCols[01]:AddResource( "#8206" ) ////Informação oDB_INCONSISTENCIA:aCols[01]:AddResource( "#8207" ) ////Questionemento oDB_INCONSISTENCIA:aCols[01]:bBmpData := 2 oDB_INCONSISTENCIA:aCols[01]:bBmpData := { || iif(len( (v_aRRAY_Inconsistencia))>0, IF((v_aRRAY_Inconsistencia[oDB_INCONSISTENCIA:nArrayAt][01])="E",1,IF((v_aRRAY_Inconsistencia[oDB_INCONSISTENCIA:nArrayAt][01])="A",2,IF((v_aRRAY_Inconsistencia[oDB_INCONSISTENCIA:nArrayAt][01])="I",3, 4 ))),nil) } oDB_INCONSISTENCIA:aCols[01]:bStrData := { || NIL } oDB_INCONSISTENCIA:aCols[01]:cToolTip := {ALLTRIM((v_Cabecalho_01))+ CRTLF +T_TXT_DIALOGO,"Ajuda","", } *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[02]:bstrData := {|| iif(len( (v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,02],nil) } oDB_INCONSISTENCIA:aCols[02]:cHeader := (v_Cabecalho_02) oDB_INCONSISTENCIA:aCols[02]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[02]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[02]:cToolTip := {ALLTRIM((v_Cabecalho_02)),"Ajuda","", } oDB_INCONSISTENCIA:aCols[02]:nFootStrAlign := AL_RIGHT *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[03]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,03],nil) } oDB_INCONSISTENCIA:aCols[03]:cHeader := (v_Cabecalho_03) oDB_INCONSISTENCIA:aCols[03]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[03]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[03]:cToolTip := {ALLTRIM((v_Cabecalho_03)),"Ajuda","", } oDB_INCONSISTENCIA:aCols[03]:nFootStrAlign := AL_RIGHT *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[04]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,04],nil) } oDB_INCONSISTENCIA:aCols[04]:cHeader := (v_Cabecalho_04) oDB_INCONSISTENCIA:aCols[04]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[04]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[04]:cToolTip := {ALLTRIM((v_Cabecalho_04)),"Ajuda","", } *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[05]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,05],nil) } oDB_INCONSISTENCIA:aCols[05]:cHeader := (v_Cabecalho_05) oDB_INCONSISTENCIA:aCols[05]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[05]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[05]:cToolTip := {ALLTRIM((v_Cabecalho_05)),"Ajuda","", } *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[06]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,06],nil) } oDB_INCONSISTENCIA:aCols[06]:cHeader := (v_Cabecalho_06) oDB_INCONSISTENCIA:aCols[06]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[06]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[06]:cToolTip := {ALLTRIM((v_Cabecalho_06)),"Ajuda","", } oDB_INCONSISTENCIA:aCols[06]:nFootStrAlign := AL_RIGHT *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[07]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,07],nil) } oDB_INCONSISTENCIA:aCols[07]:cHeader := (v_Cabecalho_07) oDB_INCONSISTENCIA:aCols[07]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[07]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[07]:cToolTip := {ALLTRIM((v_Cabecalho_07)),"Ajuda","", } *------------------------------------------------------------------------- oDB_INCONSISTENCIA:aCols[08]:bstrData := {|| iif(len((v_aRRAY_Inconsistencia))>0,(v_aRRAY_Inconsistencia)[oDB_INCONSISTENCIA:nArrayAt,08],nil) } oDB_INCONSISTENCIA:aCols[08]:cHeader := (v_Cabecalho_08) oDB_INCONSISTENCIA:aCols[08]:nDataStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[08]:nHeadStrAlign := AL_LEFT oDB_INCONSISTENCIA:aCols[08]:cToolTip := {ALLTRIM((v_Cabecalho_08)),"Ajuda","", } *------------------------------------------------------------------------- REDEFINE BUTTONBMP oExp_Excel_Inconsistencia ID 4002 OF oDlg_INCONSISTENCIA ACTION ( oDB_INCONSISTENCIA:ToExcel() ) BITMAP (M->BTN_EXPORTA_EXCEL) PROMPT "E&xportar Para Excel" TEXTRIGHT REDEFINE BUTTONBMP oSair_Inconsistencia ID 4003 OF oDlg_INCONSISTENCIA ACTION ( oDlg_INCONSISTENCIA:end() ) BITMAP (M->BTN_SAIR_REGISTRO) PROMPT "&Fechar" TEXTRIGHT *------------------------------------------------------------------------- REDEFINE SAY oT_TXT_ERROS VAR T_TXT_ERROS ID 4006 OF oDlg_INCONSISTENCIA REDEFINE SAY oT_TXT_AVISOS VAR T_TXT_AVISOS ID 4007 OF oDlg_INCONSISTENCIA REDEFINE SAY oT_TXT_INFORMACAO VAR T_TXT_INFORMACAO ID 4010 OF oDlg_INCONSISTENCIA REDEFINE SAY oT_TXT_OUTROS VAR T_TXT_OUTROS ID 4011 OF oDlg_INCONSISTENCIA *------------------------------------------------------------------------- oExp_Excel_Inconsistencia : cToolTip := {"Exportar Para o Excel","Ajuda","", } oSair_Inconsistencia : cToolTip := {"Fechar/Sair","Ajuda","", } *------------------------------------------------------------------------- ACTIVATE DIALOG oDlg_INCONSISTENCIA CENTERED ON INIT (oDB_INCONSISTENCIA:GoTop(),BuildControls( oDlg_INCONSISTENCIA )) RETURN .T. *------------------------------------------------------------------------------- *------------------------------------------------------------------------------- static func BuildControls( oDlg ) local oMenu, oBar MENU oMenu 2007 MENUITEM "&Opções" MENU MENUITEM "&Exportar Para Excel" RESOURCE (M->BTN_EXPORTA_EXCEL) ACTION ( oDB_INCONSISTENCIA:ToExcel() ) MESSAGE "Exportar Dados Para o Excel" SEPARATOR MENUITEM "&Fechar" RESOURCE (M->BTN_SAIR_REGISTRO) ACTION(oDlg:End()) MESSAGE "Fechar Esta Tela" ENDMENU ENDMENU oDlg:SetMenu( oMenu ) *------------------------------------------------------------------------------- * caso queira colocar botoes *------------------------------------------------------------------------------- *DEFINE BUTTONBAR oBar OF oDlg 3D *DEFINE BUTTON OF oBar PROMPT " Info " ACTION MsgAbout() FONT oDlg:oFont NOBORDER *DEFINE BUTTON OF oBar PROMPT " Sair " ACTION oDlg:End() FONT oDlg:oFont NOBORDER DEFINE MESSAGE OF oDlg PROMPT ('Em Caso de Dúvidas Ligar para o Suporte ' + SUPORTE) DEFINE MSGITEM OF oDlg:oMsgBar; BITMAP IF(T_IP_SERVER = "localhost","#8021","FUNCIONA_REDE"); TOOLTIP {"Nome da Estação "+CRLF+ upper(netname()) + CRLF+ + 'Ip Servidor.:'+ TRIM(T_IP_SERVER),"Ajuda","", } return( Nil ) Imagem do Tela no PELLES, basta fazer uma com os mesmos ID, do PRG acima

    Exemplo de como Usar a função.
    *--------------------------------------------------------------------------------- * Gravar Cadastro de Produtos *--------------------------------------------------------------------------------- FUNCTION GRAVA_CADASTRO_PRODUTOS() aInconsistencias :={} ERROS_INCONSISTENCIA := 0 T_QUANTIDADE_REG_SQL := 0 *---------------------------------------------------------------------------- IF T_FATOR_MULTIPLICACAO = 0 T_FATOR_MULTIPLICACAO := 1 ENDIF *---------------------------------------------------------------------------- IF EMPTY(T_NOME_PRODUTOS) ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Nome Ou Descrição está Em branco ou Sem Informações',; 'O Campo Nome no Cadastro de Produtos Deverá ser Preenchido',; 'O Sistema Irá Varificar a Existência do Nome, Não Permitindo Repetir',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF T_CODI_GRUPOS_PR == 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Código do Grupo Inválido ou Zerado',; 'Informe o Código do Grupo Válido Maior que Zero',; 'Caso Nao Seja Informado Não Será Possivel Gravar',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF empty(SUBSTR(ALLTRIM(T_COD_ALIQUOTA_PRODUTOS),01,02) ) ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Escolha Uma Alíquota de Saída ICMS',; 'Informe no Campo Aliquota de ICMS de Saida Um Valor Válido',; 'Caso Nao Seja Informado Não Será Possivel Gravar',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF EMPTY(ALLTRIM(T_CODI_TRIBUTARIO)) ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Código Nacionalidade',; 'Informe o Código da Nacionalidade',; 'Caso Nao Seja Informado Não Será Possivel Gravar',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF EMPTY(ALLTRIM(T_CODI_ICMS)) ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Código Tributário Inválido (ICMS)',; 'Informe no Campo Código Tributário (Situação Tributária) Um Valor Válido',; 'Caso Nao Seja Informado Não Será Possivel Gravar',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF val(str(T_VALOR_VENDA,18,2)) < 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Valor de Venda da Tabela 1 Inválido',; 'Informe Um Valor de Venda Válido para a Tabela 1',; 'Sempre Informar um Valor Maior ou Igual a Zero',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF val(str(T_VALOR_VENDA2,18,2)) < 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Valor de Venda da Tabela 1 Inválido',; 'Informe Um Valor de Venda Válido para a Tabela 2',; 'Sempre Informar um Valor Maior ou Igual a Zero',; '.',; '.',; '.'} ) ENDIF IF val(str(T_VALOR_VENDA3,18,2)) < 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Valor de Venda da Tabela 1 Inválido',; 'Informe Um Valor de Venda Válido para a Tabela 3',; 'Sempre Informar um Valor Maior ou Igual a Zero',; '.',; '.',; '.'} ) ENDIF IF val(str(T_VALOR_PROMOCAO,18,2)) < 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Valor de Venda da Promoção Inválido',; 'Informe Um Valor de Venda Válido para a Tabela 3',; 'Sempre Informar um Valor Maior ou Igual a Zero',; '.',; '.',; '.'} ) ENDIF *---------------------------------------------------------------------------- IF T_CLASSIFICACAO_PRODUTO_MATERIA_PRIMA = '09' &&&& SE FOR SERVIÇO IF VAL(STR( (T_ESTOQUE_PRODUTOS + T_SALDO_NF),18,3)) > VAL(STR(0,18,3)) ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'O Item Cadastrado como Sendo Serviço Não deverá Ter Saldo !',; 'O Item Cadastrado Não Poderá Ter Saldo',; 'Sempre Informar Igual a Zero',; '.',; '.',; '.'} ) ENDIF ENDIF *---------------------------------------------------------------------------- FOR nI = 1 to Len( aArray_itens_ordem_producao ) IF T_CODI_PRODUTOS != 0 IF val(aArray_itens_ordem_producao[nI,2]) == T_CODI_PRODUTOS ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'O Produto Não é válido '+ alltrim(alltrim(aArray_itens_ordem_producao[nI,2])) +' => '+STR(T_CODI_PRODUTOS,07,0)+' '+ alltrim(aArray_itens_ordem_producao[nI,3]) +', Não Poderá Compor Ele Mesmo',; 'Voce Informou no Cadastro de Composição o Mesmo Produto',; 'Sempre Informar Produtos Diferentes deste Código '+STR(T_CODI_PRODUTOS,07,0),; '.',; '.',; '.'} ) ENDIF ENDIF NEXT *---------------------------------------------------------------------------- IF T_OPERACAO_PRODUTOS == "I" IF EMPTY(alltrim(T_COD_BARRAS_PRODUTOS)) IF SELECT("produtos") != 0 produtos->(DbCloseArea()) ENDIF cQuery:= 'SELECT * FROM produtos ORDER BY CODPRO DESC ' use sql cQuery alias "produtos" new via 'MYSQL' produtos->( DbGoTop()) T_CODI_PRODUTOS := produtos->CODPRO + 1 ENDIF *------------------------------------------------------------------------- IF SELECT("produtos") != 0 produtos->(DbCloseArea()) ENDIF cQuery:= 'SELECT CODPRO, NOMPRO, C_BARRAS FROM produtos WHERE C_BARRAS = ' + TRANSFORMA_SQL(IF(EMPTY(alltrim(T_COD_BARRAS_PRODUTOS)),STRZERO(T_CODI_PRODUTOS,13,0),T_COD_BARRAS_PRODUTOS),"T",14,0) use sql cQuery alias "produtos" new via 'MYSQL' produtos->( DbGoTop()) IF produtos->CODPRO != 0 ERROS_INCONSISTENCIA := ERROS_INCONSISTENCIA + 1 aAdd( aInconsistencias, { 'E',; ALLTRIM(STRZERO(ERROS_INCONSISTENCIA,06,0)),; 'Código de Barras Já Cadastrado',; 'Cód.: ' + str(produtos->CODPRO,07,0) + ' '+ ALLTRIM(produtos->NOMPRO),; '',; '.',; '.',; '.'} ) ENDIF ENDIF IF T_PESO_PADRAO = 0 T_PESO_PADRAO := 1 ENDIF IF T_OPERACAO_PRODUTOS == "I" IF SELECT("produtos") != 0 produtos->(DbCloseArea()) ENDIF cQuery:= 'SELECT * FROM produtos ORDER BY CODPRO DESC ' use sql cQuery alias "produtos" new via 'MYSQL' produtos->( DbGoTop()) T_CODI_PRODUTOS := produtos->CODPRO + 1 ENDIF IF ERROS_INCONSISTENCIA == 0 * GRAVO O CADASTRO DE PRODUTOS ELSE MOSTRAR_INCONSISTENCIA(aInconsistencias,'Inconsistências No Cadastro de Produtos','Tipo|Num|Descricao|Informação|Complemento|*|*|*') ENDIF
  21. Like
    Edu got a reaction from Jmsilva in Exemplo de gravação de arquivo Google Drive ou DropBox   
    Bom dia!
    Eu consegui baixar o arquivo mas fazer upload não deu certo.
    Utilizei o Google Drive.
  22. Like
    Edu got a reaction from kapiaba in hbhttpd - Alguém já usou com Fivewin?   
    Muito Bom!!
    É isso mesmo! Só pra complementar, li sobre o assunto no Wikipedia, que descreve bem como funciona:
    HTTP Daemon is a software program that runs in the background of a web server and waits for the incoming server requests. The daemon answers the request automatically and serves the hypertext and multimedia documents over the internet using HTTP.
    Link: https://en.wikipedia.org/wiki/Httpd
  23. Like
    Edu reacted to kapiaba in Criar uma Tabela usando Table Classe Syntax   
    Vivendo e aprendendo... Show() de bola...


    #include "FiveWin.ch"
    #include 'ttable.ch'

    request Dbfcdx

    PROCEDURE main

    LOCAL x := 1
    LOCAL oTable := nil

    RDDSETDEFAULT( 'dbfcdx')

    doData()

    /*Open An Table With Table Class */
    DEFINE TABLE oTable FILE tsttable NEW

    /*Adding an Index to This Table */
    DEFINE ORDER ON KEY "nome" TAG _1 IN oTable

    /* Force the index Creating*/
    oTable:Reindex()

    WHILE x <= 100

    oTable:ReadBlank()

    oTable:name := Str( x, 20 )
    oTable:street := Str( x + 1, 20 )
    oTable:city := Str( x + 2, 20 )
    oTable:code := x
    oTable:today := Date()
    oTable:pay := ( x % 2 ) == 0

    oTable:Append()

    oTable:Write()

    x ++

    ENDDO

    USE

    RETURN

    PROCEDURE dodata()

    LOCAL oTable

    IF !FILE( 'tsttable.dbf' )

    /* Criar uma Tabela usando Table Classe Syntax */
    /* Create An Table using Table Classe Syntax */
    CREATE DATABASE oTable FILE tsttable.dbf

    FIELD NAME name TYPE CHARACTER LEN 40 DEC 0 OF oTable
    FIELD NAME street TYPE CHARACTER LEN 40 DEC 0 OF oTable
    FIELD NAME city TYPE CHARACTER LEN 40 DEC 0 OF oTable
    FIELD NAME code TYPE NUMERIC LEN 5 DEC 0 OF oTable
    FIELD NAME today TYPE DATE LEN 8 DEC 0 OF oTable
    FIELD NAME pay TYPE LOGICAL LEN 1 DEC 0 OF oTable

    BUILD TABLE oTable

    ENDIF

    RETURN


  24. Like
    Edu reacted to kapiaba in Image in window or dialog   
    http://forums.fivetechsupport.com/viewtopic.php?f=3&t=31388
  25. Like
    Edu got a reaction from kapiaba in xbscript do xHarbour para que serve?   
    Dá uma olhada.
    http://www.xharbour.com/products/xbscript.php
    https://sites.google.com/site/jlcprogrammingstuff/home/tcc/xbscript-to-acces-dbf-files
×
×
  • Create New...