<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    El 29/04/2011 05:19 a.m., José Antonio Cuello escribió:
    <blockquote
      cite="mid:1304065188.7828.15.camel@ubuntu.artextrading.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="GENERATOR" content="GtkHTML/3.28.1">
      Al realizar los opens se lanzan muchos eventos como afterscroll
      del dataset, que a su vez pueden lanzar onchange de campos y
      objetos. <br>
      El error podría venir de una asignación de valor a un campo de
      alguna de las tablas ya abiertas realizado en un evento de los
      campos u objetos dependientes del dataset Obras.<br>
      <br>
      Es decir, al abrir Obras se ejecuta del dataset/datasource ->
      afterScroll / onStateChange -> Esto rellena objetos de la
      pantalla que tienen onChange -> en el onChange existe un (como
      ejemplo) tblMonedas.fieldbyname('miDivisa').asString := 'EUR';<br>
      <br>
      y como no está en inset ni edit, da error.<br>
    </blockquote>
    <br>
    Hola José..<br>
    si, es tal como dices....<br>
    ese form tiene un grid donde muestro solo 3 campos del query, y al
    costado, por cuestiones cosméticas, en controles DBxxx muestro los
    demás datos del qry.<br>
    Justamente en uno de esos controles hay un evento onChange.<br>
    <br>
    Ahora agregué el if y quedó así:<br>
    <br>
    procedure TListaObras.edtPlazoObraChange(Sender: TObject);<br>
    begin<br>
      if dsObras.DataSet.State in dsEditModes then<br>
         qryObras.FieldByName('fecha_fin').AsDateTime:=
    IncMonth(qryObras.FieldByName('fecha_adjudicacion').AsDateTime,
    qryObras.FieldByName('plazoobra').AsInteger);<br>
    end;  <br>
    <br>
    (no entiendo porqué antes no saltaba.. quizás algún bug anterior..)<br>
    <br>
    De todas formas, saqué eso del evento onChange y lo puse en el
    evento onEditingDone, que (creo) es lo más correcto... supongo que
    al hacer el post se ejecuta...<br>
    PERO.. no llego al post! <br>
    Como ese query muestra los datos de 2 tablas, asocié un tzUpdateSql
    al mismo para poder hacer modificaciones a algunos de los campos de
    una tabla y al hacer el post ZAS!!...  (el post lo hace el botoncito
    correspondiente de un dbnavigator asociado)<br>
    <br>
    <img src="cid:part1.06080907.08070900@adinet.com.uy" alt=""><br>
    <br>
    seguiré investigando.... estoy mirando un proyecto que usa algo
    similar y no encuetro la diferencia.. (aclaro que antes funcionaba
    ok)<br>
    muchas gracias por todo..<br>
    chauuuuuuuuu<br>
    <br>
  </body>
</html>