<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[accdb.net 独特诠释 access 2007 的新格式 *.accdb - 财务ERP、企业管理]]></title>
<link>http://www.accdb.net/</link>
<description><![CDATA[不再自己写文章了，本站C# DELPHI 的文章都是摘抄自网络（除了明确署名的文章以外）。ERP财务类文章基本属于原创]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[access911@gmail.com(cg)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>accdb.net 独特诠释 access 2007 的新格式 *.accdb</title> 
	<url>http://www.accdb.net/images/logos.gif</url> 
	<link>http://www.accdb.net/</link> 
	<description>accdb.net 独特诠释 access 2007 的新格式 *.accdb</description> 
</image>

			<item>
			<link>http://www.accdb.net/default.asp?id=1602</link>
			<title><![CDATA[一些鲜为人知的编程事实]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Fri,03 Sep 2010 12:29:57 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1602</guid>	
		<description><![CDATA[一些鲜为人知的编程事实<br/>2010-09-03 09:13 |&nbsp;&nbsp;1939次阅读 |&nbsp;&nbsp;来源：酷壳&nbsp;&nbsp; 【已有17条评论】发表评论 <br/><br/> |&nbsp;&nbsp;感谢陈秋歌的提供 |&nbsp;&nbsp;收藏这篇资讯 <br/>David Veksler曾发表过一篇博文《Some lesser-known truths about programming》，列出了一些鲜为人知的编程事实，这些事实是什么呢？酷壳个人网站楼主陈皓对此文进行了翻译，全文如下：<br/><br/>我的程序员经历让我明白了一些关于软件开发的事情。下面是一些在编程中可能会让人感到诧异的事情：<br/><br/>1. 一个程序员用了大约只用了10%-20%的时间来编码，而且大多数程序员，无论他的水平如何，其平均每天只有10-12行的代码最终会进入最终的软件产品中。这是因为，优秀的程序员会花费90%的时间来思考、调查、研究最佳的设计。而糟糕的程序员则会花费90%的时间来调试代码，并随意地改动代码并尝试让代码工作起来。<br/><br/>“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates<br/><br/>“一个优秀的车工其工资是一个普通车工的好几倍，但是一个优秀程序员写出来的代码比一个普通程序员要值钱一万倍。——比尔盖茨”<br/><br/>2. 一个好的程序员比一个普通的程序员多十倍的生产率。而一个优秀的程序员的生产率则比普通程序员多20-100倍。这并不是夸张（自从上世纪60年代的研究一直表明这是一个事实）。一个糟糕的程序员并不只是没有产出的——他们并不仅是完成不不工作，而且还会制造出大量的让别人头痛并要去解决的麻烦。<br/><br/>3. 优秀的程序员花少量的时间写代码——那些代码都会出现在最终的产品中。那些花大量的时间写代码的程序员其实是很懒惰、很无知，或是很自大的，以至于不能使用已经存在了的解决方案来解决已有的问题。优秀的程序员精通于对通用模式的识别和重用。好的程序员并不害怕持续地重构/重写自己的代码，直到达到最理想的方案。糟糕的程序员的代码基本上都缺少概念一致性，代码冗长，缺少层次和模式，所以，也就很难被重构。所以，重写他们的代码要比重构他们的代码要容易得多。<br/><br/>4. 软件和其它一切事物一样，都遵循着一致性规则。持续得更改只会让软件变成一潭烂泥，其破坏了原始设计的概念一致性。软件产品变成泥沼是不可避免的事情，但是因为程序员不考虑软件概念一致性而导致软件产品更为快速地成为泥沼，这种速度快得可能会在软件产品还没有完成时，软件产品已经变得没有价值。设计概念一致性的失败通常都会导致软件项目的失败（而第二大导致软件项目失败的原因则是发布的软件并不是用户想要的）。软件变成烂泥的速度正在呈指数级下降，太多的项目在被完结前都面临着激增的时间和成本。<br/><br/>5. 一个 2004 研究报告 指出，大多数的软件项目 (51%) 都会在关键环节出问题。而15%的项目则是完全失败，当然，这比1994年有了很大的进步，当时完全失败的项目是31%。<br/><br/>6. 虽然，几乎所有的软件产品都有些开发团队，但其并不是民主的。通常，只有一个人负责设计，而剩下的人去实现细节。<br/><br/>7. 编程是一个辛苦的工作。其实是一个剧烈的脑力劳动。好的程序员24×7地在思考他们的工作，他们一般都在洗澡和梦中编写软件中最重要的代码。因为最重要的工作只能在键盘之外完成，软件项目不可能因为加班或是加人来加快进度。<br/><br/>原文链接：<a href="http://dotmac.rationalmind.net/2010/08/some-lesser-known-truths-about-programming/" target="_blank">http://dotmac.rationalmind.net/2010/08/some-lesser-known-truths-about-programming/</a><br/><br/>译文链接：<a href="http://coolshell.cn/articles/2909.html" target="_blank">http://coolshell.cn/articles/2909.html</a>#more-2909<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1600</link>
			<title><![CDATA[任我行ERP V3无法登录时如何清除COOKIES]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Thu,02 Sep 2010 14:25:14 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1600</guid>	
		<description><![CDATA[任我行ERP V3无法登录时如何清除COOKIES<br/><br/>任我行 ERP 经常会出现无法登录的现象，是由于您本机的 COOKIES 设置造成，请按以下步骤操作<br/><br/>1、关闭所有 IE 窗口<br/><br/>2、重新打开一个空白的 IE 窗口<br/><br/>3、IE 窗口中 菜单 -&gt; 工具 -&gt; Internet 选项 -&gt; 删除cookies<br/><br/><img src="http://www.accdb.net/attachments/month_1009/5201092142446.jpg" border="0" alt=""/><br/><br/><img src="http://www.accdb.net/attachments/month_1009/a201092142455.jpg" border="0" alt=""/><br/><br/><img src="http://www.accdb.net/attachments/month_1009/a20109214254.jpg" border="0" alt=""/><br/><br/>4、再次关闭所有的IE窗口，确定windows任务栏中没有任何 IE 窗口<br/><img src="http://www.accdb.net/attachments/month_1009/z201092142512.jpg" border="0" alt=""/><br/><br/>5、再次打开 ERP V3 的登录页面，重新登录即可。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1586</link>
			<title><![CDATA[soncount son]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Fri,27 Aug 2010 15:51:39 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1586</guid>	
		<description><![CDATA[grasp erp v3 3.5<br/><br/>soncount 与 typeid 同一层的最大值有关。如果某个客户在刚开，没有使用的情况下被删除，而且这个客户不是最后一个，那么这个typeid会被直接从表中删除<br/>而不是标示del&#101;ted=1，但是同时sonnum会减少1，但是soncount却不减少。]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1570</link>
			<title><![CDATA[记录销售单的具体时间。]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Thu,12 Aug 2010 21:35:13 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1570</guid>	
		<description><![CDATA[/****** Object:&nbsp;&nbsp;Table [dbo].[cg_BillLog]&nbsp;&nbsp;&nbsp;&nbsp;Script Date: 2010-08-12 21:19:41 ******/<br/>if exists (sel&#101;ct * from dbo.sysobjects wh&#101;re id = object_id(N&#39;[dbo].[cg_BillLog]&#39;) and OBJECTPROPERTY(id, N&#39;IsUserTable&#39;) = 1)<br/>dro&#112; table [dbo].[cg_BillLog]<br/>GO<br/><br/>/****** Object:&nbsp;&nbsp;Table [dbo].[cg_BillLog]&nbsp;&nbsp;&nbsp;&nbsp;Script Date: 2010-08-12 21:19:42 ******/<br/>--需要对单据生成时间进行分析，所以新增一个表用来存储时间信息，用触发器关联 billindex实现该统计<br/><br/>Cr&#101;ate TABLE [dbo].[cg_BillLog] (<br/>&#160;&#160;&#160;&#160;[BillNumberId] [int] NULL ,<br/>&#160;&#160;&#160;&#160;[GUID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,<br/>&#160;&#160;&#160;&#160;[Cr&#101;ateDatetime] [datetime] NULL <br/>) ON [PRIMARY]<br/>GO<br/><br/>Alt&#101;r TABLE [dbo].[cg_BillLog] ADD <br/>&#160;&#160;&#160;&#160;CONSTRAINT [DF_cg_BillLog_Cr&#101;ateDatetime] DEFAULT (getdate()) FOR [Cr&#101;ateDatetime]<br/>GO<br/><br/><br/>-- =============================================<br/>-- Cr&#101;ate trigger basic template(After trigger)<br/>-- =============================================<br/>IF EXISTS (Sel&#101;ct name <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp; FROM&nbsp;&nbsp; sysobjects <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp; Wh&#101;re&nbsp;&nbsp;name = N&#39;cg_tg_LogBillIndex&#39; <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp; AND &#160;&#160;&#160;&#160;&nbsp;&nbsp;type = &#39;TR&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dro&#112; TRIGGER cg_tg_LogBillIndex<br/>GO<br/><br/>Cr&#101;ate TRIGGER cg_tg_LogBillIndex<br/>ON BillIndex<br/>FOR Ins&#101;rt <br/>AS <br/>BEGIN<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;--由于单据表只包含创建日期，不包含创建时间，因此增加一个触发器来记录时间<br/>&#160;&#160;&#160;&#160;if exists(sel&#101;ct * from cg_billlog wh&#101;re billnumberid = (sel&#101;ct top 1 billnumberid from ins&#101;rted))<br/>&#160;&#160;&#160;&#160;begin<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;del&#101;te from cg_billlog wh&#101;re billnumberid = (sel&#101;ct top 1 billnumberid from ins&#101;rted)<br/>&#160;&#160;&#160;&#160;end<br/>&#160;&#160;&#160;&#160;ins&#101;rt into cg_billlog (BillNumberId,GUID,Cr&#101;ateDatetime) sel&#101;ct billnumberid,newid(),getdate() from ins&#101;rted<br/>&#160;&#160;&#160;&#160;--编写这个触发器的时候发现：@@IDENTITY是记录全局标示列。如果在触发器里面新增了记录的ID 也是在 @@IDENTITY中体现。所以本触发器会导致取的单据号错误。<br/>&#160;&#160;&#160;&#160;--print(@@error)<br/>END<br/>GO<br/><br/>--ins&#101;rt into billindex (billdate,billcode,billtype) values(getdate(),&#39;2011-1-1&#39;,66)<br/>--print(@@ERROR)<br/><br/><br/>IF EXISTS (Sel&#101;ct TABLE_NAME <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp; FROM&nbsp;&nbsp; INFORMATION_SCHEMA.VIEWS <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp; Wh&#101;re&nbsp;&nbsp;TABLE_NAME = N&#39;cg_V_BillIndexTime&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dro&#112; VIEW cg_V_BillIndexTime<br/>GO<br/><br/>Cr&#101;ate VIEW cg_V_BillIndexTime<br/>AS <br/>-- 统计某一个时段的销售单的销量、明细。注意，不包含销售退货单和红冲单。<br/>&#160;&#160;&#160;&#160;sel&#101;ct bi.*,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bl.guid,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bl.cr&#101;atedatetime,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;convert(nvarchar(8),bl.cr&#101;atedatetime,108) as Cr&#101;ateTime,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;p.usercode as PUserCode,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;p.fullname as PFullName,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;iost.qty*-1 as qty,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;iost.costprice,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sb.total,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;iost.price,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(iost.price-iost.costprice)*iost.qty*-1 as Profit,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.fullname as EFullName,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;s.fullname as SFullName,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e2.fullname as dFullName<br/>&#160;&#160;&#160;&#160;from billindex bi <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join cg_billlog bl on bi.billnumberid = bl.billnumberid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join salebill sb on bi.billnumberid = sb.billnumberid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join ptype as p on p.typeid = sb.ptypeid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join employee as e on bi.etypeid = e.typeid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join employee as e2 on bi.etypeid like e2.typeid + &#39;_____&#39;&#160;&#160;&#160;&#160; --substring(bi.etypeid,1,len(bi.etypeid)-5) = e2.typeid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join stock as s on bi.ktypeid = s.typeid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inner join inoutstocktable as iost <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;on sb.billnumberid = iost.billnumberid and iost.ptypeid = sb.ptypeid<br/>&#160;&#160;&#160;&#160;wh&#101;re bi.billtype=11 and ifcheck=&#39;t&#39; and redword=0<br/><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>GO<br/><br/>sel&#101;ct billcode as 单据编号,billdate as 单据日期,comment as 备注,<br/>&#160;&#160;&#160;&#160;pusercode as 产品编号,pfullname as 产品名称,<br/>&#160;&#160;&#160;&#160;qty as 数量,costprice 成本单价,price as 销售单价,profit as 利润,<br/>&#160;&#160;&#160;&#160;efullname as 经手人,sfullname as 仓库,dfullname as 经手人所在部门<br/>from cg_v_billindextime wh&#101;re cr&#101;atetime &gt;=&#39;00:00:00&#39; and cr&#101;atetime&lt;=&#39;22:01:32&#39;]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1555</link>
			<title><![CDATA[给人事部wangqiong做 EXCEL培训，分类汇总无法删除问题]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Fri,16 Jul 2010 13:11:14 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1555</guid>	
		<description><![CDATA[给人事部wangqiong做 EXCEL培训，分类汇总无法删除问题<br/><br/>说无法删除分类汇总，发现是没有把自动筛选关闭，所以汇总行被排除在筛选外了，所以导致永远无法删除分类汇总。<br/><br/><img src="http://www.accdb.net/attachments/month_1007/j2010716131026.jpg" border="0" alt=""/><br/><img src="http://www.accdb.net/attachments/month_1007/u2010716131042.jpg" border="0" alt=""/><br/><img src="http://www.accdb.net/attachments/month_1007/k2010716131052.jpg" border="0" alt=""/><br/><img src="http://www.accdb.net/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.accdb.net/attachments/month_1007/l201071613118.xls" target="_blank">点击下载此文件</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1547</link>
			<title><![CDATA[windows7远程桌面如何调整到256色]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Thu,08 Jul 2010 16:38:50 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1547</guid>	
		<description><![CDATA[先要在组策略里面做：本地计算机策略，计算机配置，管理模板，windows组件，远程桌面服务，远程桌面会话主机，远程会话环境，限制最大颜色深度。<br/><br/>Group Policy sets values in the registry.&nbsp;&nbsp;The value set by this policy is ColorDepth in the key HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.<br/><br/>I have found that the value &#34;5&#34; represents ColorDepth 32.&nbsp;&nbsp;From the other settings available, Client Compatible, 8, 15, 16, and 24, I would assume a value of 1 would force 8 bit.<br/><br/>You could set the value with reg.exe, in a command prompt:<br/><br/>REG ADD &#34;HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services&#34; /v ColorDepth /t REG_DWORD /d 1 /f<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1545</link>
			<title><![CDATA[开发人员的绩效管理]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Tue,06 Jul 2010 09:59:46 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1545</guid>	
		<description><![CDATA[1. 工资和员工的职位和岗位挂钩，奖金和绩效挂钩，股票期权和员工的发展潜力挂钩，但对员工来说，最好的激励是公司能看得到的美好发展前景。<br/><br/>2. 管理者在奖励员工时，一定要做到员工意识到之前，给员工惊喜，忌讳奖励不及时或者拖延。<br/><br/>3. 在赋给员工头衔时不要吝啬，基本上将员工的头衔升一级，能将他们的工作成效提高20%。特别是优秀的研发人员都喜欢交流，而头衔对他们的交际比较重要。<br/><br/>4. 管理者始终是绩效考核的核心，有些公司找到我，希望设计一套绩效体系，让每个员工都可以自己算出自己的成绩，这样的话还要管理者干什么？<br/><br/>5. 任职资格认证体系最好和绩效考核结合建立。任职资格认证的重要性在于给予与员工成长目标，再配合相应的培训，可以引导员工快速成长，是绩效体系的基础之一。<br/><br/>6. 沟通是绩效管理的重要环节，主管一定要辟出专门时间和员工面谈，让员工了解到公司的整体运营情况和未来规划，使他们感到公司需要他们的努力。<br/><br/>7. 绩效设置越高层越要目标导向，越往基层考核越要具体。公司的项目经理，产品经理一级的KPI指标怎么制定？主要通过四个方面，来分解关键指标，第一、财务投入，第二、客户满意度，第三、内部业务运作，第四个是组织均衡成长。这里特别强调的是研发考核一定要和市场情况打通。<br/><br/>8. 研发体系的考核指标宜设置为5-7条，根据产品开发的阶段和公司的特点来选择哪些指标作为考核的依据。每一个指标的权重不要低于10%。有些数据这能作为评价研发人员的水平依据，而不能作为指标考核，比如对需求变更的响应。<br/><br/>9. 很多公司里，研发人员100%投入到项目攻坚中，埋头拉车，没有抬头看路，你会发现他的水平总会在低层次重复。如果在绩效管理中能够设置15%的时间让这个员工提高自己的水平之后，最终成效会比让员工花100%的时间干活更好。<br/><br/>10. 对基层员工的考核会包括任务执行的规范性。很多人认为，流程规范会抑制公司创新能力，恰恰相反，越按照流程做事越有时间创新，因为把能规范的都规范了。就可以将资源放在更有价值的事情上。（<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1529</link>
			<title><![CDATA[关于产品限价的财务需求]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Sun,20 Jun 2010 22:34:02 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1529</guid>	
		<description><![CDATA[关于产品限价的财务需求<br/><br/>1、产品经理可以制定的产品限价<br/><br/>品名、所属仓库、所属部门、分别制定限价。<br/><br/>限价单应该包含的内容<br/>表头：<br/>制定人、制定日期、限价单编号、备注<br/><br/>表体：<br/>品名、所属仓库、所属部门、限价的具体价格、生效时间段（年月日时间段全部要有，可以考虑另外启用一对多表进行存放。生效时间分几种，具体日期时间、每周几）、生效时间优先级（数字越大级别越高）、备注。<br/><br/><br/>所属仓库包含：每个分仓库名，单层次。仓库要增加新属性，比如仓库分类，区分为商品库、促销库、坏件库，这些库分类都是内置逻辑，不允许用户更改。<br/><br/>所属部门新增属性：部门级别：A类B类C类。用户暂时不能更改。<br/><br/>商品新增属性：商品详细描述文字（长文本），商品详细描述HTML（长文本，直接存放HTML），正规商品名（500个中文字，解决直接写商品全部属性的问题），商品扩展分类1（用于存放商品、固定资产、坏件、促销品、虚拟包等属性，用户不能修改），商品预计周期（月为单位，预计该商品能销售多少天后停产）<br/><br/>产品限价可以用EXCEL上传，每次只能上传1000个（考虑数据处理能力问题），如果用C/S方法上传可以考虑不用限制。<br/><br/>限价都是限制最低不能超过该限价，不限制最高价格<br/><br/><br/><br/><br/><br/><br/>部门内部操作没有问题，但是部门之信息交互会存在问题。管理目标、管理方法、管理原则的冲突点。冲突点由最高层进行拍板，拍板后以后的相关部门必须服从拍板。<br/>信息管理：分执行层面和战略决策层面。<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1524</link>
			<title><![CDATA[CRM 7.0 SP2 管家婆 的权限漏洞如何修补]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Wed,09 Jun 2010 18:34:15 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1524</guid>	
		<description><![CDATA[-- bbs 模板的权限，设定好以后可以COPY到crm_bbsright中作为个人的权限<br/>sel&#101;ct a.* ,b.name,cl.name as BbsColumnName<br/>from crm_bbsrighttempletdetail a <br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew b on a.templetid =b.id<br/>&#160;&#160;&#160;&#160;left join CRM_BbsColumn cl on a.columntypeid = cl.typeid <br/><br/>-- bbs个人模板归属情况。<br/>sel&#101;ct a.*,e.name,l.name,u.templetid,u.templetname<br/>from crm_bbsright a<br/>&#160;&#160;&#160;&#160;left join crm_employee e on a.employeetypeid=e.typeid<br/>&#160;&#160;&#160;&#160;left join crm_loginuser u on e.typeid = u.InnerObjectTypeID and u.innerobject =&#39;Employee&#39;<br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew l on a.employeetypeid = l.employeetypeid<br/><br/><br/><br/>-- 返回登录用户的用户名以及左侧菜单权限<br/>sel&#101;ct u.innerobjecttypeid,ll.id as tmpId,<br/>&#160;&#160;&#160;&#160;u.templetid,u.templetname,l.name as LimitTempletNewName,e.name<br/>from crm_loginuser u <br/>&#160;&#160;&#160;&#160;left join crm_employee e on e.typeid = u.InnerObjectTypeID and u.innerobject =&#39;Employee&#39;<br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew l on u.templetid = l.id<br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew ll on u.innerobjecttypeid = ll.employeetypeid and u.innerobject=&#39;Employee&#39;<br/>wh&#101;re templetid =0<br/>o&#114;der by e.name<br/><br/>sel&#101;ct ll.id as llid,e.name,e.isactive<br/>from crm_limittempletnew ll <br/>&#160;&#160;&#160;&#160;left join crm_employee e on e.typeid =ll.employeetypeid<br/><br/>--开始清理无效的权限明细<br/>BEGIN TRANSACTION<br/>--dbo.CRM_LimitTempletNew 表中除了模版以外,其他标明是职员的都是单独定义权限的.而且现在有很多都是垃圾资料<br/>del&#101;te from crm_limit wh&#101;re limittempletid in (<br/>&#160;&#160;&#160;&#160;sel&#101;ct ll.id as llid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;--,e.name,e.isactive&#160;&#160;&#160;&#160;--如果要查看明细可以直接把这行注释掉<br/>&#160;&#160;&#160;&#160;from crm_limittempletnew ll <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;left join crm_employee e on e.typeid =ll.employeetypeid<br/>&#160;&#160;&#160;&#160;wh&#101;re e.name is null o&#114; isactive is null o&#114; isactive =0<br/>)<br/><br/>del&#101;te from crm_limittempletnew wh&#101;re id in (<br/>&#160;&#160;&#160;&#160;sel&#101;ct ll.id as llid<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;--,e.name,e.isactive&#160;&#160;&#160;&#160;--如果要查看明细可以直接把这行注释掉<br/>&#160;&#160;&#160;&#160;from crm_limittempletnew ll <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;left join crm_employee e on e.typeid =ll.employeetypeid<br/>&#160;&#160;&#160;&#160;wh&#101;re e.name is null o&#114; isactive is null o&#114; isactive =0<br/>)<br/><br/>-- sel&#101;ct * from dbo.CRM_LimitTempletNew o&#114;der by id <br/><br/>-- 显示清理结果<br/>sel&#101;ct ll.id as llid,e.name,e.isactive<br/>from crm_limittempletnew ll <br/>&#160;&#160;&#160;&#160;left join crm_employee e on e.typeid =ll.employeetypeid<br/><br/>--先清除所有的BBS权限明细<br/>sel&#101;ct count(*) from crm_bbsright<br/>del&#101;te from crm_bbsright wh&#101;re employeetypeid in (<br/>&#160;&#160;&#160;&#160;sel&#101;ct u.innerobjecttypeid<br/>&#160;&#160;&#160;&#160;from crm_loginuser u <br/>&#160;&#160;&#160;&#160;wh&#101;re u.templetid =0 and u.innerobject=&#39;Employee&#39;<br/>)<br/>sel&#101;ct count(*) from crm_bbsright<br/><br/><br/>ROLLBACK TRANSACTION<br/><br/>-- 某个模板的明细权限<br/>sel&#101;ct ln.name,l.*<br/>from crm_limittempletnew ln<br/>&#160;&#160;&#160;&#160;inner join crm_limit l on ln.id = l.limittempletid<br/>wh&#101;re ln.name &lt;&gt;&nbsp;&nbsp;&#39;&#39;<br/><br/><br/><br/><br/>(sel&#101;ct ln.name,l.*<br/>from crm_limittempletnew ln<br/>&#160;&#160;&#160;&#160;inner join crm_limit l on ln.id = l.limittempletid<br/>wh&#101;re ln.name &lt;&gt;&nbsp;&nbsp;&#39;&#39;<br/>) as TmpDetail<br/>inner join <br/><br/><br/><br/>sel&#101;ct * from crm_loginuser wh&#101;re loginname =&#39;张&#39;<br/><br/>-- 应用一个模板的过程，先应用左侧菜单模板再应用BBS权限<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.accdb.net/default.asp?id=1521</link>
			<title><![CDATA[CRM 7.0SP2 栏目的权限]]></title>
			<author>access911@gmail.com(陈格)</author>
			<category><![CDATA[财务ERP、企业管理]]></category>
			<pubDate>Mon,07 Jun 2010 18:18:04 +0800</pubDate>
			<guid>http://www.accdb.net/default.asp?id=1521</guid>	
		<description><![CDATA[crm_limit 是具体的权限<br/>crm_limitTempletNew 是模板和每个人所归属的模板<br/><br/><br/>Sel&#101;ct *<br/>FROM CRM_LimitTempletNew<br/>o&#114;DER BY Name DESC<br/><br/><br/>sel&#101;ct a.* ,b.name<br/>from crm_bbsrighttempletdetail a <br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew b on a.templetid =b.id<br/><br/>sel&#101;ct a.*,e.name,l.<br/>from crm_bbsright a<br/>&#160;&#160;&#160;&#160;left join crm_employee e on a.employeetypeid=e.typeid<br/><br/>&#160;&#160;&#160;&#160;left join crm_limittempletnew l on a.employeetypeid = l.employeetypeid<br/><br/><br/>templetname = &#39;&#39;]]></description>
		</item>
		
</channel>
</rss>