0

Ansicht filtern

Hallo zusammen,

ich habe eine Ansicht, welche mir alle Kunden aufzeigt wo noch keine Rechnung gestellt wurde. Leider funktioniert die Filterung nur beim ersten mal. Sobald ich in den Datensatz über die Ansicht gehe und das Feld 'RG - gestellt' auf true setze stimmt die Filterung nicht mehr. Es werden dann alle Datensätze angezeigt. Kein Parameter aus der select Anweisung wird beachtet.

Weis da einer Abhilfe von euch?

let aa := Vertragspartner.number(Nr);
do as server
    select Abrechnungen where 'Aufträge'.Vertragspartner.number(Nr) = aa and 'Abrechnung vom' = 'erste Lieferung' and 'RG - gestellt?' = false 
end

6 Antworten

null
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mal ohne 'do as server' probiert?

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG ist das selbe Ergebnis. Die frage ist ja warum es beim ersten Aufruf funktioniert, nach Änderung aber nicht mehr?? Also gar nicht mehr, bis auf das select auf die Tabelle.

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    so geht es... warum verstehe ich aber nicht.

    let aa := Vertragspartner.number(Nr);
    do as server
       ( select Abrechnungen) ['Aufträge'.Vertragspartner.number(Nr) = aa and 'Abrechnung vom' = 'erste Lieferung'] [ 'RG - gestellt?' = false ]
    end

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Kannst du mal das Datenmodell skizzieren.
    Die Ansicht scheint sich in der Tabelle Aufträge zu befinden.
    Wenn ich es richtig deute, hast du eine Tabelle Abrechnungen, in der eine Verknüpfung zu Aufträge existiert, die eine Verknüpfung zu Vertragspartner beinhaltet. Dann sind in der Tabelle Abrechnungen noch die Felder 'Abrechnung vom' und 'RG - gestellt?'.
    Die Hauptsuche ist demnach 'RG -gestellt?' = false und 'Abrechnung vom' = 'erste Lieferung' in der Tabelle Abrechnungen.
    Das würde ich dann auch als erstes Argument im select angeben.
    Was ist 'erste Lieferung'? eine Variable?
    Es könnte an der Reihenfolge im select liegen, ist aber nur geraten. 

    Vielleicht so:
    select Abrechnungen where 'RG - gestellt?' = false and 'Abrechnung vom' = 'erste Lieferung' and 'Aufträge'.Vertragspartner.number(Nr) = aa

    Ich wüsste momentan aber nicht, wie man das nachstellen soll ohne es nur zu theoretisieren.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG du hast das richtig erkannt.

      richtiger weise sieht der Aufruf in der Ansicht so aus. 

      let aa := Vertragspartner.number(Nr);
      do as server
          (select Abrechnungen)['Aufträge'.Vertragspartner.number(Nr) = aa and 'Abrechnung vom' = 'erste Lieferung']['RG - gestellt?' = false or 'RG - gestellt?' = null]
      end

       

      'RG - gestellt?' (ja/nein feld) =null ... kommt noch weg über die Massendatenänderung, da dies jetzt erst eingefügt ist. Standartwert ist dann false.

      'Abrechnung vom' und 'erste Lieferung' sind Datumsfelder.

      'Aufträge'.Vertragspartner.number(Nr) = aa ... gibt mir die Datensatznummern aus, zu den jeweiligen Auftraggebern über die verknüpfungen

       

      Das script funktioniert jetzt so, jedoch musste ich jetzt noch einen Butten für die Aktualisierung  einbauen. 

      let aa := number(Nr);
      openRecord(record('Aufträge',last(select 'Aufträge').number(aa)), "Lieferübersicht/erstlieferung")

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Was ist denn eigentlich der Hintergrund das es manchmal mit where  nicht geht sondern nur mit den eckklammern?

Content aside

  • vor 1 JahrZuletzt aktiv
  • 6Antworten
  • 86Ansichten
  • 2 Folge bereits