当前位置: 首页 > news >正文

在中国可以做国外的域名网站吗/武汉seo网站推广

在中国可以做国外的域名网站吗,武汉seo网站推广,有没有做字的网站,哪有专业做网站首先我们来说下上次说的报表模板中,数据库表连接串,sql语句,这个可以直接取到数据然后展示,那么我们可以更近一步呢,这个报表的内容是不确定的,比如说我们打印的出库入库单据等,对吧。这里简单的…

首先我们来说下上次说的报表模板中,数据库表连接串,sql语句,这个可以直接取到数据然后展示,那么我们可以更近一步呢,这个报表的内容是不确定的,比如说我们打印的出库入库单据等,对吧。这里简单的就是一个参数传值,我们在报表模板里面定义一个参数,然后在sql语句中引用这个参数,最后就是我们在程序里面把我们要的值传给这个参数。这是最简单的一种传值方法,相信初学者开始肯定都是这么干的。

private void btnDaYin_Click(objectsender, EventArgs e)

{

a();

FrmCaiGouRuKuPreview frm= newFrmCaiGouRuKuPreview();

frm.AttachReport(Report);

frm.ShowDialog();

}public voida()

{//从对应文件中载入报表模板数据

if (this.UserInfo.DepartmentName == "a")

{

Report.LoadFromFile(BaseBaoBiao.GetReportTemplatePath()+ "a.grf");

}else if (this.UserInfo.DepartmentName == "b")

{

Report.LoadFromFile(BaseBaoBiao.GetReportTemplatePath()+ "b.grf");

}

Report.Initialize+= new_IGridppReportEvents_InitializeEventHandler(ReportInitialize);//设置与数据源的连接串,因为在设计时指定的数据库路径是绝对路径。

if (Report.DetailGrid != null)

Report.DetailGrid.Recordset.ConnectionString=BaseBaoBiao.GetDatabaseConnectionString();

}private voidReportInitialize()

{//传递参数

Report.ParameterByName("YuanName").AsString = this.UserInfo.CompanyName;

Report.ParameterByName("KeShiName").AsString = this.UserInfo.DepartmentName;

Report.ParameterByName("RuKuFangShi").AsString = "采购入库";

Report.ParameterByName("RuKuDanHao").AsString =EntityId;

DateTime riqi= Convert.ToDateTime(grvHead.GetFocusedRowCellValue("CreateOn"));

Report.ParameterByName("CaiGouRiQi").AsString = riqi.ToString("yyyy年MM月dd日");

Report.ParameterByName("Id").AsString = grvHead.GetFocusedRowCellValue("Id").ToString();string keshiname = grvHead.GetFocusedRowCellValue("SuoShuLeiBieName").ToString();//keshiname=keshiname.Remove(0,3);

Report.ParameterByName("FenLei").AsString =keshiname;

Report.ParameterByName("GongHuoShang").AsString = grvHead.GetFocusedRowCellValue("GongYingShang").ToString();

}

看上面代码,这是我刚开始用的时候自己写的例子,注意其中a方法,加载数据库连接语句和参数。ReportInitialize方法是获取参数。这里获取到之后报表模板里面sql语句where条件 例如:Code=:RuKuDanHao,这个就是在报表模板里面的写法。简单的开始学习了,我们也知道了,那么当我们遇到传值的时候不是一个字符串或者数字呢,这些麻烦来了,因为如果我们传一个类似1,2,3,4,5 这种参数或者'a','b','c','d'这样的参数呢,这个方法就行不通了,怎么办呢。别着急,它既然科传参数,那么是不是也可以传数据集呢,呵呵,当我顺着这条思路去做的时候,结果告诉我,是可以的。那么怎么来实现呢。直接贴代码好了,各位看官看好了。

protected GridppReport Report = new GridppReport(); --这个是必须new的

DataTable dtReport = new DataTable();--这个呢,注意下面就是重点了,上面我们不是已经说好了,我们直接传数据集吗?

-------此处省略dtReport数据集获取

new Reports() .FillRecordToReport(Report, dtReport);--这样我们就把数据集赋值给了报表明细列表。然后我们就可以打开报表展示数据了。

这里有人会问,FillRecordToReport方法怎么写呢。别着急,后面贴上。

// 将 DataTable 的数据转储到 Grid++Report 的数据集中

public static void FillRecordToReport(IGridppReport Report, DataTable dt)

{

MatchFieldPairType[] MatchFieldPairs = new MatchFieldPairType[Math.Min(Report.DetailGrid.Recordset.Fields.Count, dt.Columns.Count)];

//根据字段名称与列名称进行匹配,建立DataReader字段与Grid++Report记录集的字段之间的对应关系

int MatchFieldCount = 0;

for (int i = 0; i < dt.Columns.Count; ++i)

{

foreach (IGRField fld in Report.DetailGrid.Recordset.Fields)

{

if (String.Compare(fld.Name, dt.Columns[i].ColumnName, true) == 0)

{

MatchFieldPairs[MatchFieldCount].grField = fld;

MatchFieldPairs[MatchFieldCount].MatchColumnIndex = i;

++MatchFieldCount;

break;

}

}

}

各位看官可以慢慢看哦,这里既然贴出了直接传入数据集那么肯定还会有其他的方法。下面我再贴一段。用法类似,大家可以试试的。

// 将 DataReader 的数据转储到 Grid++Report 的数据集中

public static void FillRecordToReport(IGridppReport Report, IDataReader dr)

{

MatchFieldPairType[] MatchFieldPairs = new MatchFieldPairType[Math.Min(Report.DetailGrid.Recordset.Fields.Count, dr.FieldCount)];

//根据字段名称与列名称进行匹配,建立DataReader字段与Grid++Report记录集的字段之间的对应关系

int MatchFieldCount = 0;

for (int i = 0; i < dr.FieldCount; ++i)

{

foreach (IGRField fld in Report.DetailGrid.Recordset.Fields)

{

if (String.Compare(fld.RunningDBField, dr.GetName(i), true) == 0)

{

MatchFieldPairs[MatchFieldCount].grField = fld;

MatchFieldPairs[MatchFieldCount].MatchColumnIndex = i;

++MatchFieldCount;

break;

}

}

}

// Loop through the contents of the OleDbDataReader object.

// 将 DataReader 中的每一条记录转储到Grid++Report 的数据集中去

while (dr.Read())

{

Report.DetailGrid.Recordset.Append();

for (int i = 0; i < MatchFieldCount; ++i)

{

if (!dr.IsDBNull(MatchFieldPairs[i].MatchColumnIndex))

MatchFieldPairs[i].grField.Value = dr.GetValue(MatchFieldPairs[i].MatchColumnIndex);

}

Report.DetailGrid.Recordset.Post();

}

}

这个应该就是我们现在用的,模板只放明细记录字段,所有的我们都放在了代码里,想怎么玩就怎么玩。只有你想不到,没有做不到的。今天就说到这里,以上内容都是对你有帮助的,如果你是初学者,那么这个肯定就是捷径,如果你是已经在使用的朋友,可以看看是不是跟我的方法一样呢,不一样,您会不会也给说出来,我们共同分享,共同学习呢。如果有疑问的地方可以@我,谢谢。

http://www.jmfq.cn/news/4834351.html

相关文章:

  • 微信公众号管理平台app/杭州seo按天计费
  • 做网站秒杀软件用什么语言好/青岛新闻最新今日头条
  • 有什么网站有小学生做的题目/河北百度seo关键词
  • 济南学网站建设哪里好/湖南seo网站多少钱
  • 去哪找做塑料的网站/足球世界积分榜
  • 免费微信网站开发/网络营销外包推广
  • 模板建站优点/网站建设报价单
  • 建德网站建设公司/品牌网络营销策划
  • 网站模板素材下载/优化seo是什么意思
  • 怎么做自己的网站logo/推广app大全
  • 网站加速工具/网络营销产品策略的内容
  • 水利部网站 生产建设项目/网络营销案例分析题及答案
  • 做网站推广弊端/it培训班学出来有用吗
  • wordpress琪亚娜/上海专业seo排名优化
  • 大连品牌网站建设公司/网络推广网站排行榜
  • 网站开发自学/seo关键词优化服务
  • 电商网站设计思想/百度竞价推广思路
  • 玛迪做网站/网络营销策划书800字
  • 移动网站与pc网站/萌新seo
  • 网站开发人员岗位职责/优化精灵
  • 哪些网站有中文域名/网络优化大师
  • 哪个网站可以免费做初级试题/seo长尾关键词
  • 广东专业网站建设/拼多多怎么查商品排名
  • 上海公司注册查询官网/网站外部优化的4大重点
  • html免费代码网站/深圳媒体网络推广有哪些
  • 企业建设网站公司有哪些/线上营销推广
  • 云南网站建设选天软/怎样推广自己的产品
  • 青岛信息排名推广/临沂seo代理商
  • 焦作做网站最专业的公司/彩虹云商城网站搭建
  • 网站建设代理都有哪些/网站seo快速排名