Author: Exson Qu

销售分析
有几种方法分析销售历史。如果需要一个快速分析，webERP的销售图表脚本很灵活性，允许用图来反映销售与预算。当然，它依赖销售预算记录的水平以及与预算比较是否会显示一些有用的信息。如果需要实际数字的报告，webER有一个销售报告生成工具，来创建销售报告－－得到的报告模板可以重新运行或者修改。这些报告可以输出pdf或者csv文件，csv文件可以被大多数的试算表程序读取。
从主菜单，在应收账款模块的报告和查询选项中有“销售分析报告”。所有预先定义的销售报告在这里都有链接以进行：

- 修改报告的设计－－标题

- 修改报告的列

- 运行报告并生成一个PDF文件

- 运行报告并创建CSV文件--他用逗号分隔值，可以被任何的试算表程序读取。

在这页面下方，也可以创建新报告来显示销售数据的综合信息。webERP将销售数据以单独的表维护，以使这些报告以最快的速度运行。

销售分析报告的组成：

- 报告标题的定义

- 报告列的定义

销售分析报告标题

创建报告的第一步是输入标题信息，包括：

- 报告标题－－描述报告的任意字符组合。

- 最多４层分组和每组的条件

每个组别包含下面选择中的一种：

- 销售区域

- 产品代码

- 顾客代码－－实际的付款帐户

- 销售类型（价格表）

- 产品类型（或者存货/库存目录）

- 顾客分公司

- 销售人员

报告按照顺序对每个水平来进行分组. 例如把第一组设置成产品代码, 第二组设置成销售地区，那么报告就会显示产品的代码，然后是在此产品代码下，产品销售的地区，也就是说这个产品是在哪里里出售的。通常，更合理的顺序可能是将销售地区作为第一组，产品代码作为第二组, 这样每个地区销售的所有产品的代码出现在一起。
每个分组都要求指定一个范围。所有指定的条件必须指向相关组别在设置模块指定的编码。例如，销售地区条件必须输入地区编码－－而不是地区描述。起始条件必须小于终止条件，否则报告将会没有输出。
销售分析报告列

在为报告创建了标题之后，我们就可以定义列了。已有报告的列可以在任何时间修改。从销售分析报告主页面-（应收帐款－销售分析报告）－－在每个报告都有一个链接 "定义列”。点击这个链接，所选择的报告列就会出现，同时还显示一个表格允许输入新的列。对定义的每个栏位而言，下面的输入是必须的：

- 1到10之间的列号。这些数字决定了在整个页中，这个列的打印位置－1是最近页面左侧的列，10是最近右侧的列。

- 有两个栏位用来输入列标题的第一行和第二行。每个栏位可以输入最多15个任意字符。

- 列是否是计算结果。计算列的输入要求与正常数据列的是不同的。

- 对正常的数据列－－需要来显示数据的期间范围。期间的起止必须以期间的数字指定。由于期间由系统以几乎不可见的方式维护，这个屏幕提供了一个链接显示定义的期间。如果要求期间为单个月，那么期间的起始止是相同的。

- 显示在列中的数据可以从下列选择：数量，毛值,净值（扣除折扣），毛利润，成本和折扣。

- 预算的销售或者实际的销售。

如果这列被定义为计算，并不要求期间的范围，也不要求选择数据的类型，预算或实际。把计算字段的设置改为yes，是，然后点击输入信息按钮，显示对于计算所要求的字段：

- 分子字段－－这是要计算的第一个参数的列号－分子字段在计算中总是被要求的。

- 分母字段--如果计算是在两列间进行的话，这是用于计算的第二个栏位参数。如果计算的运算符为除法--那么这列将全部会出现在除法的分母。如果计算是用常数的话，这个字段将留为空白。

- 运算符可以是其中之一：

  1. 分子栏被分母栏除

  2. 分子栏被常数整除

  3. 分子栏被常数相乘

  4. 分子栏加分母栏

  5. 分子栏减去分母栏

- 在计算中，常数可以是任何的数字。

- 计算结果的格式可以表示为百分数或者数字。

点击输入信息按纽将此列加入到定义的报表中。它应该显示在定义的列列表中。并显示一个用于定义新列的一个空白表格。如果不需要新的列位，列位定义的列表有一个链接允许删除相关列。

列数本身是一个用来修改栏位定义的链接。定义以表格的形式显示以便于在需要时修改。
点击链接来维护报告标题，它显示已经定义的报告的标题设置项，以供修改或者运行。要运行报告，只要简单地点击产生PDF报告的连接。
这些销售报告必须查询很多信息（报告通常是动态生成的），因此，他们可以花大约一分钟在大型数据库运行。然而，数据经过精心的设计，因而确保能够以比很多类似分析引擎快得多的速度动态生成报告。
可能值得举一个生成报告的例子－－为每个销售地区和该地区的销售人员，显示其销售额和毛利润，
应收账款－>查询和报告－>销售分析报告
在定义一新报告－－报告标题处
输入标题“销售－以地区和销售人员分类”
选择销售地区作为“Group By 1" 然后在“起始”框输入0－－由于所有的销售地区编号都会大于0，然后在“截止”框输入”ZZZZZ"--希望你定义的销售地区代码落在0到ZZZZZ之间--如果您只要某一个地区，那么只要在“起始”和“截止”框中都输入该代码即可。

选择“销售人员”作为“Group By 2" 然后在“起始”框输入0－－由于所有的销售员编号都会大于0，然后在“截止”框输入”ZZZZZ"--希望你定义的销售员代码落在0到ZZZZZ之间--如果您只要某一个销售员，那么只要在“起始”和“截止”框中都输入该代码即可。

点击输入信息将此报告输入数据库。
报告清单会显示我们的新报告“销售－依地区和销售员”－－点击定义列的连

接下来定义此报告的列

在列数中输入列1
标题1输入－“销售额”－－这是列标题的头一行
标题2输入－“January 08"这是列标题的第二行
现在查找January 08所属期间数，然后在"起始期间"和“截止期间"输入期间数；如果您要显示一个期间范围的销售额，你可以选择任何期间范围－－只要确保截止期间在开始期间之后！ 由于我们要显示1月份的销售额，在 “显示数据” 选择框内。我们需要选择“Net Sales Value""净销售额“，这个列可以包含选择框内任何可选的数据。毛销售额选项是在计入销售折扣之前的销售额－－大多数情形下，您需要净销售额。
预算或者实际金额框需要从预算改为实际。如果你要比较预算金额，那么销售预算需要导入。（目前没有界面可以让用户手动输入预算）。
点击输入信息,系统会在页头显示单列的定义，以及用来加入新列的新空白列。
要为一月份的毛利润创建另一列－－如同上面一样－－只需输入栏2，并且把标题文字从销售额改为毛利润－－使用同样的期间范围。这次在“显示数据”中选择“毛利润”；以及预算栏或者实际中选“实际”。再次点击输入信息来接受第二列－－定义的两列会显示在屏幕上。
现在运行报告，点击“维护报告标题”连接，查看已经定义的报告列表，寻找“销售－－以区域和销售员”报告，点击链接“生成PDF报告”“--系统会运行报告，一个pdf报告会被显示。。。
计算字段的例子
例如，列1表示2008年一月的销售额，列2表示2007年一月的销售额－－我们希望有第三列，显示今年销售额占去年的百分比。
要定义列3：输入列号－－3和列标题－－比去年增加的%，选择计算--Yes, 然后点击输入信息按钮Enter Information Button--表单于是显示“分子列#"和分母列＃“。
今年的销售应该是分子列－－列1－－在这栏输入1。分母列为2。
计算类型应是分子被分母除。也有其他的选项。
这个计算的格式应该是百分数。
自动的销售报告
创建了报告后，可以把销售报告电邮至定义的收信人那里。脚本MailSalesReport.php是一个模板。webERP没有设置到此脚本的链接，并且也没有为它设置安全水准。唯一要求的是把此脚本另存为其他名字，用.php为后缀，且与其他脚本在同一路径下。

脚本需要编辑收件人的电邮地址和报告ＩＤ－－系统产生的要运行的报告编号。要编辑的行是：
/*要发送的销售报告*/
$ReportID = 4;
/*收到电邮报告的人员*/
$Recipients = array('"Root" ','"some one else" ');
以/*和*/包围的行称为注释。
一旦编辑或选择了ReportID，输入了收件人，就可以储存文件了。
在linux环境下，计划在每个工作日的0:0点，运行crontab中设置的计划报告（假设wget安装在/usr/bin/wget 并且网页服务器在同一机器上，新脚本称为DailySalesReport.php),那么应是这样：
# Scheduled email of a daily sales report 有计划地发送每天的销售报告
0 0 * * 2-5 root /usr/bin/wget http://localhost/web-erp/DailySalesReport.php
由于这页没有输出－－在网页浏览器中运行它没有意义，尽管它会发送另外一个电邮到定义的收件人那里。
有一个相似的模板脚本叫MailSalesReport_csv.php,他会为一个ReportID邮寄csv文件给收件人。
自动邮寄销售分析报告的另外一个优雅的解决方案，是使用脚本report_runner.php。可以从shell或者cron直接运行，并采用命令行参数。它的优点在于不用写死一个号码或者脚本，这个脚本可以用以下的命令行运行：
-r reportnumber (the number of the webERP report) -r 报告编号 （webERP的报告编号）
-n reportname (the name you want to give the report) －n 报告名称 （你赋予的报告名）
-e emailaddress[;emailaddress;emailaddres...] (who you want to send it to) -e 电邮地址[;电邮地址；电邮地址。。。］（你要发送的收件人）
[-t reporttext ] (some words you want to send with the report-optional) ［－t 报告文字］（你随报告要发送的文字－可选）
[ -H weberpHOME] (the home directory for weberp - or edit the php file) ［－H weberpHome](webERP的家目录－或者编辑php文件）