摘要: 文字是11年写的,贴出来共享一下,先来一张表结构图: 一、区域。表名:【territories】 1、我们先来看看区域表的结构。 从图中前面都是不能为空的字段,都是很重要的。来介绍一下这些字段: Terr_territoryid: 这个字段就是区域码 Terr_DBID:由于上面这个字段用来保存区域 阅读全文
posted @ 2013-12-21 17:11 nick_lsf 阅读(700) 评论(5) 推荐(0) 编辑
摘要: Sage CRM 的区域是把整数区间-214748364 ~02147483647划分为一个个相等的区间,使用数字的范围来表示区域的概念。 默认情况下,crm把区域划分为10 阅读全文
posted @ 2013-12-21 16:56 nick_lsf 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 经常需要使用ajax来修改页面的功能,包括联动、动态加载等。SageCRM的页面必须有SID的,所以要方便的获取它。 var getKey = function(key,Url) { if(arguments.length ==1) { Url = document.location.search; } return (Url.match(new RegExp("(?:^\\?|&)"+key+"=(.*?)(?=&|$)"))||['',null])[1]; } 阅读全文
posted @ 2013-10-16 10:53 nick_lsf 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 原理很简单就是修改放大镜属性中的sql。函数如下:第一个参数是字段的名称。第二个参数是需要控制这个放大镜的sql。可以跟进下拉框的值来组织这个sql。 /*--------------- For CRM By Nick Date: 2011-4-12 comments: 设置SSA ------------------*/ function SetSSASearchSQL(strFieldname, searchSQL) { if (!window['NavUrl' + strFieldname]) return; var evalStr1 = 'window[\ 阅读全文
posted @ 2013-10-16 10:46 nick_lsf 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 一、 系统自带的文档 SageCRM的学习资料都很少。刚开始的时候都是看他提供的开发文档和配置文档。这些文档你都可以在安排程序的目录下找到。 例如6.1 的文档位置:CRM6.1_cni\doc&pacth\Documentation。 7.0的文档位置:CRM7.0_cn\Documentation 重点关注:《Developer Guide.pdf》 和 《System Administrator Guide.pdf》两个文档 二、 官网论坛 地址:https://community.sagecrm.com/partner_community/default.aspx ... 阅读全文
posted @ 2012-12-13 10:53 nick_lsf 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 一、 CRM系统的错误提示1、You may need to recreate views manually(您可能需要手动重新创建视图)通常是应用不能连接到数据库。有下面几种情况:1) 数据库的服务器停了或者数据库服务器挂了、CPU使用100%等。2) 提供给应用的数据库密码被修改了。你可以先使用SSMS连接过去看看。3) 数据库有可能会拒绝了应用服务器这个IP的访问。 你可以先使用SSMS连接过去看看,重启数据库的服务器试试,多半解决,少数情况还需要重启应用服务器的IIS。2、Permitted number of user licenses exceeded(超出有效用户数)通常是采用后 阅读全文
posted @ 2012-09-24 16:04 nick_lsf 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 升级后的一周,由于客户的销售人员相对较少,所以用的也少。第二周开始,销售助理在整理销售的拜访报表后发现了很多以前的异常情况。 例如: 有些拜访没有company;有些拜访记录关联的company不是销售本人的company,权限上应该看不到不是他的company。 由于客户的集团对网络的要求比较高,所以不能对外开发远程或者ftp等,我们只能到现场调试,我在sql.log中发现了很多solo同步时,出现ID重复没有插入到comm表或者cmli表的数据。 问题一下子就找到了。表象就是修复数据,但修复根源却麻烦得多。加班了几个夜晚才大概明白其中的问题,可能我比较笨,而且solo的应用在国内好... 阅读全文
posted @ 2012-08-30 20:54 nick_lsf 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 是刚开始学SageCRM开发的时候自己整理的。不是很全面,先放上到mark一下。一、区域。表名:【territories】1我们先来看看区域表的结构。从图中前面都是不能为空的字段,都是很重要的。来介绍一下这些字段:Terr_territoryid: 这个字段就是区域码Terr_DBID:由于上面这个字段用来保存区域码了,所以用这个来做表的idTerr_Caption:区域码的中文名称,我们新建区域,只需要输入这个就可以了。Terr_ParentID:父区域的区域码。如果是根区域的话,父区域为空。Terr_RangeEnd:区域的范围码。具体含义下面会介绍。Terr_NextRangeStart 阅读全文
posted @ 2012-06-29 15:11 nick_lsf 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 昨天总算把S公司的crm升级到6.2sp1了。项目总算有了一个推进。期间非常曲折。 1、升级到7.0后由于客户端的solo新建完机会之后,不能同步到服务器。 从服务器端的同步日志上可以看到插入语句中,明显没有插入机会的ID,肯定是出错的。Sagecrm里面ID是必填项。 没办法,底层是人家的。只能从下面几个方面着手测试: 1) 环境。 XP + IE6 、 XP + IE8。 2) 升级到6.2sp1时是否可行。【可行】 3) 正式版的7.0是否可行。【可行】 4) 正式班的7.0和升级之后的版本在参数上有什么区别。【没区别】 5)标准版的6.2sp1升级到7.0是否可行。【... 阅读全文
posted @ 2012-06-18 16:45 nick_lsf 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 这篇文章总结的很好。转载一下。原文地址:http://ignite.azamba.com/2012/02/the-secret-of-sage-crm-urls/If you’ve ever experimented with customizations in Sage CRM (Sage CRM), you’ve probably noticed the cryptic URLs Sage uses when bouncing from page to page inside the application. I don’t have all the answers to every ke 阅读全文
posted @ 2012-06-06 16:54 nick_lsf 阅读(404) 评论(0) 推荐(0) 编辑
摘要: CRM升级之后,用户的自定义配置都变了。例如登录默认是日历,升级之后变成了Dashboard,所以需要修复。 刚开始我修改了用户模版,查看sql才发现,原来这些模版就是保存在users表中的,使用特殊的标识区别而已。所以才有了查有效用户的时候需要增加这几个标识:SELECT user_userid from users where COALESCE(user_disabled, N'') = N'' AND ( User_IsTemplate = N'N' OR User_IsTemplate is NULL ) and user_deleted 阅读全文
posted @ 2012-04-27 17:40 nick_lsf 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 工作流表的结构 之前已经研究过工作流的东西,但是这次做.net的开发还是没能把工作流弄好。所以再认真看了工作流一遍,写出来之后,自己也更加熟悉。希望这篇介绍能帮助大家了解系统工作流。一、首先来介绍一下工作流需要的表1) Workflow2) WorkflowState3) WorkflowRules4) WorkflowActions5) WorkflowActionLinks6) WorkflowTransition7) WorkflowInstance8) WorkflowHistory二、通过visio的图来看看他们之间的关系三、具体介绍1) Workflow :主表,保存工作名称等基本 阅读全文
posted @ 2012-04-25 11:02 nick_lsf 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: 把solo弄好之后,就要开始测试页面的联动和增删改查了。还是发现了一下问题:1、 机会界面的屏幕会丢失一些自定义的脚本。加上就可以的了。2、 5.7的只读升级之后变成7.0的字段安全性。所以5.7中的功能:新建字段定义为只读,然后通过界面脚本设置ReadOnly=false失效。字段安全性是全局的,而且安全性最高。只需要使用sql把这些字段安全性去掉:update FieldSecurity set fdse_permissions = 5 from custom_editswhere colp_colpropsid = fdse_colpropsid and fdse_permissions 阅读全文
posted @ 2012-04-24 11:17 nick_lsf 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 由于SageCRM是每个页面都是submit的,连菜单也是每打开一个就刷新一下的,基本上没有异步的功能。很多用户都很不满意的,数据多的时候,他们都很害怕翻页和跳转。所以我也尽量让我们的图片和js能缓存到客户的电脑上。每次只需要加载数据,加快页面的速度。 缓存也导致了我们更新了最新的功能之后,有一些功能我们自己写了ajax,有js文件,就导致服务器的文件asp已经更新了,但是js却没有更新,导致大范围的错误,影响客户的页面。要想办法让浏览器下载最新的js文件。 google之后的,普遍的做法是在文件的加载路径后增加一个参数: 原:<script src= "Contract.js 阅读全文
posted @ 2012-04-20 20:20 nick_lsf 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 今天要安装一个水晶报表。安装过程有几个文件有错误。结果这个vs的实时调试器老是调出来。而且还是5次跳出来等你取消5次之后,才到默认的忽略的界面。你知道有多烦的,还得看这他,点完一次还要等几秒钟。差点崩溃了。 可以这样关闭他: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger 删除后打开visual studio 2005,选工具-选... 阅读全文
posted @ 2012-04-20 18:11 nick_lsf 阅读(3985) 评论(0) 推荐(0) 编辑
摘要: 前段时间给一个客户的CRM做升级操作,遇到了各种问题,咨询了dpp网站,也咨询上海的顾问,总算升级成功,暂告一段落。总结一下升级要注意的事项: 1)尝试了多次,发现流程和系统自带的报表都没有问题。但是solo始终不行。后来咨询Sage顾问才知道原来crm7的中文版不支持solo。升级过程可以使用中文版。但是最后一个版本必须使用英文版。 2)升级过程必须按版本逐个升级。例如:5.7 - 5.8 - 6.0 - 6.1 - 6.2 - 6.2sp1 - 7.0. 跨级升级是不允许的。 3)升级过程中是要输入每个级别的license,所以要记得提前申请好。 4)5.7 和5.8是共用一个... 阅读全文
posted @ 2012-04-20 15:27 nick_lsf 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 需求: SageCRM的查询条件屏幕的条件比较多,会占用界面,用户希望首先显示常用的查询条件,然后点击展开的按钮,可以看到一些不常用的查询条件。 解决思路: 1、 在标题处增加一个【—】【+】号,供用户点击。 2、用户收缩和展开屏幕的行为保存在Cookie里面。页面重新加载或者用户重新登录系统,仍然能记住用户的行为。 优点:1、使用Jquery插件的形式来做,容易扩展。容易实现。 2、 保存在Cookie的行为,容易实现,减少工作量,用户也能接收。如保存在数据库,则增加页面的负载。 缺点:不能每个页面使用单独行为,既是:每次用户的收缩和扩展在系统都是全局的。并且到其他计算机登... 阅读全文
posted @ 2011-12-24 11:14 nick_lsf 阅读(392) 评论(2) 推荐(0) 编辑
摘要: Sage CRM的每个表的ID都是用自己包装的过程生成的,这个ID会在每个页面之间作为标识来传递。很有意思的是,系统本身并没有默认给这些表的ID设置为主键或者增加索引。我尝试了存在相同的ID,结果页面列表显示和页面都被系统随机选了一条记录显示,列表显示的可能是李四,打开之后是张三。 这个生成自增ID的存储过程大体类似 这个园友的方法《弃用数据库自增ID,曝光一下我自己用到的解决方法》。思路: 1:定义一张表,专门用来存放存所有需要唯一ID的表名称以及该表当前所使用到的ID值。 2:写一个存储过程,专门用来在上一步的表中取ID值。【引用上文的表述】 但Sage CRM 在这个思路下增... 阅读全文
posted @ 2011-12-07 00:03 nick_lsf 阅读(1528) 评论(2) 推荐(0) 编辑
摘要: 1、 异常:[EntityCommandExecutionException: 存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够。]这个异常是因为存储过程导入函数调用的异常。过程的代码:ALTER PROCEDURE [dbo].[eware_get_identity_id] @table_name NVARCHAR(80) AS DECLARE @new_id INT SELECT @new_id = 0 ................... SET NOCOUNT OFF RETURN @new_id过程中,需... 阅读全文
posted @ 2011-11-26 12:59 nick_lsf 阅读(3393) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blogs.infosupport.com/blogs/bast/archive/2009/09/10/reporting-services-javascript-injection.aspxMyprevious postabout using a simple javascript in Reporting Services 2008 got me thinking. Wouldn't it be cool if you could do more with javascript in Reporting Services?! This would enabl 阅读全文
posted @ 2011-08-18 15:33 nick_lsf 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 应用户的要求说Select表单实在太丑。因为他们在ie9上看,确实漂亮很多。但是很多用户都在ie6.我们企业应用要求用户使用ie7 和ie8,所以他们要求我们在ie7和ie8上也要看到ie9的效果。 我尝试了css不行。js有不会该select的东西,不用使用自己仿select,因为太多了,而且受到平台的影响,不能修改。 请教过司徒正美前辈。他说 要修改select只能使用css的属性选择器,但是属性选择器还只在ie9和chrome等浏览器上生效,他说用js,但没有提具体的方法。就先放下了。 今晚在《外刊IT评论网》看到了一篇这样的文章。Chosen这个插件太炫了,不但修改了select的样. 阅读全文
posted @ 2011-08-13 00:53 nick_lsf 阅读(4114) 评论(0) 推荐(1) 编辑
摘要: 我们公司的系统会把字段的中文名称用字典表单独记录起来。所以在表设计的时候,通常都没有往说明写注释,一个个写也不是很方便。但是如果使用李天平前辈的代码生成器生成model层的时候,默认是取数据库字段的说明作为注释的。所以后期开发的时候,又要写上说明,还是比较麻烦。所以想找个方法把我们系统里面的中文名称写到字段的说明中去。 字段的说明主要保存在这个表中:extended_properties,这个表的说明请自己查找MSDN的说明。刚开始以为看懂表结构就可以批量插入,刚插入,结果系统报错了,这个表是受数据系统保护的。但是提供了一个存储过程给我们调用:sp_addextendedproperty... 阅读全文
posted @ 2011-04-08 19:26 nick_lsf 阅读(815) 评论(0) 推荐(0) 编辑
摘要: 今天看了 oneroom的 【javascript数字数组去重复项】觉得挺有意思的。顺便把我以前在看的对比一下。也算是做个备份。 第一种:也是最笨的吧。 第二种:这个正则天书一样。 第三种:使用对象的【hasOwnProperty】方法 第四种:先排序,前项比后项。这个方法挺简单的,但也实用。 下面 阅读全文
posted @ 2010-12-29 21:43 nick_lsf 阅读(29688) 评论(4) 推荐(3) 编辑
摘要: 相信大家经常遇到的。就是在可编辑列表中,要么加载的时候格式显示出错,要么点击修改的时候显示出错,要么就是提交到保存函数时为空值。前面两种情况下面这篇blog已经有了。http://wisekingokok.javaeye.com/blog/502521后面一种情况是我用asp.net开发的时候,发现接收不到修改值。后来发现e.value 的时候是一个这样的时间格式:【Wed Mar 04 1970.....】,其实只需要提交ajax之前再格式化一次就可以了。Code highlighting produced by Actipro CodeHighlighter (freeware)htt.. 阅读全文
posted @ 2010-12-21 14:37 nick_lsf 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 找了好多资料。很多都是发布之后的问题。而我的是还在vs中生成网站出的错。仔细检查发现原来是同事在一个文件夹里签入了一个相同的网站,结果一个网站里面有两个confg。删掉就ok了。 阅读全文
posted @ 2010-12-10 15:12 nick_lsf 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 1、 我现有的vs 是2008的。所以只要再按装一个 mvc就可以了。下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3b537c55-0948-4e6a-bf8c-aa1a78878da0&displaylang=en安装之后。2、 新建第一个网站,有实例那种。先了解一下。运行发现没有 aspnetdb.m... 阅读全文
posted @ 2010-10-24 02:24 nick_lsf 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://topic.csdn.net/u/20100817/18/38dc20a3-86d5-45be-a750-123e7b41e188.html?29783[代码] 阅读全文
posted @ 2010-08-18 17:03 nick_lsf 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 原因:  用vs2005开发的asp.net应用程序需要使用.net framework 2.0,而在iis中的默认.net环境是1.1。这时将发生不可识别的节点的问题。  解决办法:  将.net环境升级为2.0,开始-》运行-》cmd-》  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i  注意:将目录切换到... 阅读全文
posted @ 2010-07-14 16:27 nick_lsf 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 在使用Reporting Service 2000过程中,对一些特殊的地方做了一些总结,下子把它贴出来,供大家参考:1.IIF表达式如何使用?在很多地方,都可以使用IIF表达式来实现一些特定的操作,比如图片的隐藏与显示,数据的条件显示等等。IIF表达式的语法为:IIF(Expression,value when true,value when false),IIF表达式可以嵌套使用。2.Repor... 阅读全文
posted @ 2010-06-23 12:30 nick_lsf 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 前几天看了 司徒大侠 的 《js事件代理》。练习一下,于是又了下面的代码和问题。(本来是鼠标滑动到行的时候,该行变色)代码 if(target.nodeName.toLowerCase() == 'table')或者 if(target.nodeName.toLowerCase() == 'td')都能获取到目标,但是tr就不行。按照冒泡的规则,当点击td 之后应该冒泡到tr ,然后才到table... 阅读全文
posted @ 2010-06-04 22:10 nick_lsf 阅读(812) 评论(3) 推荐(0) 编辑
摘要: 今天想用visio2003 反向工程链接 mssql2005。结果第一次使用,新建了一个sql server的数据源链接sql2005,然后使用的驱动程序是Microsoft sql server 。结果是驱动程序和数据源不兼容。后来查看驱动程序发现:sql native client 的版本时间是2005.所以sql native client 才是sql2005的驱动程序。现在才操作一下:具体... 阅读全文
posted @ 2010-05-11 17:32 nick_lsf 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 老找不到日期比较函数,用来比较输入的日期必须比当前日期晚,但是要包括当天。所以就自己写了一个最笨的。先检测日期格式,在拆分比较,当然可以写在一起的。代码 阅读全文
posted @ 2010-04-01 10:29 nick_lsf 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 刚开始仿照前辈的触发器,写了一个这样的触发器: <!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br 阅读全文
posted @ 2010-02-08 18:39 nick_lsf 阅读(10698) 评论(0) 推荐(0) 编辑
摘要: 1,动态表格把iframe撑开之后,滚动条自动滚到到了最右边,客户每次都要把他拉回左边看数据。很不方便,找了一下资料,js是可以操作滚动条的 方法如下: 有四个方法:下面是把纵向的滚动条设置成顶部 document.body.scroll(0,document.body.scrollHeight)  阅读全文
posted @ 2010-01-15 10:55 nick_lsf 阅读(13086) 评论(0) 推荐(0) 编辑
摘要: 由于触发器的原因,所以更新数据的时候经常不能使用直接update来修复数据。所以试着去用游标来更新代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--declare upduser scroll cursorforselect aopp_userid ... 阅读全文
posted @ 2010-01-05 19:07 nick_lsf 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 今天看到《ASP小贴士/ASP Tips》 我也去把JavaScript的tips 下下来了。 看看是A4的。 自己把他改成1024 * 768 刚好可以用来做桌面 阅读全文
posted @ 2009-12-10 21:24 nick_lsf 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 之前研究过一下表格排序。上网找了一些代码研究了一下。勉强做了一个用着。后面发现当动态给单元格加超链接,或者列中存在一些空白,就排序不了了。 代码: 仿一个网友的代码写的,不记得出自哪里了,改成可以支持中文排序,而且支持控件value的排序。 没办法,能力有限,只能。。。代码Code highlighting produced by Actipro CodeHighlighter (freeware... 阅读全文
posted @ 2009-12-08 09:14 nick_lsf 阅读(3632) 评论(13) 推荐(1) 编辑
摘要: 我们公司是做sage的 crm 的。现在有个项目需要sagecrm里面的邮件收发功能。其实系统里面的收发功能挺不错。收到客户的邮件之后直接把邮件内容和附件保存起来,还可以和系统其他 线索,机会,客户向关联。可以说功能和强大。 可惜啊,老板说sage crm 只有6.1 才有中文版,是有更高版本的,就是没有中文版。 而这个版本的中文收邮件会出现乱码。 我们发问题反馈到sage,结果他们国外的开发部说... 阅读全文
posted @ 2009-12-03 09:41 nick_lsf 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: 这是最近的一些思考,由感而发,希望能给大家一点参考。一家之言哈,欢迎拍砖!我问过很多年轻的朋友,他们在找工作的时候,最看重什么?答案很多啦,公司要够大,薪水要够高,要有足够的挑战性,要有成就感。。。等等,当然,也有一脸茫然的,那是还没有想好的。其实后来我考虑了一下,这个话题可以换个方式问,就是大家为什么需要找工作?这个答案就少一些了,赚钱吃饭,养家糊口,为了实现人生价值,等等。那如果我们再换个方式... 阅读全文
posted @ 2009-07-31 12:52 nick_lsf 阅读(251) 评论(0) 推荐(0) 编辑
摘要: [代码]这是用来做sql 转义字符转换的。刚开始发现只转换了第一个而已。 当时就郁闷了。 用最笨的方法我做两个循环来替换其他的。后面才发现只要改为: string str1=content.Replace/&amp;/g,"&"); 就可以替换全部了。[代码] 阅读全文
posted @ 2009-07-17 09:32 nick_lsf 阅读(346) 评论(0) 推荐(0) 编辑