an Immensly frustrating procedures...as it turns out to be.
So the Form data is
Code:
Dataset
Identifier = Order
Column
Identifier = Customer
OnChange = pFillFrom
end
End
The idea is to fill the adress fields from Order with that of the adress information from Customer, when a customer is selected by its number, in said form. This with one procedure.
Code:
procedure pFillFrom;
var
qry: TCQuery;
begin
qry := CreateQry('select C.housenumber housenr, C.place place, C.areacode areacode, C.street street, O.customer, O.from_street fromStreet, O.from_houseNr fromHousenr, O.from_areacode fromAreacode, O.from_place fromPlace');
qry.SQL.add('from Customer C, Order O');
qry.SQL.add('where O.Customer = C.nr and O.Customer =: c');
qry.ParamByName('c').AsInteger := FieldByName('customer').AsInteger;
qry.Execute;
qry['housenr'].AsString := qry['fromHousenr'].AsString;
qry['place'].AsString := qry['fromPlace'].AsString;
qry['areacode'].AsString := qry['fromAreacode'].AsString;
qry['street'].AsString := qry['fromStreet'].AsString;
end;
The error i receive is :
Unknown Identifier : FieldByName
But the procedure is to be executed in Order, which has a fieldname Customer ... so...
If i change it to Order.FieldByName('customer').AsInteger it says it doesn't recognize Order.
I've tried an alternative code without paramater setting of aField:TField (so in the form it becomes a beforePost instead of onChange)
Code:
procedure pFillFrom;
var
fromHousenr: string;
fromPlace: string;
fromAreacode: string;
fromStreet : string;
Customer : integer;
qry:TcQuery;
begin
customer := Order.FieldByName('Customer').AsInteger;
fromHousenr := Order.FieldByName('from_houseNr').AsString;
fromPlace := Order.FieldByName('from_place').AsString;
fromAreacode := Order.FieldByName('from_areacode').AsString;
vanStraat := Order.FieldByName(from_street').AsString;
qry := CreateQry('select housenr, place, areacode, street from Customer C');
qry.SQL.Add ('where C.nr = :customer ');
qry.ParamByName('customer').AsInteger := customer;
qry.Execute;
fromHousenr := qry.FieldByName('housenr').AsString;
fromPlace := qry.FieldByName('place').AsString;
fromAreacode := qry.FieldByName('areacode').AsString;
fromStreet := qry.FieldByName('street').AsString;
qry.Free;
end;
But here it says it also doesn't recognize Order.
Im at a loss here, any help is appreciated.