我对自己的工作有点困惑,我似乎把我的问题复杂化了。
我正在从呼叫拨号器中提取数据,该拨号器记录所有座席的所有呼叫,并且每个座席都在一个队列中,同一个队列中可以有多个座席。
我在 SQL 中的基本计算可以提取日期、队列、小时数和每小时的呼叫次数,如下所示:
callDate queueid cHour numberOfCalls
2013-05-03 No Queue 0 1
2013-05-03 No Queue 2 1
2013-05-03 No Queue 6 1
2013-05-03 No Queue 7 7
2013-05-03 No Queue 8 6
2013-05-03 No Queue 9 14
2013-05-03 No Queue 10 6
2013-05-03 No Queue 11 5
2013-05-03 No Queue 12 8
2013-05-03 17001 7 114
2013-05-03 17001 8 238
2013-05-03 17001 9 227
2013-05-03 17001 10 190
2013-05-03 17001 11 221
2013-05-03 17001 12 73
2013-05-03 17002 6 3
2013-05-03 17002 7 125
在那里您可以看到队列、小时以及该小时的呼叫次数(小时为上午 7 点、上午 8 点......等)。
我需要知道我是否创建了一个多维数组来存储队列、每个队列的小时数和呼叫次数、每个小时(如果这有意义吗?),以便我以后可以将其用作图表?
这是我坚持使用的示例代码:
xml:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:ThemeManager.ThemeName="MetropolisDark"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DVC:Chart Name="Chart"
Background="#463F3F">
<DVC:Chart.PlotAreaStyle>
<Style TargetType="Grid">
<Setter Property="Background" Value="Transparent" />
</Style>
</DVC:Chart.PlotAreaStyle>
</DVC:Chart>
</Grid>
C#:
private void AllAgentHourData()
{
string[] queueid = new string[100];
int[] callHour = new int[100];
int count = 0;
int counter = 0;
SqlConnection sqlConnection1 = new SqlConnection("Server=nl-reportserver;Database=RC_Dailer_WH;User Id=sa;Password=d@t0r@.001");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
//cmd.CommandText = "SELECT * FROM RC_call_logs WHERE convert(date,call_logdate,120) = convert(date,GETDATE(),120)";
cmd.CommandText = "Select distinct queueid from RC_call_logs order by queueid";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
queueid[count] = reader.GetString(0);
}
}
else
{
MessageBox.Show("No Error message");
}
reader.Close();
sqlConnection1.Close();
Random random = new Random();
//Chart is your chart object in Xaml
//declare your series
for (int i = 1; i < 10; i++)
{
LineSeries ls = new LineSeries();
ls.Title = i.ToString();
ls.IndependentValueBinding = new Binding("Key");
ls.DependentValueBinding = new Binding("Value");
ls.ItemsSource = new KeyValuePair<DateTime, int>[]{
new KeyValuePair<DateTime,int>(DateTime.Now , random.Next(1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(1), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(2), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(3), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(4), random.Next(10, 1000))};
// then add it to the chart
Chart.Series.Add(ls);
}
}