0

Mehere Datensätze aus einer Tabelle Kopieren

Ich habe eine Tabelle in welcher Daten unsere Filialen erfasst werden.

Für einen monatlichen Abgleich muss ich jetzt bestimmt Daten in eine 2 Tabelle übernehmen. Mit meiner erstellten Formel funktioniert dies allerdings nicht, es wird hier nur ein Eintrag erzeugt welcher fortlaufen überschrieben wird, es sollen aber alle einträge als jweile eigener Datensatz in der Zieltabelle erzeugt werden.

Was habe ich falsch gemacht?

let me := this;
let m := 'Abrechungs Monat';
let j := 'Abrechnungs Jahr';
let e := (create 'Abrechnung Telekom');
do as server
for p in select Aktivierungsliste where 'Mobilfunk/Festnetz' = 1 and Vertragsart.Vertragsart like "Telekom" and 'In Prov. Abrechnung übernommen' != true and 'Erfassung abgeschlossen' = true do
if month(p.'Aktivierungs-Datum') = m and year(p.'Aktivierungs-Datum') = j then
e.(Niederlassung := p.Standort.Niederlassung);
e.(VO := p.VO);
e.(Vorname := p.Kunde.Vorname);
e.(Nachname := p.Kunde.Kundenname);
e.(Datum := p.'Aktivierungs-Datum');
e.(Bindefrist = p.Bindefrist);
e.(Rufnummer := p.'Rufnummer ohne Sonderzeichen');
e.(Tarif := p.'Tarif aktuell'.Tarifname);
e.(Auftrtagsnummer := p.Auftragsnummer);
e.('Kartennr.' := p.Kartennummer);
e.(IXUS := p.IXUS);
e.(Art := p.'Zusendung/Mitgabe');
e.('Anbieter Gerät' := p.'Anbieter Geraet');
e.('Anbieter IMEI' := p.'Anbieter IMEI');
e.('verkauftes Gerät' := p.'verkauftes Geraet');
e.('Verk. Gerät IMEI' := p.'verkaufte IMEI');
e.(Grundprovision := p.Grundprovision);
e.('Tarif Push 2' := p.'Tarif Push 2');
e.('Tarif Push 3' := p.'Tarif Push 2');
p.('In Prov. Abrechnung übernommen' := true)
end
end
end

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Martin, wenn ich es richtig sehe, müsstest du den "create"-Befehl in die for-Schleife packen, sonst wird halt immer wieder auf denselben, in der Variable "e" gespeicherten Datensatz zugegriffen. Versuch's mal so:

     

    do as server
       let me := this;
       let m := 'Abrechungs Monat';
       let j := 'Abrechnungs Jahr';
       for p in select Aktivierungsliste where 'Mobilfunk/Festnetz' = 1 and Vertragsart.Vertragsart like "Telekom" and 'In Prov. Abrechnung übernommen' != true and 'Erfassung abgeschlossen' = true do
          if month(p.'Aktivierungs-Datum') = m and year(p.'Aktivierungs-Datum') = j then
             let e := (create 'Abrechnung Telekom');
             e.(Niederlassung := p.Standort.Niederlassung);
             e.(VO := p.VO);
             e.(Vorname := p.Kunde.Vorname);
             [... usw.]  
          end
       end
    end

    • Martin_Trautvetter
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo,

    vielen Dank, genau so hat es funktioniert. Ich wusst nur nicht wie ich den loop genau hinbekommen

     

    vielen dank :)