| |
|
|
- page 1 - |
|
holmol93 | allô miteinander
ici c'est moi oui déjà erstklassig chez meiner ersten Frage geholfen worden et si je lente mais sûrement toujours plus derrière cela ganze Thema steige, stehe je doch la fois wieder avant einem, pour mich, unlösbaren Problem.
Zum Aufbau meines Programmes: c'est un Programme um une une école trop verwalten. Pour mich un projet um un paire Dinge dazuzulernen. l'instituteur et Schüler avons eigene Benutzerkonten, Funktionen et Rollen (zB. "Klassenlehrer";"Schulleiter","Klassensprecher") peut verteilt volonté et il y a une Rechteverwaltung, dans quel on den Benutzern sur ihren Accounts gewisse Lese et Schreibrechte beschränken peux.
il y a im Hintergrund verschiedene Datenbanken. une avec Benutzerdaten (Adresse,Alter,rôle,Mot de passe,nom,Benutzername), une avec den zugeteilten Rechten. en supplément hat chacun personne un eigenes Datenbankfile, quoi de qui Software automatisch erstellt wird. chez Lehrern contient es qui Klassen, qui ihm zugeteilt wurden pour dem Schema "KLASSE","SCHÜLERNAME","FACH", chez den Schülern ses Noten et Absenzen, pour dem Schema "LEHRER","FACH","NOTE", bzw: "ABSENZ"....
maintenant soll es une Funktion donner um Benutzerdaten trop changement et Benutzer trop effacer. si je une Benutzer lösche, muss je seinen Eintrag aus qui Benutzerdatenbank, aus qui Rechtedatenbank et son eigenes DB File entfernen. cela klappt problemlos.
maintenant wird den Lehrern mais dans qui Notenübersicht toujours une "Leiche" avec dem gelöschten Schülernamen angezeigt, là cette oui im jeweiligen DB File des Lehrers mitverlinkt ist.
Diesen muss je alors herauslöschen.
j'ai mir folgendes überlegt: cela Programme liest dans qui Schülerdatenbank qui Namen qui l'instituteur aus, qui ihm Noten ou bien Absenzen eingetragen avons -> Fachlehrer. ensuite ouvrez es cela jeweilige DB File avec dem Lehrernamen et löscht alle Einträge dans quel qui nom des Schülers vorkommt. cela muss plusieurs fois dans Boucle passer, là es oui plusieurs l'instituteur sommes et un l'instituteur zT aussi 2 Fächer unterrichten peux.
dans meiner Boucle löscht es mais toujours seulement den Namen des Schülers aus qui banque de données des ersten Lehrers, qui ihm une Note gegeben hat et je suis vraie perplexe... qui Code (pas courir) sieht so aus:
db ("open",#1,dbuserdata$)' ouvrez qui Benutzerdatenbank
db ("use",#1)
db ("seek","USERNAME",personausw$,2)' cherchez den Namen des Schülers
db ("delete")' löscht ihn
db ("pack")
db ("close",#1)
db ("open",#2,dbrechte$)' ouvrez qui Rechtedatenbank
db ("use",#2)
db ("seek","USERNAME",personausw$,2)' cherchez den Schüler
db ("delete")' löscht seinen Eintrag
db ("pack")
db ("close",#2)
db ("open",#3,dbpendenzen$)' ouvrez qui banque de données pour cela Logfile
db ("AppendBlank")
db ("put","AN","SUPER-T")' hinterlässt une Logileeintrag pour cela Effacer des Schülers
db ("put","MESSAGE",dt("getdate",6)+" "+$ Trim(benutzer$)+" // löscht Schüler "+$ Trim(personausw$))
db ("putrec",0)
db ("pack")
db ("close",#3)
db ("open",#4,"C:\XProfanX2\Datenbanken\"+$ Trim(personausw$)+".DBF")' ouvrez qui eigene DB des Schülers
db ("use",#4)
Whilenot %dbEof
satznr&= &dbreccount' Anzahl Datensätze en tout
db ("use",#4)
db ("go","Top")
Si Satznr& > 0
l'instituteur$=db("get","LEHRER")' Holt sich une Lehrernamen
db ("open",#5,"C:\XProfanX2\Datenbanken\"+$ Trim(l'instituteur$)+".DBF")' ouvrez qui DB avec dem Namen des Lehrers
db ("use",#5)
whilenot %dbEof
satznr2&=db ("seek","SCHUELER",personausw$,2)' cherchez den Namen des Schülers
si satznr2& > 0
db ("delete")' löscht den Datensatz
db ("pack")
db ("close",#5)
Endif
db("go","Next")
endwhile
Endif
db("go","Next")
endwhile
db ("close",#4)
Wär cool, si la fois quelqu'un drüberschauen pourrait... je crois je schnall irgendwas beim le bout qui Boucle pas :O
Grüessli
Danny |
|
|
| |
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
- page 2 - |
|
Thomas Freier | avec qui pcu ging's. Si maintenant mais aussi avec X2 possible son ou bien täusche je mich?
$H Windows.ph
DECLARE MENU&,MENU2&
$U DLGMENU.PCU=MENU.
WINDOWSTYLE 4+8
CLS
BUILDMENU2 %hwnd
BUILDMENU %hwnd
var menu%=1
WHILENOT (%KEY=2)
WAITINPUT
IF (ABS(%MENUITEM)=104) OU (ABS(%MENUITEM)=204)
BREAK
ENDIF
Si (ABS(%MENUITEM)=102)
~SetMenu(%hwnd,0)
~DrawMenuBar(%hwnd)
~SetMenu(%hwnd,menu2&)
~DrawMenuBar(%hwnd)
ElseIf (ABS(%MENUITEM)=202)
~SetMenu(%hwnd,0)
~DrawMenuBar(%hwnd)
~SetMenu(%hwnd,menu&)
~DrawMenuBar(%hwnd)
EndIf
WEND
FIN
PROC BUILDMENU
PARAMETERS DLG&
MENU&=MENU.NEW(DLG&)
MENU.SETNICEBACKGROUND
MENU.POPUP "&Datei"
MENU.APPENDMENU 100,"Neu"
MENU.APPENDMENU 101,"Öffnen"
MENU.APPENDMENU 102,"Menü 2"
MENU.APPENDMENU 104,"Beenden"
endproc
PROC BUILDMENU2
PARAMETERS DLG&
MENU2&=MENU.NEW(DLG&)
MENU.SETNICEBACKGROUND
MENU.POPUP "&Dokument"
MENU.APPENDMENU 200,"Speichern"
MENU.APPENDMENU 201,"Drucken"
MENU.APPENDMENU 202,"Menü 1"
MENU.APPENDMENU 204,"Beenden"
endproc
|
|
|
| |
|
|
|
|
| |
|
- page 1 - |
|
| Sorry, je sais scheinbar garnicht oui c'est ca quelle Leiste Du meinst.
Vlt. la fois une Screenshot montrer, simple à Beitrag anhängen. |
|
|
| |
|
|
|
holmol93 |
Heyho
Stimmt, hätt je grad de Anfang à mitschicken peut *g*
je crois aussi pas, cela es viele gibt, qui cet Possibilité chercher
mais comment tu vois, unterscheidet sich je pour dem, quelle Rechte qui Benutzer hat, cela menu dessus. si je qui meinen Logoutvorgang so einbaue, dass je simple cela menu récente aufbauen lasse, sommes zum partie après Menüpunkte doppelt. ou bien un l'instituteur, qui sich einloggt, pour dem qui Schulleiter eingeloggt était, hat soudain près de seinem menu aussi encore Zugriff aufs Master oO
c'est pourquoi möcht je qui Leiste "löschen" et récente initialisieren laisser
qui Menüpunkte volonté sur Si- Anweisungen aus et eingeblendet. Pour dem Motto, si droite SoundSo vorhanden -> zeige "Funktionen.Master" usw...
Greetz,
Danny |
|
|
| |
|
|
|
Thomas Freier | alors pour chacun Gruppe un eigenes menu? cela pourrait sur einem Dialog son et ensuite cela Zutreffende einblenden. ou bien siehe [...] simple qui Source einmal durchstöbern. |
|
|
| |
|
|
|
H.Brill | près siehste, maintenant savoir du aussi, quoi avec banque de données-Normalisierung gemeint ist. si es un normales menu ist, pourrait on doch un komplettes menu Montrer et je pour Rechten, avec EnableMenu chaque Auswahlpunkte désactiver bzw. aktivieren.
So, eh bien doit je zur travail. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 08.05.2013 ▲ |
|
|
|
| |
|
- page 2 - |
|
|
E.T. | ... ou bien arrêt un externes menu nutzen... ... et ensuite UseExtMenu...
là peux on joli entre den Menüs hin- et her échanger |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 08.05.2013 ▲ |
|
|
|
|
holmol93 | allô zusammen,
habe la fois un paire Opportunités durchprobiert, mais rien funktioniert so, comme soll
Überlegung ist: une personne meldet sich à et cela menu passt sich je pour ihren Benutzerrechten à. cela klappt. quoi pas klappt: il y a une Logoutfunktion, quelle une Benutzer récente authentifiziert et qui Rechte (aussi pour menu) récente zuteilt. si je cela menu après simple encore einmal récente erstelle, habe je gewisse Menüpunkte doppelt, nämlich encore qui de qui Vorperson. pouvoir on cela un paire la fois hat on un 3-Zeiliges menu...
Ausblenden et wieder einblenden bringt rien, là alles un menu ist, dans dem gewisse "AppendMenu" Punkte avec Si-Then-D'autre ausgeblendet sommes. qui rester beim Wiedereinblenden im gleichen Status... alors dans dem, de qui personne, qui sich comme erstes angemeldet hat.
si je cela menu avec Destroymenu(%HWnd) zerstöre, verschwindet es zwar, mais je peux es après pas encore einmal récente magasin (ist chez mir une Procédure.). Fehlermeldung: "Fehler beim erstellen des Menüs."
What can I do?
c'est cela einzige Problem, quoi je de Anfang à pas lösen konnte... maintenant hat mon Programme soweit alle Funktionen et j'ai cela jusqu'à zum Schluss aufgeschoben et brings simple pas zum courir... es muss doch là irgend une Weg donner, cela bestehende menu entweder encore einmal récente trop magasin sans doppelte et dreifache Menüpunkte ou bien es trop effacer et encore einmal entier récente trop "definieren"...
je weiss, mon Problem est un Luxusproblem xD bien sûr peut je qui Menüpunkt simple "ausgrauen", mais il y a gewisse Sachen, là voudrais je simple pas, dass quelqu'un, qui ne...aucune droite hat vous trop sehn, elle voit et quoi bringt es dem Schüler, si il aussi encore qui Menüpunkte qui l'instituteur sieht xD |
|
|
| |
|
|
|
| exposition la fois, Dir pourrait qui dlgmenu aider: [...] -
zwar déjà vieux mais Code ist chez. |
|
|
| |
|
|
|
Thomas Freier | avec qui pcu ging's. Si maintenant mais aussi avec X2 possible son ou bien täusche je mich?
$H Windows.ph
DECLARE MENU&,MENU2&
$U DLGMENU.PCU=MENU.
WINDOWSTYLE 4+8
CLS
BUILDMENU2 %hwnd
BUILDMENU %hwnd
var menu%=1
WHILENOT (%KEY=2)
WAITINPUT
IF (ABS(%MENUITEM)=104) OU (ABS(%MENUITEM)=204)
BREAK
ENDIF
Si (ABS(%MENUITEM)=102)
~SetMenu(%hwnd,0)
~DrawMenuBar(%hwnd)
~SetMenu(%hwnd,menu2&)
~DrawMenuBar(%hwnd)
ElseIf (ABS(%MENUITEM)=202)
~SetMenu(%hwnd,0)
~DrawMenuBar(%hwnd)
~SetMenu(%hwnd,menu&)
~DrawMenuBar(%hwnd)
EndIf
WEND
FIN
PROC BUILDMENU
PARAMETERS DLG&
MENU&=MENU.NEW(DLG&)
MENU.SETNICEBACKGROUND
MENU.POPUP "&Datei"
MENU.APPENDMENU 100,"Neu"
MENU.APPENDMENU 101,"Öffnen"
MENU.APPENDMENU 102,"Menü 2"
MENU.APPENDMENU 104,"Beenden"
endproc
PROC BUILDMENU2
PARAMETERS DLG&
MENU2&=MENU.NEW(DLG&)
MENU.SETNICEBACKGROUND
MENU.POPUP "&Dokument"
MENU.APPENDMENU 200,"Speichern"
MENU.APPENDMENU 201,"Drucken"
MENU.APPENDMENU 202,"Menü 1"
MENU.APPENDMENU 204,"Beenden"
endproc
|
|
|
| |
|
|
|
holmol93 | hey IF&Thomas
Merci pour Eure répondre. Werde es à la maison grad la fois ausprobieren
alors j'ai oui XProfan X2 mais avec cela ist (soweit je es feststellen konnte) rien Vergleichbares possible... Habe rumprobiert et quelque chose ist garantiert toujours de travers gegangen...
je berichte demain la fois drüber, si es geklappt hat
Greetz,
Danny |
|
|
| |
|
|
|
Thomas Freier |
alors j'ai oui XProfan X2 mais avec cela ist (soweit je es feststellen konnte) rien Vergleichbares possible.
Doch. Wechselmenüs sous 29.1.3 - CreateMenu, AppendMenu, SetMenu et DestroyMenu |
|
|
| |
|
|
|
E.T. |
... il y a une Logoutfunktion, quelle une Benutzer récente authentifiziert et qui Rechte (aussi pour menu) récente zuteilt. ...
alors Logout heist m.E., cela qui akt. Benutzer abgemeldet et niemand plus angemeldet ist. alors Benutzer abmelden, cela menu komplett zestören et ensuite im Programme un Standard - menu avec einer Login - Funktion mettons.
So comment du cela beschreibst, ist es plutôt un "Benutzer wechseln". je denke, là geraten qui Menü's durcheinander. Würde je plutôt den Benutzer komplett abmelden vom Programme, Standard-menu mettons et ggf. chez einem klick sur z.B. une Button "Benutzer wechseln" juste wieder une sélection pour reg. Benutzer anbieten.
et ensuite cela menu je pour Rechten wieder "zusammenbauen" et Montrer... |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 11.05.2013 ▲ |
|
|
|
|
holmol93 | allô miteinander!
Habe mon menu sur qui Alternative Possibilité avec qui Unit angepasst... Funktioniert! je peux cela menu jederzeit anéantir et récente aufbauen, sans Fehlermeldung! Genial.
@Mario,
Jap, oui c'est ca so verstehe je Logout eigentlich aussi je hab mich anfangs à unserem Datenbanksystem im magasin orientiert, sur dem on sich seulement avec einem Mot de passe authentifiziert. Sobald on sur "Logout" allez, venez tout de suite un Logindialog, zum schnellen Benutzerwechsel. Habe es maintenant allerdings so angepasst, comment du vorgeschlagen la hâte: 2 Menüs. une avec allen Funktionen et Funktionen volonté pour Rechten angezeigt et ausgeblendet et eines, quoi pour einem Logout angezeigt wird et wohin on seulement qui Optionen "Beenden" et "Anmelden" hat.
Funzt problemlos ;) avec cela ist maintenant aussi enfin qui Funktion "Als Benutzer ausgeben" possible geworden ;)
Gruess aus Bern et encore une schönen Sonntagnachmittag! |
|
|
| |
|
|