0

您好,我在签入 Quickbooks 时遇到问题,这是我的代码:

bool sessionBegun = false;
            bool connectionOpen = false;
            QBSessionManager sessionManager = null;
            try
            {
                //Create the session Manager object
                sessionManager = new QBSessionManager();

                //Create the message set request object to hold our request
                IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);
                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

                //Connect to QuickBooks and begin a session
                sessionManager.OpenConnection("", "Sample Code from OSR");
                connectionOpen = true;
                sessionManager.BeginSession(@"C:\Users\Public\Documents\Intuit\QuickBooks\Company Files\EsdeSolosyon.QBW", ENOpenMode.omDontCare);
                sessionBegun = true;

                ICheckQuery checkQueryRq = requestMsgSet.AppendCheckQueryRq();

                //Send the request and get the response from QuickBooks
                IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
                IResponse response = responseMsgSet.ResponseList.GetAt(0);
                ICheckRetList checkRetList = (ICheckRetList)response.Detail;

                if (checkRetList != null)
                {
                    for (int i = 0; i < checkRetList.Count; i++)
                    {
                        ICheckRet checkRet = checkRetList.GetAt(i);
                        IExpenseLineRetList expenseList = checkRetList.GetAt(i).ExpenseLineRetList;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }

在我的图片中,费用列表返回 null 而在我的 Quickbooks 程序中 在此处输入图像描述

但在我的 QuickBooks 中,每张支票都有费用 在此处输入图像描述

顺便说一句,在快速手册中您无法添加检查您是否没有任何费用清单

4

1 回答 1

1

这与这里的问题相同:Why ExpenseLineRetList return null

除非您将其包含在查询中,否则支票请求将不包括支票的详细信息行。通过添加IncludeLineItems设置,您将可以访问支票的费用或项目列表(支票可能有费用行、项目行或两者兼有)。您需要进行更改以包括以下内容:

ICheckQuery checkQueryRq = requestMsgSet.AppendCheckQueryRq();

// Include the line details with the request
checkQueryRq.IncludeLineItems.SetValue(true);

//Send the request and get the response from QuickBooks
IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
IResponse response = responseMsgSet.ResponseList.GetAt(0);
于 2014-04-01T13:27:10.320 回答