Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zahl mit Nachkommastellen in einem Textfeld darstellen

Begonnen von smily68, April 18, 2012, 17:58:42

⏪ vorheriges - nächstes ⏩

smily68

Hallo

Ich habe ein komplexes Rechnungsformular. Eine Rechnungsposition hat Einen Positionstotal brutto, Rabatt, Zuschlag und ein Positionstotal netto.
Da ich wenig Platz auf dem Formular habe, habe ich diese Zahlen untereinander dargestellt. Vielfach gibt es aber kein Zuschlag, kein Rabatt, so möchte ich diese Felder schrumpfen. Da ich nicht nur diese Feld schrumpfen muss, habe ich diese Zahlen in ein Feld als string geschrieben. Das Problem ist nun folgendes, mit meiner Variante werden die 2 Nachkommastellen nicht angezeigt. Kann mir jemand einen Tipp geben.

Private Function Total() As Variant

    Dim varTotal As Variant
    Dim varZeile1 As Variant
    Dim varZeile2 As Variant
    Dim varZeile3 As Variant
    Dim varZeile4 As Variant
   
    'Zeile1
    varZeile1 = Me.auftrD_PreisTotal
   
    'Zeile2
    If Me.auftrD_RabattTotal <> 0 Then
        varZeile2 = Me.auftrD_RabattTotal * (-1)
    Else
        If Me.auftrD_ZuschlagTotal <> 0 Then
            varZeile2 = Me.auftrD_ZuschlagTotal
        Else
            varZeile2 = ""
        End If
    End If

    'Zeile3
    If Me.auftrD_RabattTotal <> 0 Then
        If Me.auftrD_ZuschlagTotal <> 0 Then
            varZeile3 = Me.auftrD_ZuschlagTotal
        Else
            varZeile3 = Me.auftrD_PosTotal
        End If
    Else
        If Me.auftrD_ZuschlagTotal <> 0 Then
            varZeile3 = Me.auftrD_PosTotal
        Else
            varZeile3 = ""
        End If
    End If

    'Zeile4
    If Me.auftrD_RabattTotal <> 0 Then
        If Me.auftrD_ZuschlagTotal <> 0 Then
            varZeile4 = Me.auftrD_PosTotal
        Else
            varZeile4 = ""
        End If
    Else
        varZeile4 = ""
    End If
       
    varTotal = varZeile1 & vbCrLf
    varTotal = varTotal & IIf(IsNull(varZeile2), "", varZeile2 & vbCrLf)
    varTotal = varTotal & IIf(IsNull(varZeile3), "", varZeile3 & vbCrLf)
    varTotal = varTotal & IIf(IsNull(varZeile4), "", varZeile4)
   
    Total = varTotal

End Function

Gruss Daniel

Stapi

Hallo

Warum so Umständlich? Du kannst einmal Felder die nicht benötigt werden ausblenden, oder du Machst das mit der Reiter legst deine Rabat Geschichte auf ein Unterformular
Grüße aus dem schönen NRW
Stefan

smily68

Hallo

Mit Rechnungsformular meinte ich eine Rechnung als Bericht nicht in einem Formular

Gruss Daniel

Beaker s.a.

Hallo Daniel,
Dann setze die Feldeigenschaften "vergrösserbar" und "verkleinerbar" auf JA.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

smily68

Hallo

Die Eigenschaft vergrössern und verkleinern hilft mir in diesem Fall nicht weiter. Ich habe ein Ausdruck als PDF, sowie das Layout angehängt, damit ihr mein Problem besser verstehen könnt. Wie aus dem Beispiel ersichtlich ist, gibt es Positionen die bis 4 Zeilen benötigen, andere hingen nur 1 oder 2 Zeilen. Nun möcht ich nicht, das bei einer Position mit 1 oder 2 Zeilen noch 2 zusätzlich Zeilen leer angezeit werden, sonderen diese 2 leer Zeilen zusammengeschrumpft werden. Meine Frage ist nun, wei mache ich das?

Gruss Daniel

[Anhang gelöscht durch Administrator]

Beaker s.a.

Hallo Daniel,
ZitatNun möcht ich nicht, das bei einer Position mit 1 oder 2 Zeilen noch 2 zusätzlich Zeilen leer angezeit werden, sonderen diese 2 leer Zeilen zusammengeschrumpft werden. Meine Frage ist nun, wei mache ich das?
Je nachdem, ob das pro Zeile ein Feld ist, oder nur eins für alle.
Wenn letzteres, stellst Du die Höhe so ein, dass zwei Zeilen reinpassen, und stellst vergrößerbar auf Ja.
Wenn die 3.+4 Zeile eigene Felder sind, machst Du die flach (Höhe 0,1cm) und stellst auch die Eigenschaft auf ja.
Das ist das normale Vorgehen bei diesem Problem, denke ich (hab ich jedenfalls schon oft so gelesen), und
sollte deshalb auch bei Dir klappen. Falls nicht, habe ich dich entweder nicht richtig verstanden, oder weiss
im Moment auch nicht weiter.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

database

Hallo,

Zitat...Das Problem ist nun folgendes, mit meiner Variante werden die 2 Nachkommastellen nicht angezeigt...

wenn es um die Darstellung der Nachkommastellen geht:
Dim strZeile1 as String
...
...

'Zeile1
   strZeile1 = Format(CStr(Me.auftrD_PreisTotal), "#,##0.00")
...
...

HTH

smily68

Hallo

Ich habe den Fehler gefunden. Ich habe zwar bei den Felder die Eigenschaft vergrössern und verkleinern auf ja gestellt, aber der Detailbereich war die Eigenschaft automatische Höhe auf Nein eingestellt gewesen. Nun funktioniert es.

Leider habe ich nun festgestellt, dass dies nur mit Zahlen- und Textfelder funktioniert. Ich habe zwei Memo-Felder in meinem Bericht. Wenn diese Feld auf einem Datensatz leer ist, wird das Feld auf dem Bericht nicht verkleiner, sondern bleibt auf seiner ursprünglichen Grösse.

Ist das so mit den Memo-Feldern, oder wie kann ich dieses Problem lösen?

Gruss Daniel