wpf - can someone show me a simple sample of vb.net adding customer to quickbooks -


i'm trying write vb.net wpf program, add custom notes customer. intuit has me going in circles code examples, won't convert c# vb.net.

can show me simple sample shows adding customers name only? leave out error checking etc, can figure out. don't know how write connection quickbooks , send request. maybe simple form textbox , button, functionality put name in textbox, , click button add customer name.

i have long been disgusted @ poor code samples intuit quickbooks sdk. having said that, still use them; after fixing code quite useful.

you need add reference intuit quickbooks sdk qbfc7lib; might different depending on version.

here need make code useful (use edit > quick replace):

  1. replace // ' (comments)
  2. remove ; (semi-colons)
  3. replace == =
  4. replace for j = 0 for j integer = 0
  5. replace responselist.getat(i) responselist.getat(j)
  6. remove trailing . (dot)
  7. replace integerfor integer (next line) for
  8. replace dataextret dataextret. (only when shows error)
  9. check other errors
  10. delete stuff don't need

when run first time need have quickbooks open , ready give permissions quickbooks. here sample errors fixed.

imports qbfc7lib  module qbsample  public class customer      public sub docustomeradd()         dim sessionbegun boolean         sessionbegun = false         dim connectionopen boolean         connectionopen = false         dim sessionmanager qbsessionmanager         sessionmanager = nothing          try              'create session manager object             sessionmanager = new qbsessionmanager              'create message set request object hold our request             dim requestmsgset imsgsetrequest             requestmsgset = sessionmanager.createmsgsetrequest("us", 7, 0)             requestmsgset.attributes.onerror = enrqonerror.roecontinue              buildcustomeraddrq(requestmsgset)              'connect quickbooks , begin session             sessionmanager.openconnection("", "your application")             connectionopen = true             sessionmanager.beginsession("", enopenmode.omdontcare)             sessionbegun = true              'send request , response quickbooks             dim responsemsgset imsgsetresponse             responsemsgset = sessionmanager.dorequests(requestmsgset)              'end session , close connection quickbooks             sessionmanager.endsession()             sessionbegun = false             sessionmanager.closeconnection()             connectionopen = false              walkcustomeraddrs(responsemsgset)         catch e exception             messagebox.show(e.message, "error")             if (sessionbegun)                 sessionmanager.endsession()             end if             if (connectionopen)                 sessionmanager.closeconnection()             end if         end try     end sub     private sub buildcustomeraddrq(byval requestmsgset imsgsetrequest)         dim customeraddrq icustomeradd         customeraddrq = requestmsgset.appendcustomeraddrq()         'set field value name         customeraddrq.name.setvalue("test customer 2")         'set field value isactive         customeraddrq.isactive.setvalue(true)         'set field value companyname         customeraddrq.companyname.setvalue("ab")         'set field value salutation         customeraddrq.salutation.setvalue("ab")         'set field value firstname         customeraddrq.firstname.setvalue("ab")         'set field value middlename         customeraddrq.middlename.setvalue("ab")         'set field value lastname         customeraddrq.lastname.setvalue("ab")         'set field value addr1         customeraddrq.billaddress.addr1.setvalue("ab")         'set field value addr2         customeraddrq.billaddress.addr2.setvalue("ab")         'set field value addr3         customeraddrq.billaddress.addr3.setvalue("ab")         'set field value addr4         customeraddrq.billaddress.addr4.setvalue("ab")         'set field value phone         customeraddrq.phone.setvalue("ab")         'set field value altphone         customeraddrq.altphone.setvalue("ab")         'set field value fax         customeraddrq.fax.setvalue("ab")         'set field value email         customeraddrq.email.setvalue("ab")         'set field value contact         customeraddrq.contact.setvalue("ab")         'set field value altcontact         customeraddrq.altcontact.setvalue("ab")          'may create more 1 of these if needed         customeraddrq.includeretelementlist.add("name")         customeraddrq.includeretelementlist.add("listid")      end sub      private sub walkcustomeraddrs(byval responsemsgset imsgsetresponse)         if (responsemsgset nothing)             exit sub         end if          dim responselist iresponselist         responselist = responsemsgset.responselist         if (responselist nothing)             exit sub         end if          'if sent 1 request, there 1 response, we'll walk list sample         j integer = 0 responselist.count - 1             dim response iresponse             response = responselist.getat(j)             'check status code of response, 0=ok, >0 warning             if (response.statuscode >= 0)                 'the request-specific response in details, make sure have                 if (not response.detail nothing)                     'make sure response type we're expecting                     dim responsetype enresponsetype                     responsetype = ctype(response.type.getvalue(), enresponsetype)                     if (responsetype = enresponsetype.rtcustomeraddrs)                         ''upcast more specific type here, safe because checked response.type check above                         dim customerret icustomerret                         customerret = ctype(response.detail, icustomerret)                         walkcustomerret(customerret)                     end if                 end if             end if         next j     end sub      private sub walkcustomerret(byval customerret icustomerret)         if (customerret nothing)             exit sub         end if          'go through elements of icustomerret         'get value of listid         dim listid1 string         listid1 = customerret.listid.getvalue()         'get value of name         dim name5 string         name5 = customerret.name.getvalue()      end sub  end class  end module 

another problem see code jumping "retlist" "ret". happens queries e.g. receivepaymentquery. not problem docustomeradd. mention here reference when converting other methods.

the code osr:

public sub walkreceivepaymentret(byval receivepaymentret ireceivepaymentretlist)     if (receivepaymentret nothing)         exit sub     end if 

fix this:

public sub walkreceivepaymentret(byval receivepaymentretlist ireceivepaymentretlist)      integer = 0 receivepaymentretlist.count - 1         dim receivepaymentret ireceivepaymentret          receivepaymentret = receivepaymentretlist.getat(a)          if (receivepaymentret nothing)             exit sub         end if 

Comments