webForumDet fria alternativet

Constructor call is valid only as the first statement in an instance constructor.

3 svar · 764 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

Har ett jobbigt fel, fick följande information idag från utvecklarna av ett faktureringsprogram vars API jag arbetar mot
[ot]
väldigt dåligt dokumenterat, dåligt fungerande och dyrt
[/ot]
Hoppas ni kan norska :e

BackLink er g_Order.LinkID kan hentes ved å kjøre oOrder.Get(lnOrderID) og da får man den ved oOrder.LinkID
CrInvoiceID er fakturanummeret, hentes ved å kjøre oOrder.Get(lnOrderID) og da får man den ved oOrder.InvoiceID (oOrder.InvoiceID er også riktig rett etter en fakturering av en ordre også)

oOrder.New(30013,.F.,5400)
oorder.BackLink = 70
oOrder.CrInvoiceID = 26
oLine = oOrder.newline("100000")
oLine.QTY = -1
oLine.price = 1600

oOrder.SAVE()
oOrder.InvoiceOrder()

Jag misstänker att ovanstående är gjort i VB6, nu försöker jag få det att fungera i VB.NET:

            oOrder = oGBA.createorderobject(0)
            oOrder.new(userid,.F.,orderid)
            oOrder.backlink = linkid
            oOrder.crinvoiceid = InvoiceID
            oLine = oOrder.newline("100000")
            oLine.qty = -1
            oLine.price = betsum

            oOrder.save()
            oOrder.invoiceorder()

oOrder = oGBA.createorderobject(0) har jag använt i andra funktioner med orderobjektet så det "borde" finnas med.
Men jag får felet: Constructor call is valid only as the first statement in an instance constructor.
och: Leading '.' or '!' can only appear inside a 'With' statement.

Vad 17 är .F. överhuvudtaget???

Min funktion i sin helhet:

    Public Function CreditInvoice(ByVal InvoiceID As Integer, ByVal datum As Date, _
        ByVal userid As Integer, ByVal betsum As Decimal, ByVal lopnr As String, ByVal konto As Integer) As Integer
        Dim oGBA As New gbaapi.gba
        Dim RetValue As Integer
        Dim oLine, oOrder
        Dim SQL As String
        Dim myOleDbCommand As OleDbCommand
        Dim orderid, linkid As Integer
        Dim str2MamutSokvag As String = "C:\Program files\Mamut\Data\Client\000\005"
        Dim my2OleDbConnection As OleDbConnection = New OleDbConnection("Provider=vfpoledb;Data Source=C:\Program files\Mamut\Data\Client\000\005\gurudata.dbc;Mode=Read|Share Deny None;Collating Sequence=MACHINE;Password=''")

        Try
            'Creates the GBA object
            'Specifies the data location of the chosen client
            RetValue = oGBA.SETCLIENTPATH(str2MamutSokvag)
            If RetValue = 0 Then
                Return False
            End If

            Dim MyTable As New DataTable
            SQL = "SELECT orderid, linkid FROM(g_order) WHERE (invoiceid = " & InvoiceID.ToString() & ") AND (contid = " & userid.ToString() & ")"
            my2OleDbConnection.Open()
            Dim objCmd As OleDbDataAdapter = New OleDbDataAdapter(SQL.ToString(), my2OleDbConnection)
            objCmd.Fill(MyTable)

            For Each dr As DataRow In MyTable.Rows
                orderid = Convert.ToInt32(dr("orderid"))
                linkid = Convert.ToInt32(dr("linkid"))
            Next
            my2OleDbConnection.Close()

            oOrder = oGBA.createorderobject(0)
            oOrder.new(userid,.F.,orderid)
            oOrder.backlink = linkid
            oOrder.crinvoiceid = InvoiceID
            oLine = oOrder.newline("100000")
            oLine.qty = -1
            oLine.price = betsum

            oOrder.save()
            RetValue = oOrder.invoiceorder()

            If RetValue = 0 Then
                Return RetValue
            Else
                Return RetValue
            End If

        Catch ex As Exception
            Return 0
        Finally
            oGBA = Nothing
        End Try
    End Function
aleborgMedlem sedan jan. 20013 341 inlägg
#2

fick veta att .F. står för False iaf och tydligen ska inte oOrder = oGBA.createorderobject(0) användas här :)
Då är bara frågan hur det ska Dimmas

aleborgMedlem sedan jan. 20013 341 inlägg
#3

Löste det:
oOrder = oGBA.createorderobject(0)
oOrder.[New](userid, False, 5400)

skulle det vara :)

xs4bevMedlem sedan juni 20061 inlägg
#4

Har problemer med dette såkalte "API"et oxo.
Prøver å lage en transaksjon men den dukker ikke opp i "Bilagsregistrering"
Fant tråden din på søk via Google :-)

Her er koden

Dim oGBA As New gbaapi.gba
Dim oTrans As Object
Dim oLine as Object

oGBA.setclientpath("F:\program files\mamut\data\client\000\001\")

oTrans = oGBA.createtransobject()
oTrans.[Accyear] = 2006
oTrans.[Period] = 1
oTrans.[Regdate] = New Date(2006, 1, 1)

oLine = oTrans.[newline]()
oLine.[Accid] = 3010
oLine.[Descmain] = "Linjeinfo"
oLine.[Saldo] = 2500

oLine = oTrans.[newline]()
oLine.[Accid] = 3010
oLine.[Descmain] = "Linjeinfo"
oLine.[Saldo] = -2500

oTrans.[save](False)

Har du noe forslag til hva som er feil ??

131 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)