TEMOS Q REALMENTE MUDAR ??!!! MAS COMO ???!! AJUDA MUTUA ...

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

clauber
Usuário Nível 3
Usuário Nível 3
Mensagens: 263
Registrado em: 22 Jul 2004 21:17
Localização: ceara

TEMOS Q REALMENTE MUDAR ??!!! MAS COMO ???!! AJUDA MUTUA ...

Mensagem por clauber »

se alguem puder enviar sistema. tela naum serve, quero ver e testar desempenho e funionalidade do sistema, se puder ser, um harbour, um five win e um visual fox pro, testarei todos...
como o amigo(moment) autor do topico(QUE TRISTEZA !!!) tenho anos de experiencia em clipper e naum posso abandonar tudo assim e empurrar para o alto, mas sinto necessidade de mudanca, e acho q nos deviamos unirmos em torno de uma real solucao, nada de comentario: usa Habor que e isso e aquilo, o habour eh a sooluao por isso e por isso, o five win eh melhor porque e por que, mas nenhum mostra algo de concreto: FUNCIONALIDADE de execução e de implementação de uma dessas ferramentas de trabalho. Diante do exposto precisar nos debrucarmos em estudos profundos, com ajuda mutua entre os clippeiros,
exemplo disso tudo, eh que mudei um pouco o visual e funcionalidade: uso a llibg com rdd dbfcdxe e compilando em modo protegido, deu erto tive ganho com isso, melhorou; nem por isso deixei de ajudar a amigos clippeiros e nem criei cd contendo arquivos reunidos e baixados da net pra vender para outros e outros programadores... precisamos de solucao e opinioes convictas...
desculpe se desagradei alguem, mas essa eh minha opiniao !!!!
""
evaldo
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 27 Out 2005 23:29

Mensagem por evaldo »

Amigo clauber.
Assino embaixo do que você falou, e como aqui tem muitos profissionais de vários anos de programação, com certeza vamos achar a melhor solução. Eu já programo a mais de 16 anos em clipper, tenho vários sistema em muitos ramos de atividade e acho que é hora de mudar mas não perder o trabalho que já tenho pronto.

veja esse link é de um amigo nosso, tem um projeto.exe, mas precisamos de mais....... queremos saber qual é a melhor opção, desempenho, segurança e dificuldade de migra.


http://www.gransoft.com/download/minigui/
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Boa noite a todos .
Caro Cleuber : eu até entendo o seu desbafo mas o próprio nome diz tudo "mudança" que quer dizer : 'Ação ou efeito de mudar, transformação radical...' e por ai vai .
Se vc quer mudança, tem que olhar para frente , ou seja , se vc quer aproveitar o seu conhecimento em clipper em outra lp basta escolher...
Se vc quer aproveitar o seu código fonte em outra lp é preciso 'mudanças'.
Já passei por este dilema, mas as novas tecnologias estão ai para serem usadas, infelizmente o clipper, em si, foi descontinuado, existem libs que até satisfazem em certos aspectos mas chega a um ponto em que vc vai sentir falta de alguma coisa, por ex. visual, escrever o menos possível de código, etc.
É certo que o ramo da informáticca segue tendências e hoje é ter um visual que chama a atenção do cliente, se o clipper+libs atende, muito bem, mas ao contrário ... mudanças.
Estou convicto da minha escolha...
Escolhi o VFP porque me deu duas opções : aproveitar parte do meu código antigo e/ou mudar para outro mundo... escolhi e/ou , ou seja , mudei de visual , mudei de lp, mudei meu modo de pensar ( nada é eterno), mas aproveitei o conhecimento que tenho em clipper e usei-o no VFP, pois é 90% parecido os outros 10% é consequência de 'mudanças'.

Existem duas maneiras de se programar em VFP :

1- pegar o seu código em clipper e usar no VFP mas com algumas 'mudanças', posso lhe dar um exemplo prático disto...

2 - começar um novo projeto, unindo seu 'conhecimento' em clipper com o poder do VFP...

ou escolher qualquer outra lp...

Se você quer exeplos de como proceder esta mudança basta dizer eu posso lhe apresentar um dos vários caminhos a seguir, com exemplos, telas( forms fontes) , manuais, links e muita gente disposta a lhe ajudar da maneira que vc precisar... basta escolher. []s :xau

Espero ter lhe ajudado no dilema... qqer coisa é só dizer.
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Olá amigos!

Por um lado me conforta saber que não estou sozinho nesta batalha da sobrevivença, por outro as vezes não vejo muita excolha senão encarar a realidade de enfrentar as mudanças em nossas cabeças pensantes, vamos lá, mãos a obra, tem luz no final do tunel, é só continuarmos assim unidos como uma grande nação, e ir a gerra, os nossos generais (moderadores) experientes nas batalhas nos axiliano como ja o fazem e continuarmos desenhando nosso cominho e nossa missão, tenho certeza que daqui algum tempo, quando formos rever os tópicos antigos tudo isso será apenas lembranças de tempos "dificeis", já superados, é só continuar de cabeça em pé, e fotalecendo nossos vinculos de amizade, companherismo, ética, respeito, solidariedade que chegaremos lá.

Valeu! :xau
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
clauber
Usuário Nível 3
Usuário Nível 3
Mensagens: 263
Registrado em: 22 Jul 2004 21:17
Localização: ceara

Mensagem por clauber »

companheiros sou consiente das mundaças e sei que vou superá-las, afinal somos ser em mutação constante, mas peço a todos que entraram nessas mudanças ou que já passaram dê sua opinião sincera, nada de querer ganhar dinheiro nas costas de outros programadores, vamos ter ética, união que fortaleceremos nossa ferramenta de trabalho, e naum deixaremos ela se torna obsoleta.
Todos nós aqui somos profissionais, temos nosso espaço, naum por passar alguma rotina pra outro, ensinar algum código fonte, repassar lib's, onheimentos que vamos ter menos dinheiro no nosso caixa, eh ensinando que se aprende, e trocando experiencia que melhoramos a nossa, o nosso Brasil eh grandiosissimo tem espaço pra todos.

Se possível mais programadores postasse sua ideia aqui, pra provar q estamos unidos e juntos(Unidos sim, reunidos naum) enfretaremos essas mudanças.
""
Grings
Usuário Nível 3
Usuário Nível 3
Mensagens: 340
Registrado em: 18 Ago 2004 13:51

Mensagem por Grings »

Seguindo a linha de raciocínio, sugiro ao Toledo que crie mais um ou dois fóruns de linguagens visuais para que se possa discutir o aprendizado e talvez a migração dos sistemas.
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Independente de qualquer coisa...
Para quem quiser tirar dúvidas sobre VFP:

www.foxbrasil.com.br/forum

apostilas, dicas exemplos, links, programação web, client/servidor,sgbd.

E muita gente disposta a ajudar ( inclusive eu ).

:xau
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Caros colegas

Tenho um sistema em clipper 5.2e + Blinker 7.0 + SixNsx 2.0 + Visual Lib (na minha opniao esta é a melhor combinação para um programa em clipper), pra vcs terem ideia do tamanho, o executável compilado sem a compressao do blinker dá 3.036.352 bytes (3 mega) e com a compressao dá 1.152.640 bytes (1 mega), ou seja, é bem grandinho. Tem 263 PRGs. Tudo funciona muito bem, obrigado. Mas... é 16 bits!!! Naum funciona legal nos windows da familia NT, e linux só atraves de emulação (mesmo problema do windows NT), fica lennnnntoooooo. Isso ninguem vai mudar, isso é fato!!!!! Também passei pelo dilema de qual linguagem escolher. Testei VFP, particularmente naum gostei, pouca literatura, curso nem na lua tem e a instalacao do executavel final no cliente é um saco, vc tem que levar quase que a linhagem inteira pra dentro da maquina do cliente, com relacao ao poder de desenvolvimento da ferramenta naum discuto, a dita cuja é poderosa. Ai ouvi uns comentários sobre harbour, pesquisei, li bastante, fui numa palestra em Sampa promovida pelo Marcelo Lombar (alias, foi muito boa), depois decidi, vou para harbour. E agora, por onde começar??? Naum tinha nem idéia!!!! Neste momento surge um amigo nosso aqui do forum (que todo mundo sabe quem é) dissendo que em uma semana transformaria todo o meu codigo fonte de clipper para harbour. Ah!!! Dúvido!!!! Cai do cavalo.... o cara veio aqui e vez o que disse que faria. Em uma semana passamos todo o programa para compilar em habour usando a gtwvw para saidas de tela, ou seja, passei a ter um programa 32 bits com um visual digamos assim... semiwindows... Mas que atendeu minha necessidade e a dos meus clientes também. Ah... outra coisa, depois, com um pouco de boa vontade e séria dedicacao conseguimos fazer algumas adpitacoes para que 97% dos arquivos PRGs servicem tanto para clipper como para harbor. Entao conseguimos ter, ao mesmo tempo, e o mesmo programa, para windows e para dos, sem ter que alterar codigos fontes diferentes, apenas 3% dos PRGs sao diferentes, na hora de compilar, a instrucao de compilacao busca os 3% do clipper ou os 3% do harbour, de acordo com o que eu quero no momento. Ficou ótimo !!!!!!!!!!! Agora é claro que isso teve um custo. O nosso amigo naum ia vir aqui no fim do mundo de graça!!!! Aqueles que acham que isso é uma exploracao, por favor, liguem para a borland e perguntem quanto custa uma copia do Delphi completo (por exemplo). O harbour é open source!!!!

Dúvidas??? Estou a disposicao !!!!!!!!
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
clauber
Usuário Nível 3
Usuário Nível 3
Mensagens: 263
Registrado em: 22 Jul 2004 21:17
Localização: ceara

Mensagem por clauber »

terra software, blz gostei do seu comente, pratico e objetivo ate q enfim algo de concreto e pratico, eh isso q precisamos praticidade, e resolveu seu problema. . . diferente de algo vago que falam aqui. . . em relacao a pagamento aho q ninguem ta pidindo nada de Graca aqui, se realmente tiver algo em maos q realmente funcione tem seu preco, falo de alguns q acham q tem a soluao, pensam q domina a ferramenta e vai criando algo pra ganhar dinheiro.. no seu caso eh diferente e pago pra ver tambem a coisa acontecer .. vc poderia disponibilizzar algum sistetma seu gratis pra gente ver um executavel gerado com esse tal de habour, particulamente eu, to mim cossando todinho pra ver um sistema rodando...
""
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Obs : já perceberam uma coisa ?
depois que surgiu o x/harbour - hwgui, minigui etc,etc... vcs estão se estapeando para fazer o outro engolir algo... (literalmente) . Parem pra pensar !!

Peguei alguns trechos de conversas em outros foruns para analisar e cheguei a conclusão de que isto esta mais para um problema do que uma solução !!

Vejam o trecho abaixo ; para que tanto trabalho se vc pode apenas num click criar um executável ??

Código: Selecionar todos

- baixe o CVS em http://www.tortoisecvs.org/
- depois de instalado, ele pedirá para rebootar a máquina, faça isso
- depois de iniciado o Windows, abra o Windows Explorer
- clique com o botão direito em C:\ e escolha "CVS Obter Módulo..."
- abrirá uma janela pedindo informações, abaixo segue o que deve ser preenchido :
** protocol : pserver
** server : cvs.sf.net
** repository folder : /cvsroot/hwgui
** user name : anonymous
** module : hwgui
** senha : tecle enter
em uma janela, será mostrado o progresso da instalação dos arquivos da HwGUI no C:\ da sua máquina na pasta HwGUI, quando terminar, basta clicar no OK

Para compilar a lib HwGUI :
- abra uma janela do DOS
- vá para a pasta HwGUI
- digite "set HB_PATH=c:\xharbour" (sem as aspas)
- digite "make_b32 clean"
- digite make_b32


Ps: Borland c++ instalado em c:\bcc55 e xharbour instalado de c:\xharbour (baixe os binarios oficiais do xharbour de www.xharbour.org

e adicione como ultima linha de seu autoexec.bat (coloque essas linhas antes de dar o reboot por causa do tortoise cvs

set hb_path=c:\xharbour
set path=c:\xharbour\bin;c:\bcc55\bin;%path%

Todo mundo diz que quer funcionalidade e q não tem tempo pra isso ou aquilo...

Gente vamos cair na real ...

:(
Todo mundo deveria pesquisar, ler bastaaaaaaaaaaante mesmo , ir em palestras e cursos em BH, antes de dar um tiro no escuro.

No VFP vc pode: criar Dlls, chamar um EXE dentro de outro EXE,ou seja planejar seu código , sem precisar tornar o program um monstro, de tão grande...

Quando vc seleciona a opção de encriptação, o mínimo do código vai para o instalável, caso contrário até os comentários , com o Inno setup ou com o InstallShield (vem com o VFP 7), fica molezinha a instalação.
No VFP 5, o próprio cria o instalável pra vc...

Programa simples em clipper

Código: Selecionar todos

*----------------------------------------------------------------------------*
* RRF Sistemas de Informacao.  Departamento de Software           *
*----------------------------------------------------------------------------*
* Sistema .: Sistema de Gestao Financeira Versao : 2.00                      *
* Analise .: Renato Ribeiro Ferreira                                         *
*----------------------------------------------------------------------------*
* Programa : BC.PRG                       Versao : 2.00.02                   *
* Tipo ....: Gerenciador Principal        Escrita: 10/07/92                  *
* Autor ...: Renato Ribeirop Ferreira     Usando : Clipper 5.01 Mult User    *
*----------------------------------------------------------------------------*
* Funcao ..: Gerenciador do Sistema                                          *
*----------------------------------------------------------------------------*
* Data     Responsavel Local      Manutencao                                 *
*----------------------------------------------------------------------------*
* 19/09/92 Renato      M Service  Original                                   *
* 19/09/92 Renato      M Service  Layout Handler de PRG                      *
* 19/09/92 Renato      M Service  Picture Codcli03                           *
* 28/10/98 Renato      Imperio    Identifica‡„o Revenda ou Consumidor        *
*----------------------------------------------------------------------------*
* Objetos Utilizados                                                         *
*----------------------------------------------------------------------------*
* Arquivos .:                                                                *
* Graficos .:                                                                *
* Relatorios:                                                                *
* SubRotinas:                                                                *
* Telas ....: Tela do Sistema                                                *
*----------------------------------------------------------------------------*
* Detalhes Adicionais                                                        *
*----------------------------------------------------------------------------*
Local GetList := {},BoxComp0,BoxComp1
sele A
use gfa003 index gfa103,GFA203
op1 = 1
ftelcad(" CADASTRO DE CLIENTES ")
do while .t.
   tone(1000,1)
   @ 04,00 say space(79)
   @ 06,36 prompt ' Inclus„o '  message ' Inclus„o de CLIENTE.'
   @ 06,48 prompt ' Altera‡„o ' message ' Altera‡„o de CLIENTE.'
   @ 06,61 prompt ' Exclus„o ' message ' Exclus„o de CLIENTE.'
   @ 06,73 prompt ' Fim ' message ' Fim das opera‡oes.'
   menu to op1
   if op1 = 4 .or. lastkey() = 27
      close data
      release all
      return
   endif
   do while .t.
      @ 04,00 say space(79)
      stor 0 to codcli, codage, cpames, cpaano, przpgt
      nomcli := nomfan := space(36) ; nf := " "
      endcli := space(36)
      endrec := space(36)
      baicli := space(20)
      bairec := space(20)
      cidcli := space(20)
      cidrec := space(20)
      estcli := space(02)
      estrec := space(02)
      cepcli := space(08)
      ceprec := space(08)
      telcli := space(11)
      datnsc := ctod('  /  /  ')
      cgccpf := space(14)
      insest := space(15)
      identi := space(15)
      nomage := space(20)
      nrocta := space(10)
      ultcpa := ctod('  /  /  ')
      contat := space(20)
      chfcpa := 0
      situac := space(01)
      DatInc := ctod('  /  /  ')
      Comp_1 := Comp_M := Comp_U := ctod('  /  /  ')
      CompV1 := CompVM := CompVU := 0.00
      N_Fax_ := N_Celu := space(14)
      RamAti := space(15)
      Catego := "C"
      conf := " "
      @ 08,02 say "C¢digo...:              Nome..:                                      F.:     "
      @ 09,02 say "Endere‡o.:                                        Data Nasc:                 "
      @ 10,02 say "Bairro...:                                        Cep......:                 "
      @ 11,02 say "Cidade...:                                        Estado...:                 "
      @ 12,02 say "CGC/CPF..:                                        Insc. Est:                 "
      @ 13,02 say "Identid..:                                        Telefone.:                 "
      @ 14,02 say "C¢d.agenc:                                        Cta Bco..:                 "
      @ 15,02 say "Ult. cpa.:                                        Cpa. mes.:                 "
      @ 16,02 say "Contato..:                                        Cpa. ano.:                 "
      @ 17,02 say "Vendedor.:                                        Prz.pgto.:                 "
      @ 18,02 say "End. Rec.:                                        Etiqueta.:                 "
      @ 19,02 say "Bairro...:                                        Cep......:                 "
      @ 20,02 say "Cidade...:                                        Estado...:                 "
      go bott
      codcli := codcli03 + 1
      @ 08,13 get codcli pict '999999999999' && valid codcli = 0 .or. fdig11(codcli)
      read
      if codcli = 0 .or. lastkey() = 27
         exit
      endif
      seek codcli
      if eof() .and. op1 # 1
         fmsg("Cliente n„o cadastrado",2)
         loop
      endif
      if found()
         codcli := codcli03 ; nomcli := nomcli03 
         nomfan := nomfan03 ; endcli := endcli03
         baicli := baicli03 ; cidcli := cidcli03
         estcli := estcli03 ; cepcli := cepcli03
         telcli := telcli03 ; datnsc := datnsc03
         cgccpf := cgccpf03 ; insest := insest03
         identi := identi03 ; nomage := nomage03
         codage := codage03 ; nrocta := nrocta03
         ultcpa := ultcpa03 ; cpames := cpames03
         cpaano := cpaano03 ; contat := contat03
         chfcpa := chfcpa03 ; przpgt := przpgt03
         endrec := endrec03 ; situac := situac03
         bairec := bairec03 ; cidrec := cidrec03
         estrec := estrec03 ; ceprec := ceprec03
         If !Empty(nomfan)
            nf := "S"
         EndIf
         @ 08,34 get nomcli pict '@!'
         @ 09,13 get endcli pict '@!'
         @ 09,63 get datnsc
         @ 10,13 get baicli pict '@!'
         @ 10,63 get cepcli pict '@!'
         @ 11,13 get cidcli pict '@!'
         @ 11,63 get estcli pict '@!'
         @ 12,13 get cgccpf pict '@!'
         @ 12,63 get insest pict '@!'
         @ 13,13 get identi pict '@!'
         @ 13,63 get telcli pict '@R (!!!!)-!!!-!!!!'
         @ 14,13 get codage pict '9999-9'
         @ 14,21 get nomage pict '@!'
         @ 14,63 get nrocta pict '@!'
//         @ 15,63 get cpames pict '@E 9,999,999.99'
//         @ 16,63 get cpaano pict '@E 9,999,999,999.99'
         @ 16,13 get contat pict '@!'
         @ 17,13 get chfcpa pict '99'
         @ 17,63 get przpgt pict '99'
         @ 18,13 get endrec pict '@!'
         @ 18,63 get situac pict '!'
         @ 19,13 get bairec pict '@!'
         @ 19,63 get ceprec pict '@!'
         @ 20,13 get cidrec pict '@!'
         @ 20,63 get estrec pict '@!'
         clear gets
         if op1 = 1
            fmsg("Cliente j  cadastrado",2)
            loop
         endif
         if op1 = 3
            @ 22,01 say space(79)
            @ 22,01 say 'Confirma exclusao (S/N) ? ' get conf valid conf $'SsNn'
            read
            if upper(conf) = 'S'
               delete
            endif
            @ 22,01 say space(79)
            loop
         endif
      endif
      @ 15,13 get ultcpa
      @ 15,63 get cpames pict '@E 9,999,999.99'
      @ 16,63 get cpaano pict '@E 9,999,999,999.99'
      clear gets
      @ 08,34 get nomcli pict '@!'           &&      valid fsp(nomcli)
      @ 08,74 get nf     pict "!"                    valid FFantasia(nf)
      @ 09,13 get endcli pict '@!'           &&      valid fsp(endcli)
      @ 09,63 get datnsc
      @ 10,13 get baicli pict '@!'           &&      valid fsp(baicli)
      @ 10,63 get cepcli pict '@!'           &&      valid fsp(cepcli)
      @ 11,13 get cidcli pict '@!'           &&      valid fsp(cidcli)
      @ 11,63 get estcli pict '@!'           &&      valid fuf(estcli)
      @ 12,13 get cgccpf pict '@!'                 valid fcgccpf(cgccpf)
      @ 12,63 get insest pict '@!'           &&      valid fsp(insest)
      @ 13,13 get identi pict '@!'           &&      valid fsp(identi)
      @ 13,63 get telcli pict '@R (!!!!)-!!!-!!!!'&& valid fsp(telcli)
      @ 14,13 get codage pict '9999-9'
      @ 14,21 get nomage pict '@!'
      @ 14,63 get nrocta pict '@!'            &&       valid fsp(nrocta)
      @ 16,13 get contat pict '@!'
      @ 17,13 get chfcpa pict '99'
      @ 17,63 get przpgt pict '99'
      @ 18,13 get endrec pict '@!'
      @ 18,63 get situac pict '!'              valid situac $'SN'
      @ 19,13 get bairec pict '@!'
      @ 19,63 get ceprec pict '@!'
      @ 20,13 get cidrec pict '@!'
      @ 20,63 get estrec pict '@!'              valid fuf(estrec)
      read
      OldCor0 := SetColor()
      BoxComp0 := Boxcc(10,09,10,20,69,5,.t.,7)
      BoxComp1 := Boxcc(11,09,10,09,69,1,.f.,6)
      @ 09,10 Say Padc(" Dados Complementares ",60)
      SetColor('w+/B,b/w,,,G+/B')

      @ 11, 11 say "Vect§ Cart„o ¯                                         "
      @ 12, 11 say "Lim. Cr‚dito ¯            ¯ R$                         "
      @ 13, 11 say "Saldo.Rest.. ¯            ¯ R$                         "
      @ 14, 11 say " Ult. Compra ¯            ¯ R$                         "
      @ 15, 11 say "         Fax ¯                                         "
      @ 16, 11 say "     Celular ¯                                         "
      @ 17, 11 say " Ramo Ativid ¯                    Categoria ¯          "

         datinc:= datven03
         comp_1:= comp_103
         comp_m:= comp_m03
         comp_u:= comp_u03
         compv1:= compv103
         compvm:= compvm03
         compvu:= compvu03
         n_fax_:= n_fax_03
         n_celu:= n_celu03
         ramati:= ramati03
         catego:= catego03

         @ 11, 26 Get DatInc 
         @ 12, 26 Get Comp_1
         @ 12, 41 Get CompV1 Pict "@E 999,999.99" color "G+/b"
         @ 13, 26 Get Comp_M
         @ 13, 41 Get CompVM Pict "@E 999,999.99" color ("GR+/b")
         @ 14, 26 Get Comp_U
         @ 14, 41 Get CompVU Pict "@E 999,999.99" color ("BG+/b")
         @ 15, 26 Get N_Fax_
         @ 16, 26 Get N_Celu
         @ 17, 26 Get RamAti
         Read


      CleaBox(09,10,20,69,BoxComp0)
      SetColor(OldCor0)
      @ 22,01 say space(79)
      if op1 = 2
         @ 22,01 say "Confirma altera‡„o (S/N) ? " get conf valid conf $'SsNn'
      else
         @ 22,01 say "Confirma inclus„o (S/N) ? " get conf valid conf $'SsNn'
      endif
      read
      @ 22,01 say space(79)
      if upper(conf) = 'S'
         if op1 = 1
            append blank
         endif
         replace codcli03 with codcli, nomfan03 with nomfan
         replace        nomcli03 with nomcli, Datven03 with DatInc
         replace        endcli03 with endcli, Comp_103 with Comp_1  
         replace        baicli03 with baicli, Comp_M03 with Comp_M
         replace        cidcli03 with cidcli, Comp_U03 with Comp_U
         replace        estcli03 with estcli, CompV103 with CompV1
         replace        cepcli03 with cepcli, CompVM03 with CompVM
         replace        telcli03 with telcli, CompVU03 with CompVU
         replace        datnsc03 with datnsc
         replace        cgccpf03 with cgccpf, N_Fax_03 with N_Fax_
         replace        insest03 with insest, N_Celu03 with N_Celu
         replace        identi03 with identi, RamAti03 with RamAti
         replace        codage03 with codage, Catego03 with Catego
         replace        nomage03 with nomage
         replace        nrocta03 with nrocta
         replace        ultcpa03 with ultcpa
         replace        cpames03 with cpames
         replace        cpaano03 with cpaano
         replace        contat03 with contat
         replace        chfcpa03 with chfcpa
         replace        przpgt03 with przpgt
         replace        codope03 with codope
         replace        endrec03 with endrec
         replace        situac03 with situac
         replace        bairec03 with bairec
         replace        cidrec03 with cidrec
         replace        estrec03 with estrec
         replace        ceprec03 with ceprec
      endif
   enddo
enddo
Return
O mesmo programa simples convertido para VFP (todos)
eu mesmo o fiz...e não me cobrei nada (hehe)

Código: Selecionar todos

*----------------------------------------------------------------------------*
* RRF Sistemas de Informacao              Departamento de Software           *
*----------------------------------------------------------------------------*
* Sistema .: Sistema de Gestao Financeira Versao : 2.00                      *
* Analise .: Renato Ribeiro Ferreira                                         *
*----------------------------------------------------------------------------*
* Programa : BC.PRG                       Versao : 2.00.02                   *
* Tipo ....: Gerenciador Principal        Escrita: 10/07/92                  *
* Autor ...: Renato Ribeirop Ferreira     Usando : Clipper 5.01 Mult User    *
*----------------------------------------------------------------------------*
* Funcao ..: Gerenciador do Sistema                                          *
*----------------------------------------------------------------------------*
* Data     Responsavel Local      Manutencao                                 *
*----------------------------------------------------------------------------*
* 19/09/92 Renato      M Service  Original                                   *
* 19/09/92 Renato      M Service  Layout Handler de PRG                      *
* 19/09/92 Renato      M Service  Picture Codcli03                           *
* 28/10/98 Renato      Imperio    Identifica‡„o Revenda ou Consumidor        *
*----------------------------------------------------------------------------*
* Objetos Utilizados                                                         *
*----------------------------------------------------------------------------*
* Arquivos .:                                                                *
* Graficos .:                                                                *
* Relatorios:                                                                *
* SubRotinas:                                                                *
* Telas ....: Tela do Sistema                                                *
*----------------------------------------------------------------------------*
* Detalhes Adicionais                                                        *
*----------------------------------------------------------------------------*
Local BoxComp0,BoxComp1,TelCad
Set SysMenu off
Set Status Bar Off

USE gfa003  Alias Clientes  IN 0  && Order Tag gfa003
Select Clientes
Set Order to TAG TGFA103

op1 = 1

Do ftelcad1 with "Manutenção de Clientes",0,1,35,88

do while .t.
   @ 00,00 clear to 03,87
   @ 00,00      prompt ' \<Inclusão  '  
   @ 00,col()+1 prompt ' \<Alteração '
   @ 00,col()+1 prompt ' \<Exclusão  '
   @ 00,col()+1 prompt ' \<Fim '
   menu to op1

   If op1 = 4
      Close Database
      Release Window fontchar
      _screen.cls
      Set SysMenu on
      Set Status Bar On
      Return
   Endif
   If op1 <> 1 .and. op1 <> 2 .and. op1 <> 3
      Loop
   Endif

   Do While .t.
      Clear
      If op1 = 1
         @ 00,70 Say "Inclusão" FONT 'Arial', 16 
      endif

      stor 0 to codcli, codage, cpames, cpaano, przpgt
      Stor space(36) to nomcli, nomfan 
      nf = " "
      endcli = space(36)
      endrec = space(36)
      baicli = space(20)
      bairec = space(20)
      cidcli = space(20)
      cidrec = space(20)
      estcli = space(02)
      estrec = space(02)
      cepcli = space(08)
      ceprec = space(08)
      telcli = space(11)
      datnsc = ctod('  /  /  ')
      Stor space(14) to N_Fax_ , N_Celu ,cgccpf
      insest = space(15)
      identi = space(15)
      nomage = space(20)
      nrocta = space(10)
      ultcpa = ctod('  /  /  ')
      contat = space(20)
      chfcpa = 0
      situac = space(01)
      DatInc = ctod('  /  /  ')
      Stor ctod('  /  /  ') to Comp_1,Comp_M,Comp_U
      Stor 0.00 to CompV1,CompVM, CompVU
      RamAti = space(15)
      Catego = "C"
         datinc = datven03
         comp_1 = comp_103
         comp_m = comp_m03
         comp_u = comp_u03
         compv1 = compv103
         compvm = compvm03
         compvu = compvu03
         n_fax_ = n_fax_03
         n_celu = n_celu03
         ramati = ramati03
         catego = catego03
         wjuros = juros_03


      coltxt = 01

      @        04,coltxt say "Código...»              Nome..»                                      F.»   "
      @ row()+1.2,coltxt say "Endereço.»                                        Data Nasc»               "
      @ row()+1.2,coltxt say "Bairro...»                                        Cep......»               "
      @ row()+1.2,coltxt say "Cidade...»                                        Estado...»               "
      @ row()+1.2,coltxt say "CGC/CPF..»                                        Insc. Est»               "
      @ row()+1.2,coltxt say "Identid..»                                        Telefone.»               "
      @ row()+1.2,coltxt say "Cód.agenc»                                        Cta Bco..»               "
      @ row()+1.2,coltxt say "Ult. cpa.»                                        Cpa. mes.»               "
      @ row()+1.2,coltxt say "Contato..»                                        Cpa. ano.»               "
      @ row()+1.2,coltxt say "Vendedor.»                                        Prz.pgto.»               "
      @ row()+1.2,coltxt say "End. Rec.»                                        Etiqueta.»               "
      @ row()+1.2,coltxt say "Bairro...»                                        Cep......»               "
      @ row()+1.2,coltxt say "Cidade...»                                        Estado...»               "

      Do Frame with "",20,.10,30,86

      coltxt = 10

      @        21,coltxt say "Vectº Cartão »              Juros » %                  "
      @ row()+1.2,coltxt say "Lim. Crédito »            » R$                         "
      @ row()+1.2,coltxt say "Saldo.Rest.. »            » R$                         "
      @ row()+1.2,coltxt say " Ult. Compra »            » R$                         "
      @ row()+1.2,coltxt say "         Fax »                                         "
      @ row()+1.2,coltxt say "     Celular »                                         "
      @ row()+1.2,coltxt say " Ramo Ativid »                    Categoria »          "


      @ 04,12 get codcli pict '999999999999'        && valid codcli = 0 .or. fdig11(codcli)
      read

      if Empty(codcli) .or. lastkey() = 27
         exit
      endif
      
      Seek codcli

      If !Found() .and. op1 # 1
         Messagebox("O código que você digitou não foi encontrado...",16,"Aviso")
         Loop
      Endif


      If Found() 
         nomcli = nomcli03 
         nomfan = nomfan03 
         endcli = endcli03
         baicli = baicli03  
         cidcli = cidcli03
         estcli = estcli03  
         cepcli = cepcli03
         telcli = telcli03  
         datnsc = datnsc03
         cgccpf = cgccpf03  
         insest = insest03
         identi = identi03
         nomage = nomage03
         codage = codage03  
         nrocta = nrocta03
         ultcpa = ultcpa03
         cpames = cpames03
         cpaano = cpaano03  
         contat = contat03
         chfcpa = chfcpa03
         przpgt = przpgt03
         endrec = endrec03  
         situac = situac03
         bairec = bairec03
         cidrec = cidrec03
         estrec = estrec03 
         ceprec = ceprec03
      Endif
      
      If Found() .and. op1 = 1
         Messagebox("O código que você digitou já está em uso...",16,"Aviso")
         loop
      endif         
      @  4.0     ,33 get nomcli pict '@!'           &&      valid fsp(nomcli)
      @  4.0     ,75 get nf     pict "!"            &&      valid FFantasia(nf)
      @ row()+1.2,12 get endcli pict '@!'           &&      valid fsp(endcli)
      @ row()    ,62 get datnsc
      @ row()+1.2,12 get baicli pict '@!'           &&      valid fsp(baicli)
      @ row()    ,62 get cepcli pict '@!'           &&      valid fsp(cepcli)
      @ row()+1.2,12 get cidcli pict '@!'           &&      valid fsp(cidcli)
      @ row()    ,62 get estcli pict '@!'           &&      valid fuf(estcli)
      @ row()+1.2,12 get cgccpf pict '@!'           &&      valid fcgccpf(cgccpf)
      @ row()    ,62 get insest pict '@!'           &&      valid fsp(insest)
      @ row()+1.2,12 get identi pict '@!'           &&      valid fsp(identi)
      @ row()    ,62 get telcli pict '@R (!!!)-!!!!-!!!!'&& valid fsp(telcli)
      @ row()+1.2,12 get codage pict '9999-9'
      @ row()    ,22 get nomage pict '@!'
      @ row()    ,62 get nrocta pict '@!'            &&       valid fsp(nrocta)
      @ row()+2.4,12 get contat pict '@!'
      @ row()+1.2,12 get chfcpa pict '99'
      @ row()    ,62 get przpgt pict '99'
      @ row()+1.2,12 get endrec pict '@!'
      @ row()    ,62 get situac pict '!'              &&valid situac $'SN'
      @ row()+1.2,12 get bairec pict '@!'
      @ row()    ,62 get ceprec pict '@!'
      @ row()+1.2,12 get cidrec pict '@!'
      @ row()    ,62 get estrec pict '@!'              &&valid fuf(estrec)




         @ 21         , 26 Get DatInc 
         @ 21         , 50 Get WJuros Pict "@ 999.99"     color ,gr/b
         @ row()+1.2  , 26 Get Comp_1
         @ row()      , 41 Get CompV1 Pict "@ 999,999.99" color ,G+/b
         @ row()+1.2  , 26 Get Comp_M
         @ row()      , 41 Get CompVM Pict "@ 999,999.99" color ,GR+/b
         @ row()+1.2  , 26 Say Comp_U
         @ row()      , 41 Say CompVU Pict "@ 999,999.99" color ,BG+/b
         @ row()+1.2  , 26 Get N_Fax_
         @ row()+1.2  , 26 Get N_Celu
         @ row()+1.2  , 26 Get RamAti


      read cycle
      * 6=sim 7 = nao
      If op1 = 1
         MSalvar = Messagebox("Deseja incluir este registro ?",36,"Siadem pergunta")
      endif
      if op1 = 2
         MSalvar = Messagebox("Deseja gravar esta alteração ?",36,"Siadem pergunta")
      endif
      if op1 = 3
         MSalvar = Messagebox("Deseja excluir este registro ?",36,"Siadem pergunta")
      endif
      if MSalvar = 6
         if op1 = 1
            append blank
         endif
         replace codcli03 with codcli, nomfan03 with nomfan
         replace nomcli03 with nomcli, Datven03 with DatInc
         replace endcli03 with endcli, Comp_103 with Comp_1  
         replace baicli03 with baicli, Comp_M03 with Comp_M
         replace cidcli03 with cidcli, Comp_U03 with Comp_U
         replace estcli03 with estcli, CompV103 with CompV1
         replace cepcli03 with cepcli, CompVM03 with CompVM
         replace telcli03 with telcli, CompVU03 with CompVU
         replace datnsc03 with datnsc
         replace cgccpf03 with cgccpf, N_Fax_03 with N_Fax_
         replace insest03 with insest, N_Celu03 with N_Celu
         replace identi03 with identi, RamAti03 with RamAti
         replace codage03 with codage, Catego03 with Catego
         replace nomage03 with nomage, juros_03 with wjuros
         replace nrocta03 with nrocta
         replace ultcpa03 with ultcpa
         replace cpames03 with cpames
         replace cpaano03 with cpaano
         replace contat03 with contat
         replace chfcpa03 with chfcpa
         replace przpgt03 with przpgt
         replace codope03 with codope
         replace endrec03 with endrec
         replace situac03 with situac
         replace bairec03 with bairec
         replace cidrec03 with cidrec
         replace estrec03 with estrec
         replace ceprec03 with ceprec
         flush
      endif
   Enddo
Enddo
Return
****************************************************************
mais prático e objetivo que isto é impossível ... :? só um milagre !!
:xau
Editado pela última vez por rrfsistemas em 14 Dez 2005 01:48, em um total de 2 vezes.
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
evaldo
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 27 Out 2005 23:29

Mensagem por evaldo »

Ola amigo. TerraSoftware
Gosteis da sua posição e a do rrfsistemas, mas gostaria de ver seu sistema como ficou, antes e depois e queria ver com você se é possivel ir em cianorte para ver o seu sistema como esta, pois preciso de uma solução. E você esta contente com os resultados.

Mas queria dizer que o meu modo de programar esta mais para o 5.3.
Ex.: do meu amigo rrfsistemas.....nada contra ele!

//como ele programa.
stor 0 to codcli, codage, cpames, cpaano, przpgt
nomcli := nomfan := space(36) ; nf := " "
endcli := space(36)
endrec := space(36)
baicli := space(20)
bairec := space(20)
cidcli := space(20)
cidrec := space(20)
estcli := space(02)
estrec := space(02)
cepcli := space(08)
ceprec := space(08)
telcli := space(11)
datnsc := ctod(' / / ')
cgccpf := space(14)
insest := space(15)
identi := space(15)
nomage := space(20)
nrocta := space(10)
ultcpa := ctod(' / / ')
contat := space(20)
chfcpa := 0
situac := space(01)
DatInc := ctod(' / / ')
Comp_1 := Comp_M := Comp_U := ctod(' / / ')
CompV1 := CompVM := CompVU := 0.00
N_Fax_ := N_Celu := space(14)
RamAti := space(15)
Catego := "C"
conf := " "

em quanto ele gasta 30 linha para declarar as variaveis, eu gasto poucas linha.

SELECT Cliente
GO BOTTOM
SKIP
aGetCli := InitData()
ReplData(aGetCli)

s3ip@hotmail.com
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Caro amigo Evaldo da pra mostrar o que tem na sua função InitData()

Porque eu tbem uso objetos , este exemplo foi apenas para demostrar a COMPATIBILIDADE entre o Clipper e o VFP eu não estou discutindo a sua criatividade, sem recentimentos, :*
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Caros Colegas.

Infelizmente naum temos programas para demonstracao, alias, trabalhamos com um unico produto, ou seja, temos apenas um software, que hoje deve rodar aproximadamente uns 200 clientes. O que posso fazer é abrir as portas de nossa empresa para aqueles que desejarem ver pessoalmente tudo aquilo que falei. Posso deixar os amigos olharem os codigos fontes, os compiladores, os linkadores e os executáveis, sem problemas. Basta que os interesados agente um dia para isso. Para os que moram em Sao Paulo e regiao, eu estaverei ai do dia 27 ao dia 29 de dezembro, se alguem quizer terei prazer em demonstrar o software em meu not, basta agenda tambem. Sei como é dificil tomar uma decisao. Se eu puder ajudar, terei prazer nisso.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Lembrei de uma outra coisa importante.

Estamos projetando para o ano que vem trabalharmos tambem com linux, e iremos usar o mesmo codigo fonte, mudaremos apenas a forma de compilar e linkeditar. Entao passaremos a ter programas para 3 plataformas diferentes (dos, windows, linux) gerados a partir os mesmos codigos fontes. Isso é possivel!!!! E nos iremos fazer!!!!!!
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
evaldo
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 27 Out 2005 23:29

Mensagem por evaldo »

Mas não estou discutindo a criatividade, só sitei um exemplo.

você tem que ter um arquivo cabecalho com os mesmo nome dos campos e na sequencia.

CLIENTE.CH
#xtranslate.codigo => \[01]
#xtranslate.contabil => \[02]
#xtranslate.conta => \[03]
#xtranslate.nome => \[04]
#xtranslate.fantasia => \[05]
#xtranslate.endereco => \[06]
#xtranslate.email => \[07]
#xtranslate.cep => \[08]
#xtranslate.bairro => \[09]
#xtranslate.cidade => \[10]
#xtranslate.estado => \[11]

E no inicio do seu PRG, você tem que incluir ele.
#include "cliente.ch"

E declara uma variavel aGetCliente
LOCAL aGetCliente := {}

...
...
SELECT Cliente
SET ORDE TO 1
IF nKey = K_INS //cadastro novo
GO BOTTOM //vai para o final do arquivo e avanca um registro
SKIP // assim ele pega um registro em branco.
ENDIF
//
aGetCliente := InitData()
//
@ 04 ,07 GET aGetCliF.nome PICT "@!"
@ 05 ,46 GET aGetCliF.endereco PICT "@!"
//
IF Confirme()
//
IF nKey = k_ins
WHILE !AddRec(); END
ELSE
WHILE !BloqReg(); END
ENDIF
ReplData(aGetCliF) //para gravar
(Cliente)->(DBCOMMIT())
(Cliente)->(DBUNLOCK())
//
ENDIF

Qualquer duvida posso ti enviar um arquivo PRG, com as funcoes.
Dessa forma seu tempo de programação diminui e muito.

Código: Selecionar todos

*************************************************************
FUNCTION InitData()
***********************
   //
   LOCAL aGets := ARRAY(FCOUNT())
   //
   AEVAL(aGets,{|x,nl| aGets[nl] := FIELDGET(nl)})
   //
RETURN aGets
*************************************************************
FUNCTION ReplData(aGets)
************************
   //
   AEVAL(aGets,{|x,nl| FIELDPUT(nl,x)})
   //
RETURN NIL   
*************************************************************
A utilização de modernas tecnologias nunca foi o suficiente para criar sistemas de gestão eficientes. Mais do que isso, possuir experiência na atividade comercial a que se dedicação foi fundamental para o sucesso.
Responder