Código Automático ao entrar no form

Delphi

19/04/2018

Boa Noite!
estou precisando de uma ajuda dos professores de plantão!! ai vai minha duvida:
estou fazendo um sistema e gostaria de colocar o código automatico, tipo: tenho um form que é
meu menu e nesse menu tenho o tal botão para entrar na minha ordem de serviço, o que eu gostaria
é de quando eu clicasse nele abrisse a pagina da Ordem de Serviço ja com o codigo na Edit, estou
utilizando para meu banco o DataBase Desktop e Paradox 7, no meu Data Module tenho uma Table e um
Data Sourcer, se alguém puder me ajudar? fico muito grato!!
Martins Luthier

Martins Luthier

Curtidas 0

Melhor post

Raimundo Pereira

Raimundo Pereira

28/04/2018

Bom dia.
Esse código a ser gerado ele é um PrimaryKey, é gerado automático?
Se sim você pode colocar uma query e obter o proximo ID enviado para o Edit.
Ou seja no click no seu button ele deve criar o form de ordem de serviço e em seguida já verificar qual o proximo id do generator.

GOSTEI 2

Mais Respostas

Jerson Boer

Jerson Boer

19/04/2018

Olá Martins, vamos ver se ajuda na sua dúvida. Você quer enviar para a OS um código que existe no formulário principal do Menu ou você quer que, ao abrir, já crie a OS e exiba o código dela?
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018

boa noite P2!!
Você poderia me dar um exemplo de como ficaria essa rotina? desde já muito obrigado!!
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/04/2018

Cuidado com a forma de implementação desse numeral de OS. Se o sistema puder ser utilizado por mais de uma pessoa simultaneamente, poderá haver duplicidade no número da OS.

Suponha o seguinte:
A última OS digitada foi a número 15.
Daí o primeiro usuário entra na inclusão de OS, o sistema vai até o último registro, pega o número e soma 1, obtendo 16.
Nesse mesmo tempo outro usuário faz o mesmo procedimento, então o sistema vai até o último registro, pega o número e soma 1, obtendo 16.
Se ambos tentarem gravar suas OSs, o sistema irá gerar um erro de violação de chave primária.

O correto seria obter o número no momento da gravação do registro e exibi-lo ao usuário ou criar uma tabela de numeradores, onde a sequencia seria obtida dali.
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018

Boa Noite Emerson!! esse sistema vai ser usado por apenas um usuário! continuo aqui aguardo uma ajuda de uma boa alma, mas pelo que vejo esta dificil para todos do forun, todos com a mesma dificuldade, mas se tiver alguém que possa me ajudar vou ficar muito grato!!
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018

Boa Noite Emerson!! esse sistema vai ser usado por apenas um usuário! continuo aqui aguardo uma ajuda de uma boa alma, mas pelo que vejo esta dificil para todos do forun, todos com a mesma dificuldade, mas se tiver alguém que possa me ajudar vou ficar muito grato!!
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/04/2018

Se é garantido que somente um usuário irá utilizar, siga a dica passada pelo colega P2:

Antes de apresentar a tela ao usuário, vá até o último registro
Table.Last;
Obtenha o número da próxima OS:
nProxOS := Table.FieldByName('NumOS').AsInteger + 1;
Inclua um novo registro já com o próximo número preenchido:
Table.Insert;
Table.FieldByName('NumOS').AsInteger := nProxOS
GOSTEI 1
Martins Luthier

Martins Luthier

19/04/2018

Bom dia Emerson, fico muito grato em seu empenho a me ajudar!! tenho 2 duvidas!! tipo: ( nProxOS ) seria uma variável ? outra dúvida!! toda essa rotina eu colocaria onde? muito obrigado!!
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/04/2018

nProxOS é uma variável numérica que receberá o próximo número de OS.
O código deve ser colocado imediatamente antes de apresentar a tela de OS para o usuário. Com não tenho o seu fonte, não tenho como te dizer exatamente onde deve ser colocado.
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018

nProxOS : Stringer ; seria assim? eu tenho uma tela inicial e lá contem vários botões um deles chama o Form ( OS ) no caso seria neste botão, ou seria em outro lugar?
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018

Boa Noite Emerson! tentei essa rotina no botão que chama a tela da OS, mas a tela não abre e da o seguinte erro: O campo N_da_OS ( campo do código ) não pode ser modificado, vc saberia dizer o que pode estar acontecendo?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/04/2018

Talvez a propriedade ReadOnly do campo esteja como True. Na verdade é preciso saber como tal campo está definido na sua base de dados.
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

19/04/2018

add no skype rcp@outlook.com.br
GOSTEI 0
Martins Luthier

Martins Luthier

19/04/2018


Boa noite P2 !! Pode ser no ZAP ? ( 21 ) 96443-8057
GOSTEI 0
POSTAR