0

Wie kann ich via einem Button ein Datum plus zB 1 Monat, 6 Monate...usw in einen neuen Datensatz übernehmen?

Hallo zusammen,

 

ich komme mal wieder nicht weiter und brauche bitte eure Hilfe.

 

Ich habe eine HauptTabelle Mietverträge mit Untertabelle Mietvertragspositionen.

Mit einem Button generiere ich eine neuen Datensatz und übernehme alle Felder, inkl. die der Untertabelle (hier nur ein Auszug):

 

let myMV := this;
let newMV := (create 'Mietverträge');
newMV.(

Erstellungsdatum := today();
for i in myMV.Mietvertragspositionen do
let newMV_Pos := (create Mietvertragspositionen);
newMV_Pos.(
'Mietverträge' := newMV;

Mietbeginn := i.Mietbeginn;
Mietende := i.Mietende;

)
end
);
popupRecord(newMV)

 

Soweit funktioniert alles so, wie es soll.

Nun möchte ich gerne einen Mietvertrag 'verlängern'

In Tabelle 'Mietverträge' habe ich nun zusätzlich ein Auswahlfeld (1 Monat, 3 Monate, 6 Monate, 1 Jahr)

Wie bekomme ich es hin, dass je nach Auswahl, sich das Datum (Mietbeginn und Mietende in der Untertabelle) um 1 Monat, 3 Monate, 6 Monate, 1 Jahr verändert?

 

Ich bedanke mich schon mal vorab für eure Hilfe.

 

Gruß Kruna

7 Antworten

null
    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Eine Möglichkeit das zu erreichen:

    1. Das Datum  in Tag,Monat,Jahr aufsplitten. Funktionen day(), month(), year().
    2. Die entsprechende Position um den ausgewählten Wert addieren.
    3. Das Datum mit date() wieder zusammenbaut

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Bsp.
    let vAddition := 2;
    date(year(today()), month(today()) + vAddition, day(today()))

    Ergibt das heutige Datum, um 2 Monate erhöht.

    • Kruna
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

     

    vielen Dank für Deinen Ansatz. So in etwa hatte ich es versucht, aber irgendwie bekomme ich es nicht zusammen. Wo und wie gebe ich das alles ein?

     

    Mietende := i.Mietende = date(year(Mietende+1), month(Mietende), day(Mietende);

     

    oder so ähnlich, hat nicht funktioniert. Habe dann ein wenig herumprobiert, leider eben ohne Erfolg. Des weiteren müsste ich ja noch irgendwie

     

    Switch Auswahl do

    case 1:

     

    case 2:

     

    ....usw. mit einbinden oder? Auch da hänge ich fest und weiß nicht so recht wo und wie genau das Script lauten müsste.

     

    Gruß Kruna

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Mietende := date(year(i.Mietende+1), month(i.Mietende), day(i.Mietende));

    • Kruna
    • vor 2 Jahren
    • Gemeldet - anzeigen

    HAllo Uwe,

     

    ich habe den Code gerade eingesetzt, leider passiert nichts bzw. erhöht sich das Datum nicht um 1 Jahr.

    Was könnte ich bloß falsch gemacht haben?

     

    Gruß Kruna

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Habe die DB schnell mal nachgebaut inkl. Auswahlfeld:
    if 'Verlängerungszeitraum' then
    let vAddition := 0;
    switch number('Verlängerungszeitraum') do
    case 1:
    (vAddition := 1)
    case 2:
    (vAddition := 3)
    case 3:
    (vAddition := 6)
    case 4:
    (vAddition := 12)
    end;
    let myMV := this;
    let newMV := (create 'Mietverträge');
    newMV.(
    Erstellungsdatum := today();
    for i in myMV.Mietvertragspositionen do
    let newMV_Pos := (create Mietvertragspositionen);
    newMV_Pos.(
    'Mietverträge' := newMV;
    Mietbeginn := date(year(i.Mietbeginn), month(i.Mietbeginn) + vAddition, day(i.Mietbeginn));
    Mietende := date(year(i.Mietende), month(i.Mietende) + vAddition, day(i.Mietende))
    )
    end
    );
    popupRecord(newMV)
    end

    Der code funktioniert und erhöht das Datum um die entsprechende Anzahl der Monate. (1Jahr = +12 Monate)

    Er wird immer auf alle Positionen der Untertabelle angewandt und kann so nicht selektiv genutzt werden.

    • Kruna
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Guten morgen Uwe,

     

    das ist ja irre!!!! Ich kann mich nicht oft genug bedanken!! Ich kann mir auch nicht erklären, warum das bei mir nicht funktioniert hat.

    Wie dem auch sei, vielen, vielen Dank für Deine Mühe und tolle Hilfe, dadurch bin ich mit meiner DB wieder ein großes Stück weitergekommen.

     

    Wünsche noch einen schönen Tag,

    Gruß Kruna