有一大堆的供应商的库存数据要按产品按供应商按时间段进行数据比较,同时产生图表,就是
利用zedGraph实现不定曲线数曲线的生成
还是贴张图来说一下吧。
其它的实现方式,我会在这个项目完成后总结出来,困扰我的地方在于:
如何通过所选择的供应商数目及时间段进行绘制图表呢?这里是供应商数目不定,时间段不定。
关于:ZedGraph这东西我一直使用,可以要网上搜索到关于生成动态曲线(不定曲线数)的文章几乎没有。看来只能靠自己了。
返过头来看一下:要实现上面这玩艺,需要了解这些知识点
1.C# 交互数组的使用
(在最初的时候我选择了交互数组,但在中间过程中我又觉得自己错了,改回使用二维数组去实现,尽管数据是KO了,但就是不能画出图来,最后认真了解了一下C#数组的用法,还是走回原来的路使用了交互数组并达到想要的效果)
2.存储过程中相关的统计语句,主要是(行转列 ,Group by, 排序,动态SQL的构建)
gridview中的数据是通过存储过程去实现获取的,而这个存储过程是通过动态SQL去实现的。这个我稍后会整出来。
3.Split的用法,C#数组length的注意
事实证明到实现之前的时候,主要都是一些细枝末节的错误,看来我的基本功还不扎实啊!
现在我们来看一下实现的方式:
Step1.首先,我们通过一个页面进入供应商的比较
Step2.根据所选择的对象进行数据比较
这里的一个知识点在于,如何将选择的对象的ID值给传出去呢? 这就要用到Split的用法了。
int numOfChecked = 0; //计算选中的对象个数
for (int i = 0; i < this.gdvCompareObject.Rows.Count; i++)
{
bool isChecked = ((CheckBox)gdvCompareObject.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
numOfChecked++;
}
} //这里是累加所选择的对象个数
if (numOfChecked < 2) //进行个数判断
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<SCRIPT>alert('很抱歉,你至少要选择二个以上的对象才能进行比较.');</SCRIPT>");
}
else
{
string compareObjectList = string.Empty;
for (int i = 0; i < gdvCompareObject.Rows.Count; i++)
{
CheckBox chkSelectedAgentID = (CheckBox)gdvCompareObject.Rows[i].FindControl("chkSelected");
if (chkSelectedAgentID.Checked == true)
{
compareObjectList += gdvCompareObject.DataKeys[i]["Object_ID"] + ","; //获取要比较的对象ID值串成一个字付串
}
利用zedGraph实现不定曲线数曲线的生成
最新推荐文章于 2021-01-13 13:52:05 发布
这篇博客介绍了如何利用ZedGraph库在C#中动态生成不确定数量的曲线,涉及C#交互数组的使用、动态SQL语句构建、Split方法及数据处理。作者通过步骤展示了从选择供应商、构建SQL存储过程到填充数据到ZedGraph的过程,强调了SQL统计和数据组织的重要性。
摘要由CSDN通过智能技术生成