Jump to content
Fivewin Brasil

emotta

Membros
  • Posts

    1,609
  • Joined

  • Last visited

  • Days Won

    88

Everything posted by emotta

  1. Fernando, obrigados a comprar relógio não serão, mas nesse caso terão que controlar com relógio mecanico ou livro ponto. Para usar um controle informatizado tem que se adequar a esta nova legislação, tanto no que diz respeito a software como hardware e esta portaria. EMotta Sistemas
  2. Eu sempre compilei normal, mas gerando o HRB e dentro do fonte executo assim: __HrbRun(cArquivo,aPar[1],aPar[2],aPar[3],aPar[4],aPar[5],aPar[6],aPar[7],aPar,aPar[9]) EMotta Sistemas
  3. Marca, se for RDDSQL, engano seu, nao era pra dar erro. O procedimento está correto. Pode até existir Begin Transaction dentro de uma transacao maior. Veja a descricao do comando: SR_BeginTransaction() Inicia uma transação › Sintaxe SR_BeginTransaction( [] ) ==> NIL › Argumentos ID da conexão retornado por SR_AddConnection() ou objeto da conexão retornado por SR_GetConnection(). Default é a conexão atualmente ativa. › Retorno - › Descrição Inicia uma transação. Com isto, caso ocorra uma queda da estação de trabalho, todas as alterações executadas na base de dados, incluindo inclusões, exclusões e alterações serão revertidas ao status do início da transação. Os dados apenas serão consolidados quando executar SR_CommitTransaction() ou ainda SR_EndTransaction() Caso seja executado SR_RollBackTransaction(), a transação é cancelada e todos os dados voltam ao mesmo estado do início da transação. Chamadas a SR_BeginTransaction() são cumulativas. Isso quer dizer que caso seu aplicativo chame duas vezes a função SR_BeginTransaction(), os dados apenas estarão consolidados na segunda vez que for chamado SR_CommitTransaction() ou quando for chamado SR_EndTransaction() Nota 1: No intervalo entre SR_BeginTransaction() e SR_CommitTransaction(), qualquer comando COMMIT, dbCommit(), SR_GetConnection():Commit() não consolidarão a lateração na base de dados da forma que ocorre em DBF. Apenas no momento em que você executar SR_CommitTransaction() o commit realmente acontecerá, visto que até lá você está com a transação aberta. Nota 2: Diversos bancos de dados, como Oracle e Postgres, não deixam os dados alterados durante uma transação visíveis a outras estações. Apenas depois do SR_CommitTransaction() os dados estarão visíveis. Isso se chama "Read Committed" ou ainda "Leitura limpa". Em outros bancos, como MySQL e MSSQL Server, cada alteração fica visível a outras estações mesmo antes do término da transação. Isto se chama "Read Uncommitted" ou "Leitura suja". Nota 3: Caso a aplicação seja encerrada durante uma transação pelo comando QUIT ou por um erro de execução, os dados não serão perdidos, pois o SQLRDD executa automaticamente o SR_EndTransaction() neste caso. Caso você queira o comportamente contrário, você deve escrever sua própria rotina de tratamento de erros ou ainda utilizar TRY/CATCH para executar o SR_RollBackTransaction(). Este caminho foi escolhido por ser o que mais se aproxima da compatibilidade total com RDDs DBF. › Exemplos USE TABELA1 NEW VIA "SQLRDD" USE TABELA2 NEW VIA "SQLRDD" USE TABELA3 NEW VIA "SQLRDD" SR_BeginTransaction() TABELA1->CODE := 1 TABELA1->( dbCommit() ) TABELA2->( dbAppend() ) TABELA3->( __zap() ) If alert( "Desfazer as alterações ?", { "Sim", "Não" } ) == 1 SR_RollBackTransaction() Else SR_CommitTransaction() EndIf EMotta Sistemas
  4. Fernando, se está fazendo ponto para ser registrado no computador nao aconselho a continuar, isso será proibido em 12 meses de acordo com a portaria do MTE publicada no dia 25/08. Veja portaria na integra: http://www.mte.gov.br/legislacao/portarias/2009/p_20090821_1510.pdf abraço, EMotta Sistemas
  5. Diógenes, tem uma forma mais simples e sem alterar o errorsys, se for xharbour faça o seguinte: DbSelectArea( "Menu" ) cReport := Trim( Menu->NomeFuncao ) Try Eval( {|| cReport } ) Catch Alert(" Funcao definida errado. "+cReport End Caso seja clipper ou Harbour faça o seguinte: bError:= ERRORBLOCK( {|oError| Break(oError)} ) BEGIN SEQUENCE Eval( {|| cReport } ) Recover oError Alert(" Funcao definida errado. "+cReport End ErrorBlock(bError) // volta normal Abraços, Eduardo Motta EMotta Sistemas
  6. Yury, obrigado pelas dicas, mas segue algumas observações: 1) TMail funciona com o Microsoft Outlook, inclusive eu uso ele e envio email com nosso sistema por ele. 2) A classe já funciona em vários clientes, somente neste está com problema, mas voce deu uma dica boa, talvez a falha esteja no caminho do arquivo anexo. Alguma restrição na rede pode estar fazendo isso, vou testar. Mais uma vez obrigado, se tiver mais alguma dica me avise. Abraço, Eduardo Motta EMotta Sistemas
  7. Em nossao rotina padrão de relatórios temos a opcao de envio de email, onde é gerado um HTML. Usamos a funcao TMail (Define Mail) do fivewin para abrir o email e anexar este HTML. Funciona muito bem em praticamente todos os clientes, mas em um especifico o email nao abre. Nao da nenhum tipo de erro, simplesmente o email nao abre, isso em todas as máquinas. Ja verificamos Anti-Virus, outlook na maquina, etc e nada. Detalhe, na rotina padrao de relatório tem tambéma opcao de gera PDF. Gerando o PDF e abrindo ele se consegue enviar email. Se alguem ja tiver passado por isso ou tem alguma ideia do que pode ser me avise. Obrigado, Eduardo Motta xHarbour Comercial 0.99.7 / xBuild/ Fivewin (Dez/2006) EMotta Sistemas
  8. Em nossao rotina padrão de relatórios temos a opcao de envio de email, onde é gerado um HTML. Usamos a funcao TMail (Define Mail) do fivewin para abrir o email e anexar este HTML. Funciona muito bem em praticamente todos os clientes, mas em um especifico o email nao abre. Nao da nenhum tipo de erro, simplesmente o email nao abre, isso em todas as máquinas. Ja verificamos Anti-Virus, outlook na maquina, etc e nada. Detalhe, na rotina padrao de relatório tem tambéma opcao de gera PDF. Gerando o PDF e abrindo ele se consegue enviar email. Se alguem ja tiver passado por isso ou tem alguma ideia do que pode ser me avise. Obrigado, Eduardo Motta xHarbour Comercial 0.99.7 / xBuild/ Fivewin (Dez/2006) EMotta Sistemas
  9. Uso a 2.7 EMotta Sistemas PS: Achei os fontes, vou analisar. Obrigado. Editado por - emotta on 15/05/2009 17:31:12
  10. Voce poderia me informar qual o exemplo? Não consegui encontrar ele []s EMotta Sistemas
  11. Fala pessoal! Estou usando a classe tword e gostaria de imprimir etiquetas, alguem tem algum exemplo de como fazer? EMotta Sistemas
  12. Fala pessoal! Estou usando a classe tword e gostaria de imprimir etiquetas, alguem tem algum exemplo de como fazer? EMotta Sistemas
  13. FRename nao da erro. Quando existe a falha ao renomear ela retorna -1 e se da certo retorna 0. Segue abaixo descritivo da funcao. FRename() Renames a file. Syntax FRename( , ) --> nSuccess Arguments This is a character string holding the name of the file to rename. It must include path and file extension. The path can be omitted from when the file resides in the current directory. This is a character string with the new file name including file extension. Drive and/or path are optional. Return The function returns a numeric value. 0 indicates success and -1 is returned for failure. The cause of a failure can be determined using function FError() Description The FRename() function changes the name of a file. The file is searched in the current directory only, unless a full qualified file name including drive and path is specified. Directories specified with SET DEFAULT and SET PATH are ignored by FRename(). If is specified as a full qualified file name and its directory differs from the one of , the source file is moved to the new directory and stored under the new file name. When the new file either exists or is currently open, FRename() aborts the operation. Use the File() function to test for the existence of . A file must be closed before attempting to rename it. Info See also: CLOSE, ERASE, FCReate(), FErase(), FError(), File(), RENAME Category: File functions , Low level file functions Source: rtl\philes.c LIB: xhb.lib DLL: xhbdll.dll Example // The example changes the name of an existing Log file // for archival purposes and creates a new Log file PROCEDURE Main LOCAL nLogs, nHandle IF File( "Logfile.txt" ) nLogs := 0 DO WHILE File( "Logfile." + Padl( nLogs, 3, "0" ) ) nLogs ++ IF nLogs > 999 nLogs := 0 EXIT ENDIF ENDDO IF FRename( "Logfile.txt", ; "Logfile." + Padl( nLogs, 3, "0" ) ) == -1 ? "Error renaming file:", FError() ENDIF ENDIF nHandle := FCreate( "Logfile.txt" ) IF FError() == 0 FWrite( nHandle, "Created: " + DtoS(Date()), 17 ) FClose( nHandle ) ENDIF RETURN EMotta Sistemas
  14. Willian, se nao for pedir muito, poste umas telas do sistema para vermos como ficou... abraço, EMotta Sistemas
  15. Vitor, recursividade é quando uma funcao chama a mesma funcao. No caso do exemplo a funcao soma vai chamando a mesma funcao soma até a variavel atingir determinado valor (no caso 6). citação:rapaz... boiei.. que bicho é esse???? me explica ae vitor id=quote>id=quote>EMotta Sistemas
  16. Uma solucao seria usar o Begin Sequence... Montei este exemplo, veja se resolve pra vc. Function Main() Local nI := 0 Begin Sequence Soma(@nI) End ? nI Return Function Soma(nVal) If nVal > 5 ? "Soma => Executando break" Break EndIf nVal++ ? "soma => "+Str(nVal,3) Soma(@nVal) Return EMotta Sistemas
  17. É multi-Thread? Se for use: KillAllThreads() Se for somente funcao chamando a mesma funcao nao tem como, tem que ir retornando na sequencia. Abraço, Eduardo Motta EMotta Sistemas
  18. IP nao é definido por CEP. O que acontece é que cada provedor tem uma faixa de IPs que ela compra ou aluga, há quem se paga isso quando COMPRA a faixa eu nao sei. A configuracao de IPs também segue uma regra, por exemplo, a faixa 127.x.x.x serve para testes internos, 192.x.x.x para rede interna, 10.x.x.x intranets. Nao me lembro muito bem pois só vi isso na faculdade. O que tenho CERTEZA é que IP não é definido por CEP, pois cada país tem sua regra de endereçamento postal e teria que se existir uma CENTRAL para que o IPs nao se tornem repetidos. Deixando para os provedores nominarem os IPs com uma faixa para eles trabalharem sem duvida é a forma mais viavel. Quanto a este pirata deve ser um frustrado na carreira. Um pangaré de funcionário ou um autonomo com empresa a beira fa falencia. Abraços, Eduardo Motta EMotta Sistemas
  19. Acho que a melhor forma é amarrar pela Razao Social do cliente, ou seja, um outro pode até copiar o sistema e usar, mas a razao social liberada aparecerá de outra empresa. Eu amarro da seguinte forma, o cliente cadastra a razao social da empresa e germamos uma KEY de 20 numeros, calculados a partir desta razao e de uma data limite. De tempos em tempos a data expira e ele deve solicitar nova chave. Para evitar que o cliente altere a data do micro e continue usando eu nao permito que ele gere nota fiscal com data maior que a liberada e também pode-se fazer outras em outros pontos estratégicos. Abraço, Eduardo Motta EMotta Sistemas
  20. Megatron nao era a empresa do Ramalho em seus livros de clipper? hehehe EMotta Sistemas
  21. Serve para ler um arquivo do tipo .INI ex: GetPvProfString("Sessão","Variavel","DEFAULT",cIniFile ) => retorna o conteudo, caso nao exista retorna o que está no 3o parametro, no caso a string DEFAULT. Exemplo do arquivo .INI: [sessao] Variavel=Valor Faça um teste e divirta-se. Esta função é do FIVEWIN abraço, Eduardo Motta citação:Ola amigos, alguem sabe o que essa função faz? é do fivewin ou xharbour? GetPvProfString Evaldo Wagner FiveWin2.6 Clipper5.2e xHarbour 0.99.3,xHarbour for Linux Blinker7.0 @say Pelles C xDev 0.28 evaldowl@terra.com.br id=quote>id=quote>EMotta Sistemas Editado por - emotta on 27/02/2009 15:11:50
  22. Completando a mensagen acima, o foco poderia ser: - Um cara que nao é programador lendo o livro (x)Harbour nivel I já conseguiria fazer um sistema simples modo console. - Após o sistema estar funcionando lendo o Fivewin nivel I já conseguiria colocar o sistema em modo windows. - Depois lendo o (x)Harbour nivel II e Fivewin nivel II já conseguiria usar recursos avançados, tudo isso focando sempre um caso real, no caso um SISTEMA. EMotta Sistemas
  23. Gilmer, em minha opiniao primeiro teremos que separar se o livro será de Fivewin ou (x)Harbour. Se for somente de fivewin teremos que imaginar que conceitos de programacao, rdd, criacao de tabelas, etc, nao faria parte do livro. O que faria seria somente os comandos e funcões que são da biblioteca fivewin. Este livro poderia ter 2 versões: a primeira o arroz-com-feijão e a segunda nivel avançado (SUGESTÃO ESSA QUE Jà FOI DADA EM MENSAGENS ACIMA). Um livro de (x)Harbour em que conceitos da linguagem estivesse explicado poderia ser feito em seguida. Conceitos como variaveis, tabelas, etc, tudo isso seria detalhado em outro livro. Também poderia ter 2 livros, um arroz-com-feijão e outro avançado como usando recursos de internet (socket), multi-threads, etc... Para ler o livro sobre fivewin primeiro a pessoa teria que saber os conceitos do livro de (x)Harbour, ou seja, aprender a programar para depois usar a BIBLIOTECA fivewin, pois é o que FIVEWIN na verdade é. Falo sempre do nivel 1 e 2 porque muita gente precisa aprender e desenvolver algo basico de inicio, é assim que se começa, muitos aqui devem ter começado com sistema simples para locadora (ou nao?). Então primeiro a pessoa aprende (x)Harbour (caso nao conheça o CLIPPER ainda). Depois passaria a usar o Fivewin. Ãpós isso aprenderia conceitos avançados de (x)Harbour e depois do Fivewin (ou o contrário). Acho que dividindo assim nao teriamos uma BIBLIA enorme com com tantas informações que o programador iniciante nao conseguiria assimilar logo após a leitura do livro e desanimaria de usar esta fantastica tecnologia (fivewin e [x]Harbour). Creio que o foco deveria ser o seguinte, lendo o livro (x)Harbour I ele já conseguiria fazer um sistema de locadora em modo console. Após isso, lendo o livro Fivewin I já conseguiria fazer o sistema de locadora "for windows". Lendo os níveis II dos livros ele já conseguiria integrar recursos como captura de impressão digital, integração de filiais, etc, etc, etc... É uma sugestão e já me coloco a disposição para colaborar neste projeto, conte comigo Gilmer. PS: Pessoal, se teve algo que sugeri aqui e já foi dito e nao fiz referencia já peço desculpas, pois nao li todas as mensagens. Abraços, Eduardo Motta EMotta Sistemas
  24. para conhecer a Angelina Jolie vc terá que pedir permissao ao Brad Pitt antes... kkkk Parabens pelo aplicativo, show de bola ! Abraço, Eduardo Motta citação:KKKKKKKK é a ivone nao !!!!! Mas se for, apresenta pra nóis tbm uai ... kkkkkkkkkkkkkkkkkkkkkkkkkk (Com todo respeito é craro) Um Xharbraço. Uso Fwh 8.4 (xharbour 1.1) e Xmate Para Compilar Impactus Automação Comercial jef2_timber@hotmail.com (91)-3238-7012 Belem-PA id=quote>id=quote>EMotta Sistemas
  25. PERSONAL, como falei, crie um folder dentro da dialog. EMotta Sistemas
×
×
  • Create New...