`Jede dieser Funktionen mischt die Datensatzzeiger auf !!! Case of : ($1=18)  `die arrays machen für die pop-up's ARRAY TEXT(arrP_Typ;(Records in table([Typen]))) ARRAY TEXT(arrK_Typ;(Records in table([Typen]))) ARRAY TEXT(arrO_Typ;(Records in table([Typen]))) ALL RECORDS([Typen]) SELECTION TO ARRAY([Typen]Anzeigetext;arrP_Typ) SELECTION TO ARRAY([Typen]Anzeigetext;arrK_Typ) SELECTION TO ARRAY([Typen]Anzeigetext;arrO_Typ) ARRAY TEXT(arrSuf;(Records in table([PreSuf]))) ALL RECORDS([PreSuf]) SELECTION TO ARRAY([PreSuf]Anzeigetext;arrSuf) ARRAY TEXT(arrPre;(Records in table([PreSuf]))) ALL RECORDS([PreSuf]) SELECTION TO ARRAY([PreSuf]Anzeigetext;arrPre) ARRAY TEXT(arr_Land;(Records in table([Land]))) ALL RECORDS([Land]) SELECTION TO ARRAY([Land]Anzeigetext;arr_Land) ARRAY TEXT(arr_k1;(Records in table([Kdatatyp]))) ARRAY TEXT(arr_k2;(Records in table([Kdatatyp]))) ARRAY TEXT(arr_k3;(Records in table([Kdatatyp]))) ALL RECORDS([Kdatatyp]) SELECTION TO ARRAY([Kdatatyp]Anzeigetext;arr_k1) SELECTION TO ARRAY([Kdatatyp]Anzeigetext;arr_k2) SELECTION TO ARRAY([Kdatatyp]Anzeigetext;arr_k3) : ($1=4)  `changes (wenn neu auch changes) ? und request speichern (auch 5o / 6k) If (Record number([Personen])=-3)   `datt is ja neu ! da tu'mer nix weil gleich eh der alert kommt $diffCount:=111 Else   `ein bestehender satz $diffCount:=0 If (vName1#[Personen]Name1) $diffCount:=$diffCount+1 End if If (vName2 # [Personen]Name2) $diffCount:=$diffCount+1 End if If (arrPre # [Personen]Prefix) $diffCount:=$diffCount+1 End if If (arrSuf # [Personen]Suffix) $diffCount:=$diffCount+1 End if If (arrP_Typ # [Personen]Typ) $diffCount:=$diffCount+1 End if End if   `ganz (entweder 111 diffs (-3!) oder anzahl) If ($diffCount>0)  `der einzige grund zu speichern If ($diffCount=111) PLAY("one shot") OK:=0 CONFIRM("ACHTUNG : Dies ist ein neuer nicht gespeicherter Datensatz.";"Speichern";"Verwerfen") If (OK=1) vDataOK:=True DO (13) DO (12) DO (11) If (vDataOK=True) DO (7) End if End if Else   `diff größer 0 und nicht -3 PLAY("Sosumi") OK:=0 CONFIRM("ACHTUNG : In den Personendaten sind "+String($diffCount)+" Veränderungen.";"Speichern";"Verwerfen") If (OK=1)  `dat is speichern vDataOK:=True DO (13) DO (12) DO (11) If (vDataOK=True) DO (7) End if End if   `diff count =111 End if   `diff count > 0 : ($1=5)  `changes in o ? gar neu ? und request speichern  If (Record number([Orte])=-3)   `datt is ja neu ! da tu'mer nix weil gleich eh der alert kommt $diffCount:=111 Else   `ein bestehender satz $diffCount:=0 If (vStr1 # [Orte]Data'Str1) $diffCount:=$diffCount+1 End if If (vStr2 # [Orte]Data'Str2) $diffCount:=$diffCount+1 End if If (arr_Land # [Orte]Data'Land) $diffCount:=$diffCount+1 End if If (vPLZ # [Orte]Data'PLZ) $diffCount:=$diffCount+1 End if If (vStadt # [Orte]Data'Stadt) $diffCount:=$diffCount+1 End if If (arrO_Typ # [Orte]Data'Typ) $diffCount:=$diffCount+1 End if End if   `ganz (entweder 111 diffs (-3!) oder anzahl) If ($diffCount>0)  `der einzige grund zum speichern If ($diffCount=111) PLAY("one shot") OK:=0 CONFIRM("ACHTUNG ! ORTE"+Char(13)+"Dies ist ein neuer nicht gespeicherter Datensatz.";"Speichern";"Verwerfen") If (OK=1) DO (12) [Orte]Log:=[Orte]Log+Char(13)+"MODIFIED ort* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) SAVE RECORD([Orte]) PLAY("Indigo") End if Else   `diff größer 0 und nicht -3 PLAY("one shot") OK:=0 CONFIRM("ACHTUNG : In den Ortsdaten sind "+String($diffCount)+" Veränderungen.";"Speichern";"Verwerfen") If (OK=1)  `dat is speichern DO (12) [Orte]Log:=[Orte]Log+Char(13)+"MODIFIED ort* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) SAVE RECORD([Orte]) PLAY("Indigo") End if End if   `diff count =111 End if   `diff count > 0 : ($1=6)  `changes in k ? gar neu ? und request speichern If (Record number([Kontakte]Data)=-3)   `datt is ja neu ! da tu'mer nix weil gleich eh der alert kommt $diffCount:=111 Else   `ein bestehender satz $diffCount:=0 If (vk1 # [Kontakte]Data'eins) $diffCount:=$diffCount+1 End if If (arr_k1 # [Kontakte]Data'typ1) $diffCount:=$diffCount+1 End if If (vk2 # [Kontakte]Data'zwei) $diffCount:=$diffCount+1 End if If (arr_k2 # [Kontakte]Data'typ2) $diffCount:=$diffCount+1 End if If (vk3 # [Kontakte]Data'drei) $diffCount:=$diffCount+1 End if If (arr_k3 # [Kontakte]Data'typ3) $diffCount:=$diffCount+1 End if If (arrK_Typ # [Kontakte]Data'Typ) $diffCount:=$diffCount+1 End if End if   `ganz (entweder 111 diffs (-3!) oder anzahl) If ($diffCount>0)  `der einzige grund zum speichern If ($diffCount=111) PLAY("one shot") OK:=0 CONFIRM("ACHTUNG ! KONTAKTE"+Char(13)+"Dies ist ein neuer nicht gespeicherter Datensatz.";"Speichern";"Verwerfen") If (OK=1) DO (11) [Kontakte]Log:=[Kontakte]Log+Char(13)+"MODIFIED kontakt* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) SAVE RECORD([Kontakte]) PLAY("Indigo") End if Else   `diff größer 0 und nicht -3 PLAY("one shot") OK:=0 CONFIRM("ACHTUNG : In den Kontaktdaten sind "+String($diffCount)+" Veränderungen.";"Speichern";"Verwerfen") If (OK=1)  `dat is speichern DO (11) [Kontakte]Log:=[Kontakte]Log+Char(13)+"MODIFIED kontakt* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) SAVE RECORD([Kontakte]) PLAY("Indigo") End if End if   `diff count =111 End if   `diff count > 0 : ($1=7) [Personen]Log:=[Personen]Log+Char(13)+"MODIFIED person* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) [Orte]Log:=[Orte]Log+Char(13)+"MODIFIED ort* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) [Kontakte]Log:=[Kontakte]Log+Char(13)+"MODIFIED kontakt* "+String(Current date)+" / "+String(Current time)+Char(13)+"Station :"+Current machine+" # Owner :"+Current machine owner+Char(13)+"USER :"+Current user+Char(13) vID:=[Personen]ID SAVE RECORD([Orte]) SAVE RECORD([Kontakte]) SAVE RECORD([Personen]) PLAY("Indigo") : ($1=8)  `ort in arr arrO_Typ:=[Orte]Data'Typ arr_Land:=[Orte]Data'Land vStadt:=[Orte]Data'Stadt vPLZ:=[Orte]Data'PLZ vStr1:=[Orte]Data'Str1 vStr2:=[Orte]Data'Str2 : ($1=9)  `kont in arr arrK_Typ:=[Kontakte]Data'Typ arr_k1:=[Kontakte]Data'typ1 arr_k2:=[Kontakte]Data'typ2 arr_k3:=[Kontakte]Data'typ3 vk1:=[Kontakte]Data'eins vk2:=[Kontakte]Data'zwei vk3:=[Kontakte]Data'drei : ($1=10)  `person in array arrPre:=[Personen]Prefix arrSuf:=[Personen]Suffix arrP_Typ:=[Personen]Typ vNotiz:=[Personen]Notiz vName1:=[Personen]Name1 vName2:=[Personen]Name2 vID:=[Personen]ID : ($1=11)  `var in kontakt [Kontakte]Data'Typ:=arrK_Typ [Kontakte]Data'typ1:=arr_k1 [Kontakte]Data'typ2:=arr_k2 [Kontakte]Data'typ3:=arr_k3 [Kontakte]Data'eins:=vk1 [Kontakte]Data'zwei:=vk2 [Kontakte]Data'drei:=vk3 : ($1=12)  `var in ort [Orte]Data'Typ:=arrO_Typ [Orte]Data'Land:=arr_Land [Orte]Data'Str1:=vStr1 [Orte]Data'Str2:=vStr2 [Orte]Data'Stadt:=vStadt [Orte]Data'PLZ:=vPLZ : ($1=13)  `datacheck für neuen satz If ([Personen]Name1="") PLAY("three shot") ALERT("Ohne eine Namensangabe wird der Datensatz nicht gespeichert.") vDataOK:=False End if [Personen]Prefix:=arrPre [Personen]Suffix:=arrSuf [Personen]Typ:=arrP_Typ [Personen]Name1:=vName1 [Personen]Name2:=vName2 [Personen]ID:=vID : ($1=14)  `subrecordcount & vars füllen ALL SUBRECORDS([Orte]Data) FIRST SUBRECORD([Orte]Data) ALL SUBRECORDS([Kontakte]Data) FIRST SUBRECORD([Kontakte]Data) vK_Count:=Records in subselection([Kontakte]Data) vO_Count:=Records in subselection([Kontakte]Data) vOPOS:=0 vKPOS:=0 DO (8)  `ort in var und array DO (9)  `kont in var und arrays : ($1=15)  `do the sub buttons If (vO_Count<=1) SET VISIBLE(bOPrevPage;False) SET VISIBLE(bONextPage;False) SET VISIBLE(vO_Count;False) SET VISIBLE(vOPOS;False) Else SET VISIBLE(bOPrevPage;True) SET VISIBLE(bONextPage;True) SET VISIBLE(vO_Count;True) SET VISIBLE(vOPOS;True) End if If (vK_Count<=1) SET VISIBLE(bKPrevPage;False) SET VISIBLE(bKNextPage;False) SET VISIBLE(vK_Count;False) SET VISIBLE(vKPOS;False) Else SET VISIBLE(bKPrevPage;True) SET VISIBLE(bKNextPage;True) SET VISIBLE(vK_Count;True) SET VISIBLE(vKPOS;True) End if If (Record number([Personen])=-3) BUTTON TEXT(bAdd;"New") Else BUTTON TEXT(bAdd;"Save") End if SET ENTERABLE(vID;False) : ($1=16)  `alle radios off - selber selected anschalten vR_D1:=0 vR_D2:=0 vR_D3:=0 vR_D4:=0 vR_D5:=0 vR_D6:=0 : ($1=17)  `umkopieren vars für disp SET ENTERABLE(vTEdit;False) Case of : (vR_D1=1) vTEdit:=[Personen]Notiz : (vR_D2=1) vTEdit:=String(Current time)+" /// "+Char(13)+" L M A A !"+Char(13)+"Später Š" : (vR_D3=1) vTEdit:=[Personen]Log : (vR_D4=1) vTEdit:=[Orte]Log : (vR_D5=1) vTEdit:=[Kontakte]Log : (vR_D6=1) vTEdit:=" Da steht nix." End case End case