我提前道歉,因为我之前没有使用过visual studio,我在大多数情况下都使用了一个模板来创建下面的代码。但我真的需要一些帮助。
我正在尝试通过API使用visual studio从系统生成报告。下面的代码工作,并没有在调试时给我任何错误,但我需要找到一种方法来检索最终的reportURL变量(报告是使用下面的规范生成的,我应该收到一个URL来下载报告) 。我正在构建一个Windows应用程序。
我可以使用visual studio中的console.log或console.writeline吗?或者我可以将它输出到某种文本框吗? (同样,我正在构建一个Windows窗体而不是控制台应用程序)。任何人都可以帮我找出一些代码,我可以根据下面提供的内容检索URL吗? (如果可能的话请详细说明,因为我仍然习惯了该计划)。谢谢!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ReportsApplication2
{
using ServiceReference1;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ReportExecutionServiceClient client = new ReportExecutionServiceClient();
ReportSubmission submissionRequest = new ReportSubmission();
ReportSubmissionResponse submissionResponse = new ReportSubmissionResponse();
PollReportResponse pollResponse = new PollReportResponse();
WebMediaReportRequest webRepReq = new WebMediaReportRequest();
UserCredentials userCredentials = new UserCredentials();
DateFilter dateFilter = new DateFilter();
userCredentials.UserName = "xxxxx";
userCredentials.Password = "xxxxx";
submissionRequest.UserCredentials = userCredentials;
submissionRequest.DeveloperToken = "xxxxxx";
dateFilter.DateFilterType = DateFilterType.Total;
dateFilter.RelativeDateRange = RelativeDateRange.LastMonth;
webRepReq.Columns = new WebMediaReportColumn[2] { WebMediaReportColumn.MediaPlanName, WebMediaReportColumn.Impressions };
List<WebMediaFilter> webRepFilterList = new List<WebMediaFilter>();
WebMediaFilter webRepFilter = new WebMediaFilter();
webRepFilter.Column = WebMediaReportFilter.ClientGUID;
webRepFilter.Values = new string[1] {"xxxxxx"};
webRepFilterList.Add(webRepFilter);
webRepFilter = new WebMediaFilter();
webRepFilter.Column = WebMediaReportFilter.BuyGUID;
webRepFilter.Values = new string[1] { "xxxxxxxx" };
webRepFilterList.Add(webRepFilter);
webRepReq.ReportName = "test";
webRepReq.Filters = webRepFilterList.ToArray();
webRepReq.Format = FormatType.CSV;
webRepReq.DateFilter = dateFilter;
submissionRequest.ReportRequest = webRepReq;
submissionResponse = client.SubmitReport(submissionRequest);
string reportURL = string.Empty;
do { // Loop until report complete or failed
PollReportRequest pollRequest = new PollReportRequest();
pollRequest.DeveloperToken = "xxxxxxx";
pollRequest.UserCredentials = userCredentials;
pollRequest.ReportId = submissionResponse.ReportId;
pollResponse = client.PollReport(pollRequest);
reportURL = pollResponse.Url;
} while ((pollResponse.Status != ReportStatus.Failed) || ((pollResponse.Status != ReportStatus.Complete)));
}//end
答案 0 :(得分:2)
你实际上已经知道你需要什么。 Console.WriteLine方法会将您想要的任何内容写入控制台。
在Visual Studio中进行调试时,可以通过打开“输出”窗口来查看控制台窗口。您可以在View
菜单中找到它
即使您正在编写WinForms应用程序,在调试时仍会写入“输出”窗口。它在调试时可以是一个有效的工具,但当然,当您实际发布应用程序时,该命令将毫无意义,因为您也没有可以写入的控制台。
答案 1 :(得分:1)
如果您使用的是Winforms,最简单的显示消息的方法是MessageBox.Show():
MessageBox.Show(reportURL);
在您单击“确定”之前,它将阻止该程序。
http://msdn.microsoft.com/en-us/library/0x49kd7z(v=vs.110).aspx
如果要在开发期间输出调试信息,则Console.WriteLine()将起作用:
Console.WriteLine(reportURL);
它将显示在“输出”窗口中。如果您没有看到,请转到Visual Studio中的主菜单,然后选择查看 - &gt;在调试模式下输出。
Console.WriteLine()仅适用于Visual Studio中的Winforms应用程序;部署后,控制台窗口不显示,因此您需要通过GUI方法显示它。
如果需要在运行时输出,请将TextBox从工具箱拖到主窗体上,然后执行以下操作:
textBox.Text = reportURL;
如果您无法在主窗体上显示它,那么您可能想要创建自己的自定义消息对话框,其中包含一个TextBox并使用ShowDialog()
显示它答案 2 :(得分:0)
最简单的解决方案是使用Console.WriteLine
。