Inserir registro no TBROWSE() posição cursor?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Inserir registro no TBROWSE() posição cursor?

Mensagem por Rodrigo Reis »

Boa tarde mestres . . .
Galera, surgiu uma situação interessante aqui, situação na qual eu travei e preciso de ajuda . ..
Uso um Tbrowse para que o usuário do meu sistema altere algumas informações referentes a compras de clientes . . .
Cada registro no banco se refere a uma compra
Agora, o pessoal quer agrupar compras . .tipo exemplo

Registro 1 -> compra categoria 1 x quantidade
Registro 2 -> compra categoria 1 y quantidade
Registro 3 -> compra categoria 2 x quantidade


Porém, existe a possibilidade de entrar mais compras da categoria 1, e o pessoal quer inseri-la após a ultima compra da mesma categoria . . .
Ou seja, preciso incluir um registro na exata posição em que o cursor do tbrowse se encontra . .ai o usuário movimentaria o cursor, pressiona sei lá -> Insert -> por exemplo, e seria inclusa a nova linha na posição do cursor . . .
O programa inclui linhas novas no final do tbrowse com o append blank quando se pressiona a tecla f5 , porém , incluir na posição corrente do cursor não to conseguindo
Consigo apagar o registro da posiçào do cursor, preciso incluir . .alguém me ajuda?
Obrigado
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Bem vindo ao forum...
Segue abaixo um exemplo com diversas situações:

Código: Selecionar todos

**********************
FUNC PESQAGE(TIPOPESQ)
**********************
LOCAL nButton := 1
LOCAL nOpcao := 0
aAGENDA := savenv( 01, 00, 24, 79 )
LIMPATALHO()

SAGEM(01,00,'PESQUISA EM TELA DA AGENDA',1)
Clrted()                                    // limpa tela

IF TIPOPESQ="S"
   USE AGENDA ALIAS AGENDA shared
   SET INDEX TO AGENDA
ENDIF

Win( 02, 00, 22, 80, "Pesquisa por Ordem Alfab‚tica" ,WT_VERDE2BRANCO,WD_VERDE2BRANCO)
@ 23, 00 SAY PADL( "", 80 ) COLOR "R*/W"
@ 23, 12 SAY "    [F1]Ordem [F2]Busca [C]Cadastrar [Del]Excluir [Enter]Editar" COLOR "R*/W"

@ 23, 00 SAY "[ > ]" COLOR "R*/W"
@ 23, 08 SAY "[ < ]" COLOR "R*/W"

@ 03,00 CLEAR TO 22,01
@ 03,79 CLEAR TO 22,79

***************
SET CONFIRM OFF
PESQAGE2()
SET CONFIRM ON
***************

ATALHOS()
CLEAR GETS
CLEAR TYPEAHEAD         // limpa sujeira no teclado
IF TIPOPESQ="S"
   DBCLOSEALL()
ENDIF
RstEnv (aAGENDA)
return

***************
FUNC PESQAGE2()
***************
FIELD NOME,TELEFONE1,CELULAR,TIPO,TELEFONE2,ENDERECO,BAIRRO,CIDADE,UF,CEP IN AGENDA
LOCAL nButton := 1
LOCAL nOpcao  := 0
LOCAL OTbr  :=TBrowseDB( 03, 01, 22, 80 )
LOCAL OTbc1 :=TbColumnNew("Descricao do Cadastrado",{ || NOME     } )
LOCAL OTbc2 :=TbColumnNew("N§ Telefone",            { || TELEFONE1} )
LOCAL OTbc3 :=TbColumnNew("N§ Celular",             { || CELULAR  } )
LOCAL OTbc4 :=TbColumnNew("TIPO",                   { || TIPO     } )
LOCAL OTbc5 :=TbColumnNew("N§ Telefone",            { || TELEFONE2} )
LOCAL OTbc6 :=TbColumnNew("Endere‡o Completo",      { || ENDERECO } )
LOCAL OTbc7 :=TbColumnNew("Bairro",                 { || BAIRRO   } )
LOCAL OTbc8 :=TbColumnNew("Cidade",                 { || CIDADE   } )
LOCAL OTbc9 :=TbColumnNew("UF",                     { || UF       } )
LOCAL OTbc10:=TbColumnNew("CEP",                    { || CEP      } )

LOCAL nKey
LOCAL lExitRequested
PARA TIPOCAD,LINHA
********************************************************************
*                  1      2       3       4      5       6     7      8     9      10       11      12      13
oTbr:colorspec :="N*/W , W+/BG , W+/B , R+*/W , W*/W+ , RJ/W , W/B , R/N , B+*/W , RW*/W , N+*/W, BG+*/W, RG+*/W"
oTbr:addColumn(oTbc1)
oTbr:addColumn(oTbc2)
oTbr:addColumn(oTbc3)
oTbr:addColumn(oTbc4)
oTbr:addColumn(oTbc5)
oTbr:addColumn(oTbc6)
oTbr:addColumn(oTbc7)
oTbr:addColumn(oTbc8)
oTbr:addColumn(oTbc9)
oTbr:addColumn(oTbc10)

************ Definicao de Cores ***********

oTbC4:COLORBLOCK :={| NOME     | IIF ( TIPO ="CLIENTE",    { 9,2  } ,;
                                 IIF ( TIPO ="FORNECEDOR", { 4,2  } ,;
                                 IIF ( TIPO ="FUNCIONARIO",{ 10,2 } ,;
                                 IIF ( TIPO ="COMPRADOR",  { 13,2 } ,;
                                 IIF ( TIPO ="CREDOR",     { 12,2 } ,;
                                 IIF ( TIPO ="DIVERSOS",   { 11,2  } , { 1,2} ) ) ) ) ) ) }

************ largura das colunas ***********
oTbc1:width:=29
************ largura das colunas ***********

************ Marcara das colunas ***********
oTbc2:picture:="@R (99) 9999-9999"
oTbc3:picture:="@R (99) 9999-9999"
oTbc5:picture:="@R (99) 9999-9999"
*******************************************

************ Linhas das colunas ************
oTbr:COLSEP :=DEF_CSEP  // desenha colunas Verticais
oTbr:HEADSEP:=HEAD_SEP  // desenha colunas Horizontais superior
oTbr:FOOTSEP:=FOOT_SEP  // desenha colunas Horizontais inferior
*********************

************ COLUNAS A CONGELAR ************
ColFix := 1              // atraves de variaval colfix
oTbr:freeze := ColFix

**********************************
SELE AGENDA
SET ORDER TO 2

Otbr:gotop()
IExitRequested := .F.
vCONTINUA=" "

DO WHILE !IExitRequested
   DO WHILE !oTbr:stabilize()
   ENDDO
   IF !vCONTINUA="S"
      nKey := inkey(0)
   ENDIF

   IF vCONTINUA="S"
      CLEAR TYPEAHEAD         // limpa sujeira no teclado
      vNOME=SPACE(30)
      vREG=RECCOUNT()
      vCONTINUA=" "

      SETCOLOR( "N/W,N*/RG,N/W* , , N*/W" )
      @ ROW(),01      GET vNOME      PICT"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" 
      READ
      SETCOLOR( "N*/W,W+/BG" )

      IF LASTKEY()==27 .OR. EMPTY(vNOME)
         TRAVAREG()
         DELE
         LIBERAREG()
         OTBR:refreshall()
         Otbr:gotop()  // no arquivo indexado
         LOOP
      ENDIF

      TRAVAREG()
      REPL NOME      WITH vNOME
      LIBERAREG()

      IF FOUND()
         MsgINFO("Descrição Já Cadastrada !!!, Favor verificar","Aviso do Sistema")
         EXIT
      ENDIF

      OTBR:refreshall()
      Otbr:gotop()  // no arquivo indexado
      GOTO vREG
   ELSEIF nKey == K_ENTER .OR. nKey == K_a .OR. nKey == K_A
      nCOLNUM:=OTBR:COLPOS
      IF TIPO="DIVERSOS"
         DO WHILE .T.
            vNOME=NOME
            vTELEFONE1=TELEFONE1
            vCELULAR=CELULAR
            vTIPO=TIPO
            vTELEFONE2=TELEFONE2
            vENDERECO=ENDERECO
            vBAIRRO=BAIRRO
            vCIDADE=CIDADE
            vCEP=CEP
            vUF=UF

            SET CURSOR ON

            SETCOLOR( "N/W,N*/RG,N/W* , , N*/W" )
            IF nCOLNUM==1
               @ ROW(),COL() GET vNOME      PICT"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" 
               READ
            ENDIF

            IF nCOLNUM==2
               LINHA=ROW()
               COLUNA=COL()
               @ ROW(),COL() GET vTELEFONE1 PICT"@R (99) 9999-9999"  when DwnMsg( "Informe o Telefone")
               READ
            ENDIF

            IF nCOLNUM==3
               @ ROW(),COL() GET vCELULAR   PICT"@R (99) 9999-9999" when DwnMsg( "Informe o Celular")
               READ
            ENDIF

            IF nCOLNUM==4
               ERROREG()
            ENDIF

            IF nCOLNUM==5
               @ ROW(),COL() GET vTELEFONE2 PICT"@R (99) 9999-9999" when DwnMsg( "Informe o Telefone")
               READ
            ENDIF

            IF nCOLNUM==6
               @ ROW(),COL() GET vENDERECO  when DwnMsg( "Informe o Endere‡o")
               READ
            ENDIF

            IF nCOLNUM==7
               @ ROW(),COL() GET vBAIRRO when DwnMsg( "Informe o Bairro")
               READ
            ENDIF

            IF nCOLNUM==8
               @ ROW(),COL() GET vCIDADE when DwnMsg( "Informe a Cidade")
               READ
            ENDIF

            IF nCOLNUM==9
               @ ROW(),COL() GET vUF  when DwnMsg( "Informe o Estado (Unidade Federativa)")
               READ
            ENDIF

            IF nCOLNUM==10
               @ ROW(),COL() GET vCEP when DwnMsg( "Informe o CEP")
               READ
            ENDIF

            SET CONFIRM OFF

            SETCOLOR( "N*/W,W+/BG" )

            IF !LASTKEY() = 27
               IF !EMPTY(vNOME)
                  TRAVAREG()
                  REPL NOME      WITH vNOME
                  REPL TELEFONE1 WITH vTELEFONE1
                  REPL CELULAR   WITH vCELULAR
                  REPL TIPO      WITH vTIPO
                  REPL TELEFONE2 WITH vTELEFONE2
                  REPL ENDERECO  WITH vENDERECO
                  REPL BAIRRO    WITH vBAIRRO
                  REPL CIDADE    WITH vCIDADE
                  REPL CEP       WITH VCEP
                  REPL UF        WITH vUF
                  LIBERAREG()
               ENDIF
            ENDIF
            EXIT
         ENDDO
      ELSE
         MsgINFO("Não é permitido a Alteração por esse processo, Favor entrar no cadastro de origem.","Aviso do Sistema" )
      ENDIF

      SET ORDER TO 2
      OTBR:refreshall()
   ELSEIF nKey == K_C .OR. nKey == K_c
      SELE AGENDA
      SET ORDER TO 2
      APPE BLAN
      TRAVAREG()
      REPL TIPO    WITH "DIVERSOS"
      LIBERAREG()

      OTBR:refreshall()
      Otbr:gotop()  // no arquivo indexado

      vCONTINUA="S"
      LOOP
   ELSEIF nKey == K_F .OR. nKey == K_f
      vVOLTAR=SPACE(1)
      IExitRequested := .T.
   ELSEIF nKey == K_DEL
      IF TIPO="DIVERSOS"
         IF !MsgYesNo("Deseja Realmente Excluir ?" ,"Aviso do Sistema")
            LOOP
         ENDIF

         TRAVAREG()
         DELE
         LIBERAREG()
         OTBR:refreshall()
         Otbr:gotop()  // no arquivo indexado
      ELSE
         MsgINFO("Não é permitido a Alteração por esse processo, Favor entrar no cadastro de origem.","Aviso do Sistema" )
      ENDIF
   ELSEIF nKey == K_F1
      IF INDEXORD()==2
         SET ORDER TO 7
      ELSEIF INDEXORD()==7
         SET ORDER TO 2
      ENDIF
      oTbr:refreshall()
   ELSEIF nKey == K_F2
      aBusca := savenv( 01, 00, 23, 79 )
      chave:= Space(30)
      SETCOLOR( "N*/W,B/W" )
      aWin := Win( 10, 15, 13, 62, "Busca por Nome",WT_VERDE2BRANCO,WD_VERDE2BRANCO)
      CLEAR TYPEAHEAD
      @  12, 18 say "Nome.:" get CHAVE pict"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
      READ
      RstEnv(aBusca)
      SETCOLOR( "N*/W,W+/B" )
      set softseek on
      seek chave
      set softseek off
      oTbr:refreshall()
   ELSEIF nKey == K_DOWN
      oTbr:down()
   ELSEIF nKey == K_UP
      oTbr:up()
   ELSEIF nKey == K_PGDN
      oTbr:pageDown()
   ELSEIF nKey == K_PGUP
      oTbr:pageUp()
   ELSEIF nKey == K_CTRL_PGUP
      oTbr:goTop()
   ELSEIF nKey == K_CTRL_PGDN
      oTbr:goBottom()
   ELSEIF nKey == K_RIGHT
      oTbr:right()
   ELSEIF nKey == K_LEFT
      oTbr:left()
   ELSEIF nKey == K_HOME
      oTbr:home()
   ELSEIF nKey == K_END
      oTbr:end()
   ELSEIF nKey == K_CTRL_LEFT
      oTbr:panLeft()
   ELSEIF nKey == K_CTRL_RIGHT
      oTbr:panRight()
   ELSEIF nKey == K_CTRL_HOME
      oTbr:panHome()
   ELSEIF nKey == K_CTRL_END
      oTbr:panEnd()
   ELSEIF nKey == K_ESC
      vVOLTAR="S"
      OTBR:refreshall()
      Otbr:gotop()  // no arquivo indexado
      IExitRequested := .T.
   ENDIF
ENDDO
RETURN NIL
Estrutura do Banco de Dados:

Código: Selecionar todos

LOCAL aField[12]
   aField[01] := {"NOME"     , "C", 35,  0}
   aField[02] := {"TELEFONE1", "C", 14,  0}
   aField[03] := {"CELULAR"  , "C", 14,  0}
   aField[04] := {"TIPO"     , "C", 11,  0}
   aField[05] := {"TELEFONE2", "C", 14,  0}
   aField[06] := {"ENDERECO" , "C", 50,  0}
   aField[07] := {"BAIRRO"   , "C", 18,  0}
   aField[08] := {"CIDADE"   , "C", 25,  0}
   aField[09] := {"CEP"      , "C",  8,  0}
   aField[10] := {"UF"       , "C",  2,  0}
   aField[11] := {"CODIGO"   , "N",  6,  0}
   aField[12] := {"OBS"      , "C", 10,  0}
   /*
    * Para recriar o DBF original, descomente as 3 proximas linhas.
    */
   * if .not. File("AGENDA.DBF")
   *    DbCreate( "AGENDA.DBF", aField )
   * endif
Indice que uso nesse exemplo:

Código: Selecionar todos

   index on CODIGO  TAG 1 to dados\AGENDA 
   index on NOME       TAG 2 to dados\AGENDA
   index on TELEFONE1  TAG 3 to dados\AGENDA
   index on TELEFONE2  TAG 4 to dados\AGENDA
   index on CELULAR    TAG 5 to dados\AGENDA
   index on CIDADE     TAG 6 to dados\AGENDA
   index on TIPO       TAG 7 to dados\AGENDA
   index on TIPO+NOME  TAG 8 to dados\AGENDA
Obs:Nesse Exemplo acima tem algumas funções da VL.LIB

Qualquer duvida prende o grito !!!
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Mensagem por Rodrigo Reis »

Obrigado Leonardo, pela rápida resposta . . .
Portei rapidinho aqui sua função de Tbrowse . ..
O que eu estou procurando é algo do tipo que existe na tua função como Cadastrar, quando se pressiona a tecla C
Porém, assim como no meu aqui , a sua insere um registro na ultima linha e não na posição corrente do cursor . . .tipo, ao pressionar a tecla C, ela insere um registro em branco no final do DBF
A sua tb se comporta assim?
Ou será que não e eu que fiz algo de errado?
Obrigado

Rodrigo Reis
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Fez Algo errado, nesse exemplo ele abre uma nova linha no lugar do cursor...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Se quiser te mando por email o exemplo pra vc testar ai !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Mensagem por Rodrigo Reis »

Olá, bom dia . . .
Bem que eu desconfiei, que fiz caca . .rssss

Manda pra mim . . .

rodrigoreis@writeme.com

Obrigado
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Complementando com outra solução (sem ter avaliado a solução ja dada pelo colega). Você Rodrigo ja pensou em fazer um TBROWSE de VETORES ?. Quem sabe isso tornar mais ágil e mais dinamico a inserção e manutenção dos registros do seu DBF. A outra questão, caberia avaliar a estrutura do seu BD. Mas tendo o conceito de PAI/FILHO, isto é utilizando-se de dois BDs, não vejo a necessidade de inserir um registro no meio do BD. Isso também se tiver indexado pelo código em que é feito a vinculação. è apenas uma observação. Todos os caminhos levam a Roma, não me leve mal se falei demais...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Mensagem por Rodrigo Reis »

E como seria, por exemplo . . .o TBROWSE de vetores no meu caso
Uso vetores para os campos e os cabeçalhos, como seria um Tbrowse de vetores?

Obrigado
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Rodrigo, a utilização do TBROWSE com vetores você poderá utilizá-los ou atribuí-los conforme um exemplo dado no tópico: https://pctoledo.org/forum/viewto ... ores#24941

Este TBROWSE eu utilizo muito é bem útil e não dá problemas de rede nem lentidão como o TBROWSE convencional. Faça um teste antes e avalie se convém adaptar todo o seu código nele.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

O seu problema não esta na programação do tbrowse() e sim de indices.

basta abrir a tabela em questão e selecionar o indice que voce criou pelo campo de categoria, incluir o registro e refrescar o tbrowse() e pronto.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Mensagem por Rodrigo Reis »

No meu caso, para a solução do meu problema eu entendi a lógica...ou melhor, axo que eu entendi a lógica... eu ordenaria ela na exibição , porém eu adicionaria os registros normalmente no final com o append blank. . .
Seria isso?
Usando os vetores não é . ..
Realmente , ainda não havia pensado nisso . . .
Será que é isso mesmo, ou eu to viajando . .rsss

Ainda não recebi seu email, Leonardo . . .Ainda não consegui pro pra funcionar o exemplo que vc me passou, com certeza, estou fazendo algo de errado . . .

Obrigado a vcs pela ajuda pronta e rápida

Rodrigo Reis
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Ohhh caro Rochinha, bom vê-lo novamente !. (não é pelo seu avatar que eu vejo, tá ?.... hihihi). No seu avátar a imagem aparenta você ser mais velho do que talvez você o seja.

Eu tentei sugerir isso mesmo quando mencionei na questão de PAI/FILHO e INDEXAÇÃO. Claro que ainda não vejo necessidade de inserção física de registro no meio do BD. Mas tudo serve de experiência, não é ?.

Rodrigo, a idéia que passei do TBROWSE com VETORES, é apenas mais uma idéia. Mas como o Rochinha falou, talvez a solução mais simples é indexar seu BD de acordo com a chave que você queira apresentar em tela. Se bem que a exibição em forma indexada atarvés do TBROWSE sempre é mais lenta.

O conhecimento e emprendimento para você fazer através do TBROWSE por VETORES irá demandar um certo tempo para você entender como funciona (dependerá da sua familiarização com MATRIZES). E ã sugestão da com VETORES não possue indexação, claro que para compor a exibição você poderá pegar os registro de forma indexação (isso sim).
Editado pela última vez por Pablo César em 14 Set 2007 13:00, em um total de 1 vez.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Rodrigo Reis
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 13 Set 2007 13:45
Localização: são paulo

Mensagem por Rodrigo Reis »

O problema é que o usuário deseja selecionar o local onde será adicionado um novo registro, então, nào é só a forma de exibição, utilizando os índices e tal . . .aleatoriamente ele insere os registros, não existe uma ordem específica . . .

Rodrigo
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Ahh entendí. Então faça o TBROWSE com VETORES. E crie uma rotina de inserção de acordo seu ponteiro na hora que o usuário acionar tal tarefa.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho Pablo

Se eu deixasse o cabelo e a barba crescerem ficaria assim mesmo. mas como me cabelo é black-power imagine como ficaria, hehehe.

Amiguinho Rodrigo, usuário é sempre cheio de frescuras e portanto voce deve prover a solução final mesmo que não seja da mesma forma como eles querem mas o resultado final sera o que eles querem ver.

Como o Pablo colocou, voce pode despender muito tempo fazendo algo que os usuários nem te falarão obrigado enquanto voce poderia despender este tempo em outras coisas e solucionando com recursos mais simples.

Eu ja penso assim: usuario que tem idéias e pensam que é simples fazer, estes não dão valor ao trabalho feito e os que dão valor sabem que a coisa bem feita leva tempo e dão apoio durante o desenvolvimento.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder