Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: help am 04.01.12 - 13:38:29

Titel: führende nullen
Beitrag von: help am 04.01.12 - 13:38:29
Hallo Ihr
ich habe ein Monatsfeld als Zahl und setzte damit

@Right("000" + @Text(Nr_Feld);3)
eine "0" davor das klappt gut

Nun habe ich aber auch noch ein Nummernfeld was eine laufende Nummer berechnet da möchte ich jetzt auch "000" davor haben
das heißt ich brauche den right befehl in lotus script aber das klappt nicht .

und ich habe hier den right Befehl nicht gefunden da immer wieder die @right Formelsprache angeboten wird

LG
Beatrix
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 13:41:52
... aber das klappt nicht .

Aha. Und weiter? Wo ist die konkrete Frage?

Bernhard
Titel: Re: führende nullen
Beitrag von: Glombi am 04.01.12 - 14:02:19
@Right ind Formelsprache heisst in Script strright
Titel: Re: führende nullen
Beitrag von: Schnubbel am 04.01.12 - 14:04:22
Meine Kristallkugel sagt.... er sucht nach dem @Right -Befehl in LotusScript ;)

Dann kann ich dir empfehlen, in der Hilfe entweder nach Evaluate zu gucken, damit du @Right in Lotus Script benutzen kannst. Oder du guckst dir mal die Funktionen Right bzw. StrRight an.
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 14:07:45
Wenn du in der Hilfe bei Formelsprache oder Scriptsprache bist, steht in der Regel unten ein Querverweis auf entsprechende Befehle in der jeweils anderen Sprache, außerdem verwandte Befehle.

da hangel ich mich immer durch, das klappt ganz gut, vor allem, wenn die Befehle etwas anders heißen (@contains - strToken).

außerdem ist gleich unter 'Inhalte' ein Kapitel Lotus Script Sprachreferenz, auch das hilft manchmal auf die Sprünge.

Und nur so aus Interesse: wie machst du das mit der fortlaufenden Nummerirung?

lg

Dau-in
Titel: Re: führende nullen
Beitrag von: klaussal am 04.01.12 - 14:13:22
Die Frage zielt wohl eher darauf ab, wie kriegt man in ein numerisches Feld führende Nullen.
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 14:15:57
da hangel ich mich immer durch, das klappt ganz gut, vor allem, wenn die Befehle etwas anders heißen (@contains - strToken).

StrToken hat aber mit @Contains nix zu tun, Anita  ;)

Bernhard
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 14:24:14
Die Frage zielt wohl eher darauf ab, wie kriegt man in ein numerisches Feld führende Nullen.

falls das gemeint ist: mit einem Edding und einem abwischbaren Bildschirm.
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 14:28:02
da hangel ich mich immer durch, das klappt ganz gut, vor allem, wenn die Befehle etwas anders heißen (@contains - strToken).

StrToken hat aber mit @Contains nix zu tun, Anita  ;)

Bernhard

Hab ich extra für dich so geschrieben, Bernhard.

ok, ich probiers nochmal:
z.B. bei @contains - Instr und @Word -StrToken.

ist das besser?

Außerdem geht es eher darum, wie man die Befehle finden kann ....
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 14:31:04
Hab ich extra für dich so geschrieben, Bernhard.

Danke, Anita  :)

Außerdem geht es eher darum, wie man die Befehle finden kann ....

Schon klar. Aber nicht, das Beatrix das später auch abschreibt.

Bernhard
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 14:36:52
Außerdem geht es eher darum, wie man die Befehle finden kann ....

Schon klar. Aber nicht, das Beatrix das später auch abschreibt.

Bernhard

Bernhard, das ist die einfachste Methode festzustellen, ob jemand einfach abschreibt.

lg

Dau-in
Titel: Re: führende nullen
Beitrag von: help am 04.01.12 - 14:43:41
Hallo Bernhard
ich habe mir in Lotus scribt eine laufende nummer generiert
die aber im neuen Monat wieder bei eins anfängt

hier das script

Sub Postopen(Source As Notesuidocument)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   
   Dim view As NotesView
   Dim viewname As String
   Dim doc As notesdocument
   Dim numberdoc As NotesDocument
   Dim newnumber As Long
   Dim currentmonth As Integer   
   Dim currentyear As Integer
   currentmonth=Month(Now)
   currentyear=Year(Now)
   
   
   viewname = "(WFNameNumber)"
   Set doc = source.document
   Print "Test1"
   If source.EditMode = False Then
      Exit Sub
   End If
   Print "Test2"
   Stop
   If Not (source.isnewdoc Or source.FieldGetText("Number") = "0") Then   
      Print "Test2a"
      'Exit Sub      
   End If
   Print "Test3"
   Set db = session.CurrentDatabase
   Set view = db.GetView(viewname)
   If view Is Nothing Then
      Exit Sub
   End If
   Print "Test4"
   Set numberdoc = view.GetFirstDocument
   
   If Not numberdoc Is Nothing Then
      
      If numberdoc.HasItem("Number") Then
         
         Print numberdoc.as_jahr(0)
         Print numberdoc.as_mon(0)
         
         If (Cint(numberdoc.as_jahr(0))=currentyear & Cint(numberdoc.as_mon(0))=currentmonth ) Then   
            Print"="
            newnumber = numberdoc.number(0) + 1
         Else
            Print"!="
            newnumber = 1
            
         End If
         
      Else
         newnumber = 1
      End If      
      
   Else
      newnumber = 1
   End If
   Print "Nummer"
   Print newnumber
   Print "End Number"
   Call doc.ReplaceItemValue("Number", newnumber)
   
   
End Sub

Nun habe ich in meinem document ein nummernfeld mit der nummer eins
und ich habe mir ein dsp feld gemacht in dem möchte ich meine nummer mit führenden Nullen füllen.

damit aus 1 zum bsp 001 angezeigt wird dazu muss ich das dsp feld mit dem Wert beschießen also muss es in mein script mit rein und da ist die frage
wie bekomme ich nun mit dem right befehl in script nullen vor meine eins


LG beatrix
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 14:46:36
Damit erzeugst Du Du *keine* laufende Nummern - höchstens manchmal. Damit ist Deine Frage nach Right$ erstmal hinfällig.

Bernhard
Titel: Re: führende nullen
Beitrag von: help am 04.01.12 - 14:48:22
Bernhard


doch ich bekomme die nummer so wie ich sie brauche das passt schon
nur die nullen fehlen mir


LG
Beatrix
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 14:50:55
Nein, Dein Testszenario ist falsch. Erstelle ein neues Dokument, und speichere es nicht. Erstelle ein zweites Dokument. Nun speichere beide Dokumente ...

Wir brauchen hier nicht zu diskutieren - allein schon das Erzeugen im Frontend führt zum Status"fortlaufende Nummern werden nicht sicher erzeugt".
Das Thema haben wir hier schon gefühlte 10.000mal durchgekaut (und jeden Morgen steht wieder einer auf, der das nicht glaubt).

Bernhard
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 14:56:03
a) das war nicht Bernhard, der nach der Nummerierung gefragt hatte, das war ich. Und ich heiße definitiv nicht Bernhard.

b) wenn das Script das Ergebnis liefert, das du willst, dann willst du keine fortlaufende Nummerierung.
Und das ist dann gut so, denn fortlaufende Nummerierung ist etwas komplexer.

aber Bernhard wird dir das sicher gerne genauer erläutern  ;D
Titel: Re: führende nullen
Beitrag von: Alex. am 04.01.12 - 15:05:46
Hallo zusammen,

frohes Neues!

@Fragesteller:
Ich muss den Leuten hier Recht geben, mit Deinem Script wirst Du nie zuverlässig zu laufenden Nummern kommen.
Zu Deiner Eingangsfrage, so könnte das aussehen:
Code
strErgebnis = Right$("00" & Cstr(lngMeineNummer), 3)
Titel: Re: führende nullen
Beitrag von: help am 04.01.12 - 15:38:47
danke alex das meinte ich
beatrix
Titel: Re: führende nullen
Beitrag von: koehlerbv am 04.01.12 - 15:43:47
Das stand nun schon in den Posts #2, #3, #4 und #12. Und es löst Dein viel grösseres Problem überhaupt nicht. Warum gehst Du darauf nicht ein?

Bernhard
Titel: Re: führende nullen
Beitrag von: klaussal am 04.01.12 - 15:46:42
@Bernhard

Zitat
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Titel: Re: führende nullen
Beitrag von: help am 04.01.12 - 15:52:36
 :) ;) ja so sind die Frauen eben

LG
Beatrix
Titel: Re: führende nullen
Beitrag von: DAU-in am 04.01.12 - 15:53:41
@Bernhard

Zitat
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
@Bernhard

Zitat
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.

Das hab ich gelesen.  :-X
Titel: Re: führende nullen
Beitrag von: klaussal am 04.01.12 - 15:54:27
Zitat
Das hab gelesen.
   ??? ??? ???
Titel: Re: führende nullen
Beitrag von: billygates am 05.01.12 - 08:55:01
Eine Zahl hat keine führende 0. Das hat  nur eine Zeichenkette/Text, die nach Zahl aussieht.

Also:

123000 --- Zahl
000123 --- Zeichenkette/Text
Titel: Re: führende nullen
Beitrag von: Glombi am 05.01.12 - 09:00:09
Was ist mit 0,909  ???
Titel: Re: führende nullen
Beitrag von: billygates am 05.01.12 - 10:31:55
Was ist mit 0,909  ???
Erbsenzählerisch ausgedrückt ist die Null als einzelne Ziffer vor dem Komma natürlich die Ausnahme.
Titel: Re: führende nullen
Beitrag von: Glombi am 05.01.12 - 10:46:16
Womit die Aussage "Es gibt keine führende Null(en) bei Zahlen" wiederlegt wäre. q.e.d  ;D

Es ging hier aber sowieso um Textfelder und von daher ist die Diskussion um Zahlen rein akademisch.
Titel: Re: führende nullen
Beitrag von: Peter Klett am 05.01.12 - 15:55:30
Um mal wieder auf das Ursprungsproblem zurück zu kommen, eine Zahl in einem Displayfeld mit führenden Nullen anzuzeigen (unabhängig davon, ob das Teil nun sauber fortlaufend nummeriert ist oder nicht): Du erstellst das Display-Feld als berechnet zur Anzeige und schreibst die von Dir selbst genannte Formel hinein.

Im Script das Feld zu setzen, ist nicht zielführend, da Du dann zwei Items im Dokument gespeichert hast, die logisch gleich sind (einmal Zahl und einmal dieselbe Zahl als Text mit führenden Nullen). Wenn jetzt durch irgendeine Aktion die Zahl geändert wird, musst Du auch den Text ändern. Doppelte Daten solltest Du dringend vermeiden.