我是如何搞定复杂水晶报表的(4)

简介:
Message设计
      /*******************************************************
      **方 法  名:GetPaperMessage
      **输 入参数:课程号码和班级号码,教师编号
      **输 出参数:
      **返 回  值:
      **创 建  人:钱哨
      **创 建日期:08-7-9
      **描     述:通过存储过程获取试卷界面的参数信息。
      *******************************************************/
        public void GetPaperMessage(int cno, int bno, int tno, out string xqmess, out string cname, out string zy, out string nj, out string bname, out string tname, out string year1, out string month1, out string day1, out Int16 @clx_num, out string @clx_string, out int @ctime)
        {
            ///下面,开始实例化另一个命名空间的一个类
            Mydatabase DB = new Mydatabase();
            string sql = String.Format("exec proc_fdpaper " + cno + "," + bno + "," + tno + ",@xqmess output, @cname output,@zy output, @nj output,@bname output,@tname output,@year1 output,@month1 output,@day1 output,@clx_num output,@clx_string output,@ctime output");
            //执行的T-SQL串
            SqlCommand MyCommand = DB.GetProcCommand(sql);
            MyCommand.Parameters.Add(new SqlParameter("@xqmess"SqlDbType.VarChar, 100));
            MyCommand.Parameters.Add(new SqlParameter("@cname"SqlDbType.VarChar, 50));
            MyCommand.Parameters.Add(new SqlParameter("@zy"SqlDbType.VarChar, 40));
            MyCommand.Parameters.Add(new SqlParameter("@nj"SqlDbType.VarChar, 20));
            MyCommand.Parameters.Add(new SqlParameter("@bname"SqlDbType.VarChar, 30));
            MyCommand.Parameters.Add(new SqlParameter("@tname"SqlDbType.VarChar, 40));
            MyCommand.Parameters.Add(new SqlParameter("@year1"SqlDbType.VarChar, 10));
            MyCommand.Parameters.Add(new SqlParameter("@month1"SqlDbType.VarChar, 10));
            MyCommand.Parameters.Add(new SqlParameter("@day1"SqlDbType.VarChar, 10));
            MyCommand.Parameters.Add(new SqlParameter("@clx_num"SqlDbType.TinyInt));
            MyCommand.Parameters.Add(new SqlParameter("@clx_string"SqlDbType.VarChar, 10));
            MyCommand.Parameters.Add(new SqlParameter("@ctime"SqlDbType.Int));
 
            MyCommand.Parameters["@xqmess"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@cname"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@zy"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@nj"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@bname"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@tname"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@year1"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@month1"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@day1"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@clx_num"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@clx_string"].Direction = ParameterDirection.Output;
            MyCommand.Parameters["@ctime"].Direction = ParameterDirection.Output;
 
            MyCommand.ExecuteNonQuery();
            xqmess = Convert.ToString(MyCommand.Parameters["@xqmess"].Value); //接收输出的参数
            cname = Convert.ToString(MyCommand.Parameters["@cname"].Value);
             zy = Convert.ToString(MyCommand.Parameters["@zy"].Value);
             nj = Convert.ToString(MyCommand.Parameters["@nj"].Value);
             bname = Convert.ToString(MyCommand.Parameters["@bname"].Value);
             tname = Convert.ToString(MyCommand.Parameters["@tname"].Value);
            year1 = Convert.ToString(MyCommand.Parameters["@year1"].Value);
            month1 = Convert.ToString(MyCommand.Parameters["@month1"].Value);
            day1 = Convert.ToString(MyCommand.Parameters["@day1"].Value);
             clx_num = Convert.ToInt16(MyCommand.Parameters["@clx_num"].Value);
            clx_string = Convert.ToString(MyCommand.Parameters["@clx_string"].Value);
             ctime = Convert.ToInt32(MyCommand.Parameters["@ctime"].Value);
            DB.close();
}
该方法中引用的存储过程proc_fdpaper代码如下:
create proc proc_fdpaper
--建立存储过程,显示改卷时候界面基本信息
@cno int,
@bno int,
@tno int,
@xqmess varchar(100) output,--学期信息
@cname varchar(50) output,
@zy varchar(40) output,
@nj varchar(20) output,
@bname varchar(30) output,
@tname varchar(40) output,
@year1 varchar(10) output,
@month1 varchar(10) output,
@day1 varchar(10) output,
@clx_num tinyint output,
@clx_string varchar(10) output,
@ctime int output
as
 
select @xqmess=SUBSTRING(skxq,1,4)+'-'+cast((CAST (SUBSTRING(skxq,1,4) AS int)+1) as varchar(10))+'学年第'+SUBSTRING(skxq,5,1)+'学期' 
from tc
where cno=@cno and bno=@bno
 
select @tname=tname from teacher where tno=@tno
 
select @cname=cname,@clx_num=clx,@ctime=ctime from course where cno=@cno
 
set @clx_string=
case
when @clx_num=1 then '考查'
when @clx_num=2 then '实习'
when @clx_num=3 then '毕业论文'
when @clx_num=4 then '毕业实习'
else '考试'
end
 
select @zy=zy,@nj=cast(year(btime) as varchar(20)),@bname=bname from class where bno=@bno
 
select @year1=cast(year(getdate()) as varchar(10)),@month1=cast(month(getdate()) as varchar(10)),@day1=cast(day(getdate()) as varchar(10))
 
GO
 




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/235684,如需转载请自行联系原作者

目录
相关文章
|
BI
水晶报表
水晶报表之Visual C++2003简单使用方法 1.加入命名空间#import "C://Program Files//Common Files//Crystal Decisions//1.
811 0
|
BI
[转贴]水晶报表
     I am using VC++ 6 with crystal reports 9 .
805 0
|
BI 数据库 数据安全/隐私保护
|
BI
VS2010水晶报表的添加与使用
原文:VS2010水晶报表的添加与使用         最近在学习VS2010水晶报表,发现原先安装的VS2010旗舰版没有 Crystal Report Viewer 控件,网上搜索一下发现要安装一个插件----CRforVS_13_0, 于是下载安装: http://pan.
1088 0
|
BI C++ Windows
在VS2013中使用水晶报表
原文:在VS2013中使用水晶报表 又遇到了在B/S系统中打印,打印格式要求比较高,打印出的效果要求高大上。用VS2013中微软自带的报表,实在难以实现应用的效果,主要问题表现在: 1.不能插入用Word做好的打印模板,自己按照模板来做感觉比较费事,实现不了Word的打印效果,一旦打印模板改变,调整格式比较麻烦。
2117 0
|
文字识别 BI 数据库

热门文章

最新文章