Jump to content
Fivewin Brasil

oribeiro

Membros
  • Posts

    1,291
  • Joined

  • Last visited

  • Days Won

    35

Everything posted by oribeiro

  1. João, Valeu pela sugestão, mas eu quero um comando para reabrir um arquivo de memória para ver verificar se o comando FErase() o apagou mesmo da memória ou não.
  2. Obrigado a todos pela ajuda. Estou ainda tentando descobrir porque o meu dbdrop() trava o sistema. Vocês sabem se o comando FErase("MEM:Clientes") faz a mesma função do dbDrop("MEM:Clientes") ? O comando FErase() não trava, mas eu não sei se ele está mesmo apagando o arquivo na memória. Tentei fazer um teste, mas depois que eu fecho o arquivo de memória Clientes->(DBCLOSEAREA()) não sei mais como reabrí-lo para ver se ele ainda está lá.
  3. Notei que você está utilizando em vários pontos do seu sistema, porque será que o meu está travando quando utilizo o SQLRDD ? O mesmo programa, sem SQLRDD, vai que vai. Tem alguma idéia?
  4. Valeu Sputnik, Em vez de "Index on ... memory", eu uso "Index on... temporary" mas acho que o resultado é o mesmo. Mas como você apaga o arquivo da memória depois de usá-lo? Eu utilizo o dbdrop("mem:arquivo") mas com SQLRDD o sistema está travando justamente nesse comando.
  5. Pessoal, Uso muito o hb_createtemp() no meu sistema e com DBFCDX eu não tenho problema, mas quando migrei para SQLRDD passou a dar erro: No hb_createtemp eu inclui o parâmetro "DBFCDX" e funcionou, mas o dbDrop() trava a aplicação. Uso assim: ///////////////////////////////////////////////// // Arquivo Temporário, no xHarbour 1.2 Somente // // Cria o Arquivo na memória (não usa o Disco) // ///////////////////////////////////////////////// Hb_DbCreateTemp("Clientes",{{ "Nombre", "C", 40, 0 },; { "Direccion", "C", 50, 0 },; { "Telefono", "C", 12, 0 },; { "Edad", "N", 2, 0 },; { "Productos", "C", 10, 0 },; { "Nivel", "N", 2, 0 }}, "DBFCDX") // Seleciona o Arquivo criado na memória e usa os comandos comuns de tratamento dos registros // Select("Clientes") OADbAppend() replace nombre with "Oscar Ribeiro" replace Direccion with "RUA MARCIA PIERRONI, 999" replace Telefono with "55 11 4025-1234" OADbAppend() replace nombre with "Marco Ribeiro" replace Direccion with "RUA MARCIA PIERRONI, 999" replace Telefono with "55 11 4025-1234" OADbAppend() replace nombre with "Oscar Ribeiro Neto" replace Direccion with "RUA MARCIA PIERRONI, 999" replace Telefono with "55 11 4025-1234" browse() // Cria o indice do arquivo também na memória // index on nombre to clientes Seek "Marco Ribeiro" browse() // Fecha o arquivo na memória // Clientes->(DBCLOSEAREA()) // Apaga o arquivo da memória // dbdrop("MEM:Clientes")
  6. Gracias Cristoban, Estou conseguindo construir o exe do exemplo gmail sem problemas, mas não está funcionando. Vou aguardar os seus testes com a function hb_JsonDecode por causa das diferenças entre Harbour y xHarbour.
  7. Estou apenas compilando esse exemplo simples: #include "Fivewin.ch" REQUEST HB_CODEPAGE_PTISO REQUEST HB_LANG_PT //Para gerar as credencias pelo google vá ao site: //https://cloud.google.com/?hl=pt-br //1-Click sobre a palavra CONSOLE no canto superior direito //2-Faz o login com seu_email@gmail.com //3-Barra lateral esquerda, posicione sobre "Apis e Servicos" e // seleciona "Credenciais" no sub menu. //4-Crie uma credencial para seu projeto //5-faça donwload do arquivo .json //copie o "Id do Cliente" em oDrive:cClientId //copie a "Chave Secreta do Cliente" para oDrive:cSecretId Static cKeySecret := "???????imdPvdApiQgbd3mwyAY" // chave oasys Static cClientId := "??????????????-??vbq15j2gm4kalevad82jqcpg4ma8kp.apps.googleusercontent.com" // id oasys Static oDrive //----------------------------------------------------------------------------// Function Main() HB_CDPSELECT("PTISO") //OU HB_SetCodePage("PTISO") // para ordenacion - requiere codepage.lib SET CENTURY ON UploadMyFile() Return nil //----------------------------------------------------------------------------// Function UploadMyFile() local cFile := "" local lSw := .F. cFile := cGetFile32( "All Files (*.*) |*.*|", "Select a File to Upload" ) MsgStop(cFile) if !Empty( cFile ) oDrive := TGDrive():New( , .T., .F. ) //credenciais geradas pelo google oDrive:cJSonFile := "c:\fwh\samples\client_oasys.json" oDrive:cClientId := cClientId oDrive:cSecretid := cKeySecret // lSw := oDrive:Activate() XBrowse(oDrive) if lSw if oDrive:Authorize() oDrive:ListFiles() //carrega aFilesLists XBrowse( oDrive:aFilesLists ) If oDrive:UpLoadFileG( cFile, , .T. ) // Last parameter .T., create shared link MsgInfo("Arquivo enviado com sucesso !!!","UpLoad") Else MsgStop(oDrive:cError,"UpLoad") Endif endif else MsgStop("Erro ao autenticar as credenciais do Google.","UpLoad") endif endif Return nil No Buildx.bat eu inclui essas linhas: echo %fwh%\lib\googlex.lib %fwh%\lib\googlex.lib + >> b32.bc echo %fwh%\lib\libeay32.lib %fwh%\lib\libeay32.lib + >> b32.bc echo %fwh%\lib\libssl32.lib %fwh%\lib\libssl32.lib + >> b32.bc echo %hdirl%\hbcurl.lib + >> b32.bc echo %hdirl%\hbssl.lib + >> b32.bc echo %hdirl%\tip.lib + >> b32.bc echo %hdirl%\tipssl.lib + >> b32.bc
  8. Não dá mais erro de compilação com o Googlex.Lib usando o xHarbour. Mas não está dando erro de certificação ao executar.
  9. Obrigado pela dica. Eu fiz o seguinte: Coloquei um skip() e logo em seguida um skip(-1) logo após o DbGoTo() e funcionou. Parece que o SQL carregou novamente os relacionamentos. Você sabe qual é o comando nativo em SQL que eu posso dar em SQLRDD para fazer um GO TO num determinado registro? Quero fazer essa tentativa para ver o resultado. Select(DbCliE) DBGOTO( wregistro ) ( DbSkip(), DbSkip(-1) ) // Essa gambiarra resolveu o problema do Set Relation após um GoTo.
  10. Notei que o comando DBGOTO() não traz os relacionamentos da tabela, então, precisei fazer uma gambiarra montando um DBSEEK() sobre o registro que já estava ativo. Assim: Select (DbCliM) Set Order To 1 DbGoTop() ***** * Relacionamentos Mestre x Endereços * Select (DbCliE) Set Order To 1 DbGoTop() Set Relation To (DbCliE)->NR_CL Into (DbCliM) ... ... ***** * REGISTRO PONTEIRO DE IMPRESSAO * Select SRT && --> Registros Classificados SRT->(DBSKIP()) STOR SRT->registro TO wregistro Select(DbCliE) (DbCliE)->(DBGOTO( wregistro )) (DbCliE)->(DbSeek( (DbCliE)->NR_CL )) // 06/06/18: Linha necessária porque o comando DBGOTO() não traz os relacionamentos da tabela. Alguém tem outra idéia para que eu não precise alterar todos os programas que utilizo o DBGOTO()?
  11. Pessoal, Converti todo o meu sistema para MariaDB usando o SQLRDD. Hoje notei que alguns relatórios que utilizan SET RELATION TO não fazem mais a relação entre as tabelas como faziam usando DBFCDX. Alguém já passou por isso? Existe alguma forma de usar o mesmo SET RELATION TO no SQLRDD sem ter que user instrução SQL?
  12. Que pena. Alguma previsão para tê-lo em xHarbour? Há em xHarbour alguma forma de gravar backup em outro disco virtual, tal como DropBox, etc.?
  13. Pessoal, Tentei compilar esse programa simples para fazer upload de arquivos no Google Drive, mas está dando erro: Onde estou errando? Não funciona com xHarbour? #include "Fivewin.ch" REQUEST HB_CODEPAGE_PTISO REQUEST HB_LANG_PT //Para gerar as credencias pelo google vá ao site: //https://cloud.google.com/?hl=pt-br //1-Click sobre a palavra CONSOLE no canto superior direito //2-Faz o login com seu_email@gmail.com //3-Barra lateral esquerda, posicione sobre "Apis e Servicos" e // seleciona "Credenciais" no sub menu. //4-Crie uma credencial para seu projeto //5-faça donwload do arquivo .json //copie o "Id do Cliente" em oDrive:cClientId //copie a "Chave Secreta do Cliente" para oDrive:cSecretId Static cKeySecret := "Hbpq8imdPdvApiQtbd5wysAY" // chave oasys Static cClientId := "123567890123-07vbq15j2gm4kalevad82jqcpg4ma8kp.apps.googleusercontent.com" // id oasys Static oDrive //----------------------------------------------------------------------------// Function Main() HB_CDPSELECT("PTISO") //OU HB_SetCodePage("PTISO") // para ordenacion - requiere codepage.lib SET CENTURY ON UploadMyFile() Return nil //----------------------------------------------------------------------------// Function UploadMyFile() local cFile := "" local lSw := .F. cFile := cGetFile32( "All Files (*.*) |*.*|", "Select a File to Upload" ) MsgStop(cFile) if !Empty( cFile ) oDrive := TGDrive():New( , .T., .F. ) //credenciais geradas pelo google oDrive:cJSonFile := "c:\fwh\samples\client_oasys.json" oDrive:cClientId := cClientId oDrive:cSecretid := cKeySecret // lSw := oDrive:Activate() XBrowse(oDrive) if lSw if oDrive:Authorize() oDrive:ListFiles() //carrega aFilesLists XBrowse( oDrive:aFilesLists ) If oDrive:UpLoadFileG( cFile, , .T. ) // Last parameter .T., create shared link MsgInfo("Arquivo enviado com sucesso !!!","UpLoad") Else MsgStop(oDrive:cError,"UpLoad") Endif endif else MsgStop("Erro ao autenticar as credenciais do Google.","UpLoad") endif endif Return nil ┌────────────────────────────────────────────────────────────────────────────┐ │ FiveWin for xHarbour 18.02 - Feb. 2018 xHarbour development power │▄ │ (c) FiveTech 1993-2018 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█ └────────────────────────────────────────────────────────────────────────────┘█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Compiling... xHarbour 1.2.3 Intl. (SimpLex) (Build 20180311) Copyright 1999-2018, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'oagmail.prg' and generating preprocessed output to 'oagmail.ppo'... Generating C source output to 'oagmail.c'... Done. Lines 69, Functions/Procedures 3, pCodes 153 Embarcadero C++ 7.30 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc. oagmail.c: Turbo Incremental Link 6.80 Copyright (c) 1997-2017 Embarcadero Technologies, In c. Error: Unresolved external '_HB_FUN___CLSLOCKDEF' referenced from C:\FWH\LIB\GOO GLE.LIB|Tgdrive Error: Unresolved external '_HB_FUN___CLSUNLOCKDEF' referenced from C:\FWH\LIB\G OOGLE.LIB|Tgoogle Error: Unresolved external '_HB_FUN_HB_HHASKEY' referenced from C:\FWH\LIB\GOOGL E.LIB|Tgoogle Error: Unresolved external '_HB_FUN_FW_GT' referenced from C:\FWH\LIB\GOOGLE.LIB |Tgoogle Error: Unresolved external '_HB_FUN___HBEXTERN__HBSSL__' referenced from C:\FWH\ LIB\GOOGLE.LIB|Tgoogle Error: Unable to perform link * Linking errors * C:\FWH\samples>
  14. A rotina funcionando está aqui: http://forums.fivetechsupport.com/viewtopic.php?f=3&t=35692&p=212601#p212601 Obrigado a todos pelas boas sugestões.
  15. Obrigado pela dica. Eu tentei isso, mas não funcionou. Você tem outra sugestão?
  16. Estou com o mesmo problema. Depois de ativado o filtro não consigo mais cancelá-lo e voltar a mostrar a matriz original no xBrowse. Não encontrei nenhum exemplo de uso dessa função: ArrayIncrFilter() Alguém descobriu como se fazer isso?
  17. Obrigado pela dica. Nessa tela eu tenho um botão que avança e outro para recuar os registros, então eu coloquei o refresh nesses botões. Com isso ele não some com os objetos da tela. O único inconveniente é que se o usuário está avançando registros um após outro a tela fica piscando a cada refresh da folder e fica muito estranho e mais lento. É um bug do FolderEx que não tem no Folder normal. Vamos ver se o Linares resolve nas próximas versões.
  18. Obrigado João, Vou estudar esses exemplos e procurar entender onde está a falha nos meus FolderEx.
  19. Muito legal esse FolderEx. Troquei o oFld:SetPrompts({...}) por oFld:aPrompts[n] e funcionou. Só tem um probleminha: - Quando se tem "REDEFINE CHECKBOX oChk" ou "REDEFINE RADIO oRad" dentro de uma FolderEx e você em algum momento precisa dar um oChk:Enable() / oRad:Enable() ele bagunça boa parte dos outros campos da folder. Isso só acontece se você utiliza algum tema do windows. Se for Windows Clássico não apresenta esse problema. Alguém mais notou isso?
  20. A idéia desse comando oFld:SetPrompts() é mudar o nome da Folder em tempo de execução.
  21. Certo, coloqueir "TFolderex" em todos os recursos. Está ficando bonito. Risos. Qual comando no FolderEx entrou no lugar do SetPrompts() do Folder? Exemplo: oFld:SetPrompts({"&1. Principal", "&2. Detalhes", "&3. Foto / Resumo", iif(PVertical="Veiculos","&4. Veículos Novos",""), ""})
  22. REDEFINE FOLDEREX oFld ID 104 of oDlgP UPDATE; PROMPT "P&rincipal","&Detalhe","&Endereços","Gr&upos","Contatos"; DIALOGS "CAD_CLI_1","CAD_CLI_2","CAD_CLI_3","CAD_CLI_4","CAD_CLI_5" Eu simplesmente mudei de Folder para FolderEx e ficou bonita a tela, mas o sistema não deixa mais mudar de folder; clico em Detalhe, Endereço, etc e ele continua fixo na folder Principal. Obrigado pela orientação.
  23. Pessoal, Meu sistema inteiro está com Folder e eu quero mudar para FolderEx. Vai dar muito trabalho? Alguém fez isso? Valeu a pena? Obrigado,
×
×
  • Create New...