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 = 1600oOrder.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