Domino 9 und frühere Versionen > Entwicklung

neu Nummerierung in einer Maske

<< < (4/8) > >>

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