几乎每个ERP厂商的老总都有这样的感慨:明明是经过几个月的初期讨论和项目分析,在用户的认可下做好了的ERP系统,结果由于企业要求的“二次开发”,系统变得越来越复杂,与最初期望的效果越来越远,最后猛然一看,系统已经完全“变味”了。

当今很多企业上信息化系统,但是不少信息化软件都需要第二次开发才能真正适合企业。那么,如何在二次开发中挖掘信息化软件的潜力,让企业得到更多实惠?

向企业实际情况靠拢还是向通用化靠拢

“在选择定制开发还是使用通用系统这个问题上,我们首先看是否存在适合的通用系统。”上海国家会计学院信息部副主任屈伊春举了个例子,如在文档处理、电子表格、财务系统这些方面,市场有成熟的Word、Excel以及用友金蝶等软件。所以,没有哪家企业愿意投入巨资自己开发。

“现在的会计信息化软件,像国内的用友等,它们大多只为满足国家会计核算要求。但从企业的管理角度看,除了满足公开的信息之外,还需要ERP系统提供企业内部管理的信息。”扬州亚星客车[11.82 1.72%]股份有限公司财务副总监周保来接受记者采访时表示,ERP系统更多地按行业、分模块开发,尽管在系统初始化时提供各种参数供企业根据实际状况设定。但即便是同一行业中的不同企业在发展规模、发展周期、细分市场等方面对信息的关注重点也会有所差异,导致对信息的要求或总或分、或粗或细,企业在财务核算通用化之外还会有自己的诉求,因此会通过适度的二次开发来更好地满足自身的需求。

“我们的二次开发是基于现有ERP系统及其他管理软件的数据库,结合企业自身财务管理的需求展开。比如在亚星客车,产品属于‘小批量、多品种’,传统的成本核算方法已不能满足企业自身管理需求,所以我们‘生产材料领用汇总表’这个数据表采用按分订单、产品型号、生产车间、主辅材、正常与非正常损耗等5个角度进行分类,以回答哪些订单盈利、浪费,哪些环节发生非正常损耗等,让管理者的视线能迅速聚焦。”周保来表示。

不要过多地强调企业自身特点

“二次开发的时候,不要过多地强调企业自身的特点,ERP软件中的管理流程是从许多企业中提炼出来的,具有先进性。”屈伊春表示,许多企业的“特殊之处”都是由于流程自身的不合理产生的,应该通过ERP的实施,对企业进行业务流程优化或重组,而不是一味修改软件以适应不合理的流程。

因为ERP具有自身一套体系,如果系统不能满足企业的需要,也会把“不要修改核心代码”作为基本原则。应该把数据从ERP中导出,利用二次开发的程序进行处理后,再导入系统。这样可以以最小的变动获得最大的收获。但如果直接修改了核心代码,往后再升级就很困难。

“我们进行二次开发更多是在ERP厂商技术人员的指导下充分利用现有数据库,扩大数据使用范围或提升数据使用价值。”周保来又向记者进一步解释,扩大数据使用范围是指将ERP系统中的数据有计划地通过公司自行开发的系统提供给其他不使用ERP系统的人员,扩大共享范围,如我们将ERP系统中的应付账款数据通过二次开发为供应商提供登录窗口,通过账户让每一个供应商通过网络可以实时完成对账或查询其所供应产品的送货状态;而提升数据使用价值则可以通过二次开发将ERP系统中的数据和其他管理软件的数据库进行对接,实现更多的功能,如可以将ERP系统的原材料单价与技术部门使用的PDM软件中的材料清单进行关联,可以实时得到各产品的材料定额,这在订单差异化明显的企业中可以极大的简化工作量。

二次开发中,修改不宜过多。因为ERP软件是一个很复杂的大型软件,从软件工程的角度来说,开发者应该保持对项目的可追溯性。如果修改过多的话,这种可跟踪的追溯性将变得模糊不清,最终导致项目不可控。

需要有专业的系统技术人员

“从事二次开发的人员既要熟悉软件的功能和相应数据库中表的结构,又要充分理解用户的特殊业务流程,这需要一定的时间和工作的,甚至可能会使项目延期;再者,改动软件后还可能出现系统的不稳定,影响版本升级。”某软件区域经理这样告诉记者。

如果必须进行二次开发,则应尽量使得二次开发做出的功能模块独立于原来的ERP系统。这样,当ERP系统版本更新时,二次开发出来的模块无需修改或者只需较少的修改就可以应用于高版本的ERP系统。

“我们公司内部有一个信息中心,这是一支负责我们企业信息化的专业团队,他们对信息化系统有过专业的培训,各人员都有细致的分工。”周保来说。

周保来建议设立项目负责人。这个项目负责人起着把握全局、协调各部门完成整个工作的作用,并最终保证二次开发项目的成功实施。项目负责人最好是既懂技术又懂管理的企业中高层领导来担当,并且项目负责人要有整个项目决策的权力,要有足够的时间花在二次开发项目上,从而保证其能够全程跟进开发人员及企业内部相关实施人员的情况,最终保证项目按时交付。

对ERP项目进行二次开发应被视为“一把手工程”,需要企业领导给予足够重视,并且也需要软件提供商以及相关的企业内部人员给予足够的重视。只有这3方面的力量都重视了,管控严了,项目才能按期并保质保量地交付。

posted @ 2011-12-26 10:31 elegant 阅读(85) 评论(0) 编辑

定价过程的16个字段的作用说明
Define Pricing Procedure
Select the pricing procedure which is the standard and copy it and create our own pricing procedure.
Highlight it and double click the Control icon in the LHS screen.
We can see that there are 16 columns in the pricing procedure, these are going to be used by the system to control the condition types.
The detail description of each column is given below.

Step:
Number that determines the sequence of the conditions with in a procedure.
It indicates the position of the condition type in pricing procedure.
Ex.: 10, 15 etc.

Counter:
System uses the counter to count the steps and also it can be used to count mini steps of same condition types. So that number of steps can be reduced in the pricing procedure and hence enhancing the system performance.
Access number of the conditions with in a step in the pricing procedure.
During automatic pricing, the system takes into account the sequence specified by the counter.

Condition Type:
It represents pricing element in pricing procedure as a base price, discount, freight and tax.
The condition type is used for different functions. In pricing, for example, the condition type lets you differentiate between different kinds of discount; in output determination, between different output types such as order confirmation or delivery note; in batch determination, between different strategy types.
Ex.: PR00 - Price
K004 - Material Discount
K005 - Customer/Material Discount
K007 - Customer Discount.

Description:
System copies description of condition type from its description (V/06).

From and To:
From:This can be used as a base to the condition type for calculating further value.
{+}From and To:+ The range between the steps from and to can be used to specify the range between same condition types. So that depending upon the condition type, the system deducts or adds the total value of those condition types from specific common source.

Manual:
This indicator specifies whether the specific condition type can be determined manually during sales order processing.
If we check the box then the entry is going to be manual, if we uncheck it, it is going to be automatic.
For Base Price and Taxes, the entry should be automatic.
For Discounts and Freights, The entry should be manual.
If we check the box, in VA01 when we go to conditions at the header/item level, the condition type will not be listed. If we require we will have to manually enter it.
If we uncheck the box, in VA01 when we go to conditions at the header/item level, the condition type will be listed.

Mandatory:
This indicator specifies that particular condition type is mandatory in the pricing procedure.
If we check the box, then in VA01 at the header/item level in the conditions tab, if we delete the value in the condition type and try to save the document then system will not allow us to do it and throws an error.
If we uncheck the box, then in VA01 at the header/item level in the conditions tab, if we delete the value in the condition type and try to save the document then system will allow us to save it, without giving any error.
Mandatory check box should be checked in condition types which are compulsorily required in pricing procedure. Ex.: PR00, MWST.
If the condition type is checked with mandatory option, then value should be maintained for that condition type, otherwise the system will not allow the user to process the document.

Statistical:
This indicator if it is activated will not allow the value of the condition type to be taken into net value calculation.
It is used only for information purposes only.
This indicator causes a surcharge or discount to be set in the document statistically (that is, without altering the value).
This is commonly used for condition types
SKTO - Cash Discount
VPRS - Cost (Moving average price/Standard Price).

Print:
The value of this field specifies whether line item can be printed or not in the sales document and at what level it is to be printed.

Subtotal:
The value of this field determines where the values of subtotals to be captured i.e. in which table and which field.
Controls whether and in which fields condition amounts or subtotals (for example, a customer discount or the cost of a material) are stored.
If the same fields are used to store different condition amounts, the system totals the individual amounts.
These condition amounts or subtotals are used as a starting point for further calculations. You may, for example, want a subtotal of all the discounts included in the pricing of a sales order.

Requirement:
It is a routine that is written by an ABAP consultant according to the business requirement.
By defining Requirement in condition technique we can restrict the access of condition type.
To understand the concept, we will take the example of the Rebates. Rebates are to be included during the billing document processing and not in the sales document processing. As rebates are given on the delivered quantity and not on the ordered quantity (in case of cut-off period for rebates).
For rebates we use the condition types BO01 to BO05, and in the Requirement column we give the value 24 which is "Only in Billing Document".
This Requirement will ensure that these condition types will appear only during the billing document processing.
If new Requirements are to be defined we follow the procedure given below.
Go to T.Code: VOFM. - Maintain Requirements & Formulas
Click on the "Requirements" in the top menu and then click on "pricing".
We have a list of requirements, we can ask ABAP consultant to create new requirement based on the client requests.
And we assign the application type like V - Sales/Distribution etc.

AltCty - Condition formula for alternative calculation type:
It is again a Routine that is written by ABAP Consultant.
It is an alternative formula for the condition type that can be used instead of standard formulas.
For example, let us take the Profit Margin which can be both + / - , so here this routine will help us in generating the value which can be either + or -. Profit margin is not a condition type so it cannot be classified as +ve or -ve in the V/06.
Ex.: 950 0 Profit Margin 11.
So we assign 11 - Profit Margin.
If new routines are to be defined we follow the procedure given below.
Go to T.Code: VOFM. - Maintain Requirements & Formulas

Click on the "Formulas" and then on the "Condition Values".
We have a list of routines, we can ask ABAP consultant to create new routines based on the client requests.
And we assign the application type.

AltCBV - Alternative formula for condition base value:
Formula for determining the condition basis as an alternative to the standard.
It is again a Routine that is written by ABAP Consultant.
It is used as a basis to calculate value of the condition type instead of using it from the "FROM" column.
Ex.: Freight - KF00.
Freight is calculated based on weight, volume etc. and not on the base price. In pricing there is no entry of weight from which the value can be referred like we do for discounts using base price. We have to get the value from the Material master.
In this column we can mention the value as 12 - Gross Weight or 13 - Net Weight.
During pricing, the system will consider the value that is mentioned in this column and determine the freight based on this value.
Suppose we have Net weight: 100 kgs and Gross Weight: 150 kgs. And if we mention 13 in this column then the Freight condition KF00 will be calculated using the weight as 100 kgs.

AcyKy - Account Key/ Accrls - Accruals:
The values of the Sales Revenues, Sales Deductions, Freight Revenues, Tax Revenues, and Rebate Accruals etc. are going to be posted in the respective G/L accounts in Fi Module.
In order to do this we assign account keys/ accruals to the different condition types based on their classification. The classification shown below.
ERB Rebate sales deduct.
ERF Freight revenue
ERL Revenue
ERS Sales deductions
ERU Rebate accruals
For Ex.,
For all Price condition types like PR00 etc. we assign ERL - Revenue.
For all Discount condition types like K004, K005 etc. we assign ERS - Sales Deductions.
For all Freight condition types KF00 etc. we assign ERF - Freight Revenues.
For all Rebates condition types BO01 to BO05 we assign in Account key ERB - Rebates Sales deductions and for Accruals ERU - Rebate Accruals.
This account keys and accruals are in turn assigned to respective G/L accounts. So the system posts respective values in respective G/L accounts in Fi-Co Module.
This also one of the areas of SD - Fi Integration. SD consultants assign the account keys and Fi Consultants assign the respective G/L accounts in T.Code:VKOA.

posted @ 2011-06-27 16:22 elegant 阅读(333) 评论(0) 编辑

ERP项目经验总结

该总结的目的:通过总结ERP项目的实施经验,提炼项目风险。包括在人员、组织架构、管理制度、程序文件等方面为其他项目提供参考,达到规避风险的目的。

1、项目最大的感触就是战略决定架构,项目实施部门的高层领导在项目上线后不要授权给其他人最好能够亲力亲为,必须执行到位,这样才能使项目更好的推进和实施。

2、在项目初期和蓝图阶段高层领导特别是一把手也应该参与到项目中,能在项目的各个阶段或者遇到需要领导拍板下定论的时候及时的将问题解决或者制定出相应的规章制度,否则会使问题积压,得不到根本的解决,进而影响到项目的进度和质量。

3、高层领导的意识很重要,只有领导能个从上而下的推进项目,则项目就能够得到很好的推进,所以项目的重点还是怎么提高领导意识,怎样能让领导真正推动项目。

4、如果是小项目,因为业务范围比较小,所以没必要设立太多的职能部门,使权力不是很分散,避免部门间互相咬合,互相推诿责任的问题,也能在项目中能更明确的确立相关的工作,遇到问题能更好、更快的解决。

5、每个项目最好尽可能的在蓝图阶段就将相应的管理制度制定出来,否则等项目上线后就会被搁置;项目的推进最好由专人或者专门的部门进行,这样会更有利于推广。

6、对于最终用户的培训最好能从蓝图阶段开始,这样有助于修改前期的各种习惯,从实施软件和项目的原理入手进行培训,进行流程的宣贯,就能使关键用户能从项目的角度去看待问题,从而能够更好的进行项目的实施,也能增加项目的成功率。

比如对于外检、采购等部门,如果不懂蓝图,仍然各自为政,还是按照各自原有的流程实施,就会使项目不顺畅,就会有争议。因为前期毕竟有其习惯的做法,而且都使用了很长时间,比较驾轻就熟了,如果不了解蓝图是不会真正的去改变习惯的。

7、项目阶段的例会制度,特别是初期,应指定责任人,而且责任人要是那种说话有力度的人,敦促责任人之间相互沟通,相互了解业务和实际的困难,可有利于项目推进,也可使项目得到更好的实施。

8、系统操作相对于制造部门会感觉比较累,要事先让其了解系统对整个公司的意义和益处,防止只从个人、片面的角度看问题,产生抱怨,使其知道会在比如成本和工序平衡方面会有很好的控制。

9、要经常跟高层领导汇报工作进度和工作中遇到的难点、困难等,使其从系统和项目的角度了解为何有些看似能解决的需求但在实际实施和运作的过程中是实现不了的。

10、主数据维护的准确性对后期的各项工作有至关重要的作用,不能只说差不多对了就可以了,对后期的成本和库存的精确度和准确度都起到主导作用。

11、关键用户和最终用户对业务和系统的了解程度是每个项目成功的关键,所以应加强对其的培训,只有业务部门愿意学、愿意接受才能够更好的解决问题,才能体现出项目的价值。

12、每个项目在上线之前最好能进行一次模拟试运行,一是看是否有BUG,二是看用户对系统的掌握情况,能更好的暴露问题,有利于增加项目的成功率。

13、外部实施公司的能力对项目来说是至关重要的,应该进行招标的方式,让所有投标公司来讲解方案,并让相关部门参与招标,中标公司的项目经理和顾问要进行面试,且要求顾问一定要到一线部门去沟通,了解业务,不能闭门造车,使开发方案一再变动。

14、对项目相关部门的参与人员的要求一定要是业务骨干且必须全职,要能够全程参与,所以建议项目的发起人最好能是项目的使用部门,这样能够使其责任感更强一些,在项目中工作能够更加主动一些。

15、不管做任何项目,项目的目标一定要明确,且项目目标一旦明确就不能随意的更改,如果有提出这方面需求的,必须从项目风险的角度去考虑是否能够更改。

16、项目的目标不能定的太高,要考虑基础,为了能使项目尽快的推进,最好能只是改变业务人员的习惯,而不要期待一个项目能够使整个公司发生翻天覆地的变化,使其能够焕然一新。譬如国外欧美地区之所以成功率很高,归根结底是因为他们的项目周期长,一点点的实施,慢慢的深入,使业务部门一点点的改变,这样就能很好的、扎实的实施。

17、要让关键用户真正掌握系统,让关键用户去培训最终用户,这样就能然关键用户能够独立的解决一些日常出线的问题,而不是一出现问题就找内部顾问。

        18、在项目的蓝图阶段最好就能够确定下项目上线后的考核制度,如果初期不指定和实施等项目正式上线已经推进后再制定就容易实施不开。要让制定的细规则放入到各部门细节职责中。

        19、怎样让项目最终用户能真正运用、了解系统,更好的操作系统,最好的方法就是让关键用户去培训最终用户,给别人培训也是最好的提升自己的水平的一种途径。

posted @ 2011-06-27 16:16 elegant 阅读(428) 评论(0) 编辑

傍晚,一只羊独自在山坡上玩,突然从树木中窜出一只狼来,要吃羊,羊跳起来,拼命用角抵抗,并大声向朋友们求救。
  牛在树丛中向这个地方望了一眼,发现是狼,跑走了;
  马低头一看,发现是狼,一溜烟跑了;
  驴停下脚步,发现是狼,悄悄溜下山坡;
  猪经过这里,发现是狼,冲下山坡;
  兔子一听,更是一箭一般离去。
  山下的狗听见羊的呼喊,急忙奔上坡来,从草丛中闪出,一下咬住了狼的脖子,狼疼得直叫唤,趁狗换气时,怆惶逃走了。
回到家,朋友都来了,
  牛说:你怎么不告诉我?我的角可以剜出狼的肠子。
  马说:你怎么不告诉我?我的蹄子能踢碎狼的脑袋。
  驴说:你怎么不告诉我?我一声吼叫,吓破狼的胆。
  猪说:你怎么不告诉我?我用嘴一拱,就让它摔下山去。
  兔子说:你怎么不告诉我?我跑得快,可以传信呀。
  在这闹嚷嚷的一群中,唯独没有狗。
  .
  .
提示:真正的友谊,不是花言巧语,而是关键时候拉你的那只手。那些整日围在你身边,让你有些许小欢喜的朋友,不一定是真正的朋友。

posted @ 2010-11-29 08:41 elegant 阅读(124) 评论(0) 编辑

在工作和生活中,我们能看到有这么一批人,他们总可以轻松地把事情搞定,总可以影响着四周人的观点和行动,他们展现出来的类型具备有下面这些:

1、他们没有权势,却可以影响比他们职位高的人;

2、他们没有专业技能,却可以让专业技能的人帮着办成事情;

3、他们是被很多人认为的小人物,却是小人物群体中的“大人物”;

4、他们总是能够在棘手是事情上,能够独辟蹊径,找到解决事情的办法;

为什么他们有这样的能量,这个人群的身上有什么普遍的特质?哪些特质是可以被提炼、学习、锻炼和掌握的?经笔者对照身边案例和观察到的各种人群。将这些搞定事情的能力,层层拆解,得到共同的能力特质有以下几点:

1、独立思考的能力;

这个人群的特点就是,虽然他不一定有职位,但他们绝对是善于思考,被认为有想法的人,遇到什么事情,在他这里,都会有个很像样的分析,正是这种独立思考的能力,让他能够在自己做事或帮助别人做事的时候,总能有一种特别好的感觉。

2、善于表达自己的想法,并让别人理解自己的想法;

有独立思考的能力,就必然形成自己的想法。他们能够在适当的时间和地点,把自己的观点和想法让合适的人知道并理解,看上去那么自然而不刻意为之,这种在随意中不留一点痕迹地建立起来的让别人了解自己的效果。

3、善于最快把握别人想法并很到位地帮助其解决;

只让别人了解自己的想法还不够,还要了解别人的想法,他们总是能够通过正式和非正式等多种方式,让别人掏出自己内心的想法,甚至当别人没有表达的时候,他通过观察和分析,也能准确把握别人的需求,这还不够,他们很善于创造一切条件,帮人把他心中所想的事情达到,

4、他们总能随时关注四周每个人的细微感受,并灵活处理;

看到一篇文章,能够很清楚的表达这种状态:

我以前有个助理,她和我工作了近两年,不但工作能力出色,忠诚热情,我和她说的事情从来不需要说第2遍,最重要的是,我的结婚纪念日、我太太和孩子的生日,我生活上的一些喜好,工作中每个阶段关注的人与信息,她都会及时温馨的提醒;因此不仅是我工作上好助手,也是生活的好帮手;每次有好的机会我都尽量帮他争取,没两年就从一个小姑娘出落为一个优秀的专业模块主管。

我也有过这样的助理,虽然因为家庭原因,只高中毕业便出来工作,面试的时候看她面相很真诚舒服,便招聘进来。没想到她可以把事情做到上面所说的这个层次,我对她也是悉心指点,因为她能够真心的关注到每个人的感受,并能采取相对应的行动来应对此类的事情,所以很多事情,她都能很轻易的去搞定,公司内内外外同事对她的评价也特别高。

5、用心与他相处,总让别人感觉很舒服;

他们很会说话,具有很强的同理心,也能够在情绪管理上达到“操之在我”的水平,不会随着外在情绪的变化而轻易改变自己的情绪,所以总会给人一种和煦春风一样的感觉。

他善于倾听,能让人在他这里找到一种受尊重和理解的感觉,在他这里,你可以感觉到自己的重要,可以感觉到他就关注在你身上,这是一种能力,可以化解很多沟通难题的能力。能让与自己相处的各种各样的人都感觉到比较舒服,这确实是一种极其重要而厉害的能力。

6、他们身上总能看到乐观和积极的态度;

乐观和积极的态度是一个充满活力的生命质量;因为总会有各种各样的困难出现在生活中,记得在前段时间,在说到富士康员工跳楼的时候,我那位助理说了一句话让我记忆深刻:他们跳楼的时候只往下看了,如果抬头看看天,多美啊!这就是一种积极的态度,他的力量比高深的学问要大,比家财万贯的权势要大,因为积极的感染能力是巨大的,他甚至可以改变人的一生。

7、善于学习,并将弥补自己的不足的事情转化为一种机会;

不懂的事情,他们会及时向人请教,而这种请教既帮助自己解决了问题,还与帮助自己的人建立起了很好的联系;因为谁都不会轻易去拒绝一个认真谦恭向自己请教的人,这个过程就会建立起一种极其重要的关系,这是极其重要的一种能力。

8、他们总给人一种很信服,值得信任的感觉;

上面做每件事情的时候,都是能够让对方感知到他的真诚,并建立了信任的基础。从上面多有的事情中,长期累积下来,反过来会加强这种信任,这种信任就是一种无形的力量,可以帮助他们把事情做好。

这样的人群,是做成大事情人群的初级阶段,因为他们具备了这些素养之后,不断积聚着自己的影响力和资源,到一定的时机,就会由能把事情搞定的“小人物”变成了能搞定大事情的“大人物”。

posted @ 2010-11-24 13:13 elegant 阅读(106) 评论(0) 编辑

使用函数显示ALV格式报表
1)定义ALV
type-pools slis. "调用类型组
data: myrepid like sy-repid. "程序为当前程序
data: i_layout type slis_layout_alv. "ALV显示格式内表
data: allfields type slis_t_fieldcat_alv. " ALV显示字段内表
data: i_fieldcat type line of slis_t_fieldcat_alv. "ALV字段信息结构
data: e_status type slis_formname value 'STANDARD_ER01'. "ALV自定义非标准按钮
myrepid = sy-repid.
2)ALV 显示属性
i_layout-colwidth_optimize = 'X'. "自动调整列宽
i_layout-zebra = 'X'. "变换行颜色
2)ALV写法,有两种:
(1)法一,写成块形式
data: pos type i.
define alv_append_field. "定义模块
i_fieldcat-col_pos = pos. "列标志
i_fieldcat-fieldname = &1. "字段名
i_fieldcat-seltext_l = &2. "字段描述
i_fieldcat-no_zero = 'X'. "不显示值为0的数据和前导0
... "其它的fieldcat属性
append i_fieldcat to allfields. "写进显示字段内表
clear i_fieldcat.
pos = pos + 1. "下一列
end-of-definition.
refresh allfields.
pos = 1.
clear i_fieldcat.
alv_append_field 'FLDNAME' 'FLDTXT' .
(2)法二:标准形式
clear i_fieldcat.
i_fieldcat-fieldname = 'FLDNAME'. "字段名
i_fieldcat-seltext_l = 'FLDTXT'. "字段描述
i_fieldcat-no_zero = 'X'.
... "其它fieldcat属性
append i_fieldcat to allfields.
... "循环同上
3)调用ALV显示函数
call function 'REUSE_ALV_GRID_DISPLAY' "statt LIST
exporting
i_callback_program = myrepid
i_callback_pf_status_set = e_status "使用非标准按钮
is_layout = i_layout
i_CALLBACK_USER_COMMAND = 'USER_COMMAND' "非标准按钮动作
it_fieldcat = allfields "显示字段的内表
i_save = 'A' "是否打开保存
tables
t_outtab = itab " 内表名
exceptions
program_error = 1
others = 2.

注:alv有两种显示格式的function:(1)REUSE_ALV_LIST_DISPLAY(和 write到屏幕一样的样式);(2)REUSE_ALV_GRID_DISPLAY(单元格样式)。

ALV2:ALV列、行、单元格颜色设置
1 )颜色含义

1 :海蓝;2:浅清;3:黄色;4:浅蓝;5:青色;6:红色;7:橙色。
(1)首位为主颜色;
(2)次位为辅助颜色;
(3)末位为0时,表示首位数字表为表格的底色;
末位为1时,则表示以1为底色,首位数字则表为表格字体的颜色;
末位为其它颜色时,则表示底色为ALV的默认颜色;
以上三条是本人大概总结出来的规律,本人发现的现象基本如上,但也不一定全部正确。
其中C200与系统标准ALV底色比较相似;C410与系统标准关键字颜色比较相似。
2 )列颜色:
设置ALV字 段 fieldcat属性:i_fieldcat-emphasize = &3. " 颜色
把 fieldcat属性写入属性内表 allfields:alv_append_field 'WERKS' ' 工厂 ' 'C110'.
C110 :为颜色代码;
3 )行颜色:
(1)在内表itab定义一个字段 line_color来存储颜色;loop内表itab,在需要显示颜色的行其值赋为颜色'C110';
(2)在定义alv显示格式定义:
设置ALV显示layout属性:i_layout-info_fieldname = 'LINE_COLOR',line_color为内表定义的存储颜色的列名。
4)单元格颜色
单元格颜色属性:LVC_S_SCOL,该属性为一结构,含三个字段:FNAME(30)、COLOR(颜色结构,含三个字段:col(10)、int(3)、inv(10))、 NOKEYCOL(1)(覆盖码颜色)
ALV 列属性:coltab_fieldname
exa :
定义内表itab含字段FLDNAME type LVC_S_SCOL;
定义单元格颜色结构cellcolor type LVC_S_SCOL;
循环内表,当要设置单元格颜色所在的列字段 colname要设置颜色时
fldname-FNAME = ‘ COLNAME ’
fldname-COLOR-col = ‘ 2 ’ (颜色代码)
fldname-COLOR-int = ‘ 1 ’
fldname-COLOR-inv = ‘ 0 ’ 。

ALV3:ALV的html表头
在ALV的function的exporting里添加属性:

I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE
定义form响应上述ALV属性
form html_top_of_page using document type ref to cl_dd_document.
DATA: text TYPE SDYDO_TEXT_ELEMENT.
 text = titlname
 CALL METHOD DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT      = text
      SAP_STYLE = 'HEADING'.
 "换行写另一标题
 CALL METHOD DOCUMENT->NEW_LINE.
或使用空格
CALL METHOD DOCUMENT->ADD_GAP
    EXPORTING
      WIDTH = 10. "空格宽10
...
 endform.

ALV4:ALV里显示状态灯
1)在alv引用类型池定义时加入icon,如type-pools: slis, icon.

2)给显示内表itab定义一字段statu存储状态灯;

3)循环内表itab给字段statu值赋:
绿灯:itab-statu = icon_led_green.
红灯:itab-statu = icon_led_red.
4)alv的fieldcat属性i_fieldcat-icon = 'X'.
ALV5:ALV的layout属性
ALV里的显示属性可通过定义i_layout TYPE slis_layout_alv来使用不同的显示风格。可双击“slis_layout_alv”来查看类型组SLIS里的layout属性:

父类  子类  子类  主要属性(部分)  描述 
slis_layout_alv  slis_layout_main    dummy  
slis_layout_alv_spec  slis_layout_alv_spec0  no_colhead(1) type c 没有标题
zebra(1) type c 行颜色间隔改变
no_vline(1) type c 没有竖线,由空格代替
no_hline(1) type c 没有横线,由空格代替
cell_merge(1) type c 单元格复制形式
edit(1) type c 可编辑仅为grid
edit_mode(1) type c 编辑模式仅为grid
numc_sum(1) type c 数值型字段汇总
no_input(1) type c 仅输出
no_keyfix(1) type c 不固定关键字列
slis_layout_alv_spec1  Display options 显示属性  
colwidth_optimize(1) type c 自动调整列宽
no_min_linesize(1) type c line size = width of the list
min_linesize like sy-linsz if initial min_linesize = 80
max_linesize like sy-linsz, Default 250
window_titlebar like sy-title  
no_uline_hs(1) type c  
Exceptions 扩展  
lights_fieldname type slis_fieldname  
lights_tabname type slis_tabname  
lights_rollname like dfies-rollname  
lights_condense(1) type c  
Sums 合计  
no_sumchoice(1) type c 不可选择总计
no_totalline(1) type c 没有合计行
no_subchoice(1) type c 不可选择小计
no_subtotals(1) type c 没有小计
no_unit_splitting type c  
totals_before_items type c 在明细前显示合计
totals_only(1) type c 只显示合计
totals_text(60) type c 合计第一列文本行
subtotals_text(60) type c 小计第一列文本行
Interaction 继承  
box_fieldname type slis_fieldname  
box_tabname type slis_tabname  
box_rollname like dd03p-rollname  
key_hotspot(1) type c keys as hotspot
flexible_key(1) type c key columns movable
group_buttons(1) type c buttons for COL1 - COL5
get_selinfos(1) type c read selection screen
group_change_edit(1) type c Settings by user for new group
no_scrolling(1) type c no scrolling
Detailed screen 屏幕详细  
detail_popup(1) type c 弹出显示明细
detail_initial_lines(1) type c 显示初始行
detail_titlebar like sy-title 详细标题栏
Display variants 显示变量  
header_text(20) type c 标题按钮文本
default_item(1) type c 默认明细
colour 颜色  
info_fieldname type slis_fieldname  
coltab_fieldname type slis_fieldname  
others 其它(略)  

ALV6:ALV的fieldcat属性
ALV里的字段属性可通过定义i_fieldcat TYPE slis_t_fieldcat_alv来使用字段的属性。可双击“slis_t_fieldcat_alv”来查看类型组SLIS里的fieldcat 属性,slis_t_fieldcat_alv 来自类slis_fieldcat_alv,该类主要包含两个类:slis_fieldcat_main、 slis_fieldcat_alv_spec,主要有以下属性: 

父类  子类  子类  主要属性(部分)  描述 
Slis_fieldcat_alv  slis_fieldcat_main  slis_fieldcat_main0  row_pos 输出行
col_pos 列位置
fieldname  
tabname 标签名称
currency(5) 货币单位
cfieldname field with currency unit
ctabname Table with currency unit
ifieldname initial column
quantity(3) 计量单位
qfieldname 参考计量单位的字段名称
qtabname Table with quantity unit
round ROUND 值
exponent(3) 流动表示的指数
key(1) 关键字段
icon(1) 作为图标输出
symbol(1) 输出作为符号
checkbox(1) 作为复选框输出
just(1) 对齐
lzero(1) 输出前导零
no_sign(1) 输出抑制符号
no_zero(1) 为输出隐藏零
no_convext(1)  
edit_mask 为输出编辑掩码
emphasize(4) 带有颜色的高亮列
fix_column(1) 固定列
do_sum(1) 总计列值
no_out(1) 列没有输出
tech(1) 技术字段
outputlen 列的字符宽度
offset offset
seltext_l 长文本
seltext_m 中文本
seltext_s 短文本
slis_fieldcat_main1  ref_fieldname  
ref_tabname  
roundfieldname  
roundtabname  
decimalsfieldn  
decimalstabnam  
decimals_out(6) 控制小数点的位数
text_fieldname  
reptext_ddic  
ddic_outputlen  
slis_fieldcat_alv_spec     key_sel(1) field not obligatory
no_sum(1) do not sum up
sp_group(4) group specification
reprep(1) selection for rep/rep
input(1) input
edit(1) internal use only
hotspot(1) hotspot

ALV7:ALV式的弹出窗口
在系统标准程序下,有不少屏幕在检查或过帐时会弹出一个小型的ALV窗口,上面记录着错误信息,这种ALV弹出式窗口可通过以下方法做成:
(1)定义ALVBOX
data:box_container type ref to cl_gui_dialogbox_container,
     box_alv type ref to cl_gui_alv_grid.
class lcl_event_handler definition.
 public section.
 class-methods:
on_close for event close of cl_gui_dialogbox_container importing sender.
endclass.
class lcl_event_handler implementation.
 method on_close.
   call method sender->free.
    free: box_container, box_alv .
 endmethod.
endclass.
data: ls_fcat type lvc_s_fcat., "ALV的fieldcat属性行
lt_fieldcat type lvc_t_fcat. "ALV的fieldcat属性内表
data: ls_layout type lvc_s_layo. " ALV的layout属性内表
可双击父类lvc_t_fcat、lvc_s_layo来查看所包含的属性
(2)建立ALV对象
    create object box_container
      exporting
        width   = 600      " 窗口大小
        height = 200
        top     = 120
        left    = 120
        caption = ' 提示信息' "弹出窗口标题
      exceptions
        others = 1.
set handler lcl_event_handler=>on_close for box_container.
 create object box_alv
    exporting
      i_parent          = box_container
    exceptions
      others           = 1.
(3)输出ALV的fieldcat属性和layout属性
call function 'LVC_FIELDCATALOG_MERGE'
 exporting
   i_structure_name          = 'ZSTAB'   " 输出格式对应的结构
 changing
   ct_fieldcat                = lt_fieldcat "ALV 的fieldcat属性内表
 exceptions
   inconsistent_interface       = 1
   program_error             = 2
   others                    = 3.
注:要事先在se11创建一个和ALV 输出字段一致的结构ZSTAB;
      " 写入fieldcat的属性
loop at lt_fieldcat into ls_fcat.
 ls_fcat-icon = 'X '.
 ...
  modify lt_fieldcat from ls_fcat.
endloop.
"写入layout属性
ls_layout-cwidth_opt = 'X '.
...
(4)调用方法显示ALV窗口
call method box_alv->set_table_for_first_display
 exporting
   i_structure_name              = 'ZBGER' " 输出格式对应的结构
   is_layout                   = ls_layout "layout 属性
   i_default                   = 'X'
 changing
   it_outtab                   = itab " 内表
   it_fieldcatalog               = lt_fieldcat "fieldcat 属性
 exceptions
   others                        = 1.
弹出式窗口另外做法:可使用write到屏幕的办法,如下:

(1)在程序中创建一个screen type 为“方式对话框”的屏幕;
(2)在屏幕输出前,write要输出的数据:
process before output.
 modiule frm_write_out.
(3)在module里写输出到屏幕的代码
module frm_write_out output.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
NEW-PAGE NO-TITLE.
write ...
LEAVE SCREEN.
endmodule.

posted @ 2010-08-30 15:08 elegant 阅读(806) 评论(0) 编辑
摘要: 使用EasyPHP 安装mantis1. 简介EasyPHP是在Windows平台上运行的软件包,包括Apache服务器,MySQL数据库,PHP,以及phpMyAdmin工具。mantis是基于php/MySQL/web 的问题跟踪系统。2. 下载EasyPHP 1.8的下载地址为http://easyphp.org/telechargements.php3。EasyPHP 1.8包括:1) A...阅读全文
posted @ 2010-07-27 19:16 elegant 阅读(280) 评论(0) 编辑
摘要: 自进入ERP咨询实施行业以来,一直都在不断地学习、实践、总结,不断地在项目中经历着痛苦抑或者快乐的磨砺和蜕变,‘痛并快乐着’是我很长一段时间以来的真实感受。从一个懵懂而又充满激情的青年学生,经过技术支持顾问到ERP实施顾问再到ERP管理咨询顾问的转变,个中感受,每每回想起来,颇有一番滋味。回首起来,自1996年毕业,1998年步入ERP行业以来,凡9年间,共经历了3个主要的...阅读全文
posted @ 2010-07-04 11:41 elegant 阅读(274) 评论(0) 编辑
摘要: SAP 中国的咨询合作伙伴 SAP 中国的咨询合作伙伴团队由国际和国内知名的咨询公司组成.为大家找顾问公司做参考. ACJ Consulting Co., Ltd. 上海欧麒瑞信息技术有限公司Accenture China Co., Ltd. 埃森哲咨询中国有限公司 ASAP Technologies Co., Ltd. 上海信杰科技有限公司Asialink Technologies Co., L...阅读全文
posted @ 2010-06-27 19:58 elegant 阅读(214) 评论(0) 编辑
摘要: 有人说,人生路上处处都是十字路口。向左走向右走向前走向后走,都是抉择。抉择过后又有分分合合。很多时候,挑公司就像谈恋爱,另结新欢之后人有时候偏又念着前面那一个的好,希望能吃“回头草”。这个时候,问题就来了。   近日,周刊记者与柏明顿人力资源管理咨询公司一起组织了一场关于“职场好马应否吃回头草”的讨论,记者、专家与近40名来自各行业的人力资源经理展开...阅读全文
posted @ 2010-05-08 16:47 elegant 阅读(185) 评论(0) 编辑