unit uODBase; interface uses Classes, ORFn, uConst; { Order Checking } function AddFillerAppID(const AnID: string): Boolean; procedure ClearFillerAppList; { Ordering Environment } procedure SetOrderFormIDOnCreate(AFormID: Integer); function OrderFormIDOnCreate: Integer; procedure SetOrderEventTypeOnCreate(AType: Char); function OrderEventTypeOnCreate: Char; procedure SetOrderEventIDOnCreate(AnEvtID: integer); function OrderEventIDOnCreate: integer; procedure SetOrderEventNameOnCreate(AnEvtNm: string); function OrderEventNameOnCreate: string; function GetKeyVars: string; procedure PopKeyVars(NumLevels: Integer = 1); procedure PushKeyVars(const NewVals: string); implementation var uOrderEventType: Char; uOrderEventID: Integer; uOrderEventName: string; uOrderFormID: Integer; uFillerAppID: TStringList; uKeyVarList: TStringList; { Order Checking } function AddFillerAppID(const AnID: string): Boolean; begin Result := False; if uFillerAppID.IndexOf(AnID) < 0 then begin Result := True; uFillerAppID.Add(AnID); end; end; procedure ClearFillerAppList; begin uFillerAppID.Clear; end; { Ordering Environment } procedure SetOrderFormIDOnCreate(AFormID: Integer); begin uOrderFormID := AFormID; end; function OrderFormIDOnCreate: Integer; begin Result := uOrderFormID; end; procedure SetOrderEventTypeOnCreate(AType: Char); begin uOrderEventType := AType; end; function OrderEventTypeOnCreate: Char; begin Result := uOrderEventType; end; procedure SetOrderEventIDOnCreate(AnEvtID: Integer); begin uOrderEventID := AnEvtID; end; procedure SetOrderEventNameOnCreate(AnEvtNm: string); begin uOrderEventName := AnEvtNm; end; function OrderEventNameOnCreate: string; begin Result := uOrderEventName; end; function OrderEventIDOnCreate: integer; begin Result := uOrderEventID; end; function GetKeyVars: string; begin Result := ''; with uKeyVarList do if Count > 0 then Result := Strings[Count - 1]; end; procedure PopKeyVars(NumLevels: Integer = 1); begin with uKeyVarList do while (NumLevels > 0) and (Count > 0) do begin Delete(Count - 1); Dec(NumLevels); end; end; procedure PushKeyVars(const NewVals: string); var i: Integer; x: string; begin if uKeyVarList.Count > 0 then x := uKeyVarList[uKeyVarList.Count - 1] else x := ''; for i := 1 to MAX_KEYVARS do if Piece(NewVals, U, i) <> '' then SetPiece(x, U, i, Piece(NewVals, U, i)); uKeyVarList.Add(x); end; initialization uOrderEventType := #0; uOrderFormID := 0; uOrderEventName := ''; uFillerAppID := TStringList.Create; uKeyVarList := TStringList.Create; finalization uFillerAppID.Free; uKeyVarList.Free; end.