Ver Mensaje Individual
  #1  
Antiguo 26-04-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 21
gatosoft Va camino a la fama
Question Campos ReadOnly y Required en ClientDataset

Buen día amigos,

Les comento mi problema en espera de su ayuda:

Tengo un módulo que recibe una variable String que contiene un archivo XML. Este archivo lo cargo en un ClientDataset con la sentencia:

Código Delphi [-]
ClientDataset1.XMLData := MyVariableString;

El módulo debe permitir al usuario realizar algunas tareas sobre los datos (Insert, Update, Delete).... sin afectar la data real, lo cual quiere decir que nunca haré un ApplyUdates... el objetivo es entregar los datos al usuario y que se divierta con ellos sin hacer daños... pero bueno, ese no es el punto.

El problema está en que las consultas que llegan vienen con validaciones desde la base de datos, como: El campo es requerido, o el campo es de solo lectura....

He intentado después de hacer el cargue de datos hacer modificaciones como:

Código Delphi [-]
       cdsConsulta.Fields[i].Required := False;
       cdsConsulta.Fields[i].ReadOnly := False;


Pero no sucede nada... de hecho, hago la prueba de guardar los archivos antes y después de estas modificaciones y efectivamente no sucede nada en el ClientDataset....

Código Delphi [-]
  cdsConsulta.SaveToFile('c:\salida1.xml');
  for i := 0 to cdsConsulta.FieldCount-1 do
     Begin
       cdsConsulta.Fields[i].Required := False;
       cdsConsulta.Fields[i].ReadOnly := False;
     End;//for i
  cdsConsulta.SaveToFile('c:\salida2.xml');

Un fragmento del XML es el siguiente (Antes y después):

Código:
<FIELDS>
   <FIELD attrname="tid_codigo" fieldtype="i4"/>
  <FIELD attrname="tid_pai_codigo" fieldtype="i4" required="true"/>
  <FIELD attrname="pai_codigoiso" fieldtype="string.uni" readonly="true" WIDTH="10"/>
  <FIELD attrname="tid_nombre" fieldtype="string.uni" required="true" WIDTH="120"/>
  <FIELD attrname="tid_descripcion" fieldtype="string.uni" WIDTH="200"/>
 <FIELD attrname="tid_estado" fieldtype="string.uni" required="true" WIDTH="10"/>
</FIELDS>

Les agradezco sus opiniones...!

PDTA: Trabajo con XE
Responder Con Cita