[SOLVED] Capturar datos

Hola buenas tardes, tengo un formulario y al rellenar el campo dni, quisiera que capturase los datos de la (nombre, dni, direccion…)
He intentado hacerlo con enlaces>capture> le paso el valor del campo (dni), pero solo me rellena el campo del dni, los otros los deja vac?o.
?Que estoy haciendo mal?

Muchas gracias por vuestra colaboraci?n?

Hola utiliza un evento onchange ajax con la macro lookup y alli haces un select a los campos que necesitas y se los asignas a los campos del formulario.

Muchas gracias, funciono perfecto

Buenas!!

Podr?ais pasarme un enlace donde se explique paso por paso? Me estoy volviendo loca para conseguir que 2 campos diferentes refresquen 1 campo en concreto. ?Sab?is c?mo plantearlo? Gracias!!!

Hola, creas un evento ajax al campo y en este evento haces lo siguiente:
$valor = {codigo};

$sql = "select campo1, campo2 from mytabla where codigo = ".$valor;

sc_lookup(data, $sql);
{campo1} = {data[0][0]};
{campo2} = {data[0][1]};

[QUOTE=alvagar;14402]Hola, creas un evento ajax al campo y en este evento haces lo siguiente:
$valor = {codigo};

$sql = "select campo1, campo2 from mytabla where codigo = ".$valor;

sc_lookup(data, $sql);
{campo1} = {data[0][0]};
{campo2} = {data[0][1]};[/QUOTE]

Buenas, lo que he hecho es hacer un evento on change ajax en 2 campos diferentes para que modifiquen un campo en concreto. Mi problema es que el campo no se me recarga hasta que el usuario no ha modificado los dos campos. Tengo un campo que es “Cliente” otro que es “Contacto” y otro que es “Persona”. Mi objetivo es que cuando un usuario modifique “Cliente”, se modifique autom?ticamente el campo “Persona” y que cuando el usuario modifique “Contacto” se cargue autom?ticamente “Persona”. Ahora mismo mi problema es que hasta que el usuario no ha modificado ambos campos “Cliente” y “Contacto”, no se carga el campo “Persona”.

Estoy utilizando eventos onchange pasando par?metros y en el campo “Persona” tengo esto:

SELECT id_numero, nombre, codigo_cliente, codigo_contacto
FROM persona
WHERE codigo_cliente = ‘{codigo_cliente}’ OR codi_contacto = ‘{codigo_contacto}’
ORDER BY nombre

Tengo la teor?a que el problema es el “OR”, es como si hasta que no pudiera ejecutar la sentencia del WHERE entera, no se recarga el campo. ?Sab?is de alguna manera para que esto no pase? Gracias…

Hola me imagino que tu tienes 3 campos de tipo SELECT “Lista de valores”: Cliente - Contacto- Persona.
Tu necesidad es que si seleccionan un CLIENTE se recargue automaticamente el campo CONTACTO y cuando cambie contacto se cambie automatimente el campo PERSONA.

Para esto, te ubicas en el campo CLIENTE y buscas en donde dice: Procesamiento Ajax y das click en el check: Uso de AJAX para recargar otros campos de tipo Select. y seleccionas en siguiente campo a recargar: CONTACTO y luego haces lo mismo en el campo CONTACTO para que recargue el campo PERSONA.

En los ejemplos de SC busca el que dice: Reloading the city field when changing the State field.

o mira este ejemplo en linea: http://www.scriptcase.net/scriptcase-samples/php-filter-search/reload-field-with-ajax/

Buenos d?as Alvagar,

much?simas gracias por tu respuesta. Creo que me he explicado un poco mal… Mi objetivo es parecido a lo que t? dices, pero con una diferencia. Quiero que cuando alguien seleccione algo en el campo CLIENTE, autom?ticamente se recargue el campo PERSONA. Y que cuando alguien seleccione algo en el campo CONTACTO, se recargue autom?ticamente el campo persona. Para que lo entiendas, de cada cliente hay varias personas de atenci?n y de cada contacto hay varias personas relacionadas. Lo que me pasa es que si hago el SELECT que os mostr? en mi otro comentario, este no se ejecuta hasta que el usuario no ha seleccionado algo en el campo CLIENTE y en el campo CONTACTO. ?Alguna soluci?n? :slight_smile: Gracias

Yo creo que puedes crear otro campo para persona (persona2), asi que tendrias 2 campos persona1 y persona2.
entonces el ajax del campo CLIENTE apunta a PERSONA1 y el ajax del campo CONTACTO apunta a PERSONA2.
y en el evento ajax puedes ocultar un campo de persona dependiendo del campo que se esta modificando.

Este nuevo campo puede ser un campo que se crea en SC y en el evento onvalidate puedes asignarlo al campo de la tabla.

Saludos, realice un formulario maestro-detalle con 2 llaves, todo funciona bien, solamente que al agregar el registro me muestra el ultimo de la tabla maestro con su respectivo detalle,
lo que deseo es que se quede el registro nuevo para actualizar los datos en detalle. ?Cual es el problema?, ?porque se va al ?tlimo registro?
agradezco el apoyo de la comunidad.

Debes configurarlo para que no salga del registro.
APLICACION - NAVEGACION - Retornar despu?s de la inserci?n NO

Gracias por tu respuesta alvagar, te comento que est? configurado en NO Retornar despu?s de la inserci?n, sin embargo contin?a igual, env?a al ?ltimo registro despu?s del dar la inserci?n.
Te agradezco nuevos comentarios al respecto.

Mire como tiene el where en la sentencia SQL. por que cuando se inserta ejecuta nuevamente esta sentencia, hay que especificarle que sea para el codigo del registro actual.

Saludos alvagar, tratare de explicar como tengo los formularios:

  1. Son formularios maestro-detalle, en el maestro tengo los datos principales del empleado (esto es para una n?mina), y en el detalle las incidencias del mismo, estamos con una relaci?n de uno a muchos.
  2. No tengo sentencias en SQL en los dos formularios.
  3. Estos se relacionan con dos campos (RFC y tipo de empleado).
  4. He probado poniendo las llaves a ambos formularios.
  5. He probado quitando los indices en las tablas.
  6. He probado con indice autoincrmentable en la tabla maestro.
  7. En fin, le he buscado por todos lados.
  8. En el ejemplo de maestro-detalle de scriptcase si funciona bien, pero no dan mas detalles de configurar. Solamente indican las llaves de relaci?n
  9. En el manual viene en el ejemplo maestro-detalle, al configurar propiedades del Iframe-Acci?n despues de insertar. Aqui pienso que es donde se configura para este caso. El problema que en la vers?n 7 no aparece asi. No coinciden el manual con la versi?n.

Disculpas por la insistencia, y ni modo hay que seguirle buscando.
Saludos.

Agrego la imagen donde muestra la Acci?n despues de insertar:

frame1.jpg

frame.png

Tu dices: -No tengo sentencias en SQL en los dos formularios.
Yo pienso que debes de crear en el master la sentencia WHERE que recupere de forma unica a solo un empleado: esto es por el codigo del empleado y (RFC y tipo de empleado).
y en el detalle hace sen el where lo mismo para sus correpondientes llaves foraneas.

debe quedar asi, con tus correspondientes nombres de campos y criterios de recuperacion : RFC = [v_RFC] AND Tipo_empleado = [v_tipoempleado] AND codigo_empleado = [v_codigo_empleado]

Una vez que hagas esto, en el evento onfterinsert asignas lo siguiente: [v_codigo_empleado] = {codigo_empleado};
Esto es para que cuando insertes un nuevo master vuelva a recuperarse otra vez y vuelva al modo de edicion.

Espero que esto te sirva.

Saludos alvagar, la forma que me sugieres funciono correctamente. Ahora podemos continuar con el proyecto.
Agradezco todas tus respuestas y por tu tiempo.
Buen d?a.
Lenin

ok. me alegro

[QUOTE=alvagar;15703]Tu dices: -No tengo sentencias en SQL en los dos formularios.
Yo pienso que debes de crear en el master la sentencia WHERE que recupere de forma unica a solo un empleado: esto es por el codigo del empleado y (RFC y tipo de empleado).
y en el detalle hace sen el where lo mismo para sus correpondientes llaves foraneas.

debe quedar asi, con tus correspondientes nombres de campos y criterios de recuperacion : RFC = [v_RFC] AND Tipo_empleado = [v_tipoempleado] AND codigo_empleado = [v_codigo_empleado]

Una vez que hagas esto, en el evento onfterinsert asignas lo siguiente: [v_codigo_empleado] = {codigo_empleado};
Esto es para que cuando insertes un nuevo master vuelva a recuperarse otra vez y vuelva al modo de edicion.

Espero que esto te sirva.[/QUOTE]

tengo el mismo problema disculpa pero no logro entender bien que fue lo que hiciste para solucionar el problema si pudieras ser mas especifico gracias.

Hola, tengo un problema… Tengo varios campos de tipo Select que se cargan al teclear un c?digo… Quiero que los datos se guarden solamente cuando uno de mi campos de tipo select est? vac?o… Tengo el siguiente c?digo en el evento OnValidate:

if({c_codigo_man}<>’’)
{
sc_error_message(“El Pallet " . {c_codigo_pal} . " ya est? manifestado”);
sc_error_exit();
}

El problema es que aunque el campo est? vac?o, me arroja el mensaje de error y no puedo guardar nada… Claro que quitando el IF se me agregan tanto los que si tienen valor como los nulos… Necesito su ayuda!!

Muchas gracias

Hola a todos c?mo puedo cargar los campo groupID y description de una tabla llamada devicegroup ya hice un enl?ce al campo groupID pero cuando selecciono el campo necesito que me traiga tambi?n la informaci?n del campo description autom?ticamente. El formulario guardar? los datos extraidos de la tabla devicegruop en una tabla llamada citas y los campo a guardar son idcliente y nombre. Necesito como un autofill. He le?do algo sobre el evento onchange pero no logro entender como aplicarlo.

Gracias de antemano por cualquier comentario.