I'm still trying Aurelius and I have problem to make simple lookup for TAureliusDataset.
Here is my object :
[Entity]
[Table('RESIDENCE_ADDRESS')]
[Sequence('GEN_RESIDENCE_ADDRESS_ID')]
[Id('FID', TIdGenerator.IdentityOrSequence)]
TResidenceAddress = class
private
[Column('REA_ID', [TColumnProp.Required])]
FID: integer;
[Column('REA_ADDRESS', [TColumnProp.Required], 50)]
FAddress: string;
[Column('REA_ZIP_CODE', [], 10)]
FZipCode: Nullable<string>;
[Column('REA_CITY', [], 30)]
FCity: Nullable<string>;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [])]
[JoinColumn('RE_ID', [TColumnProp.Required], 'RE_ID')]
FRE_ID: Proxy<TResidence>;
function GetRE_ID: TResidence;
procedure SetRE_ID(const Value: TResidence);
public
property ID: integer read FID write FID;
property Address: string read FAddress write FAddress;
property ZipCode: Nullable read FZipCode write FZipCode;
property City: Nullable read FCity write FCity;
property RE_ID: TResidence read GetRE_ID write SetRE_ID;
end;
[Entity]
[Table('RESIDENCE_LOT')]
[Sequence('GEN_RESIDENCE_LOT_ID')]
[Id('FID', TIdGenerator.IdentityOrSequence)]
TResidenceLot = class
private
[Column('REL_ID', [TColumnProp.Required])]
FID: integer;
[Column('REL_NUMBER', [], 12)]
FNumber: Nullable<string>;
[Column('REL_TYPE', [])]
FType: Nullable<integer>;
[Column('REL_FLOOR', [])]
FFloor: Nullable<integer>;
[Column('REL_WATER_METER', [TColumnProp.Required])]
FWaterMeter: integer;
[Column('REL_TANTIEME', [TColumnProp.Required])]
FTantieme: Integer;
[Association([TAssociationProp.Lazy, TAssociationProp.Required], [])]
[JoinColumn('REA_ID', [TColumnProp.Required], 'REA_ID')]
FREA_ID: Proxy<TResidenceAddress>;
function GetREA_ID: TResidenceAddress;
procedure SetREA_ID(const Value: TResidenceAddress);
public
property ID: integer read FID write FID;
property Number: Nullable read FNumber write FNumber;
property Type_: Nullable read FType write FType;
property Floor: Nullable read FFloor write FFloor;
property WaterMeter: integer read FWaterMeter write FWaterMeter;
property Tantieme: Integer read FTantieme write FTantieme;
property REA_ID: TResidenceAddress read GetREA_ID write SetREA_ID;
end;
In my form I declare my controller and list like this :
FResidenceLotController: TResidenceLotController;
FResidenceLots: TList<TResidenceLot>;
FResidenceAddressController: TResidenceAddressController;
FResidenceAddresss: TList<TResidenceAddress>;
I built my 2 aurelius dataset like this :
FResidenceLots := FResidenceLotController.GetAll;
FResidenceAddresss := FResidenceAddressController.GetAll;
dtsResidence.SetSourceList(FResidenceAddresss);
dtsMain.SetSourceList(FResidenceLots);
In my dtsMain, I add by design time an new lookup field (like I can make with Firedac or other dataset)
here is dfm for this field :
object dtsMainREA_ADDRESS: TStringField
FieldKind = fkLookup
FieldName = 'REA_ADDRESS'
LookupDataSet = dtsResidence
LookupKeyFields = 'Self'
LookupResultField = 'Address'
KeyFields = 'REA_ID'
Size = 50
Lookup = True
end
In my grid REA_ADDRESS is empty even if I have value in REA_ID.
When I add TDBLookupComboBox with field REA_ADDRESS for datafield, it is also not set when I scroll on grid.
When I scroll on my combobox, I discover ID are not the same that in my grid. What is my problem ?