Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Funktion

Postades av 2002-05-05 19:51:07 - John Lundberg, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 450 personer

Hur lkägger jag detta i en funktion för att sedan anropa detta....
borde la typ vara något liknande detta va....

<code>
Public Function()
Printer.FontSize = 10
Printer.CurrentX = 500
Printer.Print artnr
Printer.CurrentY = 4000
Printer.CurrentX = 2000
Printer.Print produkt
Printer.CurrentY = 4000
Printer.CurrentX = 7000
Printer.Print antal
Printer.CurrentY = 4000
Printer.CurrentX = 8000
Printer.Print FormatCurrency(pris)
End Function
</code>

Och sedan anropa via Function(något)...fan, jag kan inte detta riktigt....


Svara

Sv: Funktion

Postades av 2002-05-05 20:07:39 - Johan Djupmarker

Eftersom du inte har något returvärde ska du göra en sub.

<code>
Public Sub min_sub()
Printer.FontSize = 10
Printer.CurrentX = 500
Printer.Print artnr
Printer.CurrentY = 4000
Printer.CurrentX = 2000
Printer.Print produkt
Printer.CurrentY = 4000
Printer.CurrentX = 7000
Printer.Print antal
Printer.CurrentY = 4000
Printer.CurrentX = 8000
Printer.Print FormatCurrency(pris)
End Sub


anropas med:

min_sub
</code>

/Johan


Svara

Sv: Funktion

Postades av 2002-05-05 20:31:02 - Andreas Hillqvist

Ett litet, eller ganska stort exempel kunde vara att göra såhär:
<code>
Public Sub PrintReport
Dim rsTemp As ADODB.Recordset
Dim fldArtNr As ADODB.Field
Dim fldProdukt As ADODB.Field
Dim fldAntal As ADODB.Field
Dim fldPris As ADODB.Field

Dim RowTop As Single
Dim RowFont As StdFont
RowTop = 4000
Set RowFont = New StdFont
RowFont.Size = 10

Set rsTemp = New ADODB.Recordset
rsTemp.Open "SELECT * FROM TabellNamn ORDER BY Produkt", conn, adOpenForwardOnly, adLockReadOnly

Set fldArtNr = rsTemp("ArtNr")
Set fldProdukt = rsTemp("Produkt")
Set fldAntal = rsTemp("Antal")
Set fldPris = rsTemp("Pris")

Do Until rsTemp.EOF
PrintRow 500, RowTop, RowFont, fldArtNr.Value, fldProdukt.Value, fldAntal.Value, fldPris.Value
RowTop = RowTop + 1000
rsTemp.MoveNext
Loop
End Sub

Public Sub PrintRow(Left As Single, Top As Single, Font As StdFont, ByVal ArtNr As String, ByVal Produkt As String, ByVal Antal As Long, ByVal Pris As Currency)
Set Printer.Font = Font

Printer.CurrentX = Left
Printer.CurrentY = Top
Printer.Print ArtNr

Printer.CurrentX = Left + 1500
Printer.CurrentY = Top
Printer.Print Produkt

Printer.CurrentX = Left + 6500
Printer.CurrentY = Top
Printer.Print Antal

Printer.CurrentX = Left + 7500
Printer.CurrentY = Top
Printer.Print FormatCurrency(Pris)
End Function
</code>

Antar att din funktion skall skriva ut en rad. Skicka därför in left, top och font som parametrar. Samt värden som skall skrivas ut.

Exempel funtionaen loppar igenom ett recordset.


Svara

Sv: Funktion

Postades av 2002-05-05 20:33:31 - Sven Åke Persson

Hej på Er
Du får inte glömma Printer.EndDoc
sist i din Sub. Sen min uttjatade käpphäst skriv

Printer.ScaleMode = 6 'millmeter eller Printer.ScaleMode = 7 'cm
först i din rutin. Varför ? du kan mycket enkelt planera ditt A4
med linjal på ett A4 ark ,Cm kan skrivas med decimaler
tex Printer.CurrentX = 2.6

mvh
Sven


Svara

Sv: Funktion

Postades av 2002-05-05 20:53:44 - Sven Åke Persson

Hej till Andreas

"Mycket skrik för lite ull sa käringen när hon klippte grisen"

När börjar din kod skriva ser inget Printer.EndDoc

mvh
Sven


Svara

Sv: Funktion

Postades av 2002-05-05 21:01:23 - John Lundberg

Nä denna funktion skall loopas ett antal ggr innan Printer.EndDoc kommer.
Det är en faktura specifikation som loopar ut faktura texten...


Svara

Sv: Funktion

Postades av 2002-05-05 21:06:40 - John Lundberg

Om jag gör som Johan säger, en sub...hur stoppar jag då in data i den (tänk på att den skall loopas...)

<code>
'Såhär?
artnr = 111
produkt = "Blöjor"
pris = "22,5"


Public Sub min_sub()
Printer.FontSize = 10
Printer.CurrentX = 500
Printer.Print artnr
Printer.CurrentY = 4000
Printer.CurrentX = 2000
Printer.Print produkt
Printer.CurrentY = 4000
Printer.CurrentX = 7000
Printer.Print antal
Printer.CurrentY = 4000
Printer.CurrentX = 8000
Printer.Print FormatCurrency(pris)
End Sub


<code>


Svara

Sv: Funktion

Postades av 2002-05-06 07:28:51 - Johan Djupmarker

<code>
Anropas med

min_sub 2.1


Public Sub min_sub(pris AS Double)
Printer.FontSize = 10
Printer.CurrentX = 500
Printer.Print artnr
Printer.CurrentY = 4000
Printer.CurrentX = 2000
Printer.Print produkt
Printer.CurrentY = 4000
Printer.CurrentX = 7000
Printer.Print antal
Printer.CurrentY = 4000
Printer.CurrentX = 8000
Printer.Print FormatCurrency(pris)
End Sub
</code>

/Johan


Svara

Sv: Funktion

Postades av 2002-05-07 01:47:49 - Ronny Thörnvall

Eller om man som jag, som gillar paranteser (detta inlägg är en enda stor parantes):

<code>
Call min_sub(2.1)
</code>

Observera att man, när man använder Call för att anropa Subrutiner, MÅSTE använda paranteser runt inparametrarna!

T ex om man har en subrutin som kräver två in-parametrar:

<code>
Public Sub Add(A As Integer, B As Integer)
Call MsgBox("Summan av " & A & " och " & B & " = " & A + B)
End Sub
</code>

Så skall man alltså anropa den på ett av följande sätt:

<code>
Add 2, 5 'Utan paranteser
Call Add(2, 5) 'Med paranteser
</code>

Man KAN sätta en parantes runt ett enstaka värde när man INTE använder Call - men då betyder det att man vill skicka in det värdet (eller variabeln snarare) som ByVal oavsett hur in-parametern deklareras i aktuell subrutin (eller funktion).

Slut på parantesen... ;-)
// Qezlot


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 612
27 953
271 709
6 616
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies