Se me ocurren varias ideas, por una parte un Custom Control, que inserte un valor en funcion de los existentes en otro..
esta opcion quizas sea algo complicada puesto que desde el propio formulario, un control tiene que buscar el valor del resto.
Otra opcion que creo q yo utilizaría, programarte un event Handler capturando el evento ItemAdded es decir, cuando insertes un elemento, en funcion del campo Estado rellenes unos metadatos u otros.
Con esto podrías rellenar unos metadatos u otros, es decir: la lista podría tener todos los metadatos que pueden utilizarse y en funcion del estado rellenarías unos u otros.
Ahora bien, como muestras esos datos? En la pagina DispForm.aspx te creas un formulario de lista personalizado con el Designer y dentro añades una condicion al campo Estado de manera que funcione como un if (de hecho se convierte en un <xsl:if>
) para que muestres unos datos u otros.
Y en la lista ya sería mas lógico, o bien creas una lista en la que se vean todos los emtadtos y para algunos apareceran X rellenados y para otros Y. o bien haces varias vistas con filtros y muestras la lista tantas veces como estados distintos
tengas.
Espero que te sirva de ayuda y si te gusta esta idea y necesitas mas ayuda no dudes en consultarme.
Un saludo