1."document.all."+TextBox1.ClientID+".Text"
2.如何部署包含水晶报表的程序(VS.NET 2002)
------------------------------------------------
1、原理:
发布使用水晶报表的项目需要包含三种组件:报表(*.rpt)、模块(*.msm)、运行库(*.msm),这些模块文件是在 C:\Program Files\Common Files\Merge Modules\ 目录里面。
(1)报表(*.rpt)
用户编程时创建的水晶报表文件。
(2)模块(*.msm)
Managed.msm
该模块包含了CR for VS .NET 的管理模块,如 CrystalDecisions、CrystalReports.Engine.DLL、CrystalDecisions.Web.DLL, 和 CrystalDecisions.Windows.Forms.DLL……
Managed_chs.msm
是该模块的中文版语言支持。
Database_Access.msm
该模块包含了数据库的驱动、与不同数据库的联结、报表导出为 RTF 和 HTML 格式的文档和图表组件。 
Database_Access_chs.msm
是此模块的中文版语言支持。
Regwiz.msm
注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号,如果不填,编译的时候就无法通过。
KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,这样您的用户在查看报表时,就不会被要求注册他们的 Crystal版本。
(3)运行库(*.msm)
如果报表文件使用了 ADO.NET 的 dataset 数据集对象,那么 VC_CRT.msm 和 VC_STL.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录
在VS.NET安装工程中,系统检测出来的依赖项只有 dotNETFXRedist_x86_chs.msm 和 Managed.msm这两个模块,其他的模块我们需要手动加入。
-------------------------
2、具体操作步骤:
(1)新建“安装和部署项目”-->“安装向导”
(2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
(3)选择要包含的文件:添加你的程序文件和 C:\Program Files\Common Files\Merge Modules 下的 managed.msm、managed_chs.msm、database_access.msm、database_access_chs.msm、regwiz.msm、VC_CRT.msm、VC_STL.msm。-->完成
(4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
(5)生成解决方案(或直接按Ctrl+Shift+B)图示介绍:http://www.yesky.com/20030327/1659638.shtml

解决方案 »

  1.   

    TO:bitsbird(一瓢.net)非常感谢先,如果搞定,100送上,我先试试!
      

  2.   

    TO:bitsbird(一瓢.net),不行啊,没法进行运算。但改成javascript以后,确实菜单控件可以使用了,我在想到底为什么呢?难道vbscript和javascript不能兼容,不可能吧,关于脚步随给我完整的翻译为javascript的好吧,
      

  3.   

    function Caculate()
    {
    var a=document.all.text1.value;
    var b=document.all.text2.value;
    document.all.text3.value=a*b/100;
    }
    </script>
    </HEAD>

    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <INPUT style="Z-INDEX: 101; LEFT: 77px; POSITION: absolute; TOP: 99px" type="text" name=text1>
    <INPUT style="Z-INDEX: 102; LEFT: 127px; POSITION: absolute; TOP: 170px" type="text" name=text2>
    <INPUT style="Z-INDEX: 103; LEFT: 257px; POSITION: absolute; TOP: 96px" type="text" name=text3>
    <INPUT style="Z-INDEX: 104; LEFT: 158px; POSITION: absolute; TOP: 238px" type="button"
     onclick=" Caculate();" value="Button">
    </form>
    </body>
    </HTML>
      

  4.   

    <script language=javascript>function Caculate()
    {
    var a=document.all.text1.value;
    var b=document.all.text2.value;
    document.all.text3.value=a*b/100;
    }
    </script>
    </HEAD>

    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <INPUT style="Z-INDEX: 101; LEFT: 77px; POSITION: absolute; TOP: 99px" type="text" name=text1>
    <INPUT style="Z-INDEX: 102; LEFT: 127px; POSITION: absolute; TOP: 170px" type="text" name=text2>
    <INPUT style="Z-INDEX: 103; LEFT: 257px; POSITION: absolute; TOP: 96px" type="text" name=text3>
    <INPUT style="Z-INDEX: 104; LEFT: 158px; POSITION: absolute; TOP: 238px" type="button"
     onclick=" Caculate();" value="Button">
    </form>
    </body>
    </HTML>
      

  5.   

    这是用button去触发的,我用的是在文本框上当键盘弹起时候就触发计算。即对文本框的onkeyup事件。不过你提的方法,申明变量来做,挺好的,其实只要能定位到服务器短控件textbox在客户端的值我想就可以了。试试先。
      

  6.   

    关键:我用的是服务器端控件TextBox,如何才能在客户端得到它的值?
      

  7.   

    <script language="javascript" event="onkeyup" for="TextBox1">
    var selldiscount=document.all.item("TextBox1").Value;
    alert(selldiscount);
    </script>
    这样会跳出对话框说selldiscount没有定义。到底
    var selldiscount=document.all.item("TextBox1").Value;
    这句如何写?怎么样得到它的值?
      

  8.   

    把textbox1的id改成boxvar selldiscount=document.all.box.value;