Domino 9 und frühere Versionen > Entwicklung
neu Nummerierung in einer Maske
Thomas Schulte:
--- Zitat von: 7Stein am 27.08.04 - 11:43:40 ---thisDoc ist global deklariert.
--- Ende Zitat ---
Genau das meine ich mit zu wenig und auch noch die falschen Informationen. Das gehört einfach dazu.
So und was deine Neuberechnung der Positionen angeht:
Dim collection As NotesDocumentCollection
Dim docDetail As NotesDocument
Dim olddocdetail as notesdocument
Dim viewForRefresh As NotesView
dim view2 as NotesView
Dim strPos As String
Dim i As Integer
Set viewForRefresh = db.GetView( "(BestellPositionen)" )
Set view2 = db.GetView( "(BestellPositionenByKey)")
HIER SIND LAUFZEITPROBLEME BEI VIELEN DOKUMENTEN IN DER DATENBANK ZU ERWARTEN
Call view2.Refresh()
Set collection = view2.GetAllDocumentsByKey(thisDoc.UniversalID)
Select Case collection.Count
Case 0:
Msgbox "Keine Position vorhanden.", 48, db.title
Case 1:
Set docDetail = collection.GetFirstDocument
Call docDetail.Remove (True)
Thisdoc.LastDetailPos = 0
Call thisdoc.Save(True,False)
Case Else:
strPos = Inputbox$( "Welche Position löschen?", "Position löschen", "1" )
If strPos <> "" Then
Call view2.Refresh()
Set docDetail = view2.GetDocumentByKey( thisDoc.UniversalID + "-" + strPos )
Call docDetail.Remove( True)
End If
set docdetail = collection.getfirstdocument()
do while not docdetail is nothing
set olddocdetail = docdetail
UMWANDELN WENN KEIN STRING ->
if docdetail.pos(0) > StrPos
Docdetail.pos = docdetail.pos(0) -1
end if
set docdetail = collection.getnextdocument(olddocdetail)
Enddo
UND WENN DU PARTOUT DIE ANZAHL DER POSITIONEN SPEICHERN WILLST
Thisdoc.LastDetailPos = ThisDoc.LastDetailPos(0) - 1
DANN DAS THISDOC APSPEICHERN WEIL ES JA BACKEND IST
Call ThisDoc.Save(True,False)
End Select
Und hier musst du nur noch das UIdoc wieder in den Voerdergrund holen. Du hast ja schließlich im Backend gearbeitet.
Damit ist das sauber strukturiert und kein überflüssiger Code drin.
wobei es immer noch Performance Probleme geben wird wenn du einige Tausend Dokumente in der Datenbank drin hast.
Für die Blumen brauchst du dich nicht bedanken, in diesem Fall hast du sie verdient. So resistent gegenüber Aufforderungen sich klarer auszudrücken war bis jetzt noch niemand.
Thomas
koehlerbv:
Also, ich geb's auf. Da helfen auch keine Baldriantropfen mehr, und für eine Bolusinjektion Whiskey ist es noch zu früh am Tag.
Bernhard
klaussal:
.... wer wird denn gleich in die Luft gehen......
Marinero Atlántico:
nach meiner bescheidenen Meinung find das 7_Stein bashen n bischen übertrieben.
7_Stein ist doch ganz offensichtlich nicht Ed Brill.
@7_Stein: Solche "Sortieralgorythmen" bringen nix gutes.
Die Funktionalität von 1 bis x sauber durchgezählten Dokumenten hat sehr hohe Performance-Kosten.
Stell dir vor es sind 1000 Dokumente in der Ansicht. Anwender A will ein neues Dokument unter Nummer 2 speichern. Dann müssen die Dokumente mit dem Nümmerschen 2'vorher bis 1000'vorher alle neu abgespeichert werden? Das kann nicht sein, oder?
Datenbanken haben es an sich, dass da immer mehr Dokumente reinkommen.
Die Kosten für die Speicherung erhöhen sich also tendentiell mit der Zeit.
Ich hatte mal einen Fall, wo aufgrund eines solchen Sortierungsdesigns das Abspeichern eines Dokuments über 1 Stunde dauerte.
Ich bin damals so vorgegangen:
Jede Nacht lief ein Agent durch die Datenbank, der zwischen den Nummern Lücken schuf, d.h. er ging alle Dokumente durch und vergab neue Nummern mit jedesmal frischen 10er Abständen. Wenn die dann ein Dokument zwischen 10 und 20 legen wollten, nahmen die eben 13 oder 14 oder 17.
Es ist nämlich in aller Regel nicht wichtig, dass bei den Nümmerschen auf 7 die Nummer 8 folgt. Wichtig ist, dass es die Möglichkeit gibt die Dokumente in eine gewisse Reihenfolge einzusortieren.
Hoffe es hilft.
Gruß Axel
klaussal:
@thomas
--- Code: ---So resistent gegenüber Aufforderungen sich klarer auszudrücken war bis jetzt noch niemand.
--- Ende Code ---
Wenn Frauen versprechen, sich zu ändern, dann überlege, ob du weiterhin mit Ihnen zusammenarbeiten willst....
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln