Hjälp med en loop
Jaha och nu har man fått totalt hjärnsläpp
Detta problem kan jag inte tänka mig så svårt men jag får endå inte till det.
jag har nu denna kod
<code>
Do Until kolumn = 5
kolumn = kolumn + 1
Select Case kolumn
Case 1
lodratt = 50
Case 2
lodratt = 500
Case 3
lodratt = 2500
Case 4
lodratt = 3500
Case 5
lodratt = 4500
End Select
flexTables.Col = kolumn
flexTables.Row = 5
Picture1.CurrentX = lodratt
Picture1.CurrentY = 50
Picture1.Print flexTables.Text
Loop
</code>
Med denna kod så får jag ut en rad i en tabell
Nu är det så att jag vill den ska loopa till den får ett "*null*" värde i den första kolumnen och ska då sluta loopa.
För att göra det enkelt fär mig så testade jag att sätta en loop utanför denna loop och loopa 5 gånger.
Men fick inte ens det att fungera.
Som ni kan se i koden så måste
<code>flexTables.Row = 5</code>
öka med 1 hela tiden men det är ju lätt om man har en loop
Sedan måste
<code>Picture1.CurrentY = 50</code>
öka med 300 varje gång, är ju heller inga problem tror jag när det gäller en loop.
Dock vet jag ju inte hur man ska göra för att få en loop att fungera
Svara
Sv: Hjälp med en loop
Lite uppdatering
Koden ser kanske inte så snyggt ut men den fungerar
<code>
Dim kolumn, lodratt, vagratt, rad As Integer
Dim avsluta As String
vagratt = 50
rad = 4
Do Until rad = 15
rad = rad + 1
Do Until kolumn = 5
kolumn = kolumn + 1
Select Case kolumn
Case 1
vagratt = 50
Case 2
vagratt = 500
Case 3
vagratt = 2500
Case 4
vagratt = 3500
Case 5
vagratt = 4500
End Select
flexTables.Col = kolumn
flexTables.Row = rad
Picture1.CurrentX = vagratt
Picture1.CurrentY = lodratt
If flexTables.Text = "tomt" And kolumn = 1 Then GoTo avsluta
Picture1.Print flexTables.Text
Loop
kolumn = 0
lodratt = lodratt + 300
Loop
avsluta:
</code>
kanske går att trimma dne bättre eller??
Svara
Sv:Hjälp med en loop
Jag förstår inte riktigt vad det är du ska göra, för gör du det jag tror du ska göra så är koden helt fel.
Du skriver: "Nu är det så att jag vill den ska loopa till den får ett "*null*" värde i den första kolumnen".
Borde det inte vara typ:
<code>
Do Until Kolumn = *null* 'Nu vet jag inte riktigt vad du menar med "*null*" men ändå...
</code>
Som du har koden nu så loopar den ju ett fast antal gånger (i senaste koden 15x5 dvs 75 gånger) och det låter ju inte som det du beskriver att den ska göra.
Thomas
Svara
Sv:Hjälp med en loop
Ett alternativ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Dim rad As Integer Dim kolumn As Integer Dim lodratt As Integer Dim vagratt(1 To 5) As Integer Dim Radhöjd As Integer vagratt(1) = 50 vagratt(2) = 500 vagratt(3) = 2500 vagratt(4) = 3500 vagratt(5) = 4500 Radhöjd = Picture1.TextHeight( "" ) For rad = 4 To 15 If flexTables.TextMatrix(rad, 1) = "tomt" Then Exit For For kolumn = 1 To 5 Picture1.CurrentY = lodratt Picture1.CurrentX = vagratt(kolumn) Picture1.Print flexTables.TextMatrix(rad, kolumn) Next lodratt = lodratt + Radhöjd Next |
Svara
Sv: Hjälp med en loop
Jag ville ha ut från en flexgrid till en picturebox
Var inte så lätt att förklara för jag har aldrig kört flexgrid förut i VB6
Den innersta loopen går vågrätt (5 kolumner)
Den andra går max 10 lodrätt men ska sluta om den stöter på ett tomt fält i den första kolumnen
Från början så skrev personen som tipsade om ett exempel att om en kolumn var tomt så skulle den skriva in *null*
Jag tog bort det och skrev in "tomt"
Fast slutresultatet blev att jag skippade helt och låter det var blankt
Svara
Sv: Hjälp med en loop
Föresten Andreas
Din kod fungerar perfekt och är flera gånger så snyggare än min (troligen även mer effektivare)
Fattar inte så mycket men jag använder aldrig flexgrind annars.
Bara till detta projekt :)
Svara