Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Pir0x am 22.10.08 - 15:02:37

Titel: Felder werden nicht gesetzt
Beitrag von: Pir0x am 22.10.08 - 15:02:37
Hallo, ich hab da nenn kleines Problem mit einer Abfrage in meiner Maske.

Also ich hab nenn Button (Gerät einfügen) und eine Hilfsansicht "H_BB",
Es kann vorkommen das diese Ansicht leer ist, da dort nur Geräte meinen speziellen Status angezeigt werden.

So beim klicken des Button soll jetzt überprüft werden ob die Ansicht leer ist, wenn sie es ist dann soll eine dem entsprechende Meldung ausgegeben werden und wenn sie nicht Leer ist soll ein Auswahl Menü erscheinen mit den Namen der Geräte, so das funktioniert soweit auch alles.

Nur wenn ich jetzt ein Gerät auswähle, hab ich in Temp1 den Namen stehen, damit mach ich dann ein @DBLookUp und setzte die Werte die ich auslese dann in meine Felder ein.

Nur macht er das irgendwie nicht, d.h. die Felder bleiben leer, was zu Folge hätte das Temp1 eigentlich ja leer sein müsste und das versteh ich nicht ganz :)

ohne die beiden Abfragen und wenn ich davon ausgeh das ich immer ne Liste hab funktionierts problem los und die Felder werden gesetzt.

kann mir da wer weiterhelfen?

Code
temp_server := "Server";
temp_db := "BBGeräte.nsf";
temp_ans1 := "H_BB";

temp0 := @DbColumn(""; temp_server:temp_db; temp_ans1; 1);

@If(temp0 = ""; @Prompt([Ok];"Achtung";"Es stehen keine freien BlackBerrys zu verfügung");
temp1 := @Prompt([OkCancelList]; " SIM-Karte auswählen"; "Wählen Sie einen SIM-Karten-Nr aus"; @Subset(temp0; 1); temp0));

@If(temp1 != "";@SetField ("N_BB" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;1 ));
	 temp1 != ""; @SetField ("N_BBTyp" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;2 ));
	temp1 != "";@SetField ("N_BBPin" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;3 ));
"")


Ricco
Titel: Re: Felder werden nicht gesetzt
Beitrag von: DerAndre am 22.10.08 - 15:26:01
Ok, nachdem ich das Teil dreiundzwanzigmal gelesen habe, glaube ich verstanden zu haben wo Dein Problem liegt.
Hier noch das Success

@If(temp0 = ""; @Prompt([Ok];"Achtung";"Es stehen keine freien BlackBerrys zu verfügung";@success);

Wenn die erste Bedingung erfüllt ist, werden die nächsten nicht mehr abgearbeitet.

@If(temp1 != "";@SetField ("N_BB" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;1 ));
    temp1 != ""; @SetField ("N_BBTyp" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;2 ));
   temp1 != "";@SetField ("N_BBPin" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;3 ));
"")

So sollte es klappen.

@If(temp1 != "";@Do(@SetField ("N_BB" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;1 ));
    @SetField ("N_BBTyp" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;2 ));
   @SetField ("N_BBPin" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;3 )));
"")



Das ganze geht noch eleganter wenn Du nach der Leerprüfung die Aktion abbrichst.

Oder so, ohne Garantie, schnell hingeschnipselt...

temp_server := "Server";
temp_db := "BBGeräte.nsf";
temp_ans1 := "H_BB";

temp0 := @DbColumn(""; temp_server:temp_db; temp_ans1; 1);

@If(temp0 = ""; @Return(@Prompt([Ok];"Achtung";"Es stehen keine freien BlackBerrys zu verfügung"); @Success);
temp1 := @Prompt([OkCancelList]; " SIM-Karte auswählen"; "Wählen Sie einen SIM-Karten-Nr aus"; @Subset(temp0; 1); temp0));

@If(temp1 != "";@success;@return(""));
@SetField ("N_BB" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;1 ));
@SetField ("N_BBTyp" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;2 ));
@SetField ("N_BBPin" ; @DbLookup("Notes":"NoCache"; temp_server: temp_db; temp_ans1; temp1;3 ));



Titel: Re: Felder werden nicht gesetzt
Beitrag von: Pir0x am 22.10.08 - 15:42:14
ja bissl blööd beschrieben, das stimm wohl xD

jetzt funktionierts wunderbar, danke dir
Titel: Re: Felder werden nicht gesetzt
Beitrag von: Pir0x am 23.10.08 - 09:21:50
ich häng hier gleich mal noch ne andere Frage mit an, also die Abfragen und soweiter funktionieren jetzt.

Ich hab jetzt nur das Problem das der Inhalt quasi nicht aktualisiert wird, d.h. wenn ich ein Gerät auswähle, wird es ja auf vergeben gesetzt und somit aus der ansicht rausgenommen.

Bei dem Auswahlfenster in der Maske werden nur freie Geräte angezeigt,

allerdings wenn ich ein Gerät auswähle und dann noch eins steht es das alte (welches jetzt den Status "vergeben" hat) immer noch mit in der Liste und das solange bis ich die Datenbank neu öffnen.

Aber aus der Hilfsansicht ist direkt nach dem auswählen weg, ich nehm mal an er cachet das ganze, gibs ne möglichkeit das zu optimieren?
Titel: Re: Felder werden nicht gesetzt
Beitrag von: DerAndre am 23.10.08 - 09:33:09
Hast Du die View frisch gemacht?
Titel: Re: Felder werden nicht gesetzt
Beitrag von: Pir0x am 23.10.08 - 09:36:13
die view wird vor jeder abfragen mit view refresh aktualisiert,
hab das Problem schon gelöst

hab  "NoCache" mit eingebaut