Announcement

Collapse
No announcement yet.

Gibt es so etwas wie den RANGE Typ aus ABAP?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gibt es so etwas wie den RANGE Typ aus ABAP?

    Hallo zusammen,

    gibt es in .NET eingentlich so etwas wie den RANGE Typ aus ABAP?

    Zur Erklärung: Der RANGE Typ kann Werte aus einem Selektionsbildschirm aufnehmen und ich kann den Typ dann für SELECTs auf die Datenbank oder in IF Abfragen benutzen. Schlicht nach dem Motto IF Suchwert IN RangeTyp ...

    Der Typ hat div. Möglichkeiten. Er kann einzelne Werte und/oder Bereiche einschließen, einzelne Werte und/oder Bereiche ausschließen, auch beliebig gemischt.
    Für die Einschluß-/Ausschlußkriterien gibt es die Möglichkeiten Gleichheit, Größer oder gleich, kleiner oder gleich, größer, kleiner und ungleich.

    z.B. wird in der Selektionsmaske (in verschiedenen Bereichen) das folgende eingegeben: EQ I 50, GE I 60, EQ E 75, BT I 10 15 - würde bedeuten das in der Abfrage nach Suchwert in RangeTyp alle Werte zwischen 10 und 15, 50 und größer oder gleich 60 eingeschlossen sind und 75 wird explizit ausgeschlossen.

    Ich hoffe ich konnte verständlich machen was ich wissen will.

    mit freundlichem Gruß
    Stephan "Womble" Knecht

  • #2
    IF Suchwert IN RangeTyp ...
    Jede Collection hat eine Contains Methode. Oder

    Der Typ hat div. Möglichkeiten. Er kann einzelne Werte und/oder Bereiche einschließen, einzelne Werte und/oder Bereiche ausschließen, auch beliebig gemischt.
    ... mit LINQ eine WHERE Einschränkung definieren mit (fast) allen Freiheiten wie du sie z.B auch in SQL hättest.
    Wenn du mit klassischem ADO.Net arbeitest dann geht das auch mit einer DataView auf eine DataTable.

    z.B. wird in der Selektionsmaske (in verschiedenen Bereichen) das folgende eingegeben: EQ I 50, GE I 60, EQ E 75, BT I 10 15 - würde bedeuten das in der Abfrage nach Suchwert in RangeTyp alle Werte zwischen 10 und 15, 50 und größer oder gleich 60 eingeschlossen sind und 75 wird explizit ausgeschlossen.
    Wenn das Filtern auf InMemory Daten geht und nicht auf eine Datenbank dann würde ich das über Dynamic LINQ machen. Richtung Datenbank läßt sich das direkter per Entity Framework oder LInq2SQL machen. Oder im klassischen ADO.NEt wieder über DataTAble/DataView.

    Comment


    • #3
      Danke, für die schnelle Antwort. Dann werde ich mich mal durch die Dynamic LINQ Info beißen.
      Aber so wie ich es beim ersten durchfliegen verstanden habe muss ich trotzdem eine Where-Bedingung zusammen bauen, d.h. den "schwierigeren Teil" habe ich doch wieder am Hals.

      Comment


      • #4
        Aber so wie ich es beim ersten durchfliegen verstanden habe muss ich trotzdem eine Where-Bedingung zusammen bauen, d.h. den "schwierigeren Teil" habe ich doch wieder am Hals.
        In wie fern schwierig? Meinst du deinen obigen Filterausdruck EQ I 50 irgendwas in einen LINQ Ausdruck umformen?
        Ansonsten sehe ich den LINQ Syntax als nicht schwieriger an als deinen Filterausdruck aus ABAP.

        Comment


        • #5
          Nein, denwegen ja auch in Hochkomma. Aber bei den Masken die ich gesehen habe sind acht Eingabefelder mit einer solchen Auswahlmöglichkeit dabei, d.h. ich muss alle acht auswerten und dann eine brauchbare Where Bedingung bauen. Ich befürchte eher das ich da an die maximale Obergrenze für ein SQL Command anstossen könnte - ist mir in VB6 schon mal passiert, weil ein Spezialist gemeint hat er müsste 10000 Einträge in die Include-Liste eintragen.

          Comment


          • #6
            ist mir in VB6 schon mal passiert, weil ein Spezialist gemeint hat er müsste 10000 Einträge in die Include-Liste eintragen.
            Da fehlen die Hochkommata um Spezialist

            Comment

            Working...
            X