PDA

Vollständige Version anzeigen : Umrandung bei Felder in Bericht !!!


elliot
26.04.2001, 16:45
Hallo,

ich hab ein kleines Problem mit meinem Bericht. Und zwar hab ich mehrere Felder nebeneinander, die alle separat umrandet sind. In jedem Feld ist es zugelassen, daß der Feldinhalt - falls die Länge des Textfeldes zur Aufnahme des Feldinhaltes von der Breite her nicht ausreichen sollte - in die zweite Zeile umgebrochen wird.

Angenommen ich habe jetzt nur im ersten Feld einen längeren Feldinhalt drin und sonst nirgends, dann wird ja lediglich die Umrandung in diesem Feld mit nach unten gezogen, aber bei den anderen nicht. Aber ich hätte jetzt gerne, daß bei den anderen Textfeldern die Umrandung auch mit nach untengezogen wird, so daß alles wieder in einer Linie ist. Der Feldinhalt bei den anderen Feldern soll aber dann nicht mittig in dem Feld ausgerichtet sein, sondern z. B. oben.

Kann mir da jemand weiterhelfen wie man sowas machen kann??? Ich komm da einfach nicht weiter.

Würde mich echt sehr freuen!!!

Besten Dank vorab,
Elliot

Axel37
26.04.2001, 18:20
hallo elliot,
wenn ich dich richtig verstanden habe möchtest du die senkrechten linien eines feldes variabel haben, um textlängen in den feldern auszugleichen. du nimmst die umrandung der felder weg und legst nur eine waagerechte trennlinie an, alle felder auf vergrössern setzen (sollte ja klar sein).
dann fügst du im detailbereich -beim drucken- diese ereignisproz ein:
die spaltenbreiten musst du errechnen und für deine gegebenheiten anpassen, das sind zb meine werte:Spaltenbreiten = "0,342,1422,4884,9874"
hier gehts los


Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)

Dim Anz As Integer
Dim t As Integer
Dim MerkStart As Integer
Dim MerkEnde As Integer
Dim Spaltenbreiten As String
Dim Spalten() As Long

' ---- WICHTIG -------------------------------------------------------
' Bitte in dieser Zeile die Spalten definieren. Die einzelnen Werte
' müssen durch Kommas getrennt werden.
' Die Werte müssen in TWIPS angegeben werden (1 cm = 567 Twips)
' WICHTIG: nach dem letzten Maß kein Komma mehr angeben
Spaltenbreiten = "0,342,1422,4884,9874"
' --------------------------------------------------------------------

' Spaltenanzahl ermitteln
Anz = SpaltenAnzahl(Spaltenbreiten)

' Maßeinheit defnieren (Twips)
Me.ScaleMode = 1

' Linienfarbe festlegen
Me.ForeColor = 0

' Spalten in Array speichern
ReDim Spalten(Anz)
MerkStart = 1
MerkEnde = 1
For t = 0 To Anz - 1
MerkEnde = InStr(MerkStart, Spaltenbreiten, ",")
If MerkEnde = 0 Then MerkEnde = Len(Spaltenbreiten) + 1
Spalten(t) = CLng(Mid(Spaltenbreiten, MerkStart, MerkEnde - MerkStart))
MerkStart = MerkEnde + 1
Next t

' Linien einfügen
For t = 0 To Anz - 1
Me.Line (Spalten(t), 0)-(Spalten(t), 20000)
Next t

End Sub


Public Function SpaltenAnzahl(SP As String)

Dim MerkStart As Integer
Dim MerkEnde As Integer
Dim schalter As Boolean

' Spalten in Array speichern
MerkStart = 1
MerkEnde = 1
Do Until schalter = -1
MerkEnde = InStr(MerkStart, SP, ",")
If MerkEnde = 0 Then
MerkEnde = Len(SP) + 1
schalter = -1
End If
MerkStart = MerkEnde + 1
SpaltenAnzahl = SpaltenAnzahl + 1
Loop

End Function