Jump to content
Fivewin Brasil

dablys

Membros
  • Posts

    42
  • Joined

  • Last visited

dablys's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Oi Amigos do Five, pois é, baixei e compilei, mas a LIB resultante não ficou muito 100%, pois algumas funcionalidades não rodando bem, como por exemplo, os relatórios em VDOSPRN dão erro ao gerar METAFILEs, e a VREPORT está deslocando a imagem dos relatórios todas para a direita, começando sempre no meio da página no preview. Também não executou bem a classe de Mensagens rotativas da VLIB. Ao compilar gera um arquivo ERRO.VAG, onde podemos ver o que compilou bem ou não. O fato é que os arquivos originariamente escritos em linguagem C++ estão retornando muitos WARNINGs, e até alguns erros. O eMetafil.c por exemplo retornou um erro, que tive que contornar compilando o harbour deste com -D__XPP__ , o que passou, mas aleijou o coitado... rsss... não funcionando os METAFILES gerados pela VLIB. A include Vdialog.ch não veio com os fontes, então eu adaptei copiando a DIALOG.CH do Fivewin para VDIALOG.CH e compilou... porém... Detalhe... compilei com BCC582 ... será que só aceita BCC55? Utilizei como testes o antigo exemplo da VLIB... VLIB.EXE Se alguém conseguiu compilar perfeito, informe pra gente a receita correta, por favor. Agradecido, Dablys Duarte Andrade Programador Clipper 5.3, Blinker, Fivewin, xHarbour Governador Valadares - MG MSN: Lucklogan@msn.com Email: dablysandrade@yahoo.com.br Editado por - dablys on 15/09/2010 08:43:35
  2. Oi galera bacana do Five, Bem, sigiro uma solução relativamente fácil para o problema do excesso da quantidade de campos no Gerador do Kapiaba... É só ler os campos para uma matriz com dbstruct() por exemplo. Depois poderá alimentar um ListBox ou xBrowse com a lista total de campos disponíveis e pré-selecionar os que desejar em uma coluna com objetos CheckBox. Ao marcar um campo em seu CheckBox, será armazenado um número incremental sequencial, na ordem do selecionamento, para que o gerador saiba depois a ordem de apresentação dos campos no ListBox e no diálogo os SAY´s e GET´s. Os campos selecionados irão para o gerador e entrarão no código na sequência exata da seleção realizada. Isso ficaria muito bom se fosse feito,,, Abraço a todos, Dablys D. Andrade Programador Clipper 5.3, Blinker, Fivewin, xHarbour Governador Valadares EMail: dablysandrade@yahoo.com.br MSN : lucklogan@msn.com
  3. dablys

    VIDA LINK

    Ok Ok amigos do Five, estou enviando um link para baixar minhas rotinas de exemplo em CLIPPER para VIDALINK. ATENÇÃO! Está ZIPADA e com senha. Me enviem email para LUCKLOGAN@MSN.COM ou DABLYSANDRADE@YAHOO.COM.BR que envio de volta a senha do arquivo .ZIP http://www.4shared.com/file/k5QE0Doy/VIDALINK.html T+ Dablys D. Andrade Clipper 5.3, Blinker, Fivewin, xHarbour Governador Valadares - MG
  4. Oi galera gente boa do Five, olha eu aqui de novo! Terminei mais um Skin para a Tskin, e resolvi postar um pacote de testes para vocês com todos já existentes até agora... Aproveitem... http://www.4shared.com/file/QN2N5cuP/Tskin_novos.html Dablys D. Andrade Programador Clipper 5.3, Fivewin, xHarbour MSN: Lucklogan@msn.com Governador Valadares - MG
  5. Para quem não tem o exemplo da TSKIN do Lailton, pode pegar o link aí... http://www.4shared.com/file/4W08Vmhi/tskin.html Ps: Para utilizar o novo SKIN que criei, peguei a pasta DABLYS1_SKIN e renomeie ela com o nome BLACK... Depois substitua a pasta BLACK original no exemplo de uso da classe TSKIN do Lailton pela minha, com o mesmo nome BLACK... Por fim, é só executar o exemplo SIMPLEX.EXE e só, sem precisar compilar nada, somente trocando as imagens BITMAP... Valeu galera, T+ Dablys D. Andrade Programador Clipper 5.4, Fivewin, xHarbour Governador Valadares - MG Editado por - dablys on 13/07/2010 12:15:43
  6. É isso mesmo ICO, São os arquivos BITMAP que funcionam como o SKIN NOVO... Você coloca a pasta com as imagens BITMAP na pasta onde irá executar seu aplicativo de testes. Coloque o nome que quiser na pasta com as imagens. Em um segundo momento você irá utilizar qualquer exemplo do FIVEWIN que usa a classe TSKIN do Lailton, tomando o cuidado de apontar a função que ativa o SKIN na classe com o nome exato da pasta destino com as imagens BITMAP... E aí a classe irá fazer uso das imagens BITMAP na pasta que você elegeu para tanto, entendeu? Tenta lá... T+
  7. Bem gente, só para ficar bem esclarecido, eu não alterei a classe, nem fiz nenhuma versão. Eu somente modifiquei as imagens BITMAP que são aproveitadas pela classe, seja a versão do Lailton ou a do Fivewin Nativo. Concluindo, não acho que estou ferindo nenhum direito autoral, somente criando imagens SKIN para incrementar o uso da classe,,, só trabalhando com os BITMAPs... ok? Obrigado pela compreensão, Dablys D. Andrade.
  8. Oi galera gente boa do Five, resolvi brincar um pouco com a classe TSKIN do Lailton e percebi que podemos criar qualquer layout de SKIN que desejarmos. Então, fiz um exemplo novo e postei no 4shared para que possam experimentar... http://www.4shared.com/account/file/jtsX2cOO/Dablys1_skin.html NOVOS SKINs ( Incluindo AZUL3d e METALICO de Dablys)... http://www.4shared.com/file/QN2N5cuP/Tskin_novos.html Dablys Duarte Andrade Programador Clipper 5.3, Fivewin, xHarbour Editado por - dablys on 13/07/2010 11:11:16 Editado por - dablys on 13/07/2010 11:12:28 Editado por - dablys on 15/07/2010 21:28:48
  9. Oi galera gente boa do Five, resolvi brincar um pouco com a classe TSKIN do Lailton e percebi que podemos criar qualquer layout de SKIN que desejarmos. Então, fiz um exemplo novo e postei no 4shared para que possam experimentar... http://www.4shared.com/account/file/jtsX2cOO/Dablys1_skin.html NOVOS SKINs ( Incluindo AZUL3d e METALICO de Dablys)... http://www.4shared.com/file/QN2N5cuP/Tskin_novos.html Dablys Duarte Andrade Programador Clipper 5.3, Fivewin, xHarbour Editado por - dablys on 13/07/2010 11:11:16 Editado por - dablys on 13/07/2010 11:12:28 Editado por - dablys on 15/07/2010 21:28:48
  10. dablys

    VIDA LINK

    Já trabalhei com uma rotina para o VIDALINK, mas somente em CLIPPER puro. Se desejar entrar em contato, me procure no MSN... Meu MSN: LUCKLOGAN@MSN.COM Dablys Duarte Andrade Programador Clipper 5.3, Fivewin 2.6, xHarbour Governador Valadares - MG
  11. Então galera bacana do Five, alguém tentou compilar estes fontes da VLIB liberada? Eu baixei e compilei, porém, minha LIB final não ficou perfeita... ao gerar o exemplo original da VLIB, compila, mas dá erros, principalmente nas classe de relatórios, todas elas... Além disso, todos aqueles fontes complementares em .C e uns 2 ou 3 deles estão apresentando erros de compilação com BCC55... e aí? E agora, quem poderá nos salvar? OBS: Não importando a versão de FIVEWIN, o resultado é o mesmo... Dablys Duarte Andrade Programador Clipper 5.b, Blinker, Fivewin, xHarbour
  12. Beleza, gente bacana do Five? eu também fiquei curioso com esta biblioteca achada no fórum Internacional. É o seguinte: 1) na pasta include contida no MRFTools.ZIP tem vários includes para compilar junto aos exemplos da pasta PRGS, porém falta 1 include, mas este na verdade é o mesmo que MRFBot.Ch, penso. Por isso, copie o MRFBot.Ch como MISFUNC.Ch e acrescente a classe correspondente do exemplo ao fim do fonte principal. As clases estão na pasta CLASES. Também tem os arquivos .RES na pasta RES... Para facilitar a junção de tudo isso, você pode usar um gerenciador de projeto e compilação como o xMate, xDev ou outro que tive mais acostumado. Eu particularmente, modifico o Buildx.bat que vem na própria pasta ..\Samples do Fivewin... Valeu amigos, e até a próxima!! Dablys Duarte Andrade Programador Clipper53b, Blinker, xMate, FiveWin 2.6 xHarbour Governador Valadares, Minas Gerais MSN: lucklogan@msn.com
  13. Oi rapazeada bacana do Five, tenho uma rotina legalzinha para fazer essas atualizações de DBF automaticamente. Ela tem 2 etapas... uma que fica por fora em um pequeno executável que lê e grava todas as estruturas dos arquivos DBF em um diretório corrente para dentro de um arquivo chamado ARQUIVO.ARQ Em uma segunda etapa, uma função de tratamento é acionada de dentro de seu aplicativo principal toda vez que encontrar a presença do ARQUIVO.ARQ no diretório, e finalmente, atualizar as estruturas de todos os arquivos DBF automaticamente. Código do aplicativo EXE externo gerador do ARQUIVO.ARQ : ========================================================= ***************************************** * Utilitário leitor de Estruturas DBF: * Atualização: 21/02/2000 * Programador: Dablys Duarte Andrade * Contato : dablysandrade@yahoo.com.br * Governador valadares - MG * (33)32755824 ***************************************** Declare aArq[Adir('*.dbf')] FErase('teste.db*') Adir('*.dbf',aArq) cls If Len(aArq) = 0 alert('Sem arquivo de dados (.DBF) no diret¢rio do Sistema...') clear Quit EndIf aEstru:= {} If File('Arquivo.Arq') FErase('Arquivo.Arq') EndIf DbCreate('Arquivo.Arq',{{"NOME","C",08,0},{"CAMPO", "C" ,10,0},; {"TIPO", "C" , 1,0},{"TAMANHO","C" , 4,0},; {"DECIMAL","C" , 3,0}}) If ! File('Arquivo.Arq') alert('Arquivo de Atualiza‡„o (ARQUIVO.ARQ) n„o pode ser criado...') clear Quit endif Asort(aArq) sele 1 DbUseArea(1,,"Arquivo.Arq","xArq",.F.) set color to W+/B clear @ 08,10 say 'Atualizador de BANCO de dados: ' SET COLOR TO B+/w @ 10,10 clear to 16,70 @ 10,10 to 16,70 double * @ 14,15 Say Repl("Û",50) Color "Wr+/w" For I:= 1 To Len(aArq) If (aArq) = Nil Loop EndIf sele 2 DbUseArea(2,,(aArq),'Area',.F.) aEstru:= Area->(DbStruct()) @ 12,15 say 'Verificando estrutura do arquivo : ' @ 12,50 say aarq+space(05) @ 14,15 Say 'Concluindo -> ' + trans(I/Len(aArq)*100,'@r 9999999.99%') For J:= 1 To Len(aEstru) xArq->(DbAppend()) xArq->(DbRLock()) xArq->NOME := Left(aArq,At('.',aArq)-1) xArq->Campo := aEstru[J,1] xArq->Tipo := aEstru[J,2] xArq->Tamanho := StrZero(aEstru[J,3],4) xArq->Decimal := StrZero(aEstru[J,4],3) xArq->(DbRUnLock()) xArq->(DbCommit()) Next Area->(DbCloseArea()) Next DbCloseAll() set color to clear quit Segunda ETAPA (Funcao que atualiza as Estruturas dos DBF): ========================================================== *************************************************** * Funcao : ATUALIZA() * Realiza a atualização das estruturas dos * arquivos DBF presentes em ARQUIVO.ARQ * automaticamente * Programador : Dablys Duarte Andrade (01/01/2010) *************************************************** function Atualiza() Local cTela:= SaveScreen(0,0,24,79) If ! File("Arquivo.arq") Tone(999) Return .t. EndIf close databases set scoreboard off set date brit set color to W+/B clear FErase('Teste.dbf') FErase('Teste.dbt') Set Cursor Off DbUseArea(.T.,,"Arquivo.arq","Arquivo") If neterr() apaga('Arquivo de Atualiza‡„o ARQUIVO.ARQ n„o acess¡vel! Contate Suporte...',.T.) Inkey(3) clear clear all close all quit EndIf go top NomeArq := Arquivo->Nome NomeArq2 := {} NomeCampo := {} nAchou := {} LAchou := .F. Registro := LastRec() SetColor("b/w") @ 10,14 Clear To 16,65 DispBox(10,14,16,65) @ 13,15 Say Repl("Û",50) Color "Wr+/w" @ 11,22 Say "Carregando e Atualizando o Sistema ..." Do While ! Arquivo->(Eof()) @ 13,15 Say Repl("Û",((Arquivo->(Recno())/Registro)*100)/2) @ 14,36 Say AllTrim(Str((Arquivo->(Recno())/Registro)*100))+"%" If NomeArq # Arquivo->Nome Transfere() EndIf AADD(NomeCampo,{Arquivo->Campo,Arquivo->Tipo,Val(Arquivo->Tamanho),Val(Arquivo->Decimal)}) Arquivo->(DbSkip()) Enddo Transfere() DbCloseAll() FErase("Arquivo.arq") Set Color To Set Cursor On RestScreen(0,0,24,79,cTela) FErase('Teste.*') DbCloseAll() Return .T. Static Function Transfere() Local T @ 15,18 Say " " @ 15,18 Say "Arquivo : " + NomeArq If ! File(Alltrim(NomeArq)+".DBF") DbCreate(NomeArq,NomeCampo) Else DbUseArea(.T.,,Alltrim(NomeArq),"Arq2") If (! Neterr()) NomeAtua := DbStruct() For i := 1 To Len(NomeCampo) If Type("Arq2->"+NomeCampo[i,1]) = "U" AADD(nAchou,i) Exit Else For t := 1 To Len(NomeAtua) If AllTrim(NomeAtua[t,1]) = AllTrim(NomeCampo[i,1]) If AllTrim(NomeAtua[t,2]) # AllTrim(NomeCampo[i,2]) AADD(nAchou,i) Exit EndIf If NomeAtua[t,3] # NomeCampo[i,3] .Or.; NomeAtua[t,4] # NomeCampo[i,4] AADD(nAchou,i) Exit EndIf EndIf Next EndIf If Len(nAchou) # 0 Exit EndIf Next Arq2->(DbCloseArea()) If Len(nAchou) # 0 DbCreate("TESTE",NomeCampo) DbUseArea(.T.,,"TESTE","Arq2") If (! neterr()) Append From &(NomeArq+".Dbf") DbCommitAll() nAchou := {} Arq2->(DbCloseArea()) Copy File &("TESTE.DbF") To &(NomeArq+".DbF") If File("TESTE.DBT") Copy File &("TESTE.DbT") To &(NomeArq+".DbT") EndIf EndIf FErase("TESTE.DBF") FErase("TESTE.DBT") EndIf EndIf EndIf NomeArq := Arquivo->Nome NomeCampo := {} Return .t. Clipper 5.3 - Exospace - Blinker 7 - Fivewin - xHarbour Programador: Dablys Duarte Andrade Governador Valadares - MG email: dablysandrade@yahoo.com.br msn: lucklogan@msn.com Editado por - dablys on 12/02/2010 09:51:17 Editado por - dablys on 12/02/2010 09:54:31 Editado por - dablys on 12/02/2010 09:55:53
  14. É o seguinte amizades, o fato é que essa tecnologia de índices do Clipper sempre deu uns bug´s. com o CLIPPER 5.3 eu resolvi utilizando uma técnica bacaninha, e que deve servir até para FIVEWIN... ao indexar gerando um novo índice, pressupondo que o arquivo .CDX ou .NTX não exista e voce o está criando, então ao gerar o indice com INDEX ON... faça... index on CHAVE to INDICE.NTX EVAL EVERY no EVAL voce coloca uma função testando quantos registros processaram,,,, tipo de 3000 em 3000 registros, dando um COMMIT a cada ciclo completo de 3000 registros... ainda tem a cláusula EVERY para voce inserir um tempo de teste para saber se atingiu os próximos 3000 registros... tipo EVERY 5 Exemplo: então ficaria... index on CODICLI to EVAL {|| TestIndex() } EVERY 5 em TestIndex() crie seu tratamento para perceber o intervalo de 3000 em 3000 registros e executar um COMMIT ALL retornado sempre .T. (Verdadeiro), tipo: function TestIndex() if (recno() / 3000) - int(recno() / 3000)) = 0.000 // atingiu proximos 3000 registros commit all endif return (.t.) dificil heim?!? Dablys D. Andrade Governador Valadares - MG lucklogan@msn.com Programador CLIPPER 5.3 + BLINKER 7 + FIVEWIN + XHARBOUR Editado por - dablys on 20/12/2009 16:06:13
  15. Oi amigo, não seria o DBSETORDER que voce está aplicando quando força o foco no GET desejado, ou seja, percebi que no foco de cada GET tem um DBSETORDER diferente... aí ele vai mudar a ordem mesmo não é? Sobre o foco para o Browse,,, talvez resolvesse se voce ao invés de tratar as mudanças de ordem INDEX e foco no objeto desejado, diretamente no REDEFINE, poderia fazer uma função que tratasse isso... sendo assim, quando voce aplicar uma ação no objeto GET ou BROWSE, vai para essa função, detecta qual objeto está no foco atualmente e desvia para um CASE ou IF para tratar como quiser de acordo com o comportamente de cada objeto na DIALOG... Não é muito, mas espero ter ajudado. Dablys D. Andrade Governador Valadares - MG lucklogan@msn.com Programador Clipper 5.3/ Blinker7/ xharbour/ Fivewin Editado por - dablys on 02/10/2009 11:32:34
×
×
  • Create New...