<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>chenyt的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=chenyt</link>
<description>冷冰雨的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[单片机C语言教程【转】(一)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=24533</link>
<author>chenyt</author>
<pubDate>2007/5/6 20:21:08</pubDate>
<description><![CDATA[<P align=left><A><FONT size=3>　</FONT></A><A><FONT size=3><STRONG>　</STRONG></FONT></A><FONT size=3><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">学习单片机实在不是件易事</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><A href="http://www.mcu99.com/"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; TEXT-DECORATION: none; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-size: 12.0pt; text-underline: none"><SPAN lang=EN-US>，</SPAN></SPAN></A></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">一来要购买高价格的编程器，仿真器，二来要学习编程语言，还有众多种类的单片机选择真是件让人头脑的事。在众多单片机中</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">51</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">架构的芯片风行很久，学习资料也相对很多，是初学的较好的选择之一。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">51</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的编程语言常用的有二种，一种是汇编语言，一种是</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言。汇编语言的机器代码生成效率很高但可读性却并不强，复杂一点的程序就更是难读懂，而</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言在大多数情况下其机器代码生成效率和汇编语言相当，但可读性和可移植性却远远超过汇编语言，而且</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说，中大型的软件编写用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言的开发周期通常要小于汇编语言很多。综合以上</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言的优点，我在学习时选择了</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言。以后的教程也只是我在学习过程中的一些学习笔记和随笔，在这里加以整理和修改，希望和大家一起分享，一起交流，一起学习，一起进步。</SPAN></FONT></P><FONT size=3><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
<P>
<HR>
</P></SPAN></FONT>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第一课　建立您的第一个<SPAN lang=EN-US>C</SPAN>项目</SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
<HR>
</SPAN></SPAN></P>
<P align=left><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp; 使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言肯定要使用到</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">编译器，以便把写好的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">程序编译为机器码，这样单片机才能执行编写好的程序。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL uVISION2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是众多单片机应用开发软件中优秀的软件之一，它支持众多不同公司的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">MCS51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">架构的芯片，它集编辑，编译，仿真等于一体，同时还支持，</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">PLM</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，汇编和</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">语言的程序设计，它的界面和常用的微软</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">VC++</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的界面相似，界面友好，易学易用，在调试程序，软件仿真方面也有很强大的功能。因此很多开发</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">应用的工程师或普通的单片机爱好者，都对它十分喜欢。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　　以上简单介绍了</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">软件，要使用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">软件，必需先要安装它。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是一个商业的软件，对于我们这些普通爱好者可以到</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">中国代理周立功公司的网站上下载一份能编译</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">2K</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">DEMO</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">版软件，基本可以满足一般的个人学习和小型应用的开发。（安装的方法和普通软件相当这里就不做介绍了）</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　　安装好后，你是不是迫不及待的想建立自己的第一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">程序项目呢？下面就让我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板，甚至没有一块单片机，不过没有关系我们可以通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">软件仿真看到程序运行的结果。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　　首先当然是运行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">软件。怎么打开？噢，天！那你要从头学电脑了。呵呵，开个玩笑，这个问题我想读者们也不会提的了：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">P</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。运行几秒后，出现如图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的屏幕。</SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><FONT face="宋体, MS Song"><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://blogger.org.cn/blog/uploadfile/200756202912635.GIF" border=0></FONT></v:shapetype></SPAN></SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><FONT face="宋体, MS Song">图1－1　启动时的屏幕<BR></P></FONT></v:shapetype></SPAN></SPAN></SPAN></SPAN>
<P align=left><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><FONT face="宋体, MS Song"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">接着按下面的步骤建立您的第一个项目：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　　（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">）点击</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">Project</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">菜单，选择弹出的下拉式菜单中的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">New Project</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，如图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。接着弹出一个标准</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">Windows</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">文件对话窗口，如图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">3</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，这个东东想必大家是见了</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">N</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">次的了，用法技巧也不是这里要说的，以后的章节中出现类似情况将不再说明。在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">"</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">文件名</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">"</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">中输入您的第一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">程序项目名称，这里我们用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">"test"</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，这是笔者惯用的名称，大家不必照搬就是了，只要符合</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">Windows</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">文件规则的文件名都行。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">"</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">保存</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">"</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">后的文件扩展名为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">uv2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，这是</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">KEIL uVision2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">项目文件扩展名，以后我们可以直接点击此文件以打开先前做的项目。</SPAN></FONT></v:shapetype></SPAN></SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><FONT face="宋体, MS Song"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"></SPAN><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:stroke joinstyle="miter"></v:stroke></FONT><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:lock aspectratio="t" v:ext="edit"><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="uploadfile/200756203358988.GIF" border=0></o:lock></v:shapetype></SPAN></SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><o:lock aspectratio="t" v:ext="edit"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">New Project</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">菜单</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song"> </FONT></SPAN></o:lock></v:shapetype></SPAN></SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><o:lock aspectratio="t" v:ext="edit"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"></SPAN></o:lock></v:shapetype></SPAN></SPAN></SPAN></SPAN>&nbsp;</P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><o:lock aspectratio="t" v:ext="edit"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="uploadfile/200756203435512.GIF" border=0></SPAN></o:lock></v:shapetype></SPAN></SPAN></SPAN></SPAN></P>
<P align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><o:lock aspectratio="t" v:ext="edit"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">3</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　文件窗口</SPAN></SPAN></o:lock></v:shapetype></SPAN></SPAN></SPAN></SPAN></P><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 黑体; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><o:lock aspectratio="t" v:ext="edit"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">　（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）选择所要的单片机，这里我们选择常用的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">Ateml</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">公司的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">AT<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="89" UnitName="C">89C</st1:chmetcnv>51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。此时屏幕如图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">4</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">所示。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">AT<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="89" UnitName="C">89C</st1:chmetcnv>51</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">有什么功能、特点呢？不用急，看图中右边有简单的介绍，稍后的章节会作较详细的介绍。完成上面步骤后，我们就可以进行程序的编写了。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">　　（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">3</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">）首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有现成的程序，那么就要新建一个程序文件。在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">KEIL</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中有一些程序的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">Demo</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，在这里我们还是以一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">程序为例介绍如何新建一个</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">C</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">程序和如何加到您的第一个项目中吧。点击图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">5</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的新建文件的快捷按钮，在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">中出现一个新的文字编辑窗口，这个操作也可以通过菜单</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">File</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">－</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">New</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">或快捷键</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">Ctrl+N</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">来实现。好了，现在可以编写程序了，光标已出现在文本编辑窗口中，等待我们的输入了。第一程序嘛，写个简单明了的吧。下面是经典的一段程序，呵，如果你看过别的程序书也许也有类似的程序：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left><SPAN lang=EN-US style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><FONT face="Times New Roman">#include <BR>#include <o:p></o:p></FONT></SPAN></P>
<P align=left><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">void main(void)<BR>{<BR></FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">SCON = 0x50; //</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">串口方式</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><FONT face="宋体, MS Song">1,</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">允许接收</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"><BR></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: &#718;&#805;; mso-hansi-font-family: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">　</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: &#718;&#805;; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR]]></description>
</item><item>
<title><![CDATA[[Javascript]ASP.NET中使用IFRAME建立类Modal窗口]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=4608</link>
<author>chenyt</author>
<pubDate>2005/4/6 17:20:07</pubDate>
<description><![CDATA[
<TABLE cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD width=10></TD>
<TD><SPAN id=ArticleContent1_ArticleContent1_lblContent>
<P>我们经常要在程序的人机交互中用到模态窗口，但在B/S开发中，这一切变得不容易了，虽然也可以用window.showModalDialog函数实现（见<A href="http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4">http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4</A>），但多数用起来麻烦，还要为了回传值用Frameset建立2个无用的窗口。不爽！</P>
<P>我发现可以尝试在初始页面中嵌入一个IFRAME，然后用IFRAME来显示一个页面，并将IFRAME设定为按绝对位置摆放，Z-Index设置为最高的9999，这样就可以将这个页面覆盖在初始界面上，当需要显示模态窗口时，就显示这个IFRAME，可以将IFRAME的尺寸扩大到能覆盖住初始窗口，也可以盖住关键项，目的就是不让后面的窗口有什么变化的可能。在IFRAME显示的窗口需要关闭时只要对它的parent的IFRAME隐藏就可以了。实际试验时发现IFRAME的diaplay不能在子窗口被改变，所以，我们还需要将IFRAME放到一个DIV中，控制DIV的显示就可以控制窗口的出现或隐藏。但为什么不直接用DIV来显示窗口呢，原因有两个：1.DIV不能遮挡它后面的Dropdownlist控件，而IFRAME能。2.不容易将窗口内的内容放置到一个单独的网页中，复用性差。</P>
<P>以下是代码，显示隐藏使用了客户端和服务端代码两种写法：</P>
<P><FONT color=#800000>WebForm1.aspx</FONT></P>
<P>
<TABLE cellSpacing=1 cellPadding=1 width="90%" border=1>
<TBODY>
<TR>
<TD>&nbsp;&lt;%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WSGUI1.WebForm1" %&gt;<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &gt;<BR>&lt;HTML&gt;<BR>&nbsp;&lt;HEAD&gt;<BR>&nbsp;&nbsp;&lt;title&gt;WebForm1&lt;/title&gt;<BR>&nbsp;&nbsp;&lt;meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"&gt;<BR>&nbsp;&nbsp;&lt;meta name="CODE_LANGUAGE" Content="C#"&gt;<BR>&nbsp;&nbsp;&lt;meta name="vs_defaultClientScript" content="JavaScript"&gt;<BR>&nbsp;&nbsp;&lt;meta name="vs_targetSchema" content="<A href="http://schemas.microsoft.com/intellisense/ie5">http://schemas.microsoft.com/intellisense/ie5</A>"&gt;<BR>&nbsp;&nbsp;&lt;script language="javascript"&gt;<BR>&nbsp;&nbsp;&nbsp;function ShowLayer()<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;document.all.MyFormLayer.style.display='';<BR>&nbsp;&nbsp;&nbsp;&nbsp;return false;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;function SetURL(url)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;document.all.IFRAME1.src=url;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&lt;/script&gt;<BR>&nbsp;&lt;/HEAD&gt;<BR>&nbsp;&lt;body MS_POSITIONING="GridLayout"&gt;<BR>&nbsp;&nbsp;&lt;form id="Form1" method="post" runat="server"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;FONT face="宋体"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:DropDownList id="DropDownList1" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 208px"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runat="server" Width="184px"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:ListItem Value="TEST1"&gt;q&lt;/asp:ListItem&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:ListItem Value="TEST2"&gt;w&lt;/asp:ListItem&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:ListItem Value="TEST3"&gt;e&lt;/asp:ListItem&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:ListItem Value="TEST4"&gt;r&lt;/asp:ListItem&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:DropDownList&gt;&lt;/FONT&gt; &lt;input type="button" name="MyButton" value="TEST" id="MyButton" onclick="ShowLayer();SetURL('WebForm2.aspx')" style="Z-INDEX: 102; LEFT: 360px; POSITION: absolute; TOP: 336px"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;div id="MyFormLayer" style="DISPLAY: none;Z-INDEX: 103;LEFT: 16px;WIDTH: 408px;POSITION: absolute;TOP: 24px;HEIGHT: 304px"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;iframe scrolling="no" frameborder="0" width="100%" height="100%" id="IFRAME1" runat="server"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/iframe&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/div&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;asp:Button id="Button2" style="Z-INDEX: 104; LEFT: 256px; POSITION: absolute; TOP: 336px" runat="server"<BR>&nbsp;&nbsp;&nbsp;&nbsp;Text="ASPXTest"&gt;&lt;/asp:Button&gt;<BR>&nbsp;&nbsp;&lt;/form&gt;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/HTML&gt;</TD></TR></TBODY></TABLE></P>
<P></P>
<P><FONT color=#800000>WebForm1.aspx.cs</FONT></P>
<P>
<TABLE cellSpacing=1 cellPadding=1 width="90%" border=1>
<TBODY>
<TR>
<TD>
<P>....</P>
<P>&nbsp;public class WebForm1 : System.Web.UI.Page<BR>&nbsp;{<BR>&nbsp;&nbsp;protected System.Web.UI.WebControls.DropDownList DropDownList1;<BR>&nbsp;&nbsp;protected System.Web.UI.HtmlControls.HtmlGenericControl IFRAME1;<BR>&nbsp;&nbsp;protected System.Web.UI.WebControls.Button Button2;<BR>&nbsp;<BR>&nbsp;&nbsp;private void Page_Load(object sender, System.EventArgs e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;// 在此处放置用户代码以初始化页面<BR>&nbsp;&nbsp;&nbsp;if(!IsPostBack)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;public static void CreateScript(System.Web.UI.Page mypage,string strScript,string ID)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;string strscript="&lt;script language='javascript'&gt;"; <BR>&nbsp;&nbsp;&nbsp;strscript += strScript;<BR>&nbsp;&nbsp;&nbsp;strscript += "&lt;/script&gt;";<BR>&nbsp;&nbsp;&nbsp;if(!mypage.IsStartupScriptRegistered(ID))<BR>&nbsp;&nbsp;&nbsp;&nbsp;mypage.RegisterStartupScript(ID, strscript);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;private void Button2_Click(object sender, System.EventArgs e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;IFRAME1.Attributes.Add("src","WebForm2.aspx?NAME='中国'");<BR>&nbsp;&nbsp;&nbsp;CreateScript(Page,"ShowLayer();","SHOW");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR></P></TD></TR></TBODY></TABLE></P>
<P><FONT color=#800000>WebForm2.aspx</FONT></P>
<P>
<TABLE cellSpacing=1 cellPadding=1 width="90%" border=1>
<TBODY>
<TR>
<TD>&nbsp;&lt;%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="WSGUI1.WebForm2" %&gt;<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &gt;<BR>&lt;HTML&gt;<BR>&nbsp;&lt;HEAD&gt;<BR>&nbsp;&nbsp;&lt;title&gt;WebForm2&lt;/title&gt;<BR>&nbsp;&nbsp;&lt;meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"&gt;<BR>&nbsp;&nbsp;&lt;meta name="CODE_LANGUAGE" Content="C#"&gt;<BR>&nbsp;&nbsp;&lt;meta name="vs_defaultClientScript" content="JavaScript"&gt;<BR>&nbsp;&nbsp;&lt;meta name="vs_targetSchema" content="<A href="http://schemas.microsoft.com/intellisense/ie5">http://schemas.microsoft.com/intellisense/ie5</A>"&gt;<BR>&nbsp;&nbsp;&lt;script language="javascript"&gt;<BR>&nbsp;&nbsp;function hide()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;parent.MyFormLayer.style.display = "none";<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&lt;/script&gt;<BR>&nbsp;&lt;/HEAD&gt;<BR>&nbsp;&lt;body MS_POSITIONING="GridLayout"&gt;<BR>&nbsp;&nbsp;&lt;form id="Form2" method="post" runat="server"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#6887bb" height="100%"<BR>&nbsp;&nbsp;&nbsp;&nbsp;id="table1" style="BORDER-TOP-STYLE: outset; BORDER-RIGHT-STYLE: outset; BORDER-LEFT-STYLE: outset; BORDER-BOTTOM-STYLE: outset"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p align="center"&gt;&lt;font color="#ffffff"&gt;模仿模态窗口效果&lt;/font&gt;&lt;/p&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p align="center"&gt;&lt;input type="button" onclick="hide()" style="WIDTH: 80px" value="点击关闭"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button id="Button1" runat="server" Text="ASPXTest"&gt;&lt;/asp:Button&gt;&lt;/p&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/table&gt;<BR>&nbsp;&nbsp;&lt;/form&gt;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/HTML&gt;<BR></TD></TR></TBODY></TABLE></P>
<P></P>
<P><FONT color=#800000>WebFom2.aspx.cs</FONT></P>
<P>
<TABLE cellSpacing=1 cellPadding=1 width="90%" border=1>
<TBODY>
<TR>
<TD>
<P>&nbsp;namespace WSGUI1<BR>{<BR>&nbsp;/// &lt;summary&gt;<BR>&nbsp;/// WebForm2 的摘要说明。<BR>&nbsp;/// &lt;/summary&gt;<BR>&nbsp;public class WebForm2 : System.Web.UI.Page<BR>&nbsp;{<BR>&nbsp;&nbsp;protected System.Web.UI.WebControls.Button Button1;<BR>&nbsp;<BR>&nbsp;&nbsp;private void Page_Load(object sender, System.EventArgs e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;// 在此处放置用户代码以初始化页面<BR>&nbsp;&nbsp;&nbsp;if(!IsPostBack)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button1.Attributes.Add("onclick","hide()");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;}<BR></P></TD></TR></TBODY></TABLE></P></SPAN></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[制作一个类似XP的Explorer菜单]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=4607</link>
<author>chenyt</author>
<pubDate>2005/4/6 17:17:27</pubDate>
<description><![CDATA[<SPAN id=ArticleContent1_ArticleContent1_lblContent>制作一个类似XP的Explorer菜单，效果图如下：<BR><BR>htm文件源码如下：如需要增加菜单，可简单复制，但需要修改红色的地方<BR>
<TABLE style="WIDTH: 773px; HEIGHT: 23px" height=23 cellSpacing=0 cellPadding=0 width=773 border=1>
<TBODY>
<TR>
<TD>
<P><FONT size=2>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<BR>"</FONT><A href="http://www.w3.org/TR/html4/loose.dtd"><FONT size=2>http://www.w3.org/TR/html4/loose.dtd</FONT></A><FONT size=2>"&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;title&gt;一个类Explorer菜单&lt;/title&gt;<BR>&lt;style type="text/css"&gt;<BR>&lt;!--<BR>.Group {<BR>&nbsp;font-family: "宋体";<BR>&nbsp;font-size: 12px;<BR>&nbsp;background-image: url(images/center.gif);<BR>&nbsp;height: 22px;<BR>}<BR>.GroupLeft {<BR>&nbsp;background-image: url(images/left.gif);<BR>&nbsp;height: 22px;<BR>&nbsp;width:6px;<BR>}<BR>.GroupRight {<BR>&nbsp;background-image: url(images/right.gif);<BR>&nbsp;height: 22px;<BR>&nbsp;width:6px;<BR>}<BR>.MenuItem {<BR>&nbsp;font-family: "宋体";<BR>&nbsp;font-size: 12px;&nbsp;<BR>&nbsp;cursor:hand;<BR>}<BR>--&gt;<BR>&lt;/style&gt;<BR>&lt;script language="javascript"&gt;<BR>var popUpWin=0;<BR>function popUpWindow(URLStr, left, top, width, height)<BR>{<BR>&nbsp; if(popUpWin)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(!popUpWin.closed) popUpWin.close();<BR>&nbsp; }<BR>&nbsp; popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');<BR>}<BR>function messageWindow(title, msg)<BR>{<BR>&nbsp; var width="300", height="125";<BR>&nbsp; var left = (screen.width/2) - width/2;<BR>&nbsp; var top = (screen.height/2) - height/2;<BR>&nbsp; var styleStr = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;<BR>&nbsp; var msgWindow = window.open("","msgWindow", styleStr);<BR>&nbsp; var head = '&lt;head&gt;&lt;title&gt;'+title+'&lt;/title&gt;&lt;/head&gt;';<BR>&nbsp; var body = '&lt;center&gt;'+msg+'&lt;br&gt;&lt;p&gt;&lt;form&gt;&lt;input type="button" value="&nbsp;&nbsp; Done&nbsp;&nbsp; " onClick="self.close()"&gt;&lt;/form&gt;';<BR>&nbsp; msgWindow.document.write(head + body);<BR>}<BR>function OpenMenu(MenuID)<BR>{&nbsp;<BR>&nbsp;var obj = document.getElementById('Menu'+MenuID);<BR>&nbsp;var grpobj=document.getElementById('Group'+MenuID);<BR>&nbsp;current = (obj.style.display == 'none') ? '' : 'none';<BR>&nbsp;if(current=='none')<BR>&nbsp;{<BR>&nbsp;&nbsp; grpobj.src ='images/downarrows_white.gif';<BR>&nbsp;}<BR>&nbsp;else<BR>&nbsp;&nbsp; grpobj.src ='images/uparrows_white.gif';<BR>&nbsp;obj.style.display = current;&nbsp; <BR>}<BR>&lt;/script&gt;<BR>&lt;/head&gt;</FONT></P>
<P><FONT size=2>&lt;body&gt;<BR>&lt;table width="150" border="0" cellpadding="0" cellspacing="0"&gt;<BR>&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td class="GroupLeft"&gt;　&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td width="138" class="Group"&gt;&nbsp;&lt;table width="100%" height="100%"&nbsp; border="0" cellpadding="0" cellspacing="0"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="85%" height="21"&gt;资料查询&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT style="BACKGROUND-COLOR: #ffff00"> &lt;td width="15%"&gt;&lt;img src="images/uparrows_white.gif" width="16" height="16" id="<FONT color=#ff0000>Group1</FONT>" onClick="OpenMenu(<FONT color=#ff0000>'1</FONT>')" style="cursor:hand"&gt;&lt;/td&gt;<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td class="GroupRight"&gt;　&lt;/td&gt;<BR>&nbsp; &lt;/tr &gt;<BR>&nbsp; <FONT style="BACKGROUND-COLOR: #ffff00">&lt;tr id="<FONT color=#ff0000>Menu1</FONT>" bgcolor="#F0F0F0"&gt;<BR></FONT>&nbsp;&nbsp;&nbsp; &lt;td&gt;　&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;div class="MenuItem"&gt;<BR>&nbsp;&nbsp;&lt;li onMouseOver="this.style.color='#FF9933'" onMouseOut="this.style.color =''" onClick="messageWindow('Hello','Are you OK?')"&gt;查询用户&lt;/li&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li onMouseOver="this.style.color='#FF9933'" onMouseOut="this.style.color =''" onClick="popUpWindow('index.htm',0,0,800,600)"&gt;合同查询&lt;/li&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li onMouseOver="this.style.color='#FF9933'" onMouseOut="this.style.color =''"&gt;预付款查询&lt;/li&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li onMouseOver="this.style.color='#FF9933'" onMouseOut="this.style.color =''"&gt;发展人查询&lt;/li&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<BR>&nbsp;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;　&lt;/td&gt;<BR>&nbsp; &lt;/tr&gt;<BR>&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;　&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;　&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;　&lt;/td&gt;<BR>&nbsp; &lt;/tr&gt;<BR>&lt;/table&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</FONT></P></TD></TR></TBODY></TABLE></SPAN>]]></description>
</item><item>
<title><![CDATA[SQL语句导入导出大全]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=4019</link>
<author>chenyt</author>
<pubDate>2005/3/21 14:14:37</pubDate>
<description><![CDATA[
<H2>SQL语句导入导出大全 </A></H2>
<DIV class=postText>
<P>SQL语句导入导出大全&nbsp;&nbsp;&nbsp; txlicenhe（原作） <BR>&nbsp; <BR>关键字&nbsp;&nbsp;&nbsp;&nbsp; 导入导出 DTS <BR>&nbsp; </P>
<P><BR>/*******&nbsp; 导出到excel<BR>EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'</P>
<P>/***********&nbsp; 导入Excel<BR>SELECT * <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<BR>&nbsp; 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</P>
<P>/*动态文件名<BR>declare @fn varchar(20),@s varchar(1000)<BR>set @fn = 'c:\test.xls'<BR>set @s ='''Microsoft.Jet.OLEDB.4.0'',<BR>''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''<BR>set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'<BR>exec(@s)<BR>*/</P>
<P>SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+'　' 转换后的别名<BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<BR>&nbsp; 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</P>
<P>/********************** EXCEL导到远程SQL<BR>insert OPENDATASOURCE(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'SQLOLEDB',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Data Source=远程ip;User ID=sa;Password=密码'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ).库名.dbo.表名 (列名1,列名2)<BR>SELECT 列名1,列名2<BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<BR>&nbsp; 'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</P>
<P><BR>/** 导入文本文件<BR>EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'</P>
<P>/** 导出文本文件<BR>EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'<BR>或<BR>EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'</P>
<P>导出到TXT文本，用逗号分开<BR>exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'</P>
<P><BR>BULK INSERT 库名..表名<BR>FROM 'c:\test.txt'<BR>WITH (<BR>&nbsp;&nbsp;&nbsp; FIELDTERMINATOR = ';',<BR>&nbsp;&nbsp;&nbsp; ROWTERMINATOR = '\n'<BR>)</P>
<P><BR>--/* dBase IV文件<BR>select * from <BR>OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<BR>,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')<BR>--*/</P>
<P>--/* dBase III文件<BR>select * from <BR>OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<BR>,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')<BR>--*/</P>
<P>--/* FoxPro 数据库<BR>select * from openrowset('MSDASQL',<BR>'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<BR>'select * from [aa.DBF]')<BR>--*/<BR>继续：<BR>/**************导入DBF文件****************/<BR>select * from openrowset('MSDASQL',<BR>'Driver=Microsoft Visual FoxPro Driver;<BR>SourceDB=e:\VFP98\data;<BR>SourceType=DBF',<BR>'select * from customer where country != "USA" order by country')<BR>go<BR>/***************** 导出到DBF ***************/<BR>如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句</P>
<P>insert into openrowset('MSDASQL',<BR>'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<BR>'select * from [aa.DBF]')<BR>select * from 表</P>
<P>说明:<BR>SourceDB=c:\&nbsp; 指定foxpro表所在的文件夹<BR>aa.DBF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定foxpro表的文件名.</P>
<P>&nbsp;</P>
<P><BR>/*************导出到Access********************/<BR>insert into openrowset('Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp; 'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表</P>
<P>/*************导入Access********************/<BR>insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp; 'x:\A.mdb';'admin';'',A表)</P>
<P>文件名为参数<BR>declare @fname varchar(20)<BR>set @fname = 'd:\test.mdb'<BR>exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',<BR>&nbsp;&nbsp;&nbsp; <A href="mailto:'''+@fname+''';''admin'';''''">'''+@fname+''';''admin'';''''</A>, topics) as a ')</P>
<P>SELECT * <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<BR>&nbsp; 'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品</P>
<P>*********************&nbsp; 导入 xml　文件</P>
<P>DECLARE @idoc int<BR>DECLARE @doc varchar(1000)<BR>--sample XML document<BR>SET @doc ='<BR>&lt;root&gt;<BR>&nbsp; &lt;Customer cid= "C1" name="Janine" city="Issaquah"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Order oid="O1" date="1/20/1996" amount="3.5" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Order oid="O2" date="4/30/1997" amount="13.4"&gt;Customer was very satisfied<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Order&gt;<BR>&nbsp;&nbsp; &lt;/Customer&gt;<BR>&nbsp;&nbsp; &lt;Customer cid="C2" name="Ursula" city="Oelde" &gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; white red"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Urgency&gt;Important&lt;/Urgency&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Happy Customer.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Order&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Order oid="O4" date="1/20/1996" amount="10000"/&gt;<BR>&nbsp;&nbsp; &lt;/Customer&gt;<BR>&lt;/root&gt;<BR>'<BR>-- Create an internal representation of the XML document.<BR>EXEC sp_xml_preparedocument @idoc OUTPUT, @doc</P>
<P>-- Execute a SELECT statement using OPENXML rowset provider.<BR>SELECT *<BR>FROM OPENXML (@idoc, '/root/Customer/Order', 1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WITH (oid&nbsp;&nbsp;&nbsp;&nbsp; char(5), <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; amount&nbsp; float, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comment ntext 'text()')<BR>EXEC sp_xml_removedocument @idoc<BR>继续：<BR>/**********************Excel导到Txt****************************************/<BR>想用<BR>select * into opendatasource(...) from opendatasource(...)<BR>实现将一个Excel文件内容导入到一个文本文件</P>
<P>假设Excel中有两列，第一列为姓名，第二列为很行帐号(16位)<BR>且银行帐号导出到文本文件后分两部分，前8位和后8位分开。</P>
<P><BR>邹健：<BR>如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2<BR>然后就可以用下面的语句进行插入<BR>注意文件名和目录根据你的实际情况进行修改.</P>
<P>insert into<BR>opendatasource('MICROSOFT.JET.OLEDB.4.0'<BR>,'Text;HDR=Yes;DATABASE=C:\'<BR>)...[aa#txt]<BR>--,aa#txt)<BR>--*/<BR>select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <BR>from <BR>opendatasource('MICROSOFT.JET.OLEDB.4.0'<BR>,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'<BR>--,Sheet1$)<BR>)...[Sheet1$]</P>
<P>&nbsp;</P>
<P>如果你想直接插入并生成文本文件,就要用bcp</P>
<P>declare @sql varchar(8000),@tbname varchar(50)</P>
<P>--首先将excel表内容导入到一个全局临时表<BR>select @tbname='[##temp'+cast(newid() as varchar(40))+']'<BR>&nbsp;,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <BR>&nbsp;into <A href="mailto:'+@tbname+'">'+@tbname+'</A> from <BR>opendatasource(''MICROSOFT.JET.OLEDB.4.0''<BR>,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls''<BR>)...[Sheet1$]'<BR>exec(@sql)</P>
<P>--然后用bcp从全局临时表导出到文本文件<BR>set @sql='bcp "<A href="mailto:'+@tbname+'">'+@tbname+'</A>" out "c:\aa.txt" /S"(local)" /P"" /c'<BR>exec master..xp_cmdshell @sql</P>
<P>--删除临时表<BR>exec('drop table <A href="mailto:'+@tbname">'+@tbname</A>)</P>
<P><BR>/********************导整个数据库*********************************************/</P>
<P>用bcp实现的存储过程</P>
<P><BR>/*<BR>&nbsp;实现数据导入/导出的存储过程<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 根据不同的参数,可以实现导入/导出整个数据库/单个表<BR>&nbsp;调用示例:<BR>--导出调用示例<BR>----导出单个表<BR>exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1<BR>----导出整个数据库<BR>exec file2table 'zj','','','xzkh_sa','C:\docman',1</P>
<P>--导入调用示例<BR>----导入单个表<BR>exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0<BR>----导入整个数据库<BR>exec file2table 'zj','','','xzkh_sa','C:\docman',0</P>
<P>*/<BR>if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)<BR>&nbsp;drop procedure File2Table<BR>go<BR>create procedure File2Table<BR>@servername varchar(200)&nbsp; --服务器名<BR>,@username varchar(200)&nbsp;&nbsp; --用户名,如果用NT验证方式,则为空''<BR>,@password varchar(200)&nbsp;&nbsp; --密码<BR>,@tbname varchar(500)&nbsp;&nbsp; --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表<BR>,@filename varchar(1000)&nbsp; --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt<BR>,@isout bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --1为导出,0为导入<BR>as<BR>declare @sql varchar(8000)</P>
<P>if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表<BR>begin<BR>&nbsp;set @sql='bcp <A href="mailto:'+@tbname">'+@tbname</A><BR>&nbsp; +case when @isout=1 then ' out ' else ' in ' end<BR>&nbsp; +' "<A href="mailto:'+@filename+'">'+@filename+'</A>" /w'<BR>&nbsp; +' /S <A href="mailto:'+@servername">'+@servername</A><BR>&nbsp; +case when isnull(@username,'')='' then '' else ' /U <A href="mailto:'+@username">'+@username</A> end<BR>&nbsp; +' /P '+isnull(@password,'')<BR>&nbsp;exec master..xp_cmdshell @sql<BR>end<BR>else<BR>begin --导出整个数据库,定义游标,取出所有的用户表<BR>&nbsp;declare @m_tbname varchar(250)<BR>&nbsp;if right(@filename,1)&lt;&gt;'\' set @filename=@filename+'\'</P>
<P>&nbsp;set @m_tbname='declare #tb cursor for select name from <A href="mailto:'+@tbname+'..sysobjects">'+@tbname+'..sysobjects</A> where xtype=''U'''<BR>&nbsp;exec(@m_tbname)<BR>&nbsp;open #tb<BR>&nbsp;fetch next from #tb into @m_tbname<BR>&nbsp;while @@fetch_status=0<BR>&nbsp;begin<BR>&nbsp; set @sql='bcp <A href="mailto:'+@tbname+'..'+@m_tbname">'+@tbname+'..'+@m_tbname</A><BR>&nbsp;&nbsp; +case when @isout=1 then ' out ' else ' in ' end<BR>&nbsp;&nbsp; +' "<A href="mailto:'+@filename+@m_tbname+'.txt">'+@filename+@m_tbname+'.txt</A> " /w'<BR>&nbsp;&nbsp; +' /S <A href="mailto:'+@servername">'+@servername</A><BR>&nbsp;&nbsp; +case when isnull(@username,'')='' then '' else ' /U <A href="mailto:'+@username">'+@username</A> end<BR>&nbsp;&nbsp; +' /P '+isnull(@password,'')<BR>&nbsp; exec master..xp_cmdshell @sql<BR>&nbsp; fetch next from #tb into @m_tbname<BR>&nbsp;end<BR>&nbsp;close #tb<BR>&nbsp;deallocate #tb <BR>end<BR>go</P>
<P><BR>/************* Oracle **************/<BR>EXEC sp_addlinkedserver 'OracleSvr', <BR>&nbsp;&nbsp; 'Oracle 7.3', <BR>&nbsp;&nbsp; 'MSDAORA', <BR>&nbsp;&nbsp; 'ORCLDB'<BR>GO</P>
<P>delete from openquery(mailser,'select *&nbsp; from yulin')</P>
<P>select *&nbsp; from openquery(mailser,'select *&nbsp; from yulin')</P>
<P>update openquery(mailser,'select * from&nbsp; yulin where id=15')set disorder=555,catago=888</P>
<P>insert into openquery(mailser,'select disorder,catago from&nbsp; yulin')values(333,777)</P>
<P>&nbsp;</P>
<P>补充：</P>
<P>对于用bcp导出,是没有字段名的.</P>
<P>用openrowset导出,需要事先建好表.</P>
<P>用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入<BR></P></DIV>]]></description>
</item><item>
<title><![CDATA[世界上最美丽的爱情文字]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=4018</link>
<author>chenyt</author>
<pubDate>2005/3/21 14:12:58</pubDate>
<description><![CDATA[
<H2>世界上最美丽的爱情文字</A> </H2>
<H2>&nbsp;</H2>（1) I love you not because of who you are, but because of who I am when I am with you. <BR>　　 我爱你，不是因为你是一个怎样的人，而是因为我喜欢与你在一起时的感觉。 <BR><BR><BR>（2) No man or woman is worth your tears, and the one who is, won‘t make you cry. <BR>　　 没有人值得你流泪，值得让你这么做的人不会让你哭泣。 <BR>　　 <BR>　　 <BR><BR><BR>（3) The worst way to miss someone is to be sitting right beside them knowing you can‘t have them. <BR>　　 失去某人，最糟糕的莫过于，他近在身旁，却犹如远在天边。 <BR>　　 <BR><BR><BR>（4) Never frown, even when you are sad, because you never know who is falling in love with your smile. <BR>　　 纵然伤心，也不要愁眉不展，因为你不知是谁会爱上你的笑容。 <BR><BR><BR>（5) To the world you may be one person, but to one person you may be the world. <BR>　　 对于世界而言，你是一个人；但是对于某个人，你是他的整个世界。 <BR>　　 <BR><BR><BR>（6) Don‘t waste your time on a man/woman, who isn‘t willing to waste their time on you. <BR>　　 不要为那些不愿在你身上花费时间的人而浪费你的时间。 <BR>　　 <BR><BR><BR>（7) Just because someone doesn‘t love you the way you want them to, doesn‘t mean they don‘t love you with all they have. <BR>　　 爱你的人如果没有按你所希望的方式来爱你，那并不代表他们没有全心全意地爱你。 <BR><BR><BR>（8) Don‘t try so hard, the best things come when you least expect them to. <BR>　　 不要着急，最好的总会在最不经意的时候出现。 <BR><BR><BR>（9) Maybe God wants us to meet a few wrong people before meeting the right one, so that when we finally meet the person, we will know how to be grateful. <BR>　　 在遇到梦中人之前，上天也许会安排我们先遇到别的人；在我们终于遇见心仪的人时，便应当心存感激。 <BR><BR><BR>（10) Don‘t cry because it is over, smile because it happened. <BR>　　 不要因为结束而哭泣，微笑吧，为你的曾经拥有。]]></description>
</item><item>
<title><![CDATA[用JavaScript实现的日期选择框]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3776</link>
<author>chenyt</author>
<pubDate>2005/3/16 18:09:17</pubDate>
<description><![CDATA[<P>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;title&gt;Canlender--JavaScript&lt;/title&gt;<BR>&lt;style&gt;<BR>td {<BR>&nbsp;font-family: Arial, Helvetica, sans-serif;<BR>&nbsp;font-size: 12px;<BR>}</P>
<P>&lt;/style&gt;</P>
<P>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;table border="0" cellpadding="0" cellspacing="0" width="180"&gt;<BR>&lt;tr&gt;&lt;td id=cc&gt;<BR>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<BR>&lt;/body&gt;<BR>&lt;script language="JavaScript"&gt;<BR>function RunNian(The_Year)<BR>{<BR>&nbsp;if ((The_Year%400==0) || ((The_Year%4==0) &amp;&amp; (The_Year%100!=0)))<BR>&nbsp; return true;<BR>&nbsp;else<BR>&nbsp; return false;<BR>}<BR>function GetWeekday(The_Year,The_Month)<BR>{<BR>&nbsp;<BR>&nbsp;var Allday;<BR>&nbsp;Allday = 0;<BR>&nbsp;if (The_Year&gt;2000)<BR>&nbsp;{<BR>&nbsp; <BR>&nbsp; for (i=2000 ;i&lt;The_Year; i++) <BR>&nbsp;&nbsp; if (RunNian(i)) <BR>&nbsp;&nbsp;&nbsp; Allday += 366;<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp; Allday += 365;<BR>&nbsp; for (i=2; i&lt;=The_Month; i++)<BR>&nbsp; {<BR>&nbsp;&nbsp; switch (i)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; case 2 : <BR>&nbsp;&nbsp;&nbsp;&nbsp; if (RunNian(The_Year))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allday += 29;<BR>&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allday += 28;<BR>&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp; case 3 : Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; case 4 : Allday += 30; break;<BR>&nbsp;&nbsp;&nbsp; case 5 : Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; case 6 : Allday += 30; break;<BR>&nbsp;&nbsp;&nbsp; case 7 : Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; case 8 : Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; case 9 : Allday += 30; break;<BR>&nbsp;&nbsp;&nbsp; case 10 : Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; case 11 : Allday += 30; break;<BR>&nbsp;&nbsp;&nbsp; case 12 :&nbsp; Allday += 31; break;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp; }<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;return (Allday+6)%7;<BR>&nbsp;</P>
<P>}</P>
<P>function chooseday(The_Year,The_Month,The_Day)<BR>{<BR>&nbsp;var Firstday;<BR>&nbsp;var completely_date;<BR>&nbsp;if (The_Day!=0)<BR>&nbsp; completely_date = The_Year + "-" + The_Month + "-" + The_Day;<BR>&nbsp;else<BR>&nbsp; completely_date = "No Choose";<BR>&nbsp;//showdate 只是一个为了显示而采用的东西，<BR>&nbsp;//如果外部想引用这里的时间，可以通过使用 completely_date引用完整日期<BR>&nbsp;//也可以通过The_Year,The_Month,The_Day分别引用年，月，日<BR>&nbsp;//当进行月份和年份的选择时，认为没有选择完整的日期<BR>&nbsp;showdate.innerText = completely_date;<BR>&nbsp;Firstday = GetWeekday(The_Year,The_Month);<BR>&nbsp;ShowCalender(The_Year,The_Month,The_Day,Firstday);<BR>&nbsp;<BR>}</P>
<P>function nextmonth(The_Year,The_Month)<BR>{<BR>&nbsp;if (The_Month==12)<BR>&nbsp; chooseday(The_Year+1,1,0);<BR>&nbsp;else<BR>&nbsp; chooseday(The_Year,The_Month+1,0);<BR>}</P>
<P>function prevmonth(The_Year,The_Month)<BR>{<BR>&nbsp;if (The_Month==1)<BR>&nbsp; chooseday(The_Year-1,12,0);<BR>&nbsp;else<BR>&nbsp; chooseday(The_Year,The_Month-1,0);<BR>}</P>
<P>function prevyear(The_Year,The_Month)<BR>{<BR>&nbsp;chooseday(The_Year-1,The_Month,0);<BR>}</P>
<P>function nextyear(The_Year,The_Month)<BR>{<BR>&nbsp;chooseday(The_Year+1,The_Month,0);<BR>}</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>function ShowCalender(The_Year,The_Month,The_Day,Firstday)<BR>{</P>
<P>&nbsp;var showstr;<BR>&nbsp;var Month_Day;<BR>&nbsp;var ShowMonth;<BR>&nbsp;var today;<BR>&nbsp;today = new Date();<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;switch (The_Month)<BR>&nbsp;{<BR>&nbsp; case 1 : ShowMonth = "January"; Month_Day = 31; break;<BR>&nbsp; case 2 :<BR>&nbsp;&nbsp; ShowMonth = "February";<BR>&nbsp;&nbsp; if (RunNian(The_Year))<BR>&nbsp;&nbsp;&nbsp; Month_Day = 29;<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp; Month_Day = 28;<BR>&nbsp;&nbsp; break;<BR>&nbsp; case 3 : ShowMonth = "March"; Month_Day = 31; break;<BR>&nbsp; case 4 : ShowMonth = "April"; Month_Day = 30; break;<BR>&nbsp; case 5 : ShowMonth = "May"; Month_Day = 31; break;<BR>&nbsp; case 6 : ShowMonth = "June"; Month_Day = 30; break;<BR>&nbsp; case 7 : ShowMonth = "July"; Month_Day = 31; break;<BR>&nbsp; case 8 : ShowMonth = "August"; Month_Day = 31; break;<BR>&nbsp; case 9 : ShowMonth = "September"; Month_Day = 30; break;<BR>&nbsp; case 10 : ShowMonth = "October"; Month_Day = 31; break;<BR>&nbsp; case 11 : ShowMonth = "November"; Month_Day = 30; break;<BR>&nbsp; case 12 : ShowMonth = "December"; Month_Day = 31; break;<BR>&nbsp;&nbsp; <BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;showstr = "";<BR>&nbsp;showstr = "&lt;Table cellpadding=0 cellspacing=0 border=1 bordercolor=#999999 width=95% align=center valign=top&gt;"; <BR>&nbsp;showstr +=&nbsp; "&lt;tr&gt;&lt;td width=0 style='cursor:hand' onclick=prevyear("+The_Year+"," + The_Month + ")&gt;&amp;lt;&amp;lt;&lt;/td&gt;&lt;td width=0&gt;&amp;nbsp;" + The_Year + "&amp;nbsp;&lt;/td&gt;&lt;td width=0 onclick=nextyear("+The_Year+","+The_Month+")&nbsp; style='cursor:hand'&gt;&amp;gt;&amp;gt;&lt;/td&gt;&lt;td width=0 style='cursor:hand' onclick=prevmonth("+The_Year+","+The_Month+")&gt;&amp;lt;&amp;lt;&lt;/td&gt;&lt;td width=100 align=center&gt;" + ShowMonth + "&lt;/td&gt;&lt;td width=0 onclick=nextmonth("+The_Year+","+The_Month+")&nbsp; style='cursor:hand'&gt;&amp;gt;&amp;gt;&lt;/td&gt;&lt;/tr&gt;";<BR>&nbsp;showstr +=&nbsp; "&lt;tr&gt;&lt;td align=center width=100% colspan=6&gt;";<BR>&nbsp;showstr +=&nbsp; "&lt;table cellpadding=0 cellspacing=0 border=1 bordercolor=#999999 width=100%&gt;";<BR>&nbsp;showstr += "&lt;Tr align=center bgcolor=#999999&gt; ";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;日&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;一&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;二&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;三&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;四&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;五&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;&nbsp;&nbsp; showstr += "&lt;td&gt;&lt;strong&gt;&lt;font color=#0000CC&gt;六&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;";<BR>&nbsp;showstr += "&lt;/Tr&gt;&lt;tr&gt;";<BR>&nbsp;<BR>&nbsp;for (i=1; i&lt;=Firstday; i++)<BR>&nbsp; showstr += "&lt;Td align=center bgcolor=#CCCCCC&gt;&amp;nbsp;&lt;/Td&gt;";<BR>&nbsp;<BR>&nbsp;for (i=1; i&lt;=Month_Day; i++)<BR>&nbsp;{<BR>&nbsp; if ((The_Year==today.getYear()) &amp;&amp; (The_Month==today.getMonth()+1) &amp;&amp; (i==today.getDate()))<BR>&nbsp;&nbsp; bgColor = "#FFCCCC";<BR>&nbsp; else<BR>&nbsp;&nbsp; bgColor = "#CCCCCC";<BR>&nbsp; <BR>&nbsp; if (The_Day==i) bgColor = "#FFFFCC";<BR>&nbsp; showstr += "&lt;td align=center bgcolor=" + bgColor + " style='cursor:hand' onclick=chooseday(" + The_Year + "," + The_Month + "," + i + ")&gt;" + i + "&lt;/td&gt;";<BR>&nbsp; Firstday = (Firstday + 1)%7;<BR>&nbsp; if ((Firstday==0) &amp;&amp; (i!=Month_Day)) showstr += "&lt;/tr&gt;&lt;tr&gt;";<BR>&nbsp;}<BR>&nbsp;if (Firstday!=0) <BR>&nbsp;{<BR>&nbsp; for (i=Firstday; i&lt;7; i++) <BR>&nbsp;&nbsp; showstr += "&lt;td align=center bgcolor=#CCCCCC&gt;&amp;nbsp;&lt;/td&gt;";<BR>&nbsp; showstr += "&lt;/tr&gt;";<BR>&nbsp;}<BR>&nbsp; <BR>&nbsp;showstr += "&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;";<BR>&nbsp;cc.innerHTML = showstr;&nbsp; <BR>&nbsp;</P>
<P>}</P>
<P><BR>&lt;/script&gt;</P>
<P>&lt;script language="JavaScript"&gt;</P>
<P>&nbsp;var The_Year,The_Day,The_Month;<BR>&nbsp;var today;<BR>&nbsp;var Firstday;<BR>&nbsp;today = new Date();<BR>&nbsp;The_Year = today.getYear();<BR>&nbsp;The_Month = today.getMonth() + 1;<BR>&nbsp;The_Day = today.getDate();<BR>&nbsp;Firstday = GetWeekday(The_Year,The_Month);<BR>&nbsp;ShowCalender(The_Year,The_Month,The_Day,Firstday);<BR>&lt;/script&gt;<BR>&lt;div id=showdate&gt;&lt;/div&gt;<BR>&lt;/html&gt;</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[使用 ADO.NET 访问Oracle 9i存储过程]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3740</link>
<author>chenyt</author>
<pubDate>2005/3/16 10:21:45</pubDate>
<description><![CDATA[<DIV id=""><A name=EOAA></A>
<H2><A href="http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx">http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx</A></H2></DIV>]]></description>
</item><item>
<title><![CDATA[使用Javascript创建XML文件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3667</link>
<author>chenyt</author>
<pubDate>2005/3/14 15:12:26</pubDate>
<description><![CDATA[<SPAN id=ArticleContent1_ArticleContent1_lblContent> 
<P editor_id="mce_editor_1">在客户端创建XML文件可以使用FileSystemObject (FSO) 对象或直接使用XML Document Object Model (DOM)。若使用FSO则客户端必须安装 Window Script 5.5，使用XML DOM则需要在客户端安装有Microsoft&reg; XML Core Services。安全性方面需要在IE的安全设置中启用ActiveX控件。</P>
<P editor_id="mce_editor_1">1、使用FSO创建XML文件</P>
<P editor_id="mce_editor_1">使用FSO对象的GetSpecialFolder方法获得要创建文件所在目录，（GetSpecialFolder方法参数的设置可参见Window 脚本技术文档），然后使用CreateTextFile方法创建一个文本文件并获得一个指向该文件的对象引用，调用文本文件对象的WriteLine方法向文件中写内容，最后关闭对象。</P>
<P editor_id="mce_editor_1">值得注意的是在使用CreateTextFile创建文件时，最后一个指示文件创建方式的参数应该设置为true以表示以Unicode方式创建，并将XML文件的编码设置为UTF-16，这样创建的XML文件才能正常使用。</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">&lt;script language=javascript&gt; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">function CreateXML(){ 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>var fso, tempfolder, xmlfile, schar; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>fso = new ActiveXObject("Scripting.FileSystemObject"); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>tempfolder = fso.GetSpecialFolder(0);</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfile = fso.CreateTextFile(tempfolder+"XML.XML",true,true); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>schar = '\r'; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfile.WriteLine('&lt;?xml version="1.0" encoding="UTF-16" ?&gt;'+schar); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfile.WriteLine('&lt;document title="information"&gt;'+schar); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>for(var i=0;i&lt;10;i++){ 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>xmlfile.WriteLine('&lt;xmlnode type="node" name="node'+i+'" /&gt;'+schar); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>} 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfile.WriteLine('&lt;/document&gt;'); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfile.Close(); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">} 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">&lt;/script&gt; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P editor_id="mce_editor_1"></P>
<P editor_id="mce_editor_1">2、使用XML DOM创建XML文件</P>
<P editor_id="mce_editor_1">首先创建一个DOMDocument对象，调用其load方法加载一个本地文件，在加载过程中如果文件不存在将会创建一个新文件，然后构造文档内容字符串，构造完后调用loadXML方法加载XML内容，最后调用save方法写文件。</P>
<P editor_id="mce_editor_1">使用XML DOM创建XML 文件需要非常小心内容格式是否正确，否则创建的文件中是不会有任何内容的，因为XMLDOC在写文件时已经判断了格式，如果不正确则save方法会失败。</P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">&lt;script language=javascript&gt; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'">function CreateXML(){ 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman" size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'">var xmldoc, xmlnode;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"> 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmldoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmldoc.load("C:\\XML.xml"); 
<P></P>
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>schar = '\r'; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlhead = '&lt;?xml version="1.0" encoding="UTF-16" ?&gt;'+schar; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmltitle = '&lt;documenttitle="information"&gt;'+schar; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlnode = ''; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>for(var i=0;i&lt;10;i++){ 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>xmlnode = xmlnode + '&lt;xmlnode type="node" name="node'+i+'" /&gt;'+schar; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>} 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmlfoot = '&lt;/document&gt;'; 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>strXML = xmlhead+xmltitle+xmlnode+xmlfoot;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"> 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmldoc.loadXML(strXML); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>xmldoc.save("C:\\XML.xml"); 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'">} 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'">&lt;/script&gt;</SPAN></P></SPAN>]]></description>
</item><item>
<title><![CDATA[在DataGrid页眉上添加全选的CheckBox控件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3665</link>
<author>chenyt</author>
<pubDate>2005/3/14 14:30:47</pubDate>
<description><![CDATA[
<P>很简单的方法,就是用js实现:</P>
<P>页面:</P>
<P>&nbsp; &lt;asp:datagrid id="dgUserList" runat="server" Width="640px" BorderColor="White" PagerStyle-HorizontalAlign="Right"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;AlternatingItemStyle BackColor="#F5F5F5"&gt;&lt;/AlternatingItemStyle&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ItemStyle HorizontalAlign="Center"&gt;&lt;/ItemStyle&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#4A95FD" Height="8"&gt;&lt;/HeaderStyle&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PagerStyle HorizontalAlign="Right" Mode="NumericPages"&gt;&lt;/PagerStyle&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Columns&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:TemplateColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HeaderTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:CheckBox id="chkAll" runat="server"&gt;&lt;/asp:CheckBox&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/HeaderTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ItemTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:CheckBox id="chkItem" runat="server"&gt;&lt;/asp:CheckBox&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ItemTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:TemplateColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:BoundColumn DataField="id" HeaderText="序号"&gt;&lt;/asp:BoundColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:BoundColumn DataField="username" HeaderText="用户名"&gt;&lt;/asp:BoundColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:BoundColumn DataField="workno" HeaderText="工号"&gt;&lt;/asp:BoundColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:BoundColumn DataField="dept" HeaderText="部门"&gt;&lt;/asp:BoundColumn&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Columns&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"&gt;&lt;/PagerStyle&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:datagrid&gt;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>后台代码:</P>
<P>&nbsp;private void dgUserList_PreRender(object sender, System.EventArgs e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;foreach (DataGridItem item in dgUserList.Controls[0].Controls)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (item.ItemType == ListItemType.Header)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckBox chkAll=(CheckBox)item.FindControl("chkAll");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Text.StringBuilder strScript = new System.Text.StringBuilder("&lt;script language='javascript'&gt; \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&nbsp;&nbsp;&nbsp; function checkStatus() { \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var bAll = true; \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bAll = document.all('" + chkAll.ClientID + "').checked; \n");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0; i&lt;dgUserList.Items.Count ; i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.all('" + dgUserList.Items[i].Cells[0].FindControl("chkItem").ClientID + "').checked = bAll; \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&nbsp;&nbsp;&nbsp; } \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strScript.Append("&lt;/script&gt; \n");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!Page.IsClientScriptBlockRegistered("checkStatus"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page.RegisterClientScriptBlock("checkStatus",strScript.ToString());</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chkAll.Attributes.Add("onclick","checkStatus()");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}</P>]]></description>
</item><item>
<title><![CDATA[.NET环境下水晶报表使用总结]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3664</link>
<author>chenyt</author>
<pubDate>2005/3/14 14:28:55</pubDate>
<description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US><FONT size=3><FONT face=宋体>.NET环境下水晶报表使用总结<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT face=宋体 size=3>水晶报表是一个优秀的报表开发工具，本人在开发通用管理系统的时候，所有报表都使用水晶报表，其简单、易用和强大的功能令笔者倍加喜爱，现将水晶报表使用手记呈现给大家。</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt"><FONT face=宋体>一、在使用自带的水晶报表时，请注册，否则只能使用<SPAN lang=EN-US>30次<o:p></o:p></SPAN></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-weight: bold"><FONT face=宋体>水晶报表注册码</FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black"><BR><FONT face=宋体>注册号:6707437608<BR>密码:AAP5GKS0000GDE100DS<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 9pt; COLOR: black"><FONT face=宋体>二、使用<SPAN lang=EN-US>CrystalReportViewer进行预览<o:p></o:p></SPAN></FONT></SPAN></B></P>
<P><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black">CrystalReportViewer</SPAN><SPAN style="FONT-SIZE: 9pt">控件允许在应用程序中查看<SPAN lang=EN-US> Crystal Report。ReportSource 属性用于设置要查看哪个报表。该属性设置之后，报表显示在查看器中。报表源可以是<A href="ms-help://MS.VSCC/MS.MSDNVS.2052/crystlrf/html/crlrfreportdocumentclasstopic.htm">ReportDocument</A>、报表文件的路径，也可以是强类型报表。<o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>打开<SPAN lang=EN-US>“工具箱”，并将一个 <B>CrystalReportViewer</B> 拖到窗体上，我们命名为rptVew。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>通过拖放操作将<SPAN lang=EN-US> Windows 窗体查看器调整到希望的大小并将其移动到所需位置。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>当运行应用程序时，报表将显示在查看器中。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=宋体><SPAN style="FONT-SIZE: 10.5pt; COLOR: black">三、</SPAN><B><SPAN style="FONT-SIZE: 10.5pt">创建新报表</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l3 level1 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>指向<SPAN lang=EN-US>“添加”，单击“添加新项”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l3 level1 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“添加新项”对话框中，从“模板”区域选择<B> Crystal Report，将</B>报表命名为</SPAN></FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">rptClient</SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>，单击<SPAN lang=EN-US>“打开”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l3 level1 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US> Crystal Report 库中，选择下列选项之一： <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l3 level2 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">使用报表专家<SPAN lang=EN-US> — </SPAN></SPAN></B><SPAN style="FONT-SIZE: 9pt">指导您完成报表的创建过程，并将您的选择添加到<SPAN lang=EN-US> Crystal Report Designer。 <o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l3 level2 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">作为空白报表<SPAN lang=EN-US> — </SPAN></SPAN></B><SPAN style="FONT-SIZE: 9pt">打开<SPAN lang=EN-US> Crystal Report Designer。 <o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l3 level2 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">来自于现有的报表</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt"> — 创建新报表，它与指定的另一报表设计相同。 <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">注意</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;Crystal Report 库包含许多专家，可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表，以确定哪种报表构造方法适合您的需要。<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l3 level1 lfo2"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>单击<SPAN lang=EN-US>“确定”按钮。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>如果选择使用<SPAN lang=EN-US>“报表专家”，便会出现“报表专家”对话框，并带有数据资源管理器。为每个文件夹选择所需数据，完成“报表专家”选项卡界面上的操作，然后单击“完成”来访问 Crystal Report Designer 和您的报表<o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 9pt; COLOR: black"><FONT face=宋体>四、是否需要动态设置数据源？<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。 <o:p></o:p></FONT></SPAN></P>
<H2 style="MARGIN: auto 0cm"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>拉和推模型<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></H2>
<P><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>为了向开发人员提供最灵活的数据访问方法，<SPAN lang=EN-US>Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=label style="MARGIN: auto 0cm"><B><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>拉模型</FONT></SPAN></B></P>
<P class=label style="MARGIN: auto 0cm"><B><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体><SPAN lang=EN-US><o:p><A href="http://www.myvc.net/uploadpicture/20032178312848410.bmp" target=_blank><IMG title=点击在新窗口查看原始图片 alt="" hspace=0 src="http://www.myvc.net/uploadpicture/20032178312848410.bmp" onload="java_script_:if(this.width>400)this.width=400" align=baseline border=0></A></o:p></SPAN></FONT></SPAN></B></P>
<P class=label style="MARGIN: auto 0cm"><B><SPAN lang=EN-US style="FONT-SIZE: 9pt"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在拉模型中，驱动程序将连接到数据库并根据需要将数据<SPAN lang=EN-US>“拉”进来。使用这种模型时，与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理，不需要开发人员编写代码。如果在运行时无须编写任何特殊代码，则使用拉模型。<o:p></o:p></SPAN></FONT></SPAN></P>
<P class=label style="MARGIN: auto 0cm"><B><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>推模型<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P class=label style="MARGIN: auto 0cm"><B><SPAN lang=EN-US style="FONT-SIZE: 9pt"></SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体><A href="http://www.myvc.net/uploadpicture/20032178344463893.bmp" target=_blank><IMG title=点击在新窗口查看原始图片 alt="" hspace=0 src="http://www.myvc.net/uploadpicture/20032178344463893.bmp" onload="java_script_:if(this.width>400)this.width=400" align=baseline border=0></A>相反，推模型需要开发人员编写代码以连接到数据库，执行<SPAN lang=EN-US> SQL 命令以创建与报表中的字段匹配的记录集或数据集，并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中，并在 Crystal Reports 收到数据之前先将数据筛选出来。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=宋体><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black">四、</SPAN></B><B><SPAN style="FONT-SIZE: 10.5pt">从<SPAN lang=EN-US> ADO.NET 数据集制作报表</SPAN></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black"><o:p></o:p></SPAN></B></FONT></P>
<P class=labelproc style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体><B>从数据库创建数据集对象</B><SPAN lang=EN-US> </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在项目中新建一个架构文件：<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>a.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在解决方案资源管理器中，右击项目名，指向<SPAN lang=EN-US>“添加”，然后单击“添加新项”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>b.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“添加新项”对话框的“类别”区域，展开文件夹，然后选择“数据”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>c.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“模板”区域选择“数据集”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>d.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>接受默认名称 <B><SPAN lang=EN-US>Dataset1.xsd</SPAN></B>。<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 72pt"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>这就创建了一个新的架构文件<SPAN lang=EN-US> (Dataset1.xsd)，以后将用它来生成强类型数据集。该架构文件将显示在 ADO.NET 数据集设计器中。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>指定数据库位置：<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>a.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在服务器资源管理器中，右击<SPAN lang=EN-US>“数据连接”并选择“添加连接”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>b.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“数据链接属性”对话框中，单击“提供程序”选项卡，然后选择一个提供程序（例如 Microsoft OLE DB Provider for SQL Server）。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>c.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>单击<SPAN lang=EN-US>“连接”选项卡，然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l2 level2 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>d.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>单击<SPAN lang=EN-US>“确定”按钮。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 72pt"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>此时，您的数据库及其表和字段就出现在服务器资源管理器的<SPAN lang=EN-US>“数据连接”节点下面。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在解决方案资源管理器中，双击 <B><SPAN lang=EN-US>Dataset1.xsd </SPAN></B>（如果它尚不是活动视图）。<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 36pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>Dataset1.xsd 现在应显示在“数据集”选项卡中。 <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>若要为数据集建立架构，请将需要的表从服务器资源管理器中拖动到 <B><SPAN lang=EN-US>Dataset1.xsd</SPAN></B><SPAN lang=EN-US> 的“数据集”选项卡上。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>5.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>单击<SPAN lang=EN-US>“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l2 level1 lfo3"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>6.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“生成”菜单上，单击“生成”为项目生成数据集对象。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>ADO.NET 数据集对象提供数据的描述，从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 ADO.NET 数据集对象添加表。 <o:p></o:p></FONT></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>请在使用<SPAN lang=EN-US>“报表专家”<A href="ms-help://MS.VSCC/MS.MSDNVS.2052/crystlmn/html/crtskaccessingthecrystalreportdesigner.htm">创建新报表</A>时调用“数据库专家”。或者，要从一个已经使用 ADO.NET 建立好的报表中访问“数据库专家”，请在 Report Designer 中右击，指向“数据库”，然后单击“添加/删除数据库”。<o:p></o:p></SPAN></FONT></SPAN></P>
<P class=labelproc style="MARGIN: auto 0cm"><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">将报表连接到<SPAN lang=EN-US> ADO.NET 数据集对象</SPAN></SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo4"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在<SPAN lang=EN-US>“数据库专家”中，展开“项目数据”文件夹。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo4"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>展开<SPAN lang=EN-US>“ADO.NET 数据集”文件夹。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo4"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>选择所需数据集对象。<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>例如，如果当时使用的是从项目<SPAN lang=EN-US>“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象，则应该选择“WindowsApplication1.Dataset1”。 <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo4"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>选择要向报表中添加的表，和使用其他数据源一样。<SPAN lang=EN-US> <o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><B><SPAN lang=EN-US><o:p><FONT face=宋体 size=3>&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体>五、动态改变数据源的代码<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: blue">Dim</SPAN> dsdataSet <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> DataSet()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> oRpt <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> rptClient()<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">'已建立的报表</SPAN>rptClient<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>请读者自行填充数据集dsdataSet <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">'使用“报表引擎”对象模型将填充的数据集,传递给报表<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>oRpt.SetDataSource(dsdataSet.Tables(0))<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">' 将带有数据的报表对象绑定到 Windows 窗体查看器，</SPAN>rptVew（</SPAN><FONT face=宋体><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black">CrystalReportViewer</SPAN><SPAN style="FONT-SIZE: 9pt">控件</SPAN></FONT><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">）<SPAN lang=EN-US style="COLOR: green"><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>rptVew.ReportSource = oRpt<o:p></o:p></SPAN></P>
<P><FONT face=宋体><B><SPAN style="FONT-SIZE: 9pt">注意</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;<CODE><SPAN style="mso-bidi-font-size: 9.0pt; mso-ansi-font-size: 9.0pt">FillDataSet</SPAN></CODE> 方法可连接到指定的数据库，提取数据，然后断开数据库连接。如果您希望将数据库中的多个表添加到报表中，请使用 SQL JOIN 语句将这些表联接在一起；然后在 <CODE><SPAN style="mso-bidi-font-size: 9.0pt; mso-ansi-font-size: 9.0pt">FillDataSet</SPAN></CODE> 方法中指定一个结果表<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体>六、创建主从报表<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在报表中，有许多报表是主从表结构，比如订单与订单商品明细，订单是一个表中的一条记录，而分录是另一个表中的多条记录，两个表通过一个字段关联起来，这种报表可利用其分组功能实现，<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>新建一个工程<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>往<SPAN lang=EN-US>FORM1中添加一个<SPAN style="COLOR: black">CrystalReportViewer</SPAN>控件<o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在服务噐资源管理器中连接到<SPAN lang=EN-US>SQL SERVER 2000上的</SPAN></FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">Northwind</SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>数据库<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>添加一个数据集</FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">Dataset1</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>,将服务器资源管理器中的Orders和 Order Details加入到数据集中。<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>5.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>添加一个水晶报表，使用报表专家，在项目数据中选择“<SPAN lang=EN-US>ADO.NET数据集”，插入表Orders和 Order Details，“链接”中是关联字段的链接，在“字段”中选择要显示的主表和明细表的字段，组中选择分组依据为Orders表OrdersID字段，总计，图表，选择（可进行筛选），样式（可设置报表标题），可自行设置。设置完后，点击完成。<o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>6.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在报表设计器中调整需要显示的字段的位置、宽度等。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l4 level1 lfo5"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="mso-list: Ignore"><FONT face=宋体>7.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>在窗口中添加代码。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Private</SPAN> <SPAN style="COLOR: blue">Sub</SPAN> Form1_Load(<SPAN style="COLOR: blue">ByVal</SPAN> sender <SPAN style="COLOR: blue">As</SPAN> System.Object, <SPAN style="COLOR: blue">ByVal</SPAN> e <SPAN style="COLOR: blue">As</SPAN> System.EventArgs) <SPAN style="COLOR: blue">Handles</SPAN> <SPAN style="COLOR: blue">MyBase</SPAN>.Load<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> oRpt <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> CrystalReport1()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> dsdataSet <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> Dataset1()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> CN <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> Data.SqlClient.SqlConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa")<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>CN.Open()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> daOrders <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> Data.SqlClient.SqlDataAdapter("select * from orders", CN)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>daOrders.Fill(dsdataSet, "orders")<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> daDetails <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">New</SPAN> Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>daDetails.Fill(dsdataSet, "Order Details")<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">'使用“报表引擎”对象模型将填充的数据集,传递给报表<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>oRpt.SetDataSource(dsdataSet)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>CrystalReportViewer1.ReportSource = oRpt<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">End</SPAN> <SPAN style="COLOR: blue">Sub<o:p></o:p></SPAN></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>8、运行程序</FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体><o:p></o:p></FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体><A href="http://www.myvc.net/uploadpicture/20032178361441371.jpg" target=_blank><IMG title=点击在新窗口查看原始图片 alt="" hspace=0 src="http://www.myvc.net/uploadpicture/20032178361441371.jpg" onload="java_script_:if(this.width>400)this.width=400" align=baseline border=0></A></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体></FONT></SPAN></B>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体>七、用程序改变报表中</FONT></SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'">text</SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10.5pt; COLOR: black"><FONT face=宋体>的文本<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt; COLOR: black"><FONT face=宋体>代码如下：<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">Dim</SPAN> GetTextObject <SPAN style="COLOR: blue">As</SPAN> TextObject<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">' 按名称获取 ReportObject，将其转换为 TextObject，并返回此对象。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none; mso-pagination: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>GetTextObject.Text = "XXXX系统"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt"><FONT face=宋体>总结：水晶报表具有非常强大的功能，还可进行导出<SPAN lang=EN-US>WORD、EXCEL、RTF等文件，还可生成复杂、漂亮图表，是进行WEB和WINDOWS报表开发的利器。<o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p><FONT face=宋体>&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face=宋体>(此文部分资料来自MSDN)<o:p></o:p></FONT></SPAN></P>]]></description>
</item><item>
<title><![CDATA[弹出窗口大全]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=3663</link>
<author>chenyt</author>
<pubDate>2005/3/14 14:25:09</pubDate>
<description><![CDATA[
<DIV class=postbody>
<P>【1、最基本的弹出窗口代码】&nbsp; </P>
<P>其实代码非常简单：&nbsp; </P>
<P>&lt;SCRIPT LANGUAGE="javascript"&gt;&nbsp; <BR>&lt;!--&nbsp; <BR>window.open ('page.html')&nbsp; <BR>--&gt;&nbsp; <BR>&lt;/SCRIPT&gt;&nbsp; <BR>因为着是一段javascripts代码，所以它们应该放在&lt;SCRIPT LANGUAGE="javascript"&gt;标签和&lt;/script&gt;之间。&lt;!-- 和 --&gt;是对一些版本低的浏览器起作用，在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。&nbsp; <BR>window.open ('page.html') 用于控制弹出新的窗口page.html，如果page.html不与主窗口在同一路径下，前面应写明路径，绝对路径(<A href="http://%20target=_blank)/">http://)/</A>和相对路径(../)均可。用单引号和双引号都可以，只是不要混用。&nbsp; <BR>这一段代码可以加入HTML的任意位置，&lt;head&gt;和&lt;/head&gt;之间可以，&lt;body&gt;间&lt;/body&gt;也可以，越前越早执行，尤其是页面代码长，又想使页面早点弹出就尽量往前放。&nbsp; </P>
<P><BR>【2、经过设置后的弹出窗口】&nbsp; </P>
<P>下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。&nbsp; <BR>我们来定制这个弹出的窗口的外观，尺寸大小，弹出的位置以适应该页面的具体情况。&nbsp; <BR>&lt;SCRIPT LANGUAGE="javascript"&gt;&nbsp; <BR>&lt;!--&nbsp; <BR>window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no')&nbsp; <BR>file://写/成一行&nbsp; <BR>--&gt;&nbsp; <BR>&lt;/SCRIPT&gt;&nbsp; <BR>参数解释：&nbsp; <BR>&lt;SCRIPT LANGUAGE="javascript"&gt; js脚本开始；&nbsp; <BR>window.open 弹出新窗口的命令；&nbsp; <BR>'page.html' 弹出窗口的文件名；&nbsp; <BR>'newwindow' 弹出窗口的名字（不是文件名），非必须，可用空''代替；&nbsp; <BR>height=100 窗口高度；&nbsp; <BR>width=400 窗口宽度；&nbsp; <BR>top=0 窗口距离屏幕上方的象素值；&nbsp; <BR>left=0 窗口距离屏幕左侧的象素值；&nbsp; <BR>toolbar=no 是否显示工具栏，yes为显示；&nbsp; <BR>menubar，scrollbars 表示菜单栏和滚动栏。&nbsp; <BR>resizable=no 是否允许改变窗口大小，yes为允许；&nbsp; <BR>location=no 是否显示地址栏，yes为允许；&nbsp; <BR>status=no 是否显示状态栏内的信息（通常是文件已经打开），yes为允许；&nbsp; <BR>&lt;/SCRIPT&gt; js脚本结束&nbsp; </P>
<P><BR>【3、用函数控制弹出窗口】&nbsp; </P>
<P>下面是一个完整的代码。&nbsp; <BR>&lt;html&gt;&nbsp; <BR>&lt;head&gt;&nbsp; <BR>&lt;script LANGUAGE="JavaScript"&gt;&nbsp; <BR>&lt;!--&nbsp; <BR>function openwin() { window.open ("page.html", "newwindow", "height=100, width=400, toolbar=&nbsp; <BR>no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")&nbsp; <BR>file://写/成一行&nbsp; <BR>}&nbsp; <BR><A href="file://--/" target=_blank>file://--/</A>&gt;&nbsp; <BR>&lt;/script&gt;&nbsp; <BR>&lt;/head&gt;&nbsp; <BR>&lt;body onload="openwin()"&gt;&nbsp; <BR>...任意的页面内容...&nbsp; <BR>&lt;/body&gt;&nbsp; <BR>&lt;/html&gt;&nbsp; <BR>这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。&nbsp; <BR>怎么调用呢？&nbsp; <BR>方法一：&lt;body onload="openwin()"&gt; 浏览器读页面时弹出窗口；&nbsp; <BR>方法二：&lt;body onunload="openwin()"&gt; 浏览器离开页面时弹出窗口；&nbsp; <BR>方法三：用一个连接调用：&nbsp; <BR>&lt;a href="#" onclick="openwin( target=_blank target=_blank)"&gt;打开一个窗口&lt;/a&gt;&nbsp; <BR>注意：使用的“#”是虚连接。&nbsp; <BR>方法四：用一个按钮调用：&nbsp; <BR>&lt;input type="button" onclick="openwin()" value="打开窗口"&gt;&nbsp; </P>
<P>【4、同时弹出2个窗口】&nbsp; </P>
<P>对源代码稍微改动一下：&nbsp; <BR>&lt;script LANGUAGE="JavaScript"&gt;&nbsp; <BR>&lt;!--&nbsp; <BR>function openwin()&nbsp; <BR>{ window.open ("page.html", "newwindow", "height=100, width=100, top=0,left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")&nbsp; <BR>file://写/成一行&nbsp; <BR>window.open ("page2.html", "newwindow2", "height=100, width=100, top=100, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")&nbsp; <BR>file://写/成一行&nbsp; <BR>}&nbsp; <BR><A href="file://--/" target=_blank>file://--/</A>&gt;&nbsp; <BR>&lt;/script&gt;&nbsp; <BR>为避免弹出的2个窗口覆盖，用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。&nbsp; </P>
<P>注意：2个窗口的name(newwindows和newwindow2)不要相同，或者干脆全部为空。OK？&nbsp; </P>
<P>【5、主窗口打开文件1.htm，同时弹出小窗口page.html】&nbsp; </P>
<P>如下代码加入主窗口&lt;head&gt;区：&nbsp; <BR>&lt;script language="javascript"&gt;&nbsp; <BR>&lt;!--&nbsp; <BR>function openwin()&nbsp; <BR>{window.open("page.html","","width=200,height=200")&nbsp; <BR>}&nbsp; <BR><A href="file://--/" target=_blank>file://--/</A>&gt;&nbsp; <BR>&lt;/script&gt;&nbsp; <BR>加入&lt;body&gt;区：&nbsp; <BR>&lt;a href="1.htm" onclick="openwin( target=_blank target=_blank)"&gt;open&lt;/a&gt;即可。&nbsp; </P>
<P>【6、弹出的窗口之定时关闭控制】&nbsp; </P>
<P>下面我们再对弹出的窗口进行一些控制，效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中，可不是主页面中，否则...)，让它10秒后自动关闭是不是更酷了？&nbsp; </P>
<P>首先，将如下代码加入page.html文件的&lt;head&gt;区：&nbsp; <BR>&lt;script language="JavaScript"&gt;&nbsp; <BR>function closeit()&nbsp; <BR>{setTimeout("self.close()",10000) file://毫/秒}&nbsp; <BR>&lt;/script&gt;&nbsp; <BR>然后，再用&lt;body onload="closeit()"&gt; 这一句话代替page.html中原有的&lt;BODY&gt;这一句就可以了。(这一句话千万不要忘记写啊！这一句的作用是调用关闭窗口的代码，10秒钟后就自行关闭该窗口。)&nbsp; </P>
<P>【7、在弹出窗口中加上一个关闭按钮】&nbsp; </P>
<P>&lt;FORM&gt;&nbsp; <BR>&lt;INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'&gt;&nbsp; <BR>&lt;/FORM&gt;&nbsp; <BR>呵呵，现在更加完美了！&nbsp; </P>
<P>【8、内包含的弹出窗口-一个页面两个窗口】&nbsp; </P>
<P>上面的例子都包含两个窗口，一个是主窗口，另一个是弹出的小窗口。&nbsp; </P>
<P>通过下面的例子，你可以在一个页面内完成上面的效果。&nbsp; <BR>&lt;html&gt;&nbsp; <BR>&lt;head&gt;&nbsp; <BR>&lt;SCRIPT LANGUAGE="JavaScript"&gt;&nbsp; <BR>function openwin()&nbsp; <BR>{OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no");&nbsp; <BR>file://写/成一行&nbsp; <BR>OpenWindow.document.write("&lt;TITLE&gt;例子&lt;/TITLE&gt;")&nbsp; <BR>OpenWindow.document.write("&lt;BODY BGCOLOR=#ffffff&gt;")&nbsp; <BR>OpenWindow.document.write("&lt;h1&gt;Hello!&lt;/h1&gt;")&nbsp; <BR>OpenWindow.document.write("New window opened!")&nbsp; <BR>OpenWindow.document.write("&lt;/BODY&gt;")&nbsp; <BR>OpenWindow.document.write("&lt;/HTML&gt;")&nbsp; <BR>OpenWindow.document.close()}&nbsp; <BR>&lt;/SCRIPT&gt;&nbsp; <BR>&lt;/head&gt;&nbsp; <BR>&lt;body&gt;&nbsp; <BR>&lt;a href="#" onclick="openwin( target=_blank target=_blank)"&gt;打开一个窗口&lt;/a&gt;&nbsp; <BR>&lt;input type="button" onclick="openwin()" value="打开窗口"&gt;&nbsp; <BR>&lt;/body&gt;&nbsp; <BR>&lt;/html&gt;&nbsp; <BR>看看 OpenWindow.document.write()里面的代码不就是标准的HTML吗？只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用OpenWindow.document.close()结束啊。&nbsp; </P>
<P>【9、终极应用--弹出的窗口之Cookie控制】&nbsp; </P>
<P>回想一下，上面的弹出窗口虽然酷，但是有一点小毛病(沉浸在喜悦之中，一定没有发现吧？)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页)，那么每次刷新这个页面，窗口都会弹出一次，是不是非常烦人？:-(有解决的办法吗？Yes! ;-) Follow me.&nbsp; </P>
<P>我们使用cookie来控制一下就可以了。&nbsp; </P>
<P>首先，将如下代码加入主页面HTML的&lt;HEAD&gt;区：&nbsp; <BR>&lt;script&gt;&nbsp; <BR>function openwin()&nbsp; <BR>{window.open("page.html","","width=200,height=200")}&nbsp; <BR>function get_cookie(Name)&nbsp; <BR>{var search = Name + "="&nbsp; <BR>var returnvalue = "";&nbsp; <BR>if (document.cookie.length &gt; 0) {&nbsp; <BR>offset = document.cookie.indexOf(search)&nbsp; <BR>if (offset != -1) {&nbsp; <BR>offset += search.length&nbsp; <BR>end = document.cookie.indexOf(";", offset);&nbsp; <BR>if (end == -1)&nbsp; <BR>end = document.cookie.length;&nbsp; <BR>returnvalue=unescape(document.cookie.substring(offset,end))&nbsp; <BR>}&nbsp; <BR>}&nbsp; <BR>return returnvalue;&nbsp; <BR>}&nbsp; <BR>function loadpopup(){&nbsp; <BR>if (get_cookie('popped')==''){&nbsp; <BR>openwin()&nbsp; <BR>document.cookie="popped=yes"&nbsp; <BR>}&nbsp; <BR>}&nbsp; <BR>&lt;/script&gt;&nbsp; <BR>然后，用&lt;body onload="loadpopup()"&gt;（注意不是openwin而是loadpop啊！）替换主页面中原有的&lt;BODY&gt;这一句即可。你可以试着刷新一下这个页面或重新进入该页面，窗口再也不会弹出了。真正的Pop-Only-Once！</P></DIV>]]></description>
</item><item>
<title><![CDATA[利用XML实现通用WEB报表打印]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=2076</link>
<author>chenyt</author>
<pubDate>2005/1/19 11:42:20</pubDate>
<description><![CDATA[
<div class="text2">利用XML实现通用WEB报表打印<br>卢彦<hr color="#cccccc" size="1"></div>
<div><div class="text4">方案适用性</div>.
			<div class="text4">1.	远程数据打印。需要打印的数据并不在本地，必须进行远程读取。</div><div class="text4">2.	需要精确控制打印效果，包括页面格式，分页，附加条目，表格等。</div><div class="text4">3.	出于安全性考虑，不能直接连接到数据库。</div><div class="text4">方案原理</div><div class="text4">	其实原理很简单，通过XML强大的自定义功能，我们便能方便的自定义出我们所有需要的格式控制标签，在服务器端进行动态编码后通过WEB服务器传到客户端，然后在客户端进行格式解析，根据服务器端定义的打印格式从客户端直接控制打印机打印出我们需要的报表。</div><div class="text4">技术选择</div><div class="text4">由
于报表打印比较复杂，为了能够精确控制打印格式，不能采用WEB浏览器页面打印的方式进行报表打印工作，只能采取自编程控制客户端的打印工作。由于.
NET framework的winform可以直接嵌入到网页中，我们在这里选用了该技术，但是请注意，我这么做并不代表.NET
winform是唯一的选择，其实您可以采用任何客户端代替它，例如Java Applet或者ActiveX，甚至是一个普通的应用程序都能行。</div><div class="text4">不
允许直接连接到数据库，因此只能采用XML文件进行中间数据交换格式，通过普通WEB服务器的默认80端口进行数据传输。事实上，我简直找不到其它更理想
的方案了，当然，web service也许能算是一种，但是它采用的是SOAP传输数据，从原理上看，应该和我们采用的XML属于同种类技术。</div><div class="text4">再补充说明一下我为什么要采用.NET编写的受控组件，优点在于：</div><div class="text4">1.	它不需要进行客户端注册。相对于ActiveX的一个大优点。</div><div class="text4">2.	比ActiveX安全性高。在.NET Common Language Runtime的控制之下运行</div><div class="text4">3.	编写方便。我喜欢C#和Visual Studio .NET。</div><div class="text4">4.	有很强大的打印控制功能。利用.NET framework类库。</div><div class="text4">5.	直接支持XML技术。</div><div class="text4">6.	和IE兼容性高。同为Microsoft公司产品。</div><div class="text4">另外，需要注意一点就是，在.NET framework sp1和sp2中默认的安全级别是不能直接运行受控组件的，但是在.NET framework 1.1 beta中又改了回来，可以直接运行了。</div><div class="text4">服务器端您则可以采用现有的服务器系统和数据库，不需要新添加任何新硬件设备和新的.NET服务器管理人员，他们往往是些要求拿高薪的家伙。 ：）</div><div class="text4">服务器的工作流程为：</div><div class="text4">1.	接受客户端的标准XML模版查询。</div><div class="text4">2.	需要根据查询要求将数据库数据格式转换成标准的XML数据格式。</div><div class="text4">3.	将XML数据通过80端口发送出去。</div><div class="text4">可行性分析</div><div class="text4">
由于现在的大部分数据库都支持XML格式的数据查询和转换，如SQL Server 2000，Oracle 9i，IBM
DB2等大型关系型数据库。只需要通过简单的设置就能直接进行XML数据转换工作。如果数据库不能支持直接XML数据转换，也可以籍由一些服务器端脚本程
序进行脚本转换工作，比如JSP，ASP，PHP等等。</div><div class="text4">	客户端也不需要任何特殊的设置工作，仅需要安装一个大小为21M的.NET framework分发包，然后直接打开网页就可以进行工作。也没有操作系统限制，从windows 98到windows xp都能很好的支持。</div><div class="text4">伸缩性和安全性<div class="text4"><b>伸缩性</b></div><div class="text4">
由于采用的是XML标准数据格式作为中间数据交换，因此本解决方案具有非常好伸缩性，例如，客户端的.NET控件可以采用JAVA
APPLET、ACTIVX或者是VB，VC等编写的客户端应用程序直接替换。服务器也可以任意选择采用IIS或APACHE等WEB服务器。数据库也可
以采用任意一种数据库。包括SQL
Server，Oracle或者是Access等。这点上文已经谈到过，因为文章的长一点并不会使送给我的T恤大一号，这里再强调一遍只是为了加深读者对
XML的跨平台性的认识。 ：）</div><div class="text4"><b>安全性</b></div><div class="text4">	由于采用的是普通WEB服务器传送数据，因此可以直接采用SSL安全套接字等已经成熟的WEB加密技术。同时还可以对XML进行数据算法加密，在客户端再进行解密，保证了传输的安全性。</div><div class="text4">	由于采用的是80端口，不需要再另外新增加专用端口，减少了安全漏洞的可能性，同时还能方便的穿过双方的的网络防火墙等保护设备。</div></div><div class="text4">方案设计图</div><div><img src="http://www.microsoft.com/china/community/Column/image%5C65-1.gif" align="top"><span class="text6"></span></div><div class="text4">格式定义</div><div class="text4">为了能自己控制打印的格式，我们定义了下列的格式标签，其中在命名上参考了HTML的命名办法，所以基本上熟悉HTML的都能一看就能明白标签的具体含义。如果您觉得这些标签的表达能力还不够强，您还可以自己定义一些更多更精确的格式标签。</div><div class="text4"><b>主要标签说明：</b></div><div class="text4">text：文本字符串</div><div class="text4">属性：</div><div class="text4">x：打印输出的X坐标</div><div class="text4">y：打印输出的Y坐标</div><div class="text4">fontname：字体</div><div class="text4">fontsize：字体大小</div><div class="text4">fontcolor：颜色</div><div class="text4">b：是否为粗体</div><div class="text4">i：是否为斜体</div><div class="text4">u：是否有下划线</div><div class="text4">table：表</div><div class="text4">属性：</div><div class="text4">x：打印输出的x坐标</div><div class="text4">y：打印输出的y坐标</div><div class="text4">border：边框粗细</div><div class="text4">bordercolor：边框颜色</div><div class="text4">maxlines：每页最大行数</div><div class="text4">tr：行</div><div class="text4">	属性：</div><div class="text4">	height：高度</div><div class="text4">td：列</div><div class="text4">	属性：</div><div class="text4">	width：宽度</div><div class="text4">	align：对齐方式</div><div class="text4">	fontname：字体</div><div class="text4">	fontsize：字体大小</div><div class="text4">	fontcolor：字体颜色</div><div class="text4">	b：是否粗体</div><div class="text4">	i：是否斜体</div><div class="text4">	u：是否下划线</div><div class="text4">	bgcolor:背景颜色</div><div class="text4">next：下一页</div><div class="text4">tablehead：表头</div><div class="text4">tablebody：表项</div><div class="text4">tablefoot：表底</div><div class="text4">page：页设置</div><div class="text4">PrintWard：横/纵向打印</div><div class="text4">PageType：纸张类型</div><div class="text4">PageLeft：左边距</div><div class="text4">PageRight：右边距</div><div class="text4">PageTop：上边距</div><div class="text4">PageBottom：下边距</div><div class="text4"><b>标签应用示例：</b></div><div style="background-color: rgb(238, 238, 238);"><pre class="text5">&lt;root&gt;<br>&lt;pagesetting&gt;<br>&lt;Landscape&gt;true&lt;/Landscape&gt;<br>&lt;paperkind&gt;A4&lt;/paperkind&gt;<br>&lt;paperwidth&gt;210&lt;/paperwidth&gt;<br>&lt;paperheight&gt;297&lt;/paperheight&gt;<br>&lt;pageleft&gt;0&lt;/pageleft&gt;<br>&lt;pageright&gt;0&lt;/pageright&gt;<br>&lt;pagetop&gt;0&lt;/pagetop&gt;<br>&lt;pagebottom&gt;0&lt;/pagebottom&gt;<br>&lt;/pagesetting&gt;<br>&lt;reporttable&gt;<br>&lt;text x="450" y="40" fontname="黑体" fontsize="24" fontcolor="Black" <br>	b="true" i="false" u="true"&gt;最新成交合同信息&lt;/text&gt;<br>&lt;text x="70" y="100" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="true"&gt;制表时间：2002年0月10日&lt;/text&gt;<br>&lt;text x="910" y="100" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="true"&gt;单位：元&lt;/text&gt;<br>&lt;table x="65" y="130" border ="1" bordercolor="Black" maxlines="28"&gt;<br>&lt;tablehead&gt;<br>&lt;tr height="25"&gt;<br>&lt;td width="90" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;合同号&lt;/td&gt;<br>&lt;td width="90" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;产品名称&lt;/td&gt;<br>&lt;td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;成交量&lt;/td&gt;<br>&lt;td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;成交价&lt;/td&gt;<br>&lt;td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;成交金额&lt;/td&gt;<br>&lt;td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;挂单量&lt;/td&gt;	<br>&lt;td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;起始价&lt;/td&gt;<br>&lt;td width="330" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;卖方&lt;/td&gt;<br>&lt;td width="330" align="center" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;买方&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;/tablehead&gt;<br>&lt;tablebody&gt;<br><br>&lt;tr height="25"&gt;<br>&lt;td width="100" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;20021010015&lt;/td&gt;<br>&lt;td width="100" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;CNR&lt;/td&gt;<br>&lt;td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;93&lt;/td&gt;<br>&lt;td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;6680&lt;/td&gt;<br>&lt;td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;621240&lt;/td&gt;<br>&lt;td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;93&lt;/td&gt;<br>&lt;td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;6680&lt;/td&gt;<br>&lt;td width="200" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;湖北省国营新星拖拉机厂&lt;/td&gt;<br>&lt;td width="200" align="left" fontname="宋体" fontsize="12" fontcolor="Black" <br>	b="true" i="false" u="false" bgcolor="White"&gt;中化国际贸易股份有限公司&lt;/td&gt;<br>&lt;/tr&gt;<br>……….<br>&lt;/tablebody&gt;<br>&lt;tablefoot&gt;<br>&lt;/tablefoot&gt;<br>&lt;/table&gt;<br>&lt;/reporttable&gt;<br>&lt;/root&gt;<br></pre></div><div class="text4"><b>注意事项：</b></div><div class="text4">a)	如果采用服务器脚本动态生成XML文档时，发送内容类型应该设置为text/xml（普通html页面为text/html），字符编码应该为UTF-8，否则会出现编码错误问题。</div><div class="text4">b)	应该严格按照XML规定的格式来生成文件，否则XML解析器将不会予以解析。</div><div class="text4">2.	客户端</div><div class="text4">可
以采用任意应用程序来读取服务器端生成的XML文件，如果采用VB、DELPHI等桌面应用软件开发工具，则可以使用MSXML的COM解析器。推荐采
用.NET，内部已经集成了XML解析器，直接就可以通过使用.NET类库调用。既可以做成桌面应用程序形式，通过远程调用；也可以嵌入到IE浏览器中，
直接在网页中运行。</div><div><img src="http://www.microsoft.com/china/community/Column/image%5C65-2.gif" align="top"><span class="text6"></span></div><div class="text4">效果示例图</div><div><img src="http://www.microsoft.com/china/community/Column/image%5C65-3.gif" align="top"><span class="text6"></span></div><div class="text4">打印预览</div><div class="text4"><b>注意事项：</b></div><div class="text4">1.	如果采用.NET，客户端必须先安装.NET framework1.0运行环境，下载地址为：<a class="list2" href="http://download.microsoft.com/download/.NETframesdk/Redist/1.0/W98NT42KMeXP/EN-US/dotnetredist.exe" target="">http://download.microsoft.com/download/.NETframesdk/Redist/1.0/W98NT42KMeXP/EN-US/dotnetredist.exe</a></div><div class="text4">2.	如果采用嵌入到网页中的形式，那么本程序需要编译成一个控件形式（一个扩展名为dll的文件），然后在网页中插入以下标记：</div><div class="text4">&lt;object id="print" classid="http:print.dll#Print.UserControl1" Width="728" Height="460"&gt;&lt;/object&gt;</div><div class="text4">将控件嵌入到一个静态或动态网页中。然后将该控件文件拷贝到和该网页相同的目录中（标记中Print.dll为生成的控件文件名，Print.UserControl1为该控件的命名空间NAMESPACE）。</div><div class="text4">总结</div><div class="text4">好
了，文章到这里基本上就算完了。也许有人会觉得奇怪，你还没有讲清楚如何写具体的打印代码呢。其实，本文只是提出了一个关于WEB报表打印的解决方案，正
如上文所说，如何去实现客户端的打印其实有很多种选择，再深入下去的话就超过了本文讨论的范围了。我希望本文能起到一个抛砖引玉的作用，能为大家提供一个
问题的解决办法。当然，如果希望获得本文源码的朋友请与我联系：<a class="list2" href="mailto:nluyan@163.net" target="">nluyan@163.net</a>，谢谢。</div></div>
]]></description>
</item><item>
<title><![CDATA[ASP.NET中模板列绑定两个参数]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chenyt&amp;id=1792</link>
<author>chenyt</author>
<pubDate>2005/1/12 7:55:17</pubDate>
<description><![CDATA[<P>&lt;asp:datagrid id="Datagrid3" runat="server" AutoGenerateColumns="False" BorderColor="black"&nbsp; HeaderStyle-CssClass="tableHeader" ItemStyle-CssClass= "tableItem"&gt;<BR>&nbsp; &lt;Columns&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:TemplateColumn HeaderText="操作"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ItemTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Hyperlink runat="server" Text='&lt;%#DataBinder.Eval(Container.DataItem,"EmployeeName")%'&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NavigateUrl='&lt;%# "SafetyView.aspx?InsuranceId=" + DataBinder.Eval (Container.DataItem,"InsuranceId") +&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&amp;EmployeeNO="+ DataBinder.Eval(Container.DataItem,"EmployeeNO")%&gt;' ID="EmployeeName"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ItemTemplate&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:TemplateColumn&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P>&lt;/Columns&gt;<BR>&lt;/asp:datagrid&gt; </P>
<P><BR>&nbsp;</P>]]></description>
</item>
</channel>
</rss>