Как экспортировать отчет Quickbooks в Excel? - PullRequest
0 голосов
/ 27 апреля 2020

Я начал проект Windows Forms для создания отчета о потоке приблизительно sh из отчетов Quickbooks. Я хотел бы использовать Quickbooks SDK для входа в Quickbooks и экспорта отчета в Excel. Я успешно выполнил вход в систему, но не могу выполнить экспорт отчета в Excel. Возможно ли использование SendKeys?

Вот мой код:

Imports QBFC13Lib

Public Class Form1

    Private Sub GetReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GetReportToolStripMenuItem.Click
        Dim sessionBegun As Boolean
        sessionBegun = False
        Dim connectionOpen As Boolean
        connectionOpen = False
        Dim sessionManager As QBSessionManager
        sessionManager = Nothing

        Try

            'Create the session Manager object
            sessionManager = New QBSessionManager


            'Connect to QuickBooks and begin a session
            sessionManager.OpenConnection("", "Your application")
            connectionOpen = True
            sessionManager.BeginSession("", ENOpenMode.omDontCare)
            sessionBegun = True

            MsgBox("started session!")

            'End the session and close the connection to QuickBooks
            sessionManager.EndSession()
            sessionBegun = False
            sessionManager.CloseConnection()
            connectionOpen = False

            MsgBox("Connection Closed")

        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error")
            If (sessionBegun) Then
                sessionManager.EndSession()
            End If
            If (connectionOpen) Then
                sessionManager.CloseConnection()
            End If
        End Try


        sessionManager = Nothing
        sessionBegun = Nothing
        connectionOpen = Nothing

    End Sub

1 Ответ

0 голосов
/ 27 апреля 2020

Сам по себе QuickBooks SDK не поддерживает экспорт в Excel, поэтому вам придется написать некоторый код для этого.

После того, как вы выполнили вход в систему, вы можете экспортировать отчеты следующим образом:

var query = msgSetRq.AppendGeneralSummaryReportQueryRq();
query.GeneralSummaryReportType.SetValue(ENGeneralSummaryReportType.gsrtLotNumberInStockBySite);

msgSetRq.Attributes.OnError = ENRqOnError.roeContinue;

var msgSetRs = sessManager.DoRequests(msgSetRq);

Я настоятельно рекомендую вам ознакомиться с документацией Intuit по созданию отчетов с помощью QBF C:

  1. https://developer-static.intuit.com/qbSDK-current/doc/PDF/QBSDK_ProGuide.pdf
  2. https://developer.intuit.com/app/developer/qbdesktop/docs/develop/exploring-the-quickbooks-desktop-sdk/preparing-report-requests

Вы получите объект со всеми данные отчета. Затем вы можете просмотреть отчет и построить свой лист Excel.

Создание листов Excel выглядит примерно так:

Dim appXL As Excel.Application
      Dim wbXl As Excel.Workbook
      Dim shXL As Excel.Worksheet
      Dim raXL As Excel.Range

      ' Start Excel and get Application object.
      appXL = CreateObject("Excel.Application")
      appXL.Visible = True

      ' Add a new workbook.
      wbXl = appXL.Workbooks.Add
      shXL = wbXl.ActiveSheet


      ' Create an array to set multiple values at once.
      Dim qbdata(5, 2) As String
      qbdata(0, 0) = "data from QB here"
      qbdata(0, 1) = "and here"

      ' Fill A2:B6 with an array of data
      shXL.Range("A2", "B6").Value = qbdata


      ' Make sure Excel is visible and give the user control
      ' of Excel's lifetime.
      appXL.Visible = True
      appXL.UserControl = True

      ' Release object references.
      raXL = Nothing
      shXL = Nothing
      wbXl = Nothing
      appXL.Quit()
      appXL = Nothing
...