Ir para conteúdo
Fórum Script Brasil
  • 0

Como fazer isto?


ZueRa

Pergunta

Olá amigos.

Estou querendo adicionar informações sobre determinado cliente, sem mudar o código (autoincrement) dele.

Exemplo:

tenho fulano cadastrado com o código 5. O usuário acha o cliente que ele quer adicionar alguma informação, achado este, clica em NOVO para adicionar algum comentário.

O problema:

quando clico em NOVO eu tenho que incluir OUTRO cliente com o MESMO nome para adicionar algo sobre ele.

Estou tentando pensar aqui, mas, não encontro uma solução viável para eu poder fazer isso.

Alguém pode dar uma idéia?

Desde já agradeço,

Thiago.

Editado por ZueRa
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
Exemplo:

tenho fulano cadastrado com o código 5. O usuário acha o cliente que ele quer adicionar alguma informação, achado este, clica em NOVO para adicionar algum comentário.

O problema:

quando clico em NOVO eu tenho que incluir OUTRO cliente com o MESMO nome para adicionar algo sobre ele.

Errado ... O usuário acha o cliente que ele quer adicionar alguma informação, achado este, clica em ALTERAR para adicionar algum comentário , ou simplesmente Edita o registro do arquivo para fazer alguma modificação e depois salva.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Exemplo:

tenho fulano cadastrado com o código 5. O usuário acha o cliente que ele quer adicionar alguma informação, achado este, clica em NOVO para adicionar algum comentário.

O problema:

quando clico em NOVO eu tenho que incluir OUTRO cliente com o MESMO nome para adicionar algo sobre ele.

Errado ... O usuário acha o cliente que ele quer adicionar alguma informação, achado este, clica em ALTERAR para adicionar algum comentário , ou simplesmente Edita o registro do arquivo para fazer alguma modificação e depois salva.

abraço

Clicar em alterar?

Não entendi sua lógica Jhonas. Como ele vai alterar algo que não existe ainda?

Link para o comentário
Compartilhar em outros sites

  • 0
Clicar em alterar?

Não entendi sua lógica Jhonas. Como ele vai alterar algo que não existe ainda?

tenho fulano cadastrado com o código 5.

quando clico em NOVO eu tenho que incluir OUTRO cliente com o MESMO nome para adicionar algo sobre ele.

pelo que entendi voce já tem cadastrado o fulano .. e se ainda não tem, não entendi o seu questionamento: estou querendo adicionar informações sobre determinado cliente, sem mudar o código (autoincrement) dele.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Clicar em alterar?

Não entendi sua lógica Jhonas. Como ele vai alterar algo que não existe ainda?

tenho fulano cadastrado com o código 5.

quando clico em NOVO eu tenho que incluir OUTRO cliente com o MESMO nome para adicionar algo sobre ele.

pelo que entendi voce já tem cadastrado o fulano .. e se ainda não tem, não entendi o seu questionamento: estou querendo adicionar informações sobre determinado cliente, sem mudar o código (autoincrement) dele.

abraço

Agora eu entendi a sua dúvida, expliquei meio vago, desculpe.

Exatamente, eu já tenho o fulano cadastrado.

O negócio é o seguinte:

tenho um DBMemo que serve para adicionar observações ao fulano.

Quero assim:

selecionar o cliente e, clicar em NOVA OBSERVAÇÃO sem mudar o código (autoincrement) dele entende?

Mantendo as informações do cara apenas adicionando "coisas" neste campo DBMemo.

Porém, não sei como fazer isto!

Abraço.

Editado por ZueRa
Link para o comentário
Compartilhar em outros sites

  • 0
tenho um DBMemo que serve para adicionar observações ao fulano.

Quero assim:

selecionar o cliente e, clicar em NOVA OBSERVAÇÃO sem mudar o código (autoincrement) dele entende?

Mantendo as informações do cara apenas adicionando "coisas" neste campo DBMemo.

Neste caso, voce deve pesquisar pelo codigo do fulano .... encontrado, voce traz os dados dele para a tela do seu form Cadastro.

Então voce terá somente que editar este registro e através do seu DBMemo ( que deverá estar linkado a sua tabela através das propriedade DataSource e DataField ) adicionar "as coisas" ou os dados que quiser e depois salvar o registro.

Isto não mudará nada no campo autoincremento

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
tenho um DBMemo que serve para adicionar observações ao fulano.

Quero assim:

selecionar o cliente e, clicar em NOVA OBSERVAÇÃO sem mudar o código (autoincrement) dele entende?

Mantendo as informações do cara apenas adicionando "coisas" neste campo DBMemo.

Neste caso, voce deve pesquisar pelo codigo do fulano .... encontrado, voce traz os dados dele para a tela do seu form Cadastro.

Então voce terá somente que editar este registro e através do seu DBMemo ( que deverá estar linkado a sua tabela através das propriedade DataSource e DataField ) adicionar "as coisas" ou os dados que quiser e depois salvar o registro.

Isto não mudará nada no campo autoincremento

abraço

Tudo bem, eu entendi o que quis dizer.

Mas eu não quero adicionar apenas UMA observação ao cliente. Quero duas, três, quatro. Ou seja, quantas forem preciso.

Se eu fizer isto que você disse: "achar o cliente e clicar em alterar adicionando as observações através do DBMemo" vai acontecer o que está acontecendo agora: ele retorna um DBMemo preenchido com as informações anteriores. Quero um DBMemo vazio para que eu possa adicionar novas observações do mesmo cliente, com o mesmo código (autoincrement).

Editado por ZueRa
Link para o comentário
Compartilhar em outros sites

  • 0
Mas eu não quero adicionar apenas UMA observação ao cliente. Quero duas, três, quatro. Ou seja, quantas forem preciso.

Se eu fizer isto que você disse: "achar o cliente e clicar em alterar adicionando as observações através do DBMemo" vai acontecer o que está acontecendo agora: ele retorna um DBMemo preenchido com as informações anteriores. Quero um DBMemo vazio para que eu possa adicionar novas observações do mesmo cliente, com o mesmo código (autoincrement).

já que voce não quer preservar as informações anteriores, basta colocar este comando ao achar o cliente e clicar em alterar.

DBMemo1.Clear;

Isto fará com que as informações anteriores sejam apagadas, ai tudo o que voce digitar no DBMemo ficará como nova informação

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Mas eu não quero adicionar apenas UMA observação ao cliente. Quero duas, três, quatro. Ou seja, quantas forem preciso.

Se eu fizer isto que você disse: "achar o cliente e clicar em alterar adicionando as observações através do DBMemo" vai acontecer o que está acontecendo agora: ele retorna um DBMemo preenchido com as informações anteriores. Quero um DBMemo vazio para que eu possa adicionar novas observações do mesmo cliente, com o mesmo código (autoincrement).

já que voce não quer preservar as informações anteriores, basta colocar este comando ao achar o cliente e clicar em alterar.

DBMemo1.Clear;

Isto fará com que as informações anteriores sejam apagadas, ai tudo o que voce digitar no DBMemo ficará como nova informação

abraço

Mas, imagino só olhando o comando que ele irá apagar a informação anterior e gravar a atual, certo?

Se for isto, kkkk não é o que estou tentando dizer.

Quero que a nova observação e a velha observação seja gravada para o mesmo cliente. Ou quantas forem necessárias.

Estou certo?

Grande abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
Mas, imagino só olhando o comando que ele irá apagar a informação anterior e gravar a atual, certo?

Se for isto, kkkk não é o que estou tentando dizer.

Quero que a nova observação e a velha observação seja gravada para o mesmo cliente. Ou quantas forem necessárias.

Estou certo?

Então por favor se expresse melhor .... " quero gravar uma nova informação no DBMemo , quero tambem preservar as informações anteriores , mas quero mostrar a atual na tela" seria isto ?

se for .. voce deve usar DBMemo1.append('Nova Observação') ... o append fara com que a nova informação vá para o final do ultimo registro do DBMemo.

Mas se quiser mostrar esse ultima informação como sendo a atual , voce deve rolar as linhas de texto ate chegar nesta ultima ( voce sabe como fazer ? )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Mas, imagino só olhando o comando que ele irá apagar a informação anterior e gravar a atual, certo?

Se for isto, kkkk não é o que estou tentando dizer.

Quero que a nova observação e a velha observação seja gravada para o mesmo cliente. Ou quantas forem necessárias.

Estou certo?

Então por favor se expresse melhor .... " quero gravar uma nova informação no DBMemo , quero tambem preservar as informações anteriores , mas quero mostrar a atual na tela" seria isto ?

se for .. voce deve usar DBMemo1.append('Nova Observação') ... o append fara com que a nova informação vá para o final do ultimo registro do DBMemo.

Mas se quiser mostrar esse ultima informação como sendo a atual , voce deve rolar as linhas de texto ate chegar nesta ultima ( voce sabe como fazer ? )

abraço

Quero que APENAS neste DBMemo quando eu clicar no botão NOVA OBSERVAÇÃO (já com o cliente escolhido) ele faça o seguinte:

- mantenha o cliente com suas informações pessoais (exceto DBMemo, claro)

- preserve todas as informações anteriores

- me dê um DBMemo limpo (isso é fácil)

- não mostre a informação anterior na tela, apenas um DBMemo limpo

é isto entende agora?

Desculpe por me expressar mal,

abraço!

Editado por ZueRa
Link para o comentário
Compartilhar em outros sites

  • 0

OK ... então no DBMemo defina as propriedades DataSource e DataFiled

na propriedade ScrollBars define como ssVertical

quando voce clicar no botão NOVA OBSERVAÇÃO (já com o cliente escolhido) faça o seguinte:

exemplo: Imagine que este é o seu botão NOVA OBSERVAÇÃO

procedure TForm1.Button1Click(Sender: TObject);
VAR Line : integer;
begin
   With DBMemo1 do
   begin
      for line := 0 to DBMemo1.Lines.Count do
         SelStart := Perform(EM_LINEINDEX, Line, 0);

   end;

   DBMemo1.Lines.Append('Nova Observação');
   DBMemo1.SetFocus;
end;

O cursor irá parar após a ulima linha existente no DBMemo e então voce poderá entrar com a nova observação

modifique o código para seu uso

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
OK ... então no DBMemo defina as propriedades DataSource e DataFiled

na propriedade ScrollBars define como ssVertical

quando voce clicar no botão NOVA OBSERVAÇÃO (já com o cliente escolhido) faça o seguinte:

exemplo: Imagine que este é o seu botão NOVA OBSERVAÇÃO

procedure TForm1.Button1Click(Sender: TObject);
VAR Line : integer;
begin
   With DBMemo1 do
   begin
      for line := 0 to DBMemo1.Lines.Count do
         SelStart := Perform(EM_LINEINDEX, Line, 0);

   end;

   DBMemo1.Lines.Append('Nova Observação');
   DBMemo1.SetFocus;
end;

O cursor irá parar após a ulima linha existente no DBMemo e então voce poderá entrar com a nova observação

modifique o código para seu uso

abraço

Vou testar Jhonas, muito obrigado desde já.

Uma pergunta: depois eu vou imprimir estas observações num QuickReport.

Antes vou filtrar por nome do cliente. Exemplo:

irei filtrar o usuário fulano e, quero que todas as observações a ele atribuidas sejam mostradas para impressão.

Será possível isto?

Uma por uma desta forma aí que você citou?

Thiago.

Link para o comentário
Compartilhar em outros sites

  • 0
Uma pergunta: depois eu vou imprimir estas observações num QuickReport.

Antes vou filtrar por nome do cliente. Exemplo:

irei filtrar o usuário fulano e, quero que todas as observações a ele atribuidas sejam mostradas para impressão.

Será possível isto?

é possivel , mas voce deve pesquisar no forum sobre quick report

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Uma pergunta: depois eu vou imprimir estas observações num QuickReport.

Antes vou filtrar por nome do cliente. Exemplo:

irei filtrar o usuário fulano e, quero que todas as observações a ele atribuidas sejam mostradas para impressão.

Será possível isto?

é possivel , mas voce deve pesquisar no forum sobre quick report

abraço

Entendi, só queria confirmar mesmo se havia algum modo.

Sobre o QuickReport eu já tenho tudo feito, certinho ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Bom Jhonas, testei e foi assim:

quando clico em "nova observação" (já com a tabela aberta e o cliente selecionado) ele realmente faz o trabalho, mas, ao pressionar a primeira tecla, ele retorna os dados que já estavam nele incluídos.

Exemplo:

o db memo tem esta informação: "imasters 1234"

ao pressionar o botão com o código que me passou: "nova observação". (antes ele não limpava, apenas direcionava o cursor para a última linha com o append, então coloquei um .clear)

pressionada a primeira tecla (vamos supor que esta, seja a tecla Y): Yimasters 1234

o problema é este, eu não quero que ele retorne as informações anteriores =X

estou tentando entender aqui mas se puder me ajudar, ou alguém, ficarei grato,

Thiago.

Link para o comentário
Compartilhar em outros sites

  • 0

ZuerRa, se entendi toda o post, você que sempre localizar alguém, retornar o valores e criar um novo sem se preocupar com os comentários anteriores, mas manter para um possível consulta futura. Correto?

Se for , o que te aconselho e modificar sua estrutura de dados e criar um tabela comentário, relacionar como a tabela do usuário. Ai quando voce quiser inserir outro comentário para o fulano, você pesquisa por ele na tabela comentário e insere um novo registro.

Assim ficaria melhor sua estrutura de dados.

Link para o comentário
Compartilhar em outros sites

  • 0
ZuerRa, se entendi toda o post, você que sempre localizar alguém, retornar o valores e criar um novo sem se preocupar com os comentários anteriores, mas manter para um possível consulta futura. Correto?

Se for , o que te aconselho e modificar sua estrutura de dados e criar um tabela comentário, relacionar como a tabela do usuário. Ai quando voce quiser inserir outro comentário para o fulano, você pesquisa por ele na tabela comentário e insere um novo registro.

Assim ficaria melhor sua estrutura de dados.

Olá itibere, obrigado por ajudar.

Bom, eu tenho uma tabela comentário no meu BD que está ligada neste DBMemo.

É isto? Talvez entendi errado.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
quando clico em "nova observação" (já com a tabela aberta e o cliente selecionado) ele realmente faz o trabalho, mas, ao pressionar a primeira tecla, ele retorna os dados que já estavam nele incluídos.

Exemplo:

o db memo tem esta informação: "imasters 1234"

ao pressionar o botão com o código que me passou: "nova observação". (antes ele não limpava, apenas direcionava o cursor para a última linha com o append, então coloquei um .clear)

pressionada a primeira tecla (vamos supor que esta, seja a tecla Y): Yimasters 1234

o problema é este, eu não quero que ele retorne as informações anteriores =X

Colega ... vejo que voce é novato no delphi, ou então teria conseguido resolver este problema... bem uma outra sugestão para voce:

use um componente Memo no lugar do DBMemo ( coloque ele por cima do DBMemo)... antes de entrar neste campo voce pode limpa-lo

Memo1.Clear;

depois de digitar o que voce quer, basta jogar o seu conteúdo para o campo da sua tabela

exemplo:

DBMemo1.Lines.Append(Memo1.Lines.Text)

depois é só salvar.

Mas tem um porém .... se voce quiser vizualizar o conteudo do DBMemo voce pode fazer duas coisas:

ou voce deixa invisivel o componente Memo, ai o conteudo já estará aparecendo no DBMemo

ou voce traz o conteudo do DBMemo para o Memo

Memo1.Lines.Text := DBMemo1.Lines.Text

OBS: Leia mais sobre o delphi se não fica dificil

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...