RandomGenerator
Legacy Member
De bedoeling is om in een opdrachtenformulier (van een database) de adresgegevens automatisch te vullen met die van de klant, van bijbehorende opdracht.
De error die ik krijg is dat Opdracht niet gekend is.
Wat vreemd is sinds het gekoppeld is aan de Dataset Opdracht in het formulier.
Zonder Opdacht er bij te schrijven zegt hij:
Unknown identifier 'FieldByName'
Ik heb al een alternatief geprobeerd:
Maar hier krijg ik dan :
Out of Global vars range at 6:1
Moest iemand met wat op weg kunnen helpen, tzou enorm geapprecieerd worden.
Code:
procedure pVulVan
var
vanHuisnr : string;
vanPlaats : string;
vanPostcode : string;
vanStraat: string;
klant : integer;
qry:TcQuery;
begin
klant := Opdracht.FieldByName('klant').AsInteger;
vanHuisnr := Opdracht.FieldByName('van_huisnr').AsString;
vanPlaats := Opdracht.FieldByName('van_plaats').AsString;
vanPostcode := Opdracht.FieldByName('van_postcode').AsString;
vanStraat := Opdracht.FieldByName('van_straat').AsString;
qry := CreateQry('select huisnr, plaats, postcode, straat from Klant K');
qry.SQL.Add ('where K.nr = :klant ');
qry.ParamByName('klant').AsInteger := klant;
qry.Execute;
vanHuisnr := qry.FieldByName('huisnr').AsString;
vanPlaats := qry.FieldByName('plaats').AsString;
vanPostcode := qry.FieldByName('postcode').AsString;
vanStraat := qry.FieldByName('straat').AsString;
qry.Free;
end;
De error die ik krijg is dat Opdracht niet gekend is.
Wat vreemd is sinds het gekoppeld is aan de Dataset Opdracht in het formulier.
Zonder Opdacht er bij te schrijven zegt hij:
Unknown identifier 'FieldByName'
Ik heb al een alternatief geprobeerd:
Code:
procedure pVulVan(aField:TField);
var
qry: TCQuery;
klant : integer;
begin
klant := aField.AsInteger;
qry := CreateQry('select K.huisnr huisnr, K.plaats plaats, K.postcode postcode, K.straat straat, O.klant, O.van_straat vanStraat, O.van_huisnr vanHuisnr, O.van_postcode vanPostcode, O.van_plaats vanPlaats ');
qry.SQL.add('from Klant K, Opdracht O');
qry.SQL.add('where O.klant = K.nr and O.klant =: klant');
qry.ParamByName('klant').AsInteger := klant;
qry.Execute;
qry['huisnr'].AsString := qry['vanHuisnr'].AsString;
qry['plaats'].AsString := qry['vanPlaats'].AsString;
qry['postcode'].AsString := qry['vanPostcode'].AsString;
qry['straat'].AsString := qry['vanStraat'].AsString;
end ;
Maar hier krijg ik dan :
Out of Global vars range at 6:1
Moest iemand met wat op weg kunnen helpen, tzou enorm geapprecieerd worden.