最终效果:

要合并内容行,我想是不可能的,我上网找了N久,也没找到,囧~
后来经过自己的短暂思考,终于想到另一种合并了,:-)
实现方法很简单,就是在报表属性的代码里加上以下这段代码:
Function GetRemark(rowNum As Integer, remark As String) As String
Dim cutLength As Integer = 10
Return Mid(remark, cutLength * (rowNum - 1) + 1, cutLength)
End Function
(说明:这个函数有两个参数,一个int,一个string,返回值是string,函数里面有个int变量cutLength,它是用来控制每行显示
多少个字符的)
然后在要合并的地方加上:code.GetRemark(RowNumber(Nothing), Fields!Remark.Value)
再把那个单元格的边框设为NONE,大功告成!
这里啰嗦一下思路:
其实我是将要合并显示的字段拆成几段来显示的,我自己写了个函数,参数是当前行数和字段值,返回被截取的字符串,
所以我这个合并最合适的表格是固定行,我这里是用在打印送货单上的,
我的送货单是不管数据有多少条(我这里每次都不会超过11行),
每次我都是显示13行,显示固定行的方法我是上网找的,这里就不啰嗦了,(*^__^*)
报表我研究的不深,此文只是分享下方法,如有什么地方说得不好,欢迎指出~:-)
VS2008里web应用程序在新建页面时,不像网站那样可以选择是否附加母板,如图:

那怎样附加呢?带着这个问题上网找了找,发现挺多人遇到的,但就是没人给出解决方法(可能我找的范围不对吧!)
自己想了想,竟然微软给出了这东西,就一定能派上用场的,终于给我找到了,(*^__^*)
原来是在母板的右键下拉菜单里——添加内容页!

| 括号 | (x) [x] | 中括号只用于指明数组的下标 |
| 求反、自加、自减 | -x | 返回 x 的相反数 |
| !x | 返回与 x (布尔值)相反的布尔值 | |
| x++ | x 值加 1,但仍返回原来的 x 值 | |
| x-- | x 值减 1,但仍返回原来的 x 值 | |
| ++x | x 值加 1,返回后来的 x 值 | |
| --x | x 值减 1,返回后来的 x 值 | |
| 乘、除 | x*y | 返回 x 乘以 y 的值 |
| x/y | 返回 x 除以 y 的值 | |
| x%y | 返回 x 与 y 的模(x 除以y 的余数) | |
| 加、减 | x+y | 返回 x 加 y 的值 |
| x-y | 返回 x 减 y 的值 | |
| 关系运算 | x<y x<=y x>=y x>y |
当符合条件时返回 true 值,否则返回 false 值 |
| 等于、 不等于 |
x==y | 当 x 等于 y 时返回 true 值,否则返回 false 值 |
| x!=y | 当 x 不等于 y 时返回 true 值,否则返回 false 值 | |
| 位与 | x&y | 当两个数位同时为 1 时,返回的数据的当前数位为 1,其他情况都为 0 |
| 位异或 | x^y | 两个数位中有且只有一个为 0 时,返回 0,否则返回 1 |
| 位或 | x|y | 两个数位中只要有一个为 1,则返回 1;当两个数位都为零时才返回零 |
| 位运算符通常会被当作逻辑运算符来使用。它的实际运算情况是:把两个操作数(即 x 和 y)化成二进制数,对每个数位执行以上所列工作,然后返回得到的新二进制数。由于“真”值在电脑内部(通常)是全部数位都是 1 的二进制数,而“假”值则是全部是 0 的二进制数,所以位运算符也可以充当逻辑运算符。 | ||
| 逻辑与 | x&&y | 当 x 和 y 同时为 true 时返回 true,否则返回 false |
| 逻辑或 | x||y | 当 x 和 y 任意一个为 true 时返回 true,当两者同时为 false 时返回 false |
| 逻辑与/或有时候被称为“快速与/或”。这是因为当第一操作数(x)已经可以决定结果,它们将不去理会 y 的值。例如,false && y,因为x == false,不管 y 的值是什么,结果始终是 false,于是本表达式立即返回 false,而不论 y 是多少,甚至 y 可以导致出错,程序也可以照样运行下去。 | ||
| 条件 | c?x:y | 当条件 c 为 true 时返回 x 的值(执行 x 语句),否则返回 y 的值(执行 y 语句) |
| 赋值、 复合运算 |
x=y | 把 y 的值赋给 x,返回所赋的值 |
| x+=y x-=y x*=y x/=y x%=y |
x 与 y 相加/减/乘/除/求余,所得结果赋给 x,并返回 x 赋值后 | |
来自:http://www.ijavascript.cn/jiaocheng/primary-tutorial-of-study-javascript-21.html
最近研究了下怎样修改系统的partyliat的可用类型,先记下方便以后拷贝,嘿嘿~
这里以修改电子邮件的发送人来做例子!

这个是源系统的可用类型:用户和队列!现在我想改成是:用户和客户!
我们先看看这个窗口的地址:

经过简略的研究:发现主要的参数就是class和objecttypes!
objecttypes好理解,看到8,2020就能想到8是用户的entity code,而2020就是队列的entity code!
那class是干嘛用的?
我去找了其他的partylist地址,发现class有三个值:
第一个:ActivitySenderAsAnotherUser 可用类型是用户和队列
第二个:ActivityRecipient 可用类型是
第三个:ActivityRegarding 可用类型有以下的:[这个错了,这个不是partylist的,而是lookup的,之前没看清楚,不好意思了各位~]

经过对比,多少也明白class是对应不同可用类型的
这里我做了个小测试:
当class是ActivitySenderAsAnotherUser时,我添加一个客户类型进去,然后去界面选择客户类型时就报“未将对象引用设置到对象的实例。”的错了!
所以我才知道可用类型不同,class也要对应的!
嗯,到这里,基本都明白了,下面就开始修改可用类型了!
crmForm.all.from.setAttribute("lookuptypes", "1,8");//设置可用类型entity code
crmForm.all.from.setAttribute("defaulttype", "8");//设置默认的可用类型
crmForm.all.from.setAttribute("lookuptypenames", "account:1,systemuser:8");//设置可用类型对应的名称
crmForm.all.from.setAttribute("lookuptypeIcons", "/_imgs/ico_16_1.gif:/_imgs/ico_16_8.gif");//设置可用类型显示的图标,这里用冒号(:)隔开
crmForm.all.from.setAttribute("lookupclass", "ActivityRecipient");//设置对应的class,因为只有这个里面含有客户和用户,所以才选择它!
在电子邮件的onload事件里加上这段代码,就可以修改partylist了,代码很少,不过也花了我两个小时==
主要是图片路径里多了个空格,找了很久才发现,囧~
最终的效果:
我是刚出来混.NET工程师的,以后还请各位前辈多多指教啊!
最近闲来无事,就自己做了个24点的小游戏!
源代码我就不献丑了,看看前辈们做的,简直无法比啊......
看似个小程序,其实也蕴含了不少知识的!当时就是觉得它简单,才选择来练练手的,可谁知却花了近两天时间--
废话就说到这吧!下面总结下我的收获:
1.goto的使用
goto其实我一直不知到它的存在的,只是在参考别人的代码时发现的!
在网上找了下资料,原来goto跟break、continue一样是跳出循环的,不过goto不是单纯的跳出循环,而是跳到指定的位置,比如:
goto语法
1 int number = 0;
2 for (int index = 0; index < 5; index++)
3 {
4 if (index == 3)
5 {
6 goto TODO;
7 }
8 }
9 TODO:
10 number = 3;
(当然,以上这段代码无任何意义,只是说明一下goto怎么用而已!说明一下:当index为3时,就会跳到第十行执行!) 2.认识TryParse() TryParse()我以前也是没见过的,当时是想将string[]转成int[],上网查了下快捷方法,于是就遇见TryParse()了!
TryParse()听网友说貌似性能更好(求证中...),int.TryParse()跟int.Parse()接近,不过TryParse()转换失败就返回false,而Parse()则抛异常! 下面看看TryParse()的使用:
TryParse()语法
2 //将string[]转成int[]
3 int[] intTemp = new int[nums.Length];
4 for (int i = 0; i < nums.Length; i++)
5 {
6 int.TryParse(nums[i], out intTemp[i]);
7 }
(以上代码就能轻松将字符串数组转成int数组了,挺方便的:-))
3.接触ScriptControl
ScriptControl可以用来干嘛?其实我也不太清楚,我现在也只是知道它可以实现将字符串的运算符转成真正的运算符!
要用ScriptControl,得先在项目中添加引用 COM 的 MSScriptControl !再在用使用ScriptControl的文件里添加 using MSScriptControl; !
下面我们就来看看怎样使用ScriptControl:
ScriptControl语法
1 string result = string.Empty;
2 ScriptControl sc = new ScriptControl();//用来将字符串转成运算符
3 sc.Language = "JavaScript";
4 result = sc.Eval(3 + "+" + 5 + "+" + 7 + "+" + 3).ToString();
(这样result的值就是18了,不过我也只是接触到些皮毛,还要继续加油!!)
以上就是我这次程序的小收获了,如有什么不对的,大家可以指出来,在交流中进步嘛,对不?