Não sei se é a melhor forma de fazer mas, devido a existir uma quantidade de caracteres variável nas 4 partes do valor, penso que a solução passa pelo utilizador digitar o valor sempre separando as partes com um caractere especial, por exemplo 1 ponto.
Então fiz assim:
O utilizador digita o valor separando as partes com ponto final (o 1º separador também porque é mais rápido do que colocar logo a barra):
(nota: falta fazer a validação do valor digitado -> 3 pontos obrigatórios e verificar os limites máximos de caracteres das partes do valor)
1234.34.2.567
No evento onChange coloco:
$codigo = {codigo};
$partes = explode(".", $codigo);
$codigo_novo = $partes[0] . “/” .
$partes[1] . “.” .
$partes[2] . “.” .
$partes[3];
{codigo} = $codigo_novo;
e fica:
1234/34.2.567
Outros valores:
123456.45.7.56789 -> 123456/45.7.56789
34.45.6.6 -> 34/45.6.6
O armazenamento na BD incluirá também os caracteres separadores das partes.
Não vejo outra forma de fazer, devido ao facto das partes do valor serem variáveis.
Só se fosse implementado no Scriptcase 1 tipo de campo ‘multipartes’ 
ou uma máscara que permitisse passar com as teclas de direcção entre as posições do valor!!!
Obrigado