Avatar billede sbay Nybegynder
01. april 2003 - 12:05 Der er 13 kommentarer og
1 løsning

ForAll løkke

Hejsa

Jeg kan ikke få min ForAll løkke til at virke!! Jeg vil gerne hente alle værdier i en bestemt Item:

Print "Begin ForAll-----"
Dim Item1 As NotesItem
Dim Item2 As NotesItem
Set Item1 = Doc.GetFirstItem("SalaryCode")
'Set Item2 = Doc.GetFirstItem("SalaryQuantity")
Forall i In Doc.Item1
Print "løkke"
ECLASS =a+Doc.AssignmentNumber(0)+a
LPROD =a+Doc.SalaryCode(i) + a
LQORD = Cint(Doc.SalaryQuantity(0))
'****************************************
'* SQL for ECL
Query.SQL = "INSERT INTO EDSERVICE.EDECL values (" & ECLASS &", "& LPROD &", "& LQORD &")"
Print "::::::ECL" + Query.SQL
Call Result.Execute
End Forall
Avatar billede cdelicht Nybegynder
01. april 2003 - 12:34 #1
ForAll i In Item1.Values
Print "løkke"
ECLASS =a+Doc.AssignmentNumber(0)+a
LPROD =a+Item1(i) + a
LQORD = Cint(Item2(1))
'****************************************
'* SQL for ECL
Query.SQL = "INSERT INTO EDSERVICE.EDECL values (" & ECLASS &", "& LPROD &", "& LQORD &")"
Print "::::::ECL" + Query.SQL
Call Result.Execute
End Forall
Avatar billede cdelicht Nybegynder
01. april 2003 - 12:36 #2
HOV ! Din kode...
LPROD =a+Doc.SalaryCode(i) + a
LQORD = Cint(Doc.SalaryQuantity(0))
... er korrekt nok (med mindre det skal være SalaryQuantity(i))
Avatar billede sbay Nybegynder
01. april 2003 - 13:05 #3
Jeg får en TYPE MISMATCH på linien LPROD!!!

Set Item1 = Doc.GetFirstItem("SalaryCode")
            'Set Item2 = Doc.GetFirstItem("SalaryQuantity")
            Forall i In Item1.Values
                Print "løkke"
                ECLASS =a+Doc.AssignmentNumber(0)+a
                LPROD =a+Doc.SalaryCode(i) + a
                LQORD = Cint(Doc.SalaryQuantity(0))
        '****************************************
        '* SQL for ECL
                Query.SQL = "INSERT INTO EDSERVICE.EDECL values (" & ECLASS &", "& LPROD &", "& LQORD &")"
                Print "::::::ECL" + Query.SQL
                Call Result.Execute
            End Forall
Avatar billede cdelicht Nybegynder
01. april 2003 - 13:09 #4
Hvilken data type er a og SalaryCode (de skal være ens for at kunne adderes)
Avatar billede sbay Nybegynder
01. april 2003 - 13:09 #5
LPROD er initialiseret som STRING, og værdierne i SALARYCODE er STRINGS
Avatar billede sbay Nybegynder
01. april 2003 - 13:10 #6
a= {'}
Avatar billede sbay Nybegynder
01. april 2003 - 13:16 #7
hmmm hvis jeg bytter i ud med 0

LPROD =a+Doc.SalaryCode(i) + a
=> LPROD =a+Doc.SalaryCode(0) + a

så virker det!
Avatar billede sbay Nybegynder
01. april 2003 - 13:28 #8
Problemet er så bare at den ikke får hentet alle værdierne!
Avatar billede cdelicht Nybegynder
01. april 2003 - 14:27 #9
Nå ja, klart! i bliver jo værdien i feltet og ikke en integer ;-)
Skift forall løkken ud med :
For i = Lbound( Doc.SalaryCode ) To Ubound( Doc.SalaryCode )

Next
Avatar billede sbay Nybegynder
01. april 2003 - 15:37 #10
Nu vil jeg så gerne have Item2 med!!! Men hvordan??? Hvis jeg laver en løkke inden i en løkke går det jo galt!
Avatar billede cdelicht Nybegynder
01. april 2003 - 15:41 #11
hvorfor skulle deet gå galt?
Avatar billede sbay Nybegynder
01. april 2003 - 15:47 #12
ForAll1
  Forall2
 
  End Forall
End Forall

Hver gang den kommer ind i Forall1 - løber den jo forall2 igennem for alle værdierne.

Eks: hvis der er 5 værdier i forall1 - gentager den jo denne løkke 5 gange. Hver gang løber den så forall2 igennem - som også indeholder 5 værdier = 25 værdier!!!

Eller er jeg helt galt på den????
Avatar billede cdelicht Nybegynder
01. april 2003 - 15:50 #13
Hvad snakker du om? Det er da den samme i værdi du skal bruge, ikk' ?
SalaryCode(1)svarer til SalaryQuantity(1)
....
SalaryCode(34)svarer til SalaryQuantity(34)

Så du skriver bare
For i = Lbound( Doc.SalaryCode ) To Ubound( Doc.SalaryCode )
  bla bla bla
  LPROD =a+Doc.SalaryCode(i) + a
  LQORD = Cint(Doc.SalaryQuantity(1))
Next

eller er jeg helt galt på den ?
Avatar billede sbay Nybegynder
01. april 2003 - 15:53 #14
nååå, ok. Det er bare fordi jeg fik det til at virke med FORALL i stedet for FOR. Men hvis jeg bruger FOR returnerer den altså en integer????? Det prøver jeg lige!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester