FormFlight. , . , . ComboBoxFrom.
(IBQuery) | (IBUpdateSQL) | DataSource | |
, | IBQueryAP | ||
( , , , , ) | IBQueryFl | DataSourceFl | |
IBQueryEQ | IBQueryEQ | IBUpdateSQLEQ | |
( Lookup ) | IBQueryPr |
, - OnCreate ( - OnShow). , . , . . , (Items) ; AddObject Objects. , . TObject. .
, .
procedure TFormFlight.FormCreate(Sender: TObject);
Begin
ComboBoxFrom.Items.Add(' '); //
IBQueryAP.SQL.Text:= 'select distinct AP.AP_CODE, AP.AP_NAME '
+ from AIRPORT AP '
+ 'inner join AIRLINE AL on AP.AP_CODE =
+ 'AL.AL_AP_FROM order by AP.AP_NAME';
IBQueryAP.Open;
while not IBQueryAP.Eof do begin //
ComboBoxFrom.Items.AddObject(IBQueryAP.FieldByName('AP_NAME').AsString,
TObject(IBQueryAP.FieldByName('AP_CODE').AsInteger));
IBQueryAP.Next;
end;
end;
, .
, .. OnClick ComboBoxFrom.
, , . , , .. . . :
|
|
SELECT A.AL_NUM, F.FL_DATE, A.AL_AP_FROM, A.AL_AP_TO, A.AL_PL_CODE, F.FL_BRD_NUM, AL_AC_CODE
FROM AIRLINE A
INNER JOIN FLIGHT F ON A.AL_NUM = F.FL_NUM
WHERE:from IN (A.AL_AP_FROM, 0)
? , , . 0, , .
.
procedure TFormFlight.ComboBoxFromClick(Sender: TObject);
Begin
IBQueryFl.Close;
IBQueryFl.ParamByName('from').AsInteger:= Integer(ComboBoxFrom.Items.Objects[ComboBoxFrom.ItemIndex]);
IBQueryFl.Open;
end;
, TObject .
. (IBQueryEQ)
SELECT PR.PR_NAME, PR.PR_NAME2, PR.PR_NAME3, RNK.RNK_NAME,
EQ.EQ_CODE, EQ.EQ_FL_DATE, EQ.EQ_RNK_CODE, EQ.EQ_PR_CODE, EQ.EQ_FL_NUM
FROM EQUIPAGE EQ
INNER JOIN RANK RNK ON EQ.EQ_RNK_CODE = RNK.RNK_CODE
INNER JOIN PERSON PR ON EQ.EQ_PR_CODE = PR.PR_CODE
WHERE EQ.EQ_FL_NUM =:NUM AND EQ.EQ_FL_DATE =:DT
( DataChange DataSourceFl)
procedure TFormFlight.DataSourceFlDataChange(Sender: TObject;
Field: TField);
Begin
IBQueryEQ.Close;
//
IBQueryEQ.ParamByName('NUM').AsString:= IBQueryFlAL_NUM.Value;
IBQueryEQ.ParamByName('DT').AsDate:= IBQueryFlFL_DATE.Value;
IBQueryEQ.Open;
end;
IBQueryEQ UpdateSQL.