CHAVE PRIMARIA CALCULADA

Ola amigos

Tenho um problema que deveria ser simples de resolver, mas pra mim está sendo bem complicado.

Em geral, a maioria das tabelas que usamos tem como chave primária um campo autoincremento.

Entretanto eu me deparei com uma tabela cujo campo chave é do tipo string, e cujo valor é calculado por uma aplicacao Delphi usando a seguinte lógica

AAMMDDXXXXX. Exemplo : 1901010001, 1901010002, etc.

Neste caso eu precisei converter a rotina para php

Entao eu fiz o seguinte:

No evento onBeforeInsert eu chamo a rotina de calculo que vai retornar a sequencia.

{numero} = nova_sequencia();

O problema é que nao estou conseguindo fazer isso funcionar no scriptcase. Embora a rotina consiga calcular a sequencia, o sc dá problema de validacao.

Como o campo é marcado como chave primaria, ele tambem é obrigatorio no formulario, e assim o sc reclama que o campo é obrigatório, e nem sequer chega a preencher o valor.

Eu mudei o codigo para o evento onValidate, e mesmo assim o form nao aceita. O campo continua vazio.

Só dá certo se eu desmarcar o campo como chave primaria. Mas se fizer assim, já fica mais dificil de ligar a aplicacao form com o grid.

Enfim, alguem já passou por isso, ou sabe como resolver?

Edite o campo e diga que ele eh calculado pelo banco de dados.
Crie uma trigger onbefore no banco que faça esse cálculo na ok.

Nesses casos ideal mesmo eh usar app de controle para dar manutenção na tabela.

É porque eu queria usar o form mesmo.

Mas acho que pelo controle dá certo sim.

A gente só perde um pouco da funcionalidade do form.

Mas valeu pela força.