发布新日志

  • 截取字符问题

    2012-09-18 17:37:18

    select substring(CityName_CH,1,patINDEX('%/%',CityName_CH)-1) from City
     
    where patINDEX('%/%',CityName_CH)>0
     
    union
     
    select CityName_CH from City
     
    where patINDEX('%/%',CityName_CH)=0
     
     
    ------------------------------------
     
    patINDEX('%/%',CityName_CH)    返回某字符第一次出现的位置。
     
     
     
  • 《CIO是如何说服CFO的》

    2012-08-10 16:43:43

    《CIO是如何说服CFO的》
      今天是明峪公司CIO王宇航与CFO寇德仁对“分销系统集中管理”的议题做出裁决的日子。到目前为止,他们已经在这件事上耗了一周的时间。
      明峪是一家生产消费品的企业,和很多公司一样,他们的产品通过经销商卖给客户,在全国建立了很多办事处,来管理和指导经销商销售。
      为了加强对办事处的管控和及时了解库存、订单、发货以及应收账款的信息,2个月前,明峪公司在CIO的带领下,为办事处实施了分销系统,下一步,王宇航要把经销商的往来账款信息全部集中管理。
      流程必须修改
      用信息化进行集中管理,原先的流程必须修改,否则分销系统的实施就没有意义。明峪公司的经销商在总部和办事处都有提货业务,整车货物从总部发出,零星货物是从办事处发出。各记各提货的往来账,这样一来,人为造成一个经销商有二个往来账户。办事处会计每天和总部沟通最多的就是“今天谁到账了,谁的往来账户还有多少钱?”。
      王宇航把想法向公司的常务副总汇报,常务副总说,他对具体业务和流程不清楚,无法下结论,指示CIO和相关部门研讨。如果相关部门同意,流程修订没有问题。
      王宇航希望通过整合分销系统,把流程重新梳理,经销商的两个账户合并为一个,所有的到款信息由财务部门统一录入。这样,总部可以监控所有经销商的应收账款;办事处也可以随时向经销商提供所有的往来明细,提高了对经销商的服务水平。
      沟通遇到难题
      王宇航企图全体总动员,在最短的时间内把项目搞定。但是结果远不及想象的那样如意。
      王宇航把思路和相关部门做了沟通,其它部门都非常支持,但财务部门对这个项目亮了红灯。“所有的到款单都是财务录入,我们的工作量加大了”,“上周的瘦身运动财务部门被强行精简了好几个人,工作已经非常忙了,现在又增加了工作量……。”
      初次受阻,王宇航早有心理准备,他用了几个晚上准备,使自己尽量站在寇德仁的角度来想问题。“分销系统集中管理”尽管录入所有到款单会增加一些财务人员的工作量,但由于往来信息的共享,同时也会减少财务部门为办事处服务时间,平均来说,并没有加大财务的工作量。
      花了几天时间,王宇航把新流程涉及的细节都考虑了一下,把财务可能提出的问题也做了准备,然后王宇航确定了今天上午,再次与财务部门进行讨论。
      令人沮丧的是,会议并没达到王宇航预想的效果。财务人员在寇德仁的引导下,提出很多细节问题。IT部门尽管作了精心的准备,到底对财务管理的细节不是很清楚,最终“月底转账”的问题让王宇航听不明白、解释不清,会议进行到中午只能暂停。
      利用中午时间,王宇航把问题搞清楚了。为了增加胜利的砝码,王宇航又通知了相关几个部门参加下午的会议。令王宇航失望的是,寇德仁推托有事没有参加。在下午的会议中,王宇航对新流程进行了详细解释,并对上午提出的问题做了解答。财务部门也许是群龙无首,表示要把会议情况通报给寇德仁,让他来决定。
      CFO成为最大阻力
      在王宇航眼里,这位CFO没有大局观,完全站在本部门立场上,抱着多一事不如少一事的态度。下午的会议因故不参加,已说明了他的立场。
      王宇航为难的是,寇德仁是企业的老人,年龄比较大,对新事物没有积极性。寇德仁对前一阵企业瘦身做法本身就有抵触心理,再加这次“集中分销管理系统”的实施,他更加难以接受。
      王宇航感觉无法从正面说服他,很犯难。他想,如果把这件事向常务副总汇报,担心领导最关心的是销售业绩,对这块业务不了解情况,很难说会做出什么判断;即使领导同意了新流程的执行,以后项目的推进涉及到财务的地方还有很多,如果把寇德仁得罪了,王宇航担心对今后项目推进非常不利。
      如果这个流程不改,分销项目的作用将大打折扣,对企业也是个巨大的损失。
      夜色降临,王宇航伏案桌前深思,该怎么做才能避免危机呢?(刘梅)
      ◎ 点评专家
      赵春雨 永恩投资(集团)有限公司达芙妮中国总部信息总监
      欧阳红涛 北大纵横管理咨询公司咨询顾问
      张航 皇明太阳能集团IT经理
      徐志宏 杭州联华华商集团有限公司信息部主任
      不要企图一次解决所有问题
      项目实施的时候,一定要事先和公司高层、平级达成对项目的目标、价值、成本的认识,统一实施框架和方法。
      从案例描述上来看,明峪公司CIO王宇航所遇到的问题可以分为4类:系统的价值没有对高层阐述明确;技术变革与流程变革集中处理,风险过大;在项目的控制上时间风险控制有问题;在变革的过程中公司没有完成统一业务目标和实施方式。现在来具体讨论每个问题。
      首先看对系统价值的理解。CIO王宇航主持的这个项目,公司常务副总或其它高层还没有非常明确的价值认定。不仅对“影响销售”产生担心,没有从眼前和长远的未来予以明确,而且,系统的价值远远没有宣传清楚,同时,系统的对公司的运作成本的影响也没有非常明确。从而导致公司最高管理层的支持不是非常有力。
      由于CIO与CFO的地位问题,经常是CFO占据优势地位,所以,高层的支持是非常重要和关键的,宁愿准备好了不使用,也一定要准备好。王宇航需要重新评估系统对公司各方面的影响,首先与公司最高层达到一致的意见,特别是关于成本、效益部分。
      其次,在技术变革(IT新系统的使用)和流程变革上,没有处理好流程变革为主,系统变革为辅的关系。原则上使用新的IT系统实际上是改变业务运作流程,在IT系统没有正式实施之前,必须要对流程变革做好定位。而流程变革根本上是调节不同部门之间的利害关系。
      如果各个部门采取有效的双赢合作,项目就会非常幸运地实施并取得成功。实际上,绝大部分项目都是需要进行“利益斗争”,达成都可以接受的条件才能进行下去的。
      这次,由于财务部不支持的拖延行为,导致项目很难进展,借口是“工作量增加”,本质上是原来没有沟通好,同时也使“部门利益”“受损”。在系统实施时,这种事情是极为常见的。此时,可以通过IT系统本身的变更来避免所谓的“流程变更”,使“部门利益”受损——以后再逐步进行流程优化或变更。
      针对这次的“把经销商的往来账款信息全部集中管理”这个目标,可以用IT系统的手段使得总公司财务、办事处财务仍然按照原来的流程工作,但是目标仍然可以达到(使用实时在线的统一系统平台和经销商的账号管理,总公司和办事处财务人员同时操作同一个数据库:人员分布而数据集中)。等以后系统平稳运作后,进行成本效益分析,看看是否可以把财务人员集中。
      再者,项目的时间控制上,对于需要进行组织变革、流程重做的工作,必须在IT系统正式实施之前完成,避免在实施过程中的时间风险。
      由于公司高层的决策对项目的风险是最大的,所以,在项目设立的时候就必须就企业的组织变革、流程变革、成本影响(工作量和部门利益关系)构建一个指导性的框架。
      就这个项目中,针对财务部CFO提出的工作量问题,如果事先有框架性方案,就容易解决。现在再解决这个事情,就会陷到具体的“泥潭”中,对项目有严重的影响。现在是需要尽快摆脱这个困扰,有可能会牺牲一些成本或流程的变革,留待以后解决。
      最后,由于公司在项目设立的时候没有达到一致的业务目标和实施方式,在项目的进行中,各种利益冲突就会暴露出来,甚至一个很小的问题就会影响项目的开展。特别是在与平级部门的合作过程中,所谓的“沟通”有时是很难奏效的,甚至会遇到故意拖延或者找茬不解决。
      这个时候必须通过公司高层形成共识,对相关部门施加压力,“赶鸭子上架”;同时还需要提供有效的成本或者利益分析报告、合理的实施过程,以推动项目的进展。
      CIO王宇航采用的发动群众的方法在某些方面类似“群众革命”,如果高层还没有达成一致,这种方法会出现严重的问题;如果高层、同级管理人员的意见一致了,就要充分发动群众了。企业里面一样,任何“变革”肯定会有成本的、有牺牲的,关键是看“谁”支付成本、“谁”被牺牲了。在这个问题上, CIO们需要有一定的政治手腕。
      总体来讲,在项目实施的时候,一定要事先和公司高层、平级达成对项目的目标、价值、成本的认识,统一实施框架和方法;对不同的部门、不同态度或者不同支持程度的员工,采用合适的推动方式,以企业业务成功为核心,达到项目预定的目标、完成业务的变革。
      *应当尽早让企业高层参与
      在企业内部,关键业务的发起人应该是主管领导,而推动者应该是企业的最高领导人。
      息已经成为企业最宝贵的资源之一,尤其对于竞争比较激烈的行业,如:IT、房地产、快速消费品等,在这些行业内,资金、人才、技术等资源都被信息资源相对弱化,能否对企业内部和外部信息进行及时、有效处理,已经成为企业的一种新的核心竞争能力。
      毫无疑问,作为案例中的这家消费品生产企业,对各种信息进行集中管控,对企业进行信息化管理是必不可少的,问题是如何有效地推动信息化建设。如果连项目的推行都无法实施,那么再好的构思和方案都是空谈。在本案例中,CIO遇到的最大问题就是信息化实施遇到了阻力,而这种阻力来自信息化的另一个关键主体——CFO.
      笔者曾经为国内一家大型上市汽车配件企业(A公司)提供过流程再造咨询服务,这家企业也遇到了类似明峪公司的问题。A公司生产的是汽车的电子仪表配件,主要客户是下游的汽车总成厂。过去,A公司是采取直销的模式,直接对总成厂进行供货,一直没有什么大问题。后来公司品牌知名度高了,在维修的散客市场有了一定的品牌效应,不少修车的客户指名要换该公司的产品。A公司了解到这一情况后,就进入维修市场,开始零售业务。
      但A公司一直是纯生产型企业,对汽车整车厂又采取的是直销的方式,双方的合作单一而稳定。由于公司原来并没有直接面对市场的营销经验,就采取了代理商销售模式,后来公司发现,代理商的实力越来越强大,完全把握了公司的销售渠道和终端零售客户;再加上公司对代理商管理经验很少,居然出现代理商私自提价,与公司发货部门勾结虚报损毁吞货,甚至直接批量骗取公司货物然后走人的现象,让公司蒙受了巨大损失。
      公司高层意识到了问题的严重性,请咨询公司出谋划策。考虑到A公司的实际情况,咨询公司对纯代理的营销方式进行改进,在代理商的基础上加了一级管理机构,即分销中心。
      将全国的维修市场划分为几个大区,每个区建立一个分销中心,由各个分销中心管理下属的经销商,建立经销商管理机制,对经销商资质进行审查,清除不合格的经销商;同时各分销中心与公司总部签订经济责任状,既要完成销售任务,又要把各种费用和损耗控制在一定范围内。通过这种改变达到了很好的效果: A公司长期居高不下的销售费用降低,应收账款比例下降,销售额提高了。
      笔者举这个例子是想说明:业务模式改变,流程就必须改变。与明峪公司不同的是,A公司是由集中向分散改变,明峪公司是由分散向集中改变。所谓“兵无常形”,不同的行业、企业,采取的管理模式肯定是不同的,信息流的走向也是不同的。
      在本案例中,明峪公司出现问题的实质是什么?
      表面原因是CIO和CFO之间的沟通不畅,实质是流程优化或再造过程中的不同流程主体利益群体间的冲突。我们知道,在企业的实际运营中,流程的调整,往往就意味着相应权利和责任的调整。这种本质性的冲突由当事人双方自行调整是不可能解决的,必须由第三方更权威的力量进行平衡。
      CFO不愿意合作的可能原因:
      1、因为对新流程的理解不透彻,让CFO感觉新的举措将会影响财务部门原有的地位,从而影响CFO的某些权威;并且感觉这种权威将会向CIO转移。换言之,CFO将CIO视作了一种威胁。
      2、具体实施过程确实会增加一部分工作量,如果对新流程的宣贯、理解不到位,相应部门员工也会有一定的抵触情绪。
      3、CFO与CIO是平级员工,由CIO发起并直接推动的工作,会让CFO心理上觉得难以接受,产生“受平级人员指挥”的感觉。当然,这就与CIO的工作技巧和CFO的心胸有关了。
      那么如何解决王宇航的问题呢?
      在企业内部,关键业务的发起人应该是主管领导,而推动者应该是企业的最高领导人。王宇航的问题在于没有得到公司主要领导的充分支持。像流程优化这样涉及企业整体系统调整或者需要各部门密切配合的企业行为,仅靠一个部门是很难独立推动的。
      我们可以想象:原有的分销系统是两个中心,一个是公司总部,一个是办事处,而改进后的分销系统变为一个中心,即公司总部直管。原有的信息流是两个通道:经销商分别对应总部和各办事处;现在的信息流变为一个通道:经销商直接对应总部。相应地,涉及流程调整部门的责任、权利、工作量等都会改变。
      如果王宇航事先向公司常务副总全面、细致地说明即将实施的“集中分销管理系统”对公司的重大意义,并得到常务副总的亲自推动,那么效果就好得多。任何事情都是这样,一旦形成僵局,要破局将会非常麻烦。
      如果一开始就由常务副总主持召开上新系统的高层领导专项会议。在会上,一方面由常务副总亲自说明上新系统的必要性和对公司产生的新价值;另一方面由王宇航对大家进行新系统专业性的培训,对新系统进行充分的解释,那么大家接受起来就容易得多。
      同时,在公开的会议开始之前,王宇航就应该判断哪些部门将会对新系统有较强烈的反应,并提前与这些部门的领导人进行充分、细致的沟通,争取将问题解决在会议开始之前,而不是突然抛出一个大方案。
      现在,王宇航应该私下与CFO进行一次推心置腹的长谈,化解对方的抵触心理,深刻了解对方不愿意合作的原因是什么。如果是笔者上面猜测的原因,那么更应该向对方坦诚地说明自己改变原有流程的初衷,让对方能信任自己,进而转变态度。最坏的打算:寻求公司最高领导人的权利支持。
      主导项目要争取强势
      IT部门主导的信息化项目,IT经理一定要强势,否则王宇航应当在项目启动前把主导权给其它部门领导或某个副总。
      这个案例中发生的事情有一定的普遍性,我也看到了自己企业的影子。这是个IT部门主导的信息化项目,比业务部门主导的难度大些,对IT经理的要求更高,IT部门一定要了解业务,甚至对细节也要关注;同时要取得业务部门的支持,避免业务部门产生“IT部门手伸得太长”的想法,尽量把功劳都归于业务部门。
      根据案例,可以得出这样几个推论:
      1.王宇航要做的事情对整个企业是有利的,技术上也完全可以实现,手工状态下,明峪公司的财务管理水平是较低的。
      2.IT经理对业务还是比较熟悉,建议也得到了财务部以外其它业务部门的认可,财务部反对的理由是放不上台面的。
      3.“寇德仁对前一阵企业瘦身做法本身就有抵触心理”说明寇德仁对公司的企业文化并不认同:“上周的瘦身运动财务部门被强行精简了好几个人”说明他在公司的地位并不强势,领导对财务工作并不满意:“年龄比较大,对新事物没有积极性”,现在几乎所有企业的标语中都会有“创新”一词,如果寇德仁没有特殊背景,在明峪公司可能没有晋升空间,能保住现在的位置已很不错。
      如果流程不优化,项目基本离失败不远,作为王宇航一定要让自己的建议得到通过,IT部门主导的信息化项目,IT经理一定要强势,否则王宇航应当在项目启动前把主导权给其它部门领导或某个副总,但现在已来不及,现在有三个策略:
      1.上策,说服寇德仁支持自己的工作。寇德仁现在应该有些怨言,王宇航是否能私下和他沟通,让他有个发泄的机会,同时站在寇德仁的立场上,说明对财务的有利之处,可提高财务管理水平。如果拉进了双方的关系,问题自然解决。
      2.中策,借领导和其它部门的力量逼寇德仁同意。对企业有利的事情领导一定是赞同的,寇德仁的反对理由站不住脚,加上其在企业并不强势的地位,我觉得常务副总最后会支持王宇航。在企业里尽量要少树对立面,但既要做事又要做老好人,难度太大了,从老板角度看,企业不需要一堆搞平衡的人。
      3.下策,流程维持现状。去实施流程不优化的信息化项目,实在是吃力不讨好的事情,这样的项目不做也罢,如果是为了混日子,另当别论。放弃项目主导权,即使将来项目成功了,对王宇航也是失败。
      不宜当众和CFO发生冲突
      CFO在企业中是一个很重要的角色,一般不宜在有下属参加的会议上与其发生正面冲突,这样,即使工作中有不同的意见,一切以企业利益出发,也容易做到求同存异。
      如何能够跨越时空,从总部的角度真正做到对异地的分支机构或连锁店进行细致、及时而有效的管理,这已经成为目前跻身于大市场的企业家们的管理瓶颈。
      分销管理软件系统能有效地解决异地分支连锁机构与总部之间信息反馈慢、管理效率低等问题,全面地将分支机构所有进销存、财务信息及时安全地汇总到总部,为总部提供决策支持,真正实现将异地分支连锁处于近在咫尺的管理中,实现总部与各分支连锁机构的一体化管理,实现信息共享、分散经营、集中管理的目标。
      案例中明峪公司的经营模式也确实需要有一套适用的分销管理软件系统来实现分散经营集中管理,这是企业生存和发展的需要。
      明峪公司的办事处已经在2个月前实施了分销系统,当CIO要“把流程重新梳理,经销商的两个账户合并为一个,所有的到款信息由财务部门统一录入”时,与CFO发生了意见分歧,得不到CFO的支持。
      从保持业务正常开展的角度考虑,CIO可以对公司现行的业务流程再次进行系统细致的调研。对现行的业务流程存在的优点、缺点,听取业务、财务、办事处、经销商、公司领导层人员等各个方面的意见。一切从企业实际出发,现成的商品化分销管理软件的业务流程并不一定适合每个企业,各个企业在采用现成的商品化的管理软件过程中,一定会要对软件的流程、功能进行裁减和调整。
      一般而言,商品化的分销管理软件会采用基于互联网的软件运行模式,通过互联网,能够实现所有分支机构和总部的数据实时共享。
      案例中明峪公司通过在全国建立的很多办事处,来管理和指导经销商销售,这种业务处理模式的建立和运行,有其合理的方面,案例中“流程必须修改”的诉求值得推敲。
      借助基于互联网的分销管理系统,设置好系统的基本配置参数,设计好各个经销商在分销系统中的往来账户,针对现实存在的一个经销商有二个或多个往来账户的情况,可以借鉴财务会计科目设置的方法,在对现有的经销商资料进行疏理的基础上,在系统中设置经销商的一级账户(相当于会计的一级科目),将各个办事处目前在用的经销商账户作为明细账户,与经销商的一级账户建立关联。
      通过合理设置操作权限,如设置好“操作员可使用的功能模块”、“操作员可管理的办事处”之类的权限,就可以实现各个办事处会计人员在各自的办事处通过互联网登入分销管理系统的有关模块,在经销商的明细账户中录入经销商在自己所在办事处发生的日常往来账务数据,没有必要将“所有的到款信息由财务部门统一录入”。
      总部财务部人员也可以在总部登入分销管理系统,在经销商的明细账户录入经销商在总部发生的日常往来账务数据。可以根据权限,让办事处的会计人员和总部的财务人员都可以查询经销商在整个公司(所有办事处和总部)的全部往来账数据(一级账户数据和明细账户),可以消除“今天谁到账了,谁的往来账户还有多少钱?”的对账的麻烦,同样可以实现总部可以监控所有经销商的应收账款。
      办事处也可以随时向经销商提供所有的往来明细,提高对经销商的服务水平的目标。
      如此一来,绕开了财务部门反映的“所有的到款单都是财务录入,我们的工作量加大了”,“上周的瘦身运动财务部门被强行精简了好几个人,工作已经非常忙了,现在又增加了工作量……”的意见,可以将对业务的影响降到最小程度。
      要与CFO沟通协调
      CFO在企业中的地位和作用是不言而喻的,在我国的许多企业中CIO与CFO还不是一个相同重量级的。案例中,CFO对前一阵企业瘦身做法有抵触心理,新的流程提出所有的到款单都要财务录入这样的调整方案,更加大了实施的难度。
      作为案例中的CIO,要想让CFO认同自己的意见,需要讲究沟通的方法,可以采用会前个别沟通,把自己的想法与CFO做充分解释,对于一些专业性较强的术语,更是要想办法用通俗易懂的语言或例子解释清楚,也要认真倾听CFO的意见,弄清楚他的真正意图。对于他们提出的一些系统使用中的所谓“问题”,在系统功能上、权限设置上、操作规程上以及操作的方便性等方面充分的了解,尽可能给他们使用系统提供方便。
      从本案例看,可以收集一下财务人员目前的工作状态中,用于处理经销商往来账务的工作时间,统计汇总分析各地办事处的经销商往来账务数据等工作所花费的时间。
      如果采用新流程,各个岗位具体操作的工作内容会有变化,岗位的忙闲有变化,从数据采集录入、汇总统计分析这一条工作链来看,总的工作所花费的时间会比原来的少些。更重要的是,提高了数据的及时性、准确性等数据质量。收集这些数据后与CFO进行个别的交流沟通,可能会改变他的看法。
      CFO在企业中是一个很重要的角色,一般不宜在有下属参加的会议上与其发生正面冲突,这样,即使工作中有不同的意见,一切以企业利益出发,也容易做到求同存异;有些问题,双方个别沟通无法取得一致的,可以在公司领导班子会议上进行阐述、分析和讨论,形成决议,这样贯彻落实起来会有效些。
     
  • 修改远程登录默认的端口号

    2012-07-20 13:45:30

    修改远程登录默认的端口号

    网络管理员需要对远程的计算机进行管理时,一般都是采用远程登录的方法,但是如果采用的是windows的的默认端口,很容易引发安全问题,因此作为一个管理员更改远程登录windows系统默认端口3389的访问是必须的,方法如下:

    在修改缺省的3389端口号码时,你可以依次单击“开始”/“运行”命令,在打开的系统运行对话框中,
    执行注册表编辑命令“Regedit”,在随后出现的注册表编辑界面中,用鼠标逐一展开注册表分支
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
    在对应“tcp”分支的右边子窗口中,选中“PortNumber”双字节值,并用鼠标双击之,在随后打开的
    数值设置窗口中,选中“十进制”选项,这样你将看到缺省的终端服务端口号码为“3389”,此时你
    可以在“数值数据”文本框中输入其他的端口号码,不过该号码千万不能与系统中已经存在的号码相同,
    否则的话就容易造成端口号码发生冲突现象,从而影响服务器系统的正常运行。比方说,你要将服务器
    的终端服务端口号码修改为“6666”,那么只要先选中“十进制”选项,再在“数值数据”文本框中输
    入数字“6666”,接着将鼠标再定位于注册表分支
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp上,
    再在对应“RDP-Tcp”分支的右边子窗口中,双击“PortNumber”双字节值,然后在对应的数值设置窗
    口中,输入新的数字“6666”,再单击“确定”按钮,最后把服务器系统重新启动一下,这样服务器
    的终端服务端口号码就成了“6666”了。
    还有一个简单的方法就是,打开注册表后按ctrl+F对PortNumber进行查找,找到以后按上面的方法进行修改,后F3查找下一个,再进行修改就OK了!

    现在修改远程登录端口完成,那么对于WINDOWS2003的安全性和用户个人所安装的防火墙而言,并不是修改端口就可以实现使用的。

    我们有可能在WIN2003里做了安全策略限制,在“本地连接”“属性”“TCP/IP”“属性”“高级”“选项”中,对TCP、UDP、IP分别作端口允许设置,在系统自带的防火墙中设置为:打开防火墙,启动,在例外,选中WEB服务,添加端口号。

    此外,用户如果自己安装了防火墙,也应该在端口内添加规则。这些步骤一步未做到,则就连接不到远程上啦

    打开客户端管理连接器,单击已经建好的某个连接,单击“文件(file)”→“导出(Export)”……

    用记录本或其它文本编辑软件找开刚导出的这个.cns文件,找到“Server Port =3389”这一行了吗?

    把这个默认的3389改成与服务器一样的端口号就行了

    Windows XP/2003 下的修改办法

    使用XP或2003的客户端,它可以显示多彩,还可以有声音,功能更强大。但终端客户端连接端口的修改方法与WIN2000有一定区别:

    按照原来更改2000的客户端的思路,把XP、2003的默认配置另存(在连接界面上单击“另存为”),和2000不一样的是:XP、2003的配置文件后缀是.rdp,WIN2000的是.cns

    用记事本打开这个地default.rdp文件,在里面没有发现什么3389的东东(2000的配置文件是有的),没有这句端口的配置我们就给它加上,假定现在的端口为8933,如下:

    server port:i:8933

    保存,退出即可。

    ------------------------------------

    4、在修改完成以后,我们还需要进行一些安全设置,因为当系统权限设置不当,一个网站被黑客入侵,并上传Webshell以后,他可以通过WebShell读取到你的远程端口。打开控制面板-管理工具-服务,找到“Remote Registry”服务,停止它,并修改启动类型为手动。可以看到它的描述是“使远程用户能修改此计算机上的注册表设置。如果此服务被终止,只有此计算机上的用户才能修改注册表。如果此服务被禁用,任何依赖它的服务将无法启动。”

    最好,再去注册表里面把RemoteRegistry这个键重命名,比如RemoteRegistry-bak2012等.具体地址为HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteRegistry把
    P.S. 当然,网上有一些现成的工具软件也可以修改远程端口,可以百度下。360vps建议还是大家手动进行,安全可靠,也可以增长知识。
  • 巧用数据分析,提升区域市场销量

    2012-07-10 13:54:58

    http://gov.srzc.com/Html/2006-12/25/25940338997-2.htm
    数据分析是销售经理必备的技能之一,但这一点常常被人们所忽视。因为很多人认为销量是从市场中来的,不是分析出来的。下面我们举例来说明,通过数据分析调整市场策略,可以有效提升区域市场销量。

      如果你是一位总经理,董事会不会干预你的日常事务,但你需要每月向董事会提交你的三张财务报表:资产负债表、利润表、现金流量表,这些数据最终反映总经理的经营管理水平。总经理自己也需要随时了解这些相关数据,才能准确掌握企业的经营状况,为下一步的决策提供依据。各种数据,就好象将军的作战地图一样重要。

      销售经理一般比较关心自己所负责区域销售任务的完成、费用控制比率等公司考核的相关数据,但这是一种被动的状态,其实,数据不仅是考核的指标,通过数据分析可以帮助我们发现市场问题,找到新的销量增长点,在几乎不增加市场额外投入的情况下,通过提升管理的效率来提升产品销量。

      李经理因为工作一直表现突出,被调往公司最重要的北京市场。上任前,公司嘱咐他,北京经销商网络好、规模大、实力强,对厂家非常强势,几年来公司产品的销量都徘徊在100万/月,公司希望北京市场能够有一个较大的提升。半年之后,李经理不辱使命,将销量提高到200万/月左右,市场费用比例不升反降,李经理到底是怎样做的呢?

      李经理到北京拜访经销商,经销商的态度给了李经理一个下马威:产品库存大,销售不好,资金占压大,不赚钱。李经理微笑着听完经销商的抱怨,表示自己需要十天时间熟悉北京市场,约定十天以后再和经销商探讨下一步的方案。回到办事处后的第一件事情,就是查看经销商的《进销存旬报》,李经理发现了虽然库存总额较大,但单品数量结构非常不合理,不好卖的产品积压严重,畅销产品库存不足,肯定会出现断货情况!但现在不是给经销商提问题的时候。

      接下来的一周时间,李经理每天跟随业务员巡场,果然发现部分卖场有缺货的情况,同时又发现其他很多市场问题,而这些问题的存在,恰好说明市场还有很大的上升空间,通过走访,北京市场的方案在李经理头脑中逐步清晰成型了。下面仅介绍数据分析方面的一些例子:

      通过库存数据分析提升销量

      通过分析,李经理认为:

      1、 经销商库存产品结构不合理,有的产品库存少造成卖场经常断货,例如最畅销的SKU3,下旬销售明显下降就是因为库存不足;个别单品断货严重如SKU1,影响了实际销售;

      2、 有的产品库存大又造成经销商资金占压如SKU4。

      3、 根据感觉下定单,比较随意。

      一个完整的定货周期,简单的说就是:经销商给公司下定单→经销商收到货→送到卖场上货架,北京市场李经理公司产品的定货周期约为15天,如果经销商单品库存小于15天的销量,肯定会出现断货的情况!因此,15天的销量是每个单品的最低警戒线,单品库存低于这个最低警戒线就要马上下定单;每个单品需要保证两个定货周期的数量才是安全合理的库存;如果单品库存数量超过合理库存,就会造成积压。

      因此,李经理制定出产品的安全库存表:

     

      经过与经销商的反复沟通,耐心说服,又帮助调换了部分滞销品种,经销商逐渐接受了这些做法,几个月以后,北京市场的销量就上升了30%。

    通过SKU销量分析提升销量

      案例一:在分析汇总以往的卖场销售数据时,李经理又敏感发现了新的机会: 

       

      根据经验,SKU9在公司所有的单品销量排名比较靠后,很少引起大家的注意,因此全国的大终端例如万客隆、华联基本都没有进场。但从表中的数据发现,SKU9在整体销量较低的亿客隆、物美-大兴店等销售都处于前两位,甚至高于公司最畅销的单品SKU3,这是为什么呢?

      经过了解,李经理才知道,由于北方气候比较干燥,衣物容易起静电,容易发干、发硬,北京人洗衣时普遍有使用SKU9的习惯,某国际公司这个品类在北京的销量甚至过亿!原来如此,于是李经理制定了一份SKU9的进场计划,公司批准后陆续进入各大卖场,又针对SKU9举办一些终端的促销活动,SKU9最终成为北京市场排名前三位的产品。

      通过促销员销售分析提升销量

      很多人没有很好分析利用促销员的销售周报、月报,仅仅把这些数据当成计算工资的依据,其实,每一组数据背后都有相应的故事,隐藏着它发生时的背景,从促销员的销售报表中可以发现很多管理的问题,发现这些问题并及时调整,就可以有效提升销售:

      案例一:万客隆洋桥店有两名促销员轮流倒班,李经理第一次巡场时检查促销员的销售周报,发现上周销售中,甲促销员为8995元,乙促销员为4637元,刚好是乙促销员当班,李经理就寻问其中的原因,乙促销员回答说上周甲促销员班上有几个团购,因此比她销售多一些。回去以后,李经理查阅了前几个月的报表,发现乙促销员周报、月报上的销售基本都只有甲促销员的一半,经过进一步的了解,问题就出在乙促销员自身素质不佳,工作态度不积极,销量一直比甲促销员差,这样的促销员要换掉。调整之后,万客隆洋桥店的月销量就增长了一万多元。

      案例二:有一次,李经理在研究促销员销售周报时发现,有个卖场的销量从某一天突然下降,而且最近一直比较差,肯定是发生了什么事情!到这个卖场实际了解后得知,前段时间,竞品更换了促销员,这个新的促销员和卖场经理关系密切,采取各种打压手段,使李经理公司的产品销量下降,促销员敢怒不敢言。经过李经理及业务员的多方协调,问题最终基本解决,这个卖场的销量也恢复到正常水平。

      通过促销活动数据分析提升销量

      有一次,公司为家乐福单独推出一款促销套装,半个月的促销档期结束后,这款促销套装就不供货了。李经理研究发现,家乐福促销期间,销量是平时的2.5倍,而这款促销套装占到同期销量的几乎60%!说明这款促销套装非常成功,应该大力推广!在李经理的一再建议下,公司同意也向其它卖场提供这款促销套装做促销,所带来的销量增长是巨大的。

      后来,其它竞争对手纷纷模仿推出相同的促销套装。而这款促销套装以活动换进场,在几乎没有花费进场费的情况下,进入各大卖场,成为公司销量最大的常规产品之一。

      本文只是通过一些个别的例子来说明数据分析对管理、对销售的重要作用,让我们重新认识数据分析的重要性。管理优秀的公司都有专门的数据分析部门,优秀的销售经理也应该建立自己系统的数据分析体系,让数据分析成为日常工作的内容,成为销售管理的基本工具,可能会为你的销售增长带来更多意想不到的机会。

  • countif 函数运用

    2012-07-10 11:03:46

    countif 函数是计算区域中满足给定条件的单元格的个数。
    函数的语法结构为COUNTIF(rage,criteria),其参数range表示需要统计其中满足条件的单元格数目的单元格区域;criteria表示指定的统计条件,其形式可以为数字、表达式、单元格引用或文本。在运用COUNTIF函数时要注意,当参数criteria为表达式或文本时,必须用引号引起来,否则将提示出错。 这是EXCEL中最简单的函数,会使用联机帮助就应当没问题了。
    以下是联机帮助中的内容。
      A     B
    1 数据 数据
    2 苹果 32
    3 柑桔 54
    4 桃   75
    5 苹果 86

    公式                      说明                         (结果)
    =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数 (2)
    =COUNTIF(B2:B5,">55") 计算第二列中值大于 55 的单元格个数 (2)
     
     
    运用数组法:
     
    =IF(COUNTIF($B$2:$B$51,A2),1,0)
     
    判断在第一列中某个单元格出现的数值是否在第二列中有出现。如果存在就显示1,否则为0
     
    =IF(COUNTIF($A$2:$A$51,B25),1,0)
     
     
    判断在第二列中某个单元格出现的数值是否在第一列中有出现。如果存在就显示1,否则为0
     
    西珂琳娜玫瑰美白菁华乳 杏仁致菁纯晚 1 1
    高水能活肌角质乳120g 橙花10ml 1 1
    杏仁紧致提升精华液 杏仁体乳250ml 0 1
    西珂琳娜玫瑰莹白爽肤水 西珂琳娜白爽 1 1
    纤塑体雕精油30ml(新) 高水能活肌角乳120g 0 1
    玫瑰新肌密双重精华乳 盈提升精油30ml(新) 0 0
     

    这是EXCEL中最简单的函数,会使用联机帮助就应当没问题了。
    以下是联机帮助中的内容。
      A     B
    1 数据 数据
    2 苹果 32
    3 柑桔 54
    4 桃   75
    5 苹果 86

    公式                      说明                         (结果)
    =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数 (2)
    =COUNTIF(B2:B5,">55") 计算第二列中值大于 55 的单元格个数 (2)
     
     
    运用数组法:
     
    =IF(COUNTIF($B$2:$B$51,A2),1,0)
     
    判断在第一列中某个单元格出现的数值是否在第二列中有出现。如果存在就显示1,否则为0
     
    =IF(COUNTIF($A$2:$A$51,B25),1,0)
     
     
    判断在第二列中某个单元格出现的数值是否在第一列中有出现。如果存在就显示1,否则为0
     
    西珂琳娜玫瑰美白菁华乳 杏仁致菁纯晚 1 1
    高水能活肌角质乳120g 橙花10ml 1 1
    杏仁紧致提升精华液 杏仁体乳250ml 0 1
    西珂琳娜玫瑰莹白爽肤水 西珂琳娜白爽 1 1
    纤塑体雕精油30ml(新) 高水能活肌角乳120g 0 1
    玫瑰新肌密双重精华乳 盈提升精油30ml(新) 0 0
  • 关注单品平均销售额——侯东的虎狼理论的运用

    2012-07-10 10:30:12

    http://blog.sina.com.cn/s/blog_5983978d0100ak0p.html

     利润=(单品平均销售额*单品数*平均毛利率)— 经营费用
        这是一条众所周知的利润计算公式中的一种,从品项优化的角度说,这条公式对于利润的控制有两个重点,单品平均销售额、单品数和平均毛利率。单品平均销售额和提升单品数的问题是困扰很多零售店主的问题,甚至有很多店主根本就没有想过这类问题。如何去解决这类问题,我从品类管理中得到了启发。

    门店的主推品类对于商品的销售是至关重要的。比如同一商品推荐的形式不同,其销售额可能有天壤之别。但是由于地域性和消费者消费能力的不同,对于各科的购买习性来说,商品和商品之间的集客力就会存在某些差别,这样就会产生一个虎、狼、小白兔、瘦狗的虚拟品项等级——分别代表了集客力差别。

     

     

    A虎类——顾客为解决自身问题而首先想到的首选类商品;

    B狼类——首选类商品之外仍可想到的让自己满意的备选商品;

    C小白兔类——在没有AB类的情况下,会想到的聊胜于无的备选商品

    D瘦狗类——没有门店的引荐,根本不会想到的可选品类。

     

        举例来说:比如一位顾客感冒,进店以后首先会想到的是品牌类的胶囊制剂——虎类商品;其次会想到品牌类的冲剂——狼类商品;根据个人情况不同,比如在没有找到虎狼类的可心商品时,可能会考虑使用一些外用药油(小白兔类商品)来减轻自己的症状;最后,可能选择找个大夫抓点中药,或听从店家的推荐使用一种以前从来没有见过的品种——瘦狗类商品。

       作为管理人员毫无疑问应该了解这些差别,并合理排列推荐次序。但是,在此之中更重要的是要发现那些被埋没了销售潜能的小白兔和瘦狗,并采用适当的措施发挥其潜能,由此让C、D类商品合理的享有基本的权利——让A、B类商品带动C、D类商品的销售。总的来说就是让所有的商品发挥其应有的销售能力。

       但是,C、D类商品的一般是新的商品,如何选择和搭配非常重要,现在,由于价格战激烈,很多单体店或连锁都在使用品类杠杆在调节品类,引进新的高毛利品项来缓冲品牌商品的低毛利威胁。但是,很多门店引进新商品并不得法,甚至反而造成更大的亏损面或者造成现金流出现断流的危险。

       因此,单品数(种类数)是创造利润的重要控制点。

       有效的单品数越多,整个卖场产生的利润越大,所以及时有效的新商品引进也会在一定程度上提高卖场的利润,有时甚至是彻底的扭转门店的销售衰势。有人将这一规律称为单品数杠杆原理。

      整个杠杆是一端为:有效单品数上升;另一端为:无效单品数下降;支点就是:数据分析。

    相对于传统商品管理所实行的柜组管理、大类管理而言,单品数杠杆原理是强有力的卖场细节管理工具。那么,如何运用单品数杠杆原理来组织新品的引进呢?

      我们应该使用“五看点新品引进法”

    1、采购前看分类

    2、销售能力看排行

    3、实际贡献看毛利

    4、注重流动看周转

    5、聚客能力看PI。

    这就要各位主管商品引进和销售的人员进行协调管理、根据不同的商圈进行对接和灵活运用了。总而言之,要重视数据的分析工作,按照数据的真实反映情况,有根有据的进行决策,不要凭经验和想想,这样就能够降低商品引进的风险了。

  • 巧用差别定价来提高客单价

    2012-07-10 10:22:50

    我们知道提升客单价有三条最基本的途径:即价格拉动策略、品种增强策略和品牌引领策略,这三项被称为提升客单价的 “品类优化家族”。

       近短时间,我通过对本地大哥企业的单个品类的定价调查,以及回想起以前在广州工作时,对家乐福和好又多的单个小品类的定价策略研究,我似有所悟——其实他们都是;侯东差别毛利率定价法的运用高手巧用差别定价来提高客单价

       差别毛利率定价法,是品项优化中一个强有力的提升客单价的方法,其作用机理是通过顾客心理的奇妙感受,达到突破价格心理防线,提升顾客购买高利润商品的几率。

       打个比方,我们比较畅销的止咳化痰平喘类用药中,同样是治疗肺热咳嗽痰多的品种,我们可以先通过平常的顾客消费反应,发现本商圈顾客认为该类产品6元以下的产品就比较便宜,而15元以上的就有些高了,那么,我们采购新产品时,从定价策略出发,应该将产品定价等级这样划分:2—3种定价为5.9元的商品(使其成为现金流产品);3—5种12—14.9元的产品(使其成为利润产品);2—3种19.9元以上的产品(使其成为高利润产品);1—2种23元—25元的产品(使其成为特色产品);最后,可以提供一种30元以上的产品,使其成为突破传统心理价位的产品,反衬25元不贵、19.9元适中。

       然而,我在走访本地的一些传统单体店的时候却发现,他们却没有运用相应的制衡策略,很多店从价格区间分布上看,明显倾向于低价位单品,导致价格形象无法超越本地老大哥,客单价自然也就比较低。

       那么,相对于提升客单价,我们应该如何制定定价策略呢?揭开成功门店的面纱后,我们就会发现,他们其实运用了娴熟的定价技巧在提升门店的价格形象和客单价,同时又保证了较高的平均单价和利润率,最终在不知不觉中使顾客接受了高购物单价。

       此外,从品项优化的角度看,我们提升客单价的方法还有:

    1、有意识的推介一些大包装的或进行不同商品的捆绑销售;

    2、不同的商品关联销售;

    3、高低价策略

    4、单票促销价策略

    5、特色品类的差异化策略等等。

      提升客单价,是低交易次数单体店应该首选的一种竞争策略,但是,要顾客顺其自然的接受高价位产品,我觉得最有用的应该是差异化毛利率定价法了。实行这个方法的最基本要求是开阔而稳定的购进渠道,因此,要实行起来也不简单,但是不失为一种提升门店整体价格形象的好方法,希望对大家有用。巧用差别定价来提高客单价

     

  • 用“公式”角度看营业额是怎么来的(

    2012-07-10 09:54:14

    在我们进入正题之前,我们先来分享一些数据。

        目前我国的药店总数大概在32万家,其中有1600家连锁企业,6.8万家单体店,据我市食品药品监督管理局最新统计,我市药店总数已达3050多间,其中市区就有300多间,据了解目前我市药店的数量高居全省第三位,现在每年还新开张170多间药店。我市药店的生存与淘汰市场说了算。

     “行业回暖”,渐渐成为中国医药业内的共识。冬天即将过去,春天悄悄降临,经过了冬天的苦练内功,一些连锁企业欲将在行业春暖花开之时爆发出惊人力量。上市融资、政策推动、市场扩容、工商合作等,都将可能成为零售连锁企业爆发的火种。

    刚刚结束的第19届全国医药经济信息发布会,提出了“资本力”、“推动力”、“爆发力”三个关键词,虽然与会专家们更多地在讨论整个医药产业的发展前景与格局,但从大家精彩的发言中,药店圈人士也正执著地寻觅着引爆零售市场与终端崛起的力量源泉。

     

          在去年9月9日的“21世纪连锁药店发展高端论坛”上,江西开心人大药房有限公司董事长梁永强说出“平价时代终结”的同时,掷地有声地说到:“接下来将是中国药店的一个新时代,在这个时代里,药店应该靠经营能力、管理能力和资本能力取胜。”药品零售业早在前几年就已进入了充分竞争阶段,而行业外资本的进入给这个行业注入了新鲜血液,促进了行业持续快速的发展,也使行业进入了完全竞争阶段。

    科特勒近期在中国的演讲中谈如何才能提供卓越的客户价值时说,以下四者必居其一,或者都具备:以低价取胜、有很高的质量、提供个性化的服务和创新。要使企业不断有新的产品推出,就需要公司拥有创新的企业文化,并学会利用水平营销进行创新。显然,价格竞争只是其中一个手段而已,而且价格战也是一种初级的市场竞争手法,最终随着市场的进一步成熟以后,我们会发现内功修炼不足的企业会随着市场竞争的成熟而退出新的竞争,因为除了一点点的价格优势以外,这种企业并没有其他的优势可言。那么,我们要修炼的内功到底有哪些呢?这是一个庞大的系统。从公司的组织机构的职能方面的完善到购、供、销各个细节流程的规范化及管理,企业文化的建立,不断创新的赢利模式的建立等等,而且是一项长期的工作。零售服务竞争本来就是一场永远也跑不完的马拉松比赛,我们必须做好这个准备。

    下面,我们进入今天的正题。我们将会运用简单易懂的计算公式角度来解答我们今天的课题——营业额是怎么来的。我们店长、组长一定要学会分析我们的销售数据,并且根据这些销售数据来作出改进方案,不要凭空猜测或凭经验来判断。

     

    1、营业额

    门店的营业额是门店商品销售情况、门店资源的配置是否合理及现有资源的有效利用程度、门店在商圈内的知名度与信誉度、门店商品线配置的合理程度、门店员工的实际工作效率与效绩等方面的综合反映。通过对营业额波动原因的分析可以找到其提升的机会点,从而更好地占有市场份额。

    营业额的组成可以从不同的角度进行分析。

     

    公式一:营业额=客单价*交易次数。

    这个公式表明:提高营业额的两个策略重点—提高客单价,提高交易次数。

    公式二:营业额=单位时间的平均营业额* 单位时间数量

        如:月营业额=每天平均营业额*当月天数

    这个公式提示的方向是:我们应该把每月的营业额进行适当的分解,在旺季或销售高峰时段配置更好的促销资源,努力提升单位时间的营业额(时效);在淡季则把精力投放到苦练内功,提升门店销售能力方面,从而起到资源合理配置的效果。

    公式三:营业额=每位员工所产生的销售额(人效)*员工人数

    这个公式提示我们:

    1、营业额可以反映门店员工的工作实效。2、营业额可以反映门店员工的配比是否合理。

    公式四:营业额=商圈市场总份额*门店市场份额占比

    这个公式提示的是门店在商圈内的竞争力水平,以及组织模式、经营策略、商品线配比、知名度、信誉度的水平。

    公式五:营业额=货架米效*货架总长度

            营业额=门店坪效*门店的面积

    这个公式提示我们要合理利用门店的空间,合理分布和搭配畅销商品的陈列位置和陈列面。

    从营业额分解与营业额提升的机会的角度来分析

    公式六:营业额=单品平均销售额*单品数量

    这个公式的分析角度是门店要提高有效单品数量与尽量减少无效单品数量,以数据分析为杠杆做好门店的品项管理。(关于商品线配置问题我们有机会将会用专题的方式用几节课来讲)

     

       本应达到的营业额=实际营业额+损失(潜在)营业额

    损失营业额=畅销商品脱销所流失的销售额+服务不当、项目不全、价格不合理等管理问题导致走单的营业额+商品线缺陷损失的营业额+客观因素影响损失的营业额。

     

    除了营业额以外,我们还要关注几个我们应该关注的数据:

     

    2、客单价(或称购物篮金额)

    是用来衡量每一位顾客平均购买商品的金额。

    计算公式一:客单价=交易金额/交易人数

    从这个计算公式看:客单价可以反映商圈内在本门店适用商品线内的平均消费水平,也反映了门店的商品配置、陈列、员工服务是否能够使顾客产生联想从而产生冲动购买,也反映的商圈内的顾客对门店的信任程度。

    计算公式二:客单价=商品平均单价*平均每位顾客购买的商品个数

    从这个计算公式看:客单价主要反映了—门店的商品配置水平、定价策略、及高、中、低档产品的搭配是否合理;尤其反映了高档产品的销售策略是否正确。

    3、交易次数(即单位时间内在店内消费的顾客数量)

    交易次数=销售额/客单价

    交易次数主要由门店的知名度、信誉度决定的,对于新生企业而言要提高交易次数就首先要提高门店的知名度和信誉度,要创新出门店独特的差异化形象,从而吸引更多的客流。同时交易次数也在一定程度上反映了员工的服务技巧是否能够弥补门店商品线缺乏的空缺。而对于一个开业1年以上的门店而言,交易次数的提升主要策略在于:忠实顾客的培养与维护,再配合提高门店的商圈渗透率。

     

    4、渗透率(亦称集客率)属于市场调查的常用术语

    是指某商店(或连锁店)成功地吸引了多少个家庭到店内来购物。

    定义:某时间段内到该店(或连锁店)至少购买过一次快消品的家庭数的百分比。

                    某时间段内到零售商店至少购买过一次快消品的家庭户数

    计算公式:渗透率=——————————————————————————

                              城市中(商圈内)家庭户总数

     

    渗透率直接关系到门店市场份额的占有率,反映着门店推广策略的正确与否。

     

    5、库存平均周转率

    用来衡量库存的管理水平。库存平均周转率越高,则库存占用越低,存货变现速度越快。库存平均周转率的指标可通过库存周转天数或者月周转次数来衡量。

    相关计算公式如下:

    库存平均周转天数=平均库存/平均销售量

    库存周转次数=30天/库存周转天数

     

    6、存销比

    门店库存金额与销售额之间的比例,可以反映门店库存的合理程度。

    计算公式:

            门店平均库存金额(按销售额计算)

    存销比=————————————————

                    门店平均销售额

     

    合理范围是小于或等于1.75,如果大于或等于2必须调整。这对没有采购规模效应的单体店而言,极具考验。我在门店的时候,看到普遍存在这样一种情况,代理品种的库存相当大,无效商品或者低流动商品的库存也很大。相反,高流动的商品库存往往满足不了顾客的需求,常常有脱销的现象,这必然会造成存销比不合理,也会严重影响门店的形象和造成顾客抱怨。 

    7、报损率

    商品的报损率,直接反映了一个门店店长的管理水平,尤其是在商品管理方面。

    商品报损的原因有几个方面:1、失窃;2、人为损坏;3、养护不当;4、效期报损。

                                报损商品金额

    计算公式:1、库存报损率=————————————(某段时间内)

                                平均库存金额

     

                              

                                报损商品金额

             2、销售报损率=——————————————(某段时间内)

                                总销售额

     

    8、坪效/米效

    是零售商衡量商品销售效率的指标。坪效是平均每坪(3.3平方米)场地的销售额。米效是平均每平方米(或)每米货架产生的销售额。

    坪效和米效反映的是门店空间管理的合理程度,在现实运用中,我们可以用先算出前半年的门店坪效,再算出每组货架的米效,从而产生对比,通过这样的数据准备、分析以后,我们就可以精细的得到每一类商品所占的陈列面是否合理,该加大陈列面还是减少陈列面,该增加商品品项还是减少商品品项,甚至是否有做特殊陈列或货架外陈列的必要。

     

    9、动销率

    是指门店发生销售的商品品项数与门店总品项数之间的比例

    计算公式:

                商品动销品项

    动销率=———————————(某段时间内,一般为3个月)

                 商品总品项

     

    商品流动是零售的灵魂,门店的一切工作应该围绕着两个重点:

    1、商品的管理与销售;2、门店形象的维护与价值积累、发掘。

    动销率反映的是商品线的配置是否合理,门店员工对商品的熟悉程度和推销能力,配置到门店的商品大多是公司用现金的方式采购而后配置到门店,因此商品的动销率,及畅销程度决定着门店的现金周转的财务状况,如果门店的动销率、库存周转率较低会严重影响公司整体的现金流,从而派生出许多商品流动障碍、门店资源改善效率低下等问题,因此动销率是门店必须关注的数据之一。及时对滞销商品的门店间互调、门店商品畅销程度信息共享、滞销商品的陈列转换、滞销商品的特别培训、滞销商品的上游供应商沟通是提高门店商品动销率的好办法,门店应该以能够帮公司处理滞销品种和库存为荣。动销率在有条件的情况下应该精细到每各次品类商品的动销率。

     

    我们总结一下:营业额是怎么来的:营业额是公司及效绩管理成果的集中反映,其主要涉及:公司的制度文化;门店形象;商品采购、定价;商品线的合理配置与定位;商品库存管理与销售;卖场气氛布置;企业宣传,促销;各环节人员素质;商品提示细节等等内容;

    因此,管理无小事,细节决定成败。

  • 我的数据分析报告

    2012-07-09 15:50:27

  • 一个SQL 语句,循环然后找检索数据。

    2012-06-21 14:48:27

     
    重复运用循环语句,用到cast (ab as varchar)  转换字符 
    --------------------------------------------------------------------------------------------------
    DECLARE @txddate VARCHAR(10),@barcode nvarchar(13),@unitcode nvarchar(20),@price float  ;
    DECLARE @sql1 varchar(8000),@sql2 varchar(8000);
    Create Table aList(countercode varchar(20), txddate varchar(10),barcode nvarchar(13),unitcode nvarchar(20), price  float)
    Declare Cur_Table Cursor For 
     select   barcode,unitcode,price from product  --where barcode='6937617066546' and unitcode='GNMC10'
     Open Cur_Table
     Fetch Next From Cur_Table Into @barcode,@unitcode,@price
      while @@Fetch_Status = 0
    begin
     set @sql1='select countercode,txddate,barcode,unitcode,price
        from transactionlog where txdtype=''NS'' and type=''n''  and  price<'''+cast(@price*0.5 as varchar) +'''
         and barcode='''+@barcode+''' and  unitcode='''+@unitcode+''' and txddate like ''%1205%'''
      --print @sql1
     set  @sql2='insert into aList ' +@sql1
     exec (@sql2)
    Fetch Next From Cur_Table Into @barcode,@unitcode,@price
    end
    Close Cur_Table
    Deallocate Cur_Table
    select b1.regionname as '大区', d1.bakNvarchar1 as '代理商', a1.countercode  as '专柜编码'
    ,b1.countername as '专柜名称'  ,a1.txddate as '日期',c1.chinesename as '名称' ,c1.mclassname as '中类',
    c1.price as '原价',a1.price  as '折价' from aList a1 ,counters as b1,product AS c1,Jml_Data.dbo.DA_UserList_Modify as d1  where 
    a1.countercode=b1.countercode  and c1.barcode=a1.barcode and c1.unitcode=a1.unitcode
    and b1.countername  not like '%虚拟%' and  d1.userID in
    (SELECT superiorID FROM Jml_Data.dbo.DA_UserList_Modify where  bakNvarchar1  in
    (select baname from bainfo where countercode =a1.countercode and flag=2))
    order by  b1.regionname,d1.bakNvarchar1,a1.txddate
     
                       
    --drop table aList

     
  • 零售行业如何通过数据分析挖掘会员顾客的价值

    2012-06-07 14:58:29

           会员顾客重要吗?当然重要,看看你身边的零售业或零售品牌们,基本是无一不会员制。你再仔细看看你会发现有的企业只是在模仿,而有的却是在经营会员制。因为大家都把会员制当成稳定销售来源的一种重要渠道了。大家都在攫取顾客的销售价值,而很少有企业通过数据分析去挖掘顾客的附加价值!

            我把会员顾客的价值分为销售价值和附加价值。销售价值顾名思义就是会员可以带来的相对稳定的顾客群和稳定的销售额的价值,附加价值就是通过对会员的购买记录进行分析从而创造差异化的管理以及根据分析结果指导决策的价值。本文不谈策略,只谈零售行业如何通过数据分析挖掘会员顾客的价值。

            在做会员数据分析之前,有一项非常重要的工作要做,那就是数据清洗。因为会员销售记录中有不少是有问题的数据记录。目前所有的POS和CRM系统都不提供数据清洗的功能。一般来讲有问题的数据体现在两个方面:连续消费的卡(几乎每天都有消费记录,这种卡很可能是网络卡或者是卡在店员手中),单次消费金额异常的卡(每次消费金额都很大,超出普通消费者的购买习惯。这种卡很可能是团购卡或网购卡)。这两种消费应该都不是正常会员的消费数据,并且有时它会左右分析结论,所以要在正式的数据分析之前剔除掉。

    一、会员群体的数据分析

            会员群体的数据分析,包括两个方面:会员群体基本信息的分析和会员消费价值的分析。

            会员基本信息的分析包括会员的性别、年龄段、地域、职业、收入、开卡地属性等。这部分分析主要是看顾客群是否和公司的整体策略相吻合,有无变化的趋势,是否需要调整公司策略等。需要注意的是公司策略变化会影响数据规律的变化,比如调整商品结构或者提高开新卡的条件等。

            下面是对某化妆品品牌VIP顾客的部分分析报告:

     

    化妆品品牌VIP顾客

    VIP顾客数据

            针对会员顾客消费价值的分析我把它分为三个方面:财富值、消费力和附加值。会员顾客就像我们的个人财富一样,需要我们倍加珍视和呵护。我们不但要分析他们的消费力,还需要挖掘他们的附加值,以便更好的服务于他们。请见下图:

     

    VIP顾客消费价值的分析

            有关财富值中的开卡率等于新会员卡数除以成交顾客数,这项指标和公司的开卡策略有莫大的关系。开卡率太高和太低都有问题,开卡率太高日后维护成本会增加,开卡率太低不利于财富值的增加。不同的企业会有不同的开卡率,这个值需要企业不断地分析和调整策略,来达到一个平衡。一个企业的会员总数会不断地累积变大,其中必然会产生很多没有价值的会员卡,如果不加以区分会浪费企业的管理资源,所以很多企业提出了有效VIP卡的概念。零售品牌一般定义为滚动12个月内有消费或达到指定的消费金额的顾客为有效顾客,对于零售百货和超市的时间点可以相应修改为6个月和3个月。

            和有效VIP卡相对应的是附加值中的流失率,如果一个零售品牌2010年6月底的有效VIP卡为6万张,而截止到2011年6月底有4万个顾客回来消费过,那12个月内的流失率就是33%。这个流失率是一个滚动概念,每个月都可以进行滚动分析,需要注意的是滚动的时间段务必统一。

            回购频率是指在一段时间内顾客平均回来购买的次数,而平均回头购买天数是指顾客平均多少天会来购买一次(注意这是回来购买而不是只是回来,因为回来而没有购买的数据没办法被统计,未来的科技也许会支持这个指标的分析)。这两个指标是相辅相成的,每个零售企业都希望自己的会员顾客经常回来,最好是天天回头,实际上这些要求都是不现实。所以你会见到很多企业的促销员天天去骚扰顾客,最后顾客不堪骚扰而离去。对于一个企业来说天天回头是不现实的,但是我们完全可以一步一步的提高。下图是一个零售企业的这两个指标图(虚拟数据),希望对大家有所启示:

     

    顾客回购频率

            如何利用这张图?企业需要制定对应的策略来逐步提高这两项指标,比如加强沟通,注意沟通技巧,改变促销活动频率等。沟通频率需要和平均购买天数一致,绝对不能随性。大家还可以留意一下大型超市的促销期的长度,有的是10天,有的是12天,还有的是15天,这个值是和上面两个指标相关联的;

    二、会员个体的数据分析

            会员个体数据的分析指标和群体分析指标大部分是一致的,也包括消费力和附加值的分析。只是我们更多把分析体现在个体差异和群体分类上。找到个体和群体的差异,制定对应的销售策略。下图是某零售百货部分VIP会员的四象限分级管理图(X轴代表顾客的年回购频率即每年回头购买的次数,越往右代表频率越高。Y轴是表示顾客每次回头购买的平均消费金额,越往上单次消费金额就越高。红色十字线是平均值线)。

     

    会员个体的数据分析

    如何解读这个图?

    1.   一象限是黄金顾客,回购频率和平均购买金额都是高于平均值的,二和四象限是潜力顾客;

    2.   一象限一般不需要特别的沟通和维护,他们基本上是公司最忠实的顾客,二象限的顾客需要特别加强沟通频率,四象限的顾客也不需要特别沟通他们回店消费,者是,但是需要店铺内工作做足,提高客单价;

    3.   在资源紧张的情况下三象限不需要特别维护,保持不流失的原则沟通即可。

    未来的针对会员个体的数据分析方向应该是通过对个体的数据研究来指导企业人性化服务上面,需要我们能够比会员更了解他们自己。那时当顾客走进你的店铺的时候,店员的手上就已经拿到该顾客的购买习惯和偏好了,并且根据顾客的喜好也已经设计了好几套推荐方案。当你脱口而出顾客对服装款式和颜色的喜好时,顾客一定会被你折服的!

  • 成交率分析

    2012-06-07 14:45:25

    关于成交率分析,我觉得这个对于门店非常有意义,请评估一下工作量,我先提出来,具体我们再沟通。

        单位时间内的成交笔数除以单位时间段内的进店人数,就等于成交比率,简称成交率,又叫商品成交率、销售成交率。

        成交率是分析服务部门工作态度的晴雨表,相同的产品不同人员的销售成交率比较,马上就可以分析出销售的水平;相同人员不同月份的成就率比较,可以分析出产品因销售季节变化带来的影响。相同功能的产品、不同的外观,通过成交率比较我们可以分析出,顾客对新产品的接受度。

      以下是我截图,供参考:

     

  • 存储过程(循环语句)

    2012-05-22 10:24:12

    存储过程学到的知识:
    1)循环数据查询,利用临时表查询出所要统计的数据
    2)行转列。
     
    IF Exists(Select * From sysobjects Where Name='SP_Sumcx_product' And xType='P')
      Drop Proc SP_Sumcx_product
    go
    Create Proc SP_Sumcx_product
      WITH ENCRYPTION
    /*
    内容:分析促销品数量
    时间:2012-05-22
    */
    As
    Begin
    declare @barcode varchar(20),@mom as char(2),@countercode varchar(10)
    declare @dxstart varchar(6),@dxend varchar(6),@sql_char1 varchar(3000),@sql_char2 varchar(3000),@sql_char3 varchar(3000)
    set @dxstart='120501'
    set @dxend='120531'
    set @mom=substring(@dxstart,3,2)
       create table #cx_table(regionname varchar(20),work varchar(15),countercode varchar(15),countername varchar(80),htype varchar(20),
    mom varchar(4),hday varchar(20),cname varchar(20),cnum int )
     
        create table #pro_table (barcode varchar(15),pro_name varchar(20))
    insert into #pro_table
    select '6937617069264 ','玫瑰新肌密亮肤水'   union
    select '6937617069837','玫瑰活力新肌密5件套'  union
    select '6937617066553','柠檬草多效美容液SPF10'  union
    select '6937617064245','柠檬草补水遮阳乳60ml'  union
    select '6937617069844','玫瑰活力新肌密6件套'  union
    select '6943818799058' ,'复古化妆箱' union
    select '6933365200201' ,'足浴气血养生机' union
    select '6938421612653' ,'名牌空气净化器'
    --select * from #pro_table
    Declare Cur_Table Cursor For
      Select barcode From #pro_table
     Open Cur_Table
     Fetch Next From Cur_Table Into @barcode
      while @@Fetch_Status = 0
    begin
     set @sql_char1='select b1.regionname as ''大区'', a1.countercode as ''代理商'', a1.countercode  as ''专柜编码''
         ,b1.countername as ''专柜名称'',''重点中促'' as  ''活动类型 (大促、重点中促、中促)'','+@mom+' as ''月份'',
         '''+@dxstart+'-'+@dxend+''' as ''活动时间'', '
     set @sql_char1=@sql_char1+''''+@barcode+''' as ''名称'',sum(quantity) as ''数量'' from transactionlog a1 ,counters as b1
         where  a1.countercode in (select  distinct a.countercode  from transactionlog as a ,counters as b
         where a.countercode=b.countercode and  barcode='''+@barcode+''' and  txddate between '''+@dxstart+'''
         and '''+@dxend+'''  )  and a1.countercode=b1.countercode  and b1.regionname in (''华北区'',''华东区'',''华南区'' )
                        and txddate between '''+@dxstart+''' and
         '''+@dxend+'''  and barcode ='''+@barcode+''' and txdtype=''NS''  group by a1.countercode,b1.countername
         ,b1.regionname'
     set  @sql_char1 ='insert into #cx_table '+@sql_char1
    exec (@sql_char1)
     Fetch Next From Cur_Table Into @barcode
    end
    Close Cur_Table
    Deallocate Cur_Table

    --select *  from #cx_table where countercode='01037105' and cname='6937617069837'
    --truncate table #cx_table
    --truncate table #pro_table
    --select * from #cx_table
    --行转列

    select  regionname as '大区', countercode as '代理商', countercode  as '专柜编码'
    ,countername as '专柜名称',htype as  '活动类型 (大促、重点中促、中促)',mom as '月份',
    hday as '活动时间',max(case when cname ='6937617069264 ' then cnum else 0 end) '玫瑰新肌密亮肤水'  ,
    max(case when cname ='6937617069837' then cnum else 0 end) '玫瑰活力新肌密5件套' ,
    max(case when cname ='6937617066553' then cnum else 0 end) '柠檬草多效美容液SPF1' ,
    max(case when cname ='6937617064245' then cnum else 0 end) '柠檬草补水遮阳乳60ml' ,
    max(case when cname ='6937617069844' then cnum else 0 end) '玫瑰活力新肌密6件套' ,
    max(case when cname ='6943818799058' then cnum else 0 end) '复古化妆箱' ,
    max(case when cname ='6933365200201' then cnum else 0 end) '足浴气血养生机' ,
    max(case when cname ='6938421612653' then cnum else 0 end) '名牌空气净化器'
      from #cx_table group by regionname,countercode,countercode,countername,htype,mom,hday
    Drop Table #pro_table
    Drop Table #cx_table
    End  --EndProc
    go
    --select * from #pro_table
    --select * from #cx_table
    -- exec  SP_Sumcx_product
  • 利用表变量和spt_values表来比较两个字串是否相等 .

    2012-03-20 15:29:12

     

    利用表变量和spt_values表来比较两个字串是否相等

          今天在论坛上看到有一位C友提问,如何判断两组字符串是否相等的问题,刚好把手头的工作忙完,就写了一个函数,测试了一下,感觉没什么问题,大家也可以测试一下,有问题请留言给我。

          先看表结构和测试数据: 

    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([col1] varchar(9),[col2] varchar(9))
    insert [tb]
    select 'LGALGDLGU','LGALGDLGU' union all
    select 'LGALGDLGU','LGALGULGD' union all
    select 'LGALGDLGU','LGDLGALGU' union all
    select 'LGALGDLGU','LGDLGULGA' union all
    select 'LGALGDLGU','LGULAGLGD' union all
    select 'LGALGDLGU','LGULGDLGA'
    go
     

         数据中不管顺序,只要字符排序后是一样的,就认为是相等的,所以我们不能使用字符函数直接来比较,我的思路大概就是把每个字串放到一个表中,但由于有些字符在串中有重复,所以还得统计他们的个数,所以如果两个字符串相等,最少得满足两个条件:1、两个字符串的不同的字符个数要相等;2、每个字符出现的个数要相等。

        以下是我写的函数: 

    create function str_def(@s1 varchar(100),@s2 varchar(100))
    returns int
    as
    begin
      declare @result int
      declare @t1 table(col char(1))
      declare @t2 table(col char(1))
      insert @t1
      select substring(@s1,number,1)
      from master..spt_values
      where type='P' and number between 1 and len(@s1)
      insert @t2
      select substring(@s2,number,1)
      from master..spt_values
      where type='P' and number between 1 and len(@s2)
      if not exists
      (
        select 1
        from (select col,count(1) as cnt from @t1 group by col) a
        where not exists
        (
          select 1
          from (select col,count(1) as cnt from @t2 group by col) b
          where a.col=b.col and a.cnt=b.cnt
        )
      )
        set @result=1
      else
        set @result=0
      return @result
    end
    go
     
    -->查询
    select *,dbo.str_def(col1,col2) AS RESULT  from tb
    -->测试结果:
    /*
    col1      col2      RESULT
    --------- --------- -----------
    LGALGDLGU LGALGDLGU 1
    LGALGDLGU LGALGULGD 1
    LGALGDLGU LGDLGALGU 1
    LGALGDLGU LGDLGULGA 1
    LGALGDLGU LGULAGLGD 1
    LGALGDLGU LGULGDLGA 1

    (6 行受影响)

    */

    drop function str_def

        如有不妥之处,欢迎各位大侠指正,不胜感激。

  • bI基础知识

    2012-03-20 15:13:59

    http://blog.csdn.net/sgtzzc/article/details/4649770

    【前言】

          昨天论坛的SQL Server大版新增了一个BI板块,大家讨论得热火朝天,由于此前因为客户环境的问题,一直在使用sql 2000,没怎么关注这一块的东西,最近刚好要做购物篮的分析,所以到网上搜集了一些资料。为了跟大家保持“步调一致”,也写点或转点东西出来,和大家一起学习和分享。

         这是很好的BI入门资料,对于还不知道BI是什么,为什么要搞BI,以及BI能做什么的朋友来说,应该还是比较有帮助的。很可惜的时候文章中的图片找不到了(文中涉及到参考图片的那部分请忽略),到网上找了一下也没找到,如果有收藏到这部分图片的朋友或看到有这部分图片的朋友,欢迎共享一下。

     

    【转贴内容】

    (1) 老板,你要这么多数据做什么?     
       
    假如你是一个商品零售公司的老板。
       
    你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数据,上亿条销售记录。
       
    这时如果我问你:“反正三年前的数据留着也白白占地方,耗费存储成本,索性把它们全删掉吧,这样不用买硬盘就能容纳新数据,如何?”
       
    你会从容的接受我这个建议吗?
       
    那么老板,你要这么多数据做什么?
       
    是的,和我一样,你也已经隐约认识到数据的价值,这就是我们割舍不下历史数据的原因,就像任何一个现代化企业,甚至就像任何一个传统的票号,如百年老店般虔诚地保存着古老的数据,因为我们有直觉,我们的直觉告诉我们:这些数据有用!
       
    但这仅仅是一种直觉,到底该怎样把这些占据大量存储空间的数据的价值挖掘出来,让这些数据从成本的消耗者变成利润的促进者?
       
    这中间似乎缺少了某些环节。
    (2) Business Intelligence -
    连接数据与决策者      
        BI(Business Intelligence) 是一种运用了数据仓库、在线分析和数据挖掘等技术来处理和分析数据的崭新技术,目的是为企业决策者提供决策支持。
       
    让我们振臂高呼三遍:决策支持,决策支持,决策支持!
        BI
    是一个工厂:
            >> BI
    的原材料是海量的数据;
            >> BI
    的产品是由数据加工而来的信息和知识;
            >> BI
    将这些产品推送给企业决策者;
            >>
    企业决策者利用 BI 工厂的产品做出正确的决策,促进企业的发展;
       
    这就是 Business Intelligence,即商业智能——连接数据与决策者,变数据为价值。
        BI
    应用的两大类别是信息类应用 和 知识类应用,其特征如下表所示:

    信息类 BI 应用

        指由原始数据加工而来的数据查询报表图表多维分析数据可视化等应用,这些应用的共同特点是:将数据转换为决策者可接受的信息,展现给决策者。
       
    例如将银行交易数据加工为银行财务报表。

        仅负责提供信息,而不会主动去分析数据。
        
    例如,银行财务报表工具没有深入分析客户流失和银行利率之间关系的能力,而只能靠决策者结合信息,通过人的思考,得出知识。

    知识类 BI 应用

        指通过数据挖掘技术和工具,将数据中隐含的关系发掘出来,利用计算机直接将数据加工为知识,展现给决策者。

        会主动去数据中探查数据关联关系,发掘那些决策者人脑无法迅速发掘的隐含知识,并将其以可理解的形式呈现在决策者面前。

     

    (3) BI 初级应用模式概览——数据查询(Querying)    
       
    数据查询是最简单的 BI 应用,属于 MIS 系统遗产,虽然出身比较老土,但是目前仍然是决策者获取信息的最直接的方法。
       
    如今,数据查询界面已经彻底摆脱了传统 SQL 命令行,大量的下拉菜单、输入框、列表框等元素甚至是鼠标拖拽界面将后台干苦力的 SQL 语句包装成一个妖艳无比的数据获取系统,而本质仍然没有离开数据查询的几大要素:
       >>
    查什么
       >>
    从哪儿查
       >>
    过滤条件
       >>
    展示方法
       
    目前国外比较流行的数据查询应用已经完全释放了数据查询的灵活性,如右图所示的是 Cognos ReportNet 的数据查询界面 Query Studio,允许用户通过纯浏览器界面,以鼠标拖拽操作定义数据查询要素,并以报表和图表等多种方式展现数据。

    (4) BI 初级应用模式概览——报表(Reporting)   
       
    报表是国内最热衷的 BI 应用之一,这与报表在我国企事业单位中的历史地位是分不开的。我国的报表以其格式诡异、数据集中、规则古怪等特征著称于世,曾经让无数国外报表工具和 BI 工具捶胸顿足。
       
    报表的两大要素是数据和格式,如果没有格式,则报表应用几乎等同于数据查询应用。可以说,报表就是将查询出来的数据按照指定的格式展现。
       
    报表应用包含了报表展现和报表制作两大模块。报表展现就是让决策者看到报表,并允许决策者通过条件定义来选择报表数据,例如选择报表年度、部门、机构等等;报表制作面向报表的开发人员,其格式定义灵活性、数据映射灵活性、计算方法的丰富程度等均影响了 BI 报表应用的质量。
       
    需要澄清一下的是,Microsoft Excel 不算是一个 BI 报表工具,因为 Excel 没有连接数据源的能力,充其量是一个 Spread Sheet。但是 Excel 强大的格式功能让报表制作人员竟折腰,乃至到后来,几乎所有 BI 厂商都提供了面向 Microsoft Excel 的插件,通过插件,Excel 可以连接到 BI 的数据源上,摇身一变为 BI 报表工具,丑小鸭变天鹅。


    5) BI
    高级应用模式概览——在线分析(OnLine Analytical Processing,OLAP)     
        OLAP
    ,即联机分析处理,是 BI 带来的一种全新的数据观察方式,是 BI 的核心技术之一。
       
    我们知道,数据在数据库中是以数据表来存储的,比如某商店的销售数据存储在如下所示的一张数据表中:

    销售时间

    销售地点

    产品

    销售数量

    销售金额

    2004-11-1

    北京

    肥皂

    10

    342.00

    2004-11-6

    广州

    桔子

    30

    123.00

    2004-12-3

    北京

    香蕉

    20

    12.00

    2004-12-13

    上海

    桔子

    50

    189.00

    2005-1-8

    北京

    肥皂

    10

    342.00

    2005-1-23

    上海

    牙刷

    30

    150.00

    2005-2-4

    广州

    牙刷

    20

    100.00

    决策者希望知道的往往是分布、占比、趋势之类的宏观信息,比如下列问题:

            >> 北京地区的销售数量虽时间的变化趋势?

            >> 哪种产品在 2005 年销售比 2004 年销售增幅最大?

            >> 2004 年各产品销售额的比例分布? ……

        面对这种需求,必须用 SQL 语句进行大量的 SUM 操作,每得出一个问题的结果,就需要 SQL SUM。面对上面的 7 条记录,我们可以很容易的得出结果,但是当我们面对百万级甚至亿级的记录条数时,例如移动公司通话数据,每次 SQL SUM 都需要消耗大量的时间来计算,决策者经常是在第一天提出分析需求,等到第二天才能拿到计算结果,这种分析方式是“脱机分析”,效率很低。

        为了提高数据分析效率,OLAP 技术彻底打破以记录为单位的数据浏览方式,而将数据分离为“维度(Dimension)”和“度量(Measure)”:

            >> 维度是观察数据的角度,例如上面示例中的“销售时间”、“销售地点”、“产品”;

            >> 度量是具体考察的数量值,例如上例中的“销售数量”和“销售金额”;

        这样一来,我们就可以将上面这张平版的数据列表转换为一个拥有三个维度的数据立方体( Cube )

    而探查数据的过程,就是在这个立方体中确定一个点,然后观察这个点的度量值:

    当然,数据立方体并不局限于三个维度,这里采用三个维度来说明问题,只是因为通过图形可以表现出来的极限就是三个维度。

        维度可以划分层次,例如时间上可以从日向上汇总为月和年,产品可以向上汇总为食品和日用品,地点可以向上汇总为华北和华南,用户可以沿着维度的层次任意向下钻取(Drill Down)和向上汇总(Roll Up)

    通过这种方式,我们就可以摆脱 SQL SUM 对速度的制约,快速定位符合不同条件的细节数据,更可以迅速得到某一层次的汇总数据。OLAP 技术为决策者提供了多角度、多层次、高效率的数据探查方式,决策者的思维不再被固定的下拉菜单、查询条件所束缚,而是由决策者的思维带领数据的获取,任意组合分析角度和分析目标,这种打破传统的互动性分析和高效率使 OLAP 成为 BI 系统的核心应用。

    (*) 第四喷:BI 高级应用模式 —— 数据可视化与数据挖掘 

        
    (6) BI
    应用模式概览——数据可视化(Visualization)

    数据可视化应用致力于将信息以尽可能多的形式展现出来,目的是使决策者通过图形这种直观的表现方式迅速获得信息中蕴藏的知识,如趋势、分布、密度等要素。     值得一提的是,以 MapInfo 公司为代表的 GIS 软件商,目前也正在努力结合 BI 应用。MapInfo 率先提出了 Location Intelligence 概念,依托于地理信息系统,展现各地区的属性值,例如人口密度,工业产值,人均医院数量等等,这种可视化应用部分与 BI 数据可视化应用重合,并形成有力补充,有时可以在一个项目中互相搭配。
       
       
    上图所示的是 Cognos Visualizer 产品,这家伙用几近哗众取宠的丰富形式展现数据和信息,包含了地图、饼图、瀑布图等近五十种展现图形,并提供了二维和三维两种展现方式。所有的图形元素都是可活动的,例如用户可以通过点击地图上的某一个省,钻取到这个省各个城市的信息,这种可交互性是 BI 与普通图片生成软件的显著差异。

     

     

     

    (7) BI 应用模式概览——数据挖掘(Data Mining)     
        
    数据挖掘是最高级的 BI 应用,因为它能代替部分人脑功能。
       
    数据挖掘隶属于知识发现(Knowledge Discovery)在结构化数据中的特例。
       
    数据挖掘的目的是通过计算机对大量数据进行分析,找出数据之间潜藏的规律和知识,并以可理解的方式展现给用户。
        
    数据挖掘的三大要素是:
             >>
    技术和算法:目前常用的数据挖掘技术包括——
                    
    自动类别侦测(Auto Cluster Detection)
                    
    决策树(Decision Trees)
                    
    神经网络(Neural Networks)
             >>
    数据:由于数据挖掘是一个在已知中挖掘未知的过程,
                    
    因此需要大量数据的积累作为数据源,数据积累
                    
    量越大,数据挖掘工具就会有更多的参考点。
             >>
    预测模型:也就是将需要进行数据挖掘的业务逻辑由
                    
    计算机模拟出来,这也是数据挖掘的主要任务。
       
    与信息类 BI 应用相比,以数据挖掘为代表的知识类 BI 应用目前还不成熟,但是从另一个角度来看,数据挖掘可发展的空间还很大,是今后 BI 发展的重点方向,SASSPSS 等知识类 BI 应用厂商形象逐渐高大,悄悄占据了新的利润增长点。

    上图中是著名的 IBM Intelligent Miner 在分析客户的消费行为。它能对大量的客户数据进行分析,然后自动将客户划分为若干群体(自动类别侦测),并将每个群体的消费特征显示出来,这样决策者就能一目了然的针对不同客户的消费习惯,制定促销计划或广告计划。
       
        
    上述功能如果单靠信息类 BI 应用来实现,则需要决策者根据经验进行大量的 OLAP 分析、数据查询工作,而且还不一定能发现数据中隐藏的规律。例如上述客户分类,对于一个拥有 400 万用户的银行来说,如果没有数据挖掘工具,会把人活活累死的。

    (8) BI 底座——数据仓库技术(Data Warehouse)     
        在开始喷这个主题之前,让我们先看看数据仓库的官方定义:
       
    数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。以上是数据仓库的官方定义。
       
    “操作型数据库”如银行里记账系统数据库,每一次业务操作(比如你存了5元钱),都会立刻记录到这个数据库中,长此以往,满肚子积累的都是零碎的数据,这种干脏活累活还不得闲的数据库就叫“操作型数据库”,面向的是业务操作。
       
    “数据仓库”用于决策支持,面向分析型数据处理,不同于操作型数据库;另外,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
       
    操作型数据库、数据仓库与数据库之间的关系,就像 C:D: 与硬盘之间的关系一样,数据库是硬盘,操作型数据库是 C:,数据仓库是 D:,操作型数据库与数据仓库都存储在数据库里,只不过表结构的设计模式和用途不同。  

    那么为什么要在操作型数据库和 BI 之间加这么一层“数据仓库”呢?

     

        一是因为操作型数据库日夜奔忙,以快速响应业务为主要目标,根本没精力伺候 BI 这边的数据需求,而且 BI 这边的数据需求通常是汇总型的,一个 select sum(xx) group by xx 就能让操作型数据库耗费大量资源,业务处理跟不上趟,麻烦就大了,比如你存了 5000 元钱,发现十分钟后钱还没到账,作何感想?一定是该银行的领导在看饼图?

    二是因为企业中一般存在有多个应用,对应着多个操作型数据库,比如人力资源库、财务库、销售单据库、库存货品库等等,BI 为了提供全景的数据视图,就必须将这些分散的数据综合起来,例如为了实现一个融合销售和库存信息的 OLAP 分析,BI 工具必须能够高效的取得两个数据库中的数据,这时最高效的方法就是将数据先整合到数据仓库中,而 BI 应用统一从数据仓库里取数。

    将分散的操作型数据库中的数据整合到数据仓库中是一门大学问,催生了数据整合软件的市场。这种整合并不是简单的将表叠加在一起,而是必须提取出每个操作型数据库的维度,将共同的维度设定为共用维度,然后将包含具体度量值的数据库表按照主题统一成若干张大表(术语“事实表”,Fact Tables),按照维度-度量模型建立数据仓库表结构,然后进行数据抽取转换。后续的抽取一般是在操作性数据库负载比较小的时候(如凌晨),对新数据进行增量抽取,这样数据仓库中的数据就会形成积累。

    大多数 BI 应用并不要求获取实时的数据,比如决策者,只需要在每周一看到上周的周报就可以了,95% BI 应用都要 求实时性,允许数据有 1 小时至 1 个月不等的滞后,这是决策支持系统的应用特点,这个滞后区间就是数据抽取工具工作的时间。当然,BI 应用中通常还将包含极少的对实时数据的要求,这时仅需针对这些特殊需求,将 BI Querying 软件直接连接在业务数据库上就可以了,但是必须限制负载,禁止做复杂查询。

  • SQL日期函数

    2012-03-14 15:50:49

    http://www.ffstar.com.cn/infoview.aspx?id=124

    1. 当前系统日期、时间
    select getdate()

    2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
    例如:向日期加上2天
    select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000

    3. datediff 返回跨两个指定日期的日期和时间边界数。
    select datediff(day,'2004-09-01','2004-09-18') --返回:17

    4. datepart 返回代表指定日期的指定日期部分的整数。
    select datepart(month, '2004-10-15') --返回 10

    5. datename 返回代表指定日期的指定日期部分的字符串
    select datename(weekday, '2004-10-15') --返回:星期五

    6. day(), month(),year() --可以与datepart对照一下

    select 当前日期=convert(varchar(10),getdate(),120),

    当前时间=convert(varchar(8),getdate(),114)

    select datename(dw,'2004-10-15')

    select 本年第多少周=datename(week,'2004-10-15'),

    今天是周几=datename(weekday,'2004-10-15')

    函数

    参数/功能

    GetDate( )

    返回系统目前的日期与时间

    DateDiff (interval,date1,date2)

    以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1

    DateAdd (interval,number,date)

    以interval指定的方式,加上number之后的日期

    DatePart (interval,date)

    返回日期date中,interval指定部分所对应的整数值

    DateName (interval,date)

    返回日期date中,interval指定部分所对应的字符串名称

    参数 interval的设定值如下:

    缩 写(Sql Server) (Access 和 ASP) 说明

    Year

    Yy yyyy 年 1753 ~ 9999

    Quarter

    Qq q 季 1 ~ 4

    Month

    Mm m 月1 ~ 12

    Day of year

    Dy y 一年的日数,一年中的第几日 1-366

    Day

    Dd d 日,1-31

    Weekday

    Dw w 一周的日数,一周中的第几日 1-7

    Week

    Wk ww 周,一年中的第几周 0 ~ 51

    Hour

    Hh h 时0 ~ 23

    Minute

    Mi n 分钟0 ~ 59

    Second

    Ss s 秒 0 ~ 59

    Millisecond

    Ms -

    毫秒 0 ~ 999

    SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

    例如:

    select getdate()

    2004-09-12 11:06:08.177

    整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

    举例如下:

    select CONVERT(varchar, getdate(), 120 )

    2004-09-12 11:06:08

    select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

    20040912110608

    select CONVERT(varchar(12) , getdate(), 111 )

    2004/09/12

    select CONVERT(varchar(12) , getdate(), 112 )

    20040912

    select CONVERT(varchar(12) , getdate(), 102 )

    2004.09.12

    select CONVERT(varchar(12) , getdate(), 101 )

    09/12/2004

    select CONVERT(varchar(12) , getdate(), 103 )

    12/09/2004

    select CONVERT(varchar(12) , getdate(), 104 )

    12.09.2004

    select CONVERT(varchar(12) , getdate(), 105 )

    12-09-2004

    select CONVERT(varchar(12) , getdate(), 106 )

    12 09 2004

    select CONVERT(varchar(12) , getdate(), 107 )

    09 12, 2004

    select CONVERT(varchar(12) , getdate(), 108 )

    11:06:08

    select CONVERT(varchar(12) , getdate(), 109 )

    09 12 2004 1

    select CONVERT(varchar(12) , getdate(), 110 )

    09-12-2004

    select CONVERT(varchar(12) , getdate(), 113 )

    12 09 2004 1

    select CONVERT(varchar(12) , getdate(), 114 )

    11:06:08.177

  • win 7下 磁盘分区工具

    2011-04-29 13:12:04

  • QTP常见运行错误问题解答(转)

    2011-04-28 14:48:46

    出处:http://blog.163.com/lilei_0207/blog/static/306754920079242641852/

    1. 不能识别对象(Cannot identify object

    出现了这个错误时,就表示当前被测程序的窗口中没有符合条件的对象。

    出现这种错误,可能的原因有以下两种:

    >>> 对象此时在程序中没有显示或不存在。

    >>> 在程序中存在该对象,但是它的描述在后来发生了改变,导致与对象仓库中存储的信息不匹配,从而QTP无法识别对象。

    如果你正遇到“Cannot identify object”的问题,解决方法见1.1

    1.1 如何去识别对象描述(Identifying Test Object Description Problems

        如果你能在被测程序中看到对象,但仍出现了“Cannot Identify Object”错误信息,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异。

        解决对象描述问题的第一步是找到差异,最简单的方法是将仓库中对象的属性值与程序中对象的属性值进行比较。(仓库中对象的属性值可在Object Repository窗口中查看,程序中对象的属性值可用Object Spy功能查看。)

    比较仓库中对象的属性值与程序中对象的属性值的操作见1.3

    在完成比较后,是否发现存在差异?

    如果是,请参考1.4

    如果否,请参考1.5 

    1.2 处理对象丢失问题(Solving Missing Object Problems

    在运行脚本时,QTP尝试进行某种操作,而该操作的对象在程序中却没有出现,出现这种情况的原因有以下几种:

    >>> 对象不再存在。对象已经被从程序中删除。

    解决方法:见1.2.1

    >>> 对象还没有装载。

    解决方法:见1.2.2

    >>>当前的程序页面(或窗口)不正确,不是对象所在的页面(或窗口)。

    解决方法:见1.2.3

    >>>前一个步骤没有正确执行。

    解决方法:见1.2.3

    1.2.1 解决对象不再存在的问题

    如果对象已经不再在被测程序中存在,则应在脚本中修改或删除相关步骤。

    1.2.2 解决对象装载超时的问题

    如果对象丢失的原因是因为没有足够的时间装载,尝试以下解决方案:

    a.对于Web对象,增加Browser Navigation TimeoutFile>Setting>Web页签)时间。

    b.在包括该对象的步骤前使用Wait语句,让QTP在执行该步骤之前等待一段时间。

    1.2.3 检查前面步骤的执行情况

    如果是因为打开了错误的页面(或窗口)导致对象丢失问题,或因为前一步骤执行措误导致对象丢失问题,则请按以下方法检查原因:

    a. 如果怀疑在完成脚本后,被测程序又发生了改变,则检查对象的继承关系以及对象描述。参考1.1

    b. 如果怀疑脚本错误,则检查脚本的每一个步骤。你可能是遗失了某个步骤,也可能是使用了不正确的方法或参数

    1.3 测试对象的属性值与Run-time对象的属性值的比较(Comparing Test Object and Run-Time Object Property Values

    根据以下的步骤比较测试对象与Run-time对象的属性值:

    1) 进入Obecjt Repository窗口(Resources>Object Repository),选择对象。

    2) 用笔记下对象的class以及它的各个属性及属性值。

    3) 打开被测程序,并打开包含被测对象的页面或窗口。

    4) QTP中选择菜单Tools>Object Spy或点击Object Spy按钮,打开Object Spy对话框。

    5) 选择“Test Object Properties”选项。

    6) 点击右上角的按钮(带有手图标的),这时QTP窗口以及Object Spy对话框都被最小化。

    7) 在程序页面(或窗口)中点击目标对象,恢复Object Spy对话框,并在对话框中显示对象及其父对象(以树的形式显示),并在Properties页签中显示当前对象的属性及属性值。

    8) 这时Object Spy对话框的Properties页签中显示Run-time对象的所有属性,在此查看对象的class,以及它的属性及属性值,并将它与第2步中记下的内容进行比较。 

    1.4 解决对象描述存在的问题(Solving Object Descrīption Problems

        如果发现仓库中对象的属性值与程序中对象的属性值存在不同,你应该判断这个不同是个别对象的问题,还是其它同类对象也存在相同的问题。

    是所有(或多个)同类对象都存在问题吗?

    如果是,则参考1.6

    如果否,则参考1.7 

    1.5 关于父对象描述的识别问题(Identifying Parent Object Descrīption Problems

    对象的识别还与它所继承的父对象有关。

        如果你能在被测程序中看到对象,而且程序中对象的属性值与仓库中对象的属性值也是一致的,但仍然遭遇到了“Cannot identify object”错误,则这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。

    要判断是继承关系中的哪个父对象出现了问题,请偿试下面的方法之一:

    >>>重新录制对象,比较新旧对象的父对象。

    欲了解如何完成比较,参考1.8

    >>>对继承关系中的每个父对象,分别插入一个Exist语句,并运行该部分脚本。

    欲了解如果创建Exist语句,参考1.9

    注:你也可以使用Object Repository窗口中的Highlight in Application功能,在被测程序中定位对象。

    一旦找到了存在问题的父对象,接下来偿试以下方法:

    >>>修复存在问题的父对象的描述。方法见1.4

    >>>在专家视图的模式下,查找所有继承存在问题的实例并进行修正。

    举例:1.8.1 

    1.6 解决某类对象的识别问题(Soving Object Identification Problems for a Test Object Class

        如果你发现某类对象的对象描述对于被测程序来说都不是很合理,或你预期到对象描述中的某属性值是经常变化的,你可以在Object Identification对话框中改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。

    1.7 解决单个对象的描述问题(Solving Individual Test Object Description Problems

    选择下列方法之一来解决对象的描述问题:

    >>>如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。

    >>>如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。

    >>>如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。

    >>>如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进行对象识别。

    >>>If you can only access the information on the property values during the run session, you can create and use functions that use programmatic descriptions to identify the object using property values retrieved earlier in the run session.

    For more information on programmatic descriptions, see Using Programmatic Descriptions.

    >>>如果在录制过程中对象是唯一的,但现在程序中出现了两个或多个描述相同的对象,但是它们在页面(或窗口)中的位置不相同,则应在Object PropertiesObject Repository窗口中,向对象描述中添加一个ordinal identifierindexlocation)。

     

    1.8 重新录制对象,以判断父对象描述是否存在问题(Re-recording an Object to Identify Parent Object Description Problems

    根据下面的指引,来判断父对象的问题。

    通过重新录制对象,来判断它的父对象是否存在问题:

    1) 打开浏览器或程序,来到包含被测对象的页面或窗口。

    2) 在关键字视图模式,选择最后一个组件(component),或在专家视图模式,将光标放在最后一个脚本步骤的下面。

    3) 点击Record按钮,或选择Automation>Record

    4) 点击(或操作)页面或窗口中的目标对象。

    5) 点击Stop按钮,或选择Automation>Stop,完成步骤添加。

    6) 右击新添加的步骤,并选择Object Properties右键菜单。

    7) Object Properties对话框中,点击Repository,打开Object Repository窗口,并选中了新对象。注意记下该对象的继承关系。

    8) Object Repository窗口中找到旧的对象(即存在问题的对象),将它的继承关系与新对象的继承关系进行比较。

    通过比较,可以检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。

    a. 如果是父对象的描述问题,则修改父对象的描述。参见1.4.

    b. 如果是对象的继承关系不正确(即具有不同的父对象)引起的问题,则在脚本中找到所有使用该继承关系的实例,将它们替换为正确的继承关系。

    举例:参见1.8.1

    1.8.1 举例

        假设有一个带有Frame的网站,你录制了一个操作针对Image对象“Poster”的操作步骤。在Object Repository窗口,你可以Image对象的继承关系如下所示:

    MyCompanyBrowser

        MyCompanyPage

            Main(Frame)

                 Poster(image)

        当你运行脚本时,网页看起来没有什么不同,但是识别Image对象时却出现了“Cannot identiry object”的错误提示。当你重新录制操作步骤,然后在Object Repository窗口中查看新的Image对象时,发现该对象的继承关系如下所示:

    MyCompanyBrowser

        MyCompanyPage

             Poster(image)

        从中可以看出,Frame已经从Web Page中移除,所以尽管Image对象“Poster”的描述没有发生任何改变,但它的继承关系已经改变了。

        Object Repository窗口,你可以看到新旧Image对象“Poster”是两个完全不同的对象:旧的位于已经被移除的Frame对象之下,而新的则直接位于PageMycompany”对象之下。

        修复这个问题,可以在脚本步骤中将旧的对象替换为新的对象。

        为了保持Object Repository窗口的整洁,你应删除那些已不再存在的对象(如本例中的Frame)。

    1.9 创建Exist语句,以判断父对象的描述是否存在问题

        QTP在录制发生在某个对象上的操作时,也会同时去了解对象以及它的继承关系。因此,如果在运行过程中,QTP不能识别继承关系中的任何一个父对象,都会导致目标对象的识别失败。

        使用带有Exist方法的Msgbox语句,可以方便的检查出是继承关系中的哪个父对象出现了问题。

        假设在运行下面脚本时,你遇到了“Cannot identify Object”错误信息(但是可以确定对象仓库中Link对象的描述与当前程序中对象的描述是完全一致的):

    Browser("Yahoo!").Page("Yahoo!").Link("Arts & Humanities").Click

    你可以在该语句前面插入以下语句:

    Msgbox Browser("Yahoo!").Exist

    Msgbox Browser("Yahoo!").Page("Yahoo!").Exist

    Msgbox Browser("Yahoo!").Page("Yahoo!").Link("Arts & Humanities").Exist

    然后你从头开始运行脚本,发现第1行语句运

        但是,当QTP运行到第2步时,就弹出信息框,内容为“False”,表示不能找到Page object。这就证明Page对象存在问题。

        确定了出现问题的父对象以后,修复该问题。参见1.4

    2. 对象不唯一(The object is not unique

    在被测页面或窗口中的同一父对象下,找到多个与仓库中对象描述相符的Run-tim对象。

    请确定是只有个别对象存在此问题,还是此类对象的所有对象(或部分对象)存在此问题。

    此类对象的所有对象(或部分对象)都存在此问题吗?

    如果是,参考2.1

    如果否,参考2.2 

    2.1 为某对象类设置能唯一识别对象的描述规则(Configuring Unique Test Object Descrīptions for a Test Object Class

        如果你发现某类对象的对象描述都不足以唯一识别对象,你可以在Object Identification对话框中,改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。

     

    2.2 设置通唯一识别对象的对象描述(Creating a Unique Test Object Descrīption for an Object

    查看当前对象的描述,并偿试在程序中找到其它具有相同描述的对象并查看它们的描述。

    >>>如果你找到了可以将它们区别开来的一个或多个属性,则修改仓库中对象的相关属性(如向描述中添加属性等),以使QTP在运行时可以唯一识别它。

    >>>如果它们的识别属性完全相同,则在对象描述中为对象添加一个ordinal identifierindexlocation)。 

    3. 找不到父对象(Parent not found

    识别对象时,会先识别它的父对象是否正确。如果遇到“Parent not found”的错误信息,请偿试以下解决方法:

    >>>修复出现问题的父对象的描述。参见1.4

    >>>在脚本中找到继承关系不正确的实例,并修改为正确的继承关系。例如1.8.1

    4. 无效的参数(Invalid arguments

    一个或多个方法的参数是无效的。

    参数无效可能是参数类型错误,也可能是参数个数不正确。

    根据以下建议,找到方法的正确语法:

    >>>Keyword模式,如果方法包括参数,则在Value栏会显示该方法的参数提示。

    >>>Expert模式,如果方法包括参数,则当你插入方法然后按下Shift+Ctrl+Space键时,QTP会显示该方法的参数的提示信息。(注:只有在Editor Options对话框的General页签中打开了Statement completion功能时才可以看到参数的提示信息。) 

    5. 不能识别itemCannot identify item

    QTP不能识别方法参数中指定的列表或树对象的item时,请确认指定的item是否存在于对象之中。

    <SPAN style="FONT-FAMILY: 宋体; FONT-SIZE: 10pt; mso-font-k

  • win7 破解补丁

    2011-04-26 11:52:17

  • 怎样更改虚拟机vmware的硬盘大小

    2011-04-26 10:31:13

671/41234>
Open Toolbar