[ASP/VB/HTML] Update pagina locken als andere user update

Pagina: 1
Acties:

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 13:08
Eerst even een kleine beschrijving van de applicatie,

Ik heb dus een applicatie bij ons op het intranet gemaakt en als men er op inlogt krijg je een hele lijst met records, als met dan op 1 van die records klikt dan kom je in een sublijst van dat record. In die sublijst staan een heleboel (financiele) gegevens die zeer regelmatig worden aangepast.

Wat is nu het probleem:
Het probleem is dat het regelmatig voorkomt dat bijvoorbeeld een gebruiker hier op de zaak maar ook een gebruiker op locatie iets in het ZELFDE 'subnummer' een aanpassing doet. Dus ze klikken allebij het subnummer aan, als je daar op klikt dan krijg je een overzicht van alle gegevens uit dat record. Nu kun je dus op de knop "wijzigen" klikken en kom je in een ander form terecht waar je dus alles kan wijzigen. Nu is het probleem dus dat als er 2 (of meer mensen) gaan wijzigen de data uit de database wordt gelezen en in de invoer velden neerzet. Als nu gebruiker A veld nummer 3 aanpast, en gebruiker B veld nummer 5 aanpast dan wordt dit niet goed opgeslagen, de gene die het laats opslaat worden ALLE gegevens van opgeslagen.

Wat wil ik nu graag maken:
Ik wil dus als er iemand op de knop "wijzigen" drukt dan er dus niemand meer op die knop kan drukken totdat de persoon heeft opgeslagen. Hoe kan ik dit nu het beste oplossen???

Waar zat ik aan te denken:
Ik zat er aan te denken dat als er op wijzigen wordt geklikt dat er het behoorende 'subnummer' in een Application("subnummer") wordt gezet en als iemand anders op wijzigen klikt dat het ASP'tje dan gaat kijken of er in wordt gewerkt, zo ja, geef dan een melding dat je moet wachten. Maar nu kan ik helaas niet aan een Application een timeout geven, want ik wil wel dat als perongeluk iemand net op wijzigen heeft geklikt en even weg moet dat hij dan niet continu wordt gelockt maar bijvoorbeeld max 10 minuten.

Hoe kan ik dit het beste aanpakken, of is dit een goed idee waar ik aan zat te denken???

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21:12

gorgi_19

Kruimeltjes zijn weer op :9

Een ideetje:
Sla het in een application op en in een session.
Bij een Session_OnEnd Event in je Global.Asa kan je vervolgens je application vrij maken.

Een andere mogelijkheid is om Application("Subnummer") een vervaltijd (in de vorm van vervaldatum + tijd, niet "10 minuten") te geven. Indien deze verlopen of "" is, dan kan er geedit worden, anders niet

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 13:08
gorgi_19 schreef op 10 januari 2003 @ 12:49:
Een ideetje:
Sla het in een application op en in een session.
Bij een Session_OnEnd Event in je Global.Asa kan je vervolgens je application vrij maken.
Ik heb wel het een en ander verstand van VB/ASP maar dit wordt voor mij iets te veel voor het goede B)
Een andere mogelijkheid is om Application("Subnummer") een vervaltijd (in de vorm van vervaldatum + tijd, niet "10 minuten") te geven. Indien deze verlopen of "" is, dan kan er geedit worden, anders niet
Dit is zeker ook een goed idee, ik ga ff kijken hoe ik dit uit kan werken.

Ik heb de pagina's:
Bekijk.asp
Wijzigen.asp
Wijzigen2.asp

Ik zat er ook aan te denken om in bekijk.asp en wijzigen2.asp te zorgen dat je Application weg gaat, en dan in wijzigen die tag in je header zetten dat hij naar 10 minuten ge-refreshed wordt naar Bekijk.asp zodat je application weer weg is als je er langer dan 10 minuten over doet. Dan hoef ik alleen maar te zorgen dat wijzigen.asp kijkt of er een application voor dat subnummer al aanwezig is.
(maar dan zit je er weer mee dat als je verbinding verbroken wordt dat hij niet automatisch naar 10 minuten je application er uit gaat???)

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21:12

gorgi_19

Kruimeltjes zijn weer op :9

Dat laatste maakt niet uit, je werkt immers niet met 10 minuten, maar hij wordt vrijgegeven om "5 december 2003 om 15:40 uur"

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 13:08
Ik zit er mee dat als ik met Now() de datum/tijd in de application zet dan krijg ik hele gekke getallen als ik daarna controleer met (now() - Application("bla")) dan krijg ik bijvoorbeeld 1,85185185185177E-04 als uitkomst, hoe moet ik dit aanpakken zodat ik kan controleren of er tussen Now en Application meer dan 10 minuten verschil zit, ik heb er ook al CDate(Application... van gemaakt maar dat maakt niet uit. Wie weet er een oplossing.

Dus ik wil dus dat als Now() - Application > 10 minuten Then ga verder Else Geef Melding o.i.d.

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 13:08
[quote]Polderdijk schreef op 10 January 2003 @ 16:12:
Oeps, verkeerd knopje[quote]

[ Voor 72% gewijzigd door Polderdijk op 10-01-2003 16:18 ]

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • risr
  • Registratie: Juli 2002
  • Laatst online: 14-07 10:19
Als je het voor elkaar hebt om de links op de eerste pagina te disablen zou je eventueel nog gebruik kunnen maken van de volgende meta-tag:

HTML:
1
<meta http-equiv="Refresh" content="5">


waardoor de pagina elke vijf seconden wordt herladen in de browser. De meta tag moet je trouwens wel opnemen in de head.

[ Voor 7% gewijzigd door risr op 11-01-2003 00:12 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21:12

gorgi_19

Kruimeltjes zijn weer op :9

Polderdijk schreef op 10 januari 2003 @ 16:12:
Ik zit er mee dat als ik met Now() de datum/tijd in de application zet dan krijg ik hele gekke getallen als ik daarna controleer met (now() - Application("bla")) dan krijg ik bijvoorbeeld 1,85185185185177E-04 als uitkomst, hoe moet ik dit aanpakken zodat ik kan controleren of er tussen Now en Application meer dan 10 minuten verschil zit, ik heb er ook al CDate(Application... van gemaakt maar dat maakt niet uit. Wie weet er een oplossing.

Dus ik wil dus dat als Now() - Application > 10 minuten Then ga verder Else Geef Melding o.i.d.
Een beetje gokken, maar je kan eens kijken naar CDate()
Het expliciet casten van je application variabele moet een oplossing kunnen zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

ASP.NET Visual Basic:
1
2
3
4
5
If DateDiff("n", Now(), Application("Vervaltijd")) > 10 Then
  'Ga verder
Else
  'Geef Melding 
End If

  • DarkSilence
  • Registratie: December 2002
  • Laatst online: 19-12-2025

DarkSilence

W3designer.nl

Al op www.w3schools.com gekeken?

W3designer.nl


  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 23-08 14:17
Ik wilde hier net een heel verhaal typen maar kwam er toen achter dat ik hetzelfde wilde als gorgi_19. Ik denk dat dat de beste oplossing is. iets verdere uitwerking

Bij wijzigen 'locken':
- Session("subnummer") = subnummer
- Application("subnummer" + subnummer) = true

Na wijzigen 'unlocken':
- Application("subnummer" + Session("subnummer") ) = false
- Session("subnummer") = ""

Bij sessie-einde (timeout) 'unlocken' (global.asa On Session End Event):
- Application("subnummer" + Session("subnummer") ) = false

[ Voor 15% gewijzigd door Mart! op 11-01-2003 12:33 . Reden: Helderder maken (?) ]

Pagina: 1