船舶卫星通信费用核算中的数据整理方法
2016-01-29李日宏
李日宏
(广州中海电信有限公司,广州 510220)
船舶卫星通信费用核算中的数据整理方法
李日宏
(广州中海电信有限公司,广州 510220)
摘要:在卫星通信核算工作中,当收到船舶卫星通信清单时,往往不容易进行有关数据的统计和管理。对此,以北京卫星岸站所提供的电子版通信账单为基础,从其实际情况出发,研究如何对每月杂乱的通信费用实现科学地整理,为进一步准确核算和数据统计提供依据。
关键词:卫星岸站;通信费用;旧式通信;新式通信;清单整理
0引言
卫星通信费用核算,是指根据船舶卫星通信设备每次通信持续时间的长短、所使用或产生的通信流量的多少以及协议商定的资费标准,将所应支付的通信费用计算出来。北京岸站每月发生的、广州中海电信有限公司下属船舶的卫星通信费用清单压缩文件解压后可分成3类:
(1) 数张旧式通信清单(电子表格,每张表格包含有完整字段的通信费用数据);
(2) 新式卫星通信清单,费用涉及FLEET BROAD BAND最新卫星通信业务的所有数据(电子表格工作簿,第一张表为FBB通信的船舶各业务费用、FBB月租费用统计表,其余表格为各船的实际FBB通信费用清单,以船舶FBB终端号及业务类型为依据的分类通信清单)。
(3) 该岸站以船舶使用旧式通信数据邮箱费用为依据收取的月租费用,一份表格工作簿文件内含多张不同部门船舶的月租费用表格。
就该公司为能按协议条款进行各业务类型的费用核算和相关数据的统计,需将以上3类清单所含各表数据都集中到1张DBF数据表。
1方法探讨的必要性
一般来说,电子版通信清单应力求所有的通信费用数据集中在1张数据表中,以方便用户统计。但是,北京提供的电子版账单却有3个部分,这就使得某艘船的通信费用需要从3个部分的各个文件中查找:旧式通信清单分部门保存各自下属船舶的旧式通信费用,若要找到某艘船的通信费用,势必要逐份打开文件。三部分的文件数据格式各不相同:第一部分数据包含通信数据所要求的各个通信字段;第二部分租金数据没有字段,是统计表格并分部门各列1张表形成工作簿文件;第三部分则为按船舶FBB终端号和业务类型出具的表格清单,也是按部门分类各占1张表格,另加FBB各业务、月租及优惠费用的统计表。若要对这些数据进行相关统计,或进行重新计费等,需对各部分数据进行科学整理,才能提高核算工作的效率,同时方便各船公司统计通信费用。
2卫星通信费用整理方法思路
利用计算机科学管理卫星通信费用核算,需从原始数据的接收、存放入手,规范程序的设计和编写,实现自动化整理。
(1) 确定每月账单的下载存放路径。
(2) 指定年月自动建立三部分数据文件夹,解压缩所下载的文件并判断所有文件名是否包含空格,随后删除空格并将这些文件分类移动到所建立的文件夹中。
(3) 将第一部分十多份表格文件另存为95XLS格式文件并添加到自动生成的通信数据表BEIJING.DBF中,在整理前从原始数据中拾取当月的折算费率并保存为指定费率文件,删除非通信记录完成整理。
(4) 对第二部分表格工作簿,首先检测各分表表名是否包含空格,随后格式化、清除空格并将其另存为.CSV格式文件;制作租金数据表,逐个添加另存的文件数据,删除无用记录整理出租金费用数据表;最后删除所有另存的.CSV格式文件,以腾出空间。
(5) 对第三部分FBB通信费用数据表格工作簿,先以各组成表格名另存为“FBB”+“3字节编号字符串”+“表格名”的.CSV文件,编号字符串由“000”开始,则其中的FBB船舶统计表另存为FBB000_船舶统计.CSV文件。由于另存的以FBB000开头的文件是FBB业务所有费用的统计表,故将其添加到自动制作的FBBINVOICE.DBF表中,并以此为母表生成另外2张数据表FBBYUEZU.DBF和FBBZJJL.DBF;而以FBB001及以上编号另存的各.CSV文件数据则逐一添加到自动生成的空表FBBTEMP.DBF中。对FBBTEMP.DBF表,根据原表中抽取的用户号码按要求填写各用户号码所产生的通信记录,最后整理出FBB.DBF通信数据表并将本文件夹内的所有另存的.CSV文件删除,以腾出空间。
上述“(1)”作为一个菜单程序完成,而“(2)”~“(5)”任务可集中到另一个菜单功能一并实现。先分步探讨,最后以1个菜单完成3类原始通信费用数据的整理,并以图片的形式展示出来。
3每月通信账单下载存放路径的确定
1) 由“北京岸站存放下载文件夹生成”菜单完成。指定年月(如“2014-12”)自动生成诸如E:SATCOMAGENTBEIJING201412的文件夹,将路径存放在剪切板上,提示:“可以将原始文件保存在该文件夹”。
2) 下载岸站邮件附件后,指定文件夹有“广州中海电信201412.RAR”压缩文件。
3) 解压缩北京岸站原始账单并自动分类保存到新建立的预定文件夹中,由菜单功能完成。菜单功能完成后,分别在3个文件夹中保存分类表格文件。
关于文件名中空格的删除问题,可用程序方法解决:
WN='"GZ CSTEL SAT DATA 1405.XLS"'
CN=WN
DO WHILE AT(' ',CN)<>0
LENGTH=LEN(WN)
CN=SUBS(CN,1,AT(' ',CN)-1)+SUBS(CN,AT(' ',CN)+1,LENGTH-AT(' ',CN)+1)
ENDDO
RENAME &WN TO &CN
4旧式通信清单整理
旧式通信清单是指北京岸站除了新式通信FBB以外的其他卫星通信设备所产生的费用清单,每月大概有十余张电子表格文件。
4.1 人工做法
将每个文件人工另存为95格式的同名文件,制作对应字段的DBF空表,将另存的95格式文件逐个追加到生成的空表中,最后将非通信记录删除。
4.2 设想方法
用程序菜单方法将指定存放旧式通信清单的文件夹的所有XLS文件逐个另存为与原文件同文件名的95XLS格式文件,将另存的各个文件追加到自动制作的DBF空表中,删除并清空非通信记录。
4.3 实现方法
在核算程序中,以菜单“旧式通信原账单的完全整理”过程实现。整理完成后,指定文件夹文件BEIJING1412.DBF即为整理出的数据表。
在整理旧式通信数据之前,须在数据表中拾取当月的外汇牌价,用于通信数据的核算和统计等工作。
NY='201412'
FBJG='BEIJING.DBF'
USE & FBJG
LOCA FOR 日期='外汇牌价'
IF EOF()
CLEAR
@10,10 SAY '有关外汇折算率拾取失败,请查原始文件内容后面第二列是否有提供“外汇牌价:”'
READ
CLOSE ALL
RETURN
ENDIF
STORE ALLT(时间) TO SDRUSD
SDRUSD=ROUND(VAL(ALLT(SUBS(SDRUSD,AT('=',SDRUSD)+1,AT(' ',SDRUSD)-1-AT('=',SDRUSD)+1))),6)
SKIP
STORE ALLT(时间) TO USDRMB
USDRMB=ROUND(VAL(ALLT(SUBS(USDRMB,AT('=',USDRMB)+1,AT(' ',USDRMB)-1-AT('=',USDRMB)+1))),6)
SKIP
STORE ALLT(时间) TO SDRGF
SDRGF=ROUND(VAL(ALLT(SUBS(SDRGF,AT('=',SDRGF)+1,AT(' ',SDRGF)-1-AT('=',SDRGF)+1))),6)
MRATE='D:CXBEIJINGRATE'+SUBS(NY,3,4)
CREATE TABLE &MRATE (CURRENCY C(10), USD N(10,6), GF N(10,6), RMB N(10)
USE & MRATE
INSER BLANK
REPL USD WITH SDRUSD GF WITH SDRGF CURRENCY WITH 'SDR'
INSER BLANK
REPL ALL RMB WITH USDRMB CURRENCY='USD'
5新式通信清单整理
新式通信清单是指某岸站所有船舶FBB卫星通信设备所产生的费用清单,每月有一份电子表格工作簿文件。
5.1 人工做法
该工作簿的第一张表“船舶列表”另存为95XLS格式文件,通过整理形成FBBINVOICE.DBF,FBBYUEZU.DBF和FBBZJJL.DBF等3张表,并以FBBYUEZU.DBF数据为依据确定该公司当月船舶的FBB月租费用记录,以FBBZJJL.DBF数据为依据在进一步的费用核算中收集FBB数据用量。该船FBB数据用量≤10,则将这些用量的费用全部置为0;若其FBB数据用量>10,则将FBBZJJL.DBF表中该船记录追加到当月费用中,以作为10 M费用优惠的抵消记录。
将该工作簿中第二张表后的各表分别单独另存为95XLS格式的表名文件,制作FBBTEMP.DBF空表文件,将这些FBB通信记录逐一追加到该空表中。最后将FBBTEMP.DBF中的数据整理成能用于进一步核算的数据。
5.2 理想方法
1) 用程序方法将指定文件夹内的FBB电子工作簿文件按各表逐一另存为“FBB000_表名.XLS ”的95XLS格式文件,第一另存文件名为“FBB000_船舶列表.XLS”文件,其余的则为冠上“FBB001”+”-表名.XLS”等的文件。自动生成FBBTEMP.DBF空表,将另存的除FBB000开头以外的以FBB开头的所有95XLS文件追加到空表中,之后提示“可以进行FBB月租整理和对FBB通信记录进行整理”。
2) 用程序方法实现对FBBTEMP.DBF表的整理。
3) 用程序方法自动导入表“FBB000_船舶列表.XLS”中数据,自动整理为FBB费用月租和作为FBB数据用量优惠依据的统计表。
5.3 实现方法
在核算程序中,以“新式通信FBB原账单拆分及FBBTEMP空表制作并添加通信数据”、“新式通信FBB原账单数据FBBTEMP整理”和“新式通信FBB月租整理(FBB000_船舶统计.XLS)”菜单的方式完成所需数据的整理。
1) 新式通信FBB原账单拆分及FBBTEMP空表制作并添加通信数据。
2) 新式通信FBB原账单数据FBBTEMP整理。
在整理FBBTEMP.DBF数据,若菜单程序采用的方法不同,则整理所用的时间可以相差很多。
第一种方法,即菜单程序采用单循环,逐条记录、检测用户号码,根据接下来该用户号码产生的通信记录逐条填上用户号,作为FBJ字段数据。
USE FBBTEMP
REPL ALL FBJ WITH ' '
REPL ALL FBJ WITH SUBS(AA,12,100) FOR AA='用户号码'
USE FBBTEMP
COUNT TO NNB
NNA=0
FBJYL=' '
DO WHILE NNA≤NNB-1
USE FBBTEMP
GO TOP
SKIP NNA
STORE FBJ TO FBBB
IF FBBB<>' '
FBJYL=FBBB
ENDIF
IF FBBB=' ' .AND. FBJYL<>' '
REPL FBJ WITH FBJYL
ENDIF
NNA=NNA+1
ENDDO
第二种方法,即菜单程序采用,抽取FBBTEMP.DBF数据表中某字段为用户号码的号码及其所在的记录号形成新表,对新表的记录循环一次,每次记录用户号码和记录号,对FBBTEMP.DBF表中大于或等于记录号的FBJ字段批量填上用户号码。
USE FBBTEMP
REPL ALL FBJ WITH ' '
REPL ALL FBJ WITH SUBS(AA,12,100) FOR AA='用户号码'
USE
SELE RECNO() AS REC, FBJ AS FBJPD FROM FBBTEMP INTO TABLE FBJTX WHERE AA='用户号码'
CLOSE ALL
USE FBJTX
COUN TO CTS
CT=0
DO WHILE CT<=CTS-1
USE FBJTX
SKIP CT
STORE REC TO RECC
STORE ALLT(FBJPD) TO FBJJ
USE FBBTEMP
REPL ALL FBJ WITH FBJJ FOR RECNO()>=RECC
CT=CT+1
ENDDO
CLOSE ALL
DELE FILE FBJTX.DBF
第三种方法,即将运用第二种方法得到的新表按号码列倒序排序循环一次,每次记录用户号码和记录号,对FBBTEMP.DBF表中大于等于记录号并字段值为空的FBJ字段批量填上用户号码。
运用以上3种方法整理同样的原始数据所用时间对比见表1。
表1 新式通信FBB通信费用记录整理3种方法所用时间对比
虽然第二种方法所用时间与第三种方法相差甚少,但在最终的菜单功能实现上采取第三种处理方法。
3) 新式通信FBB月租整理(FBB000_船舶统计.XLS)。
6邮箱租金费用整理
邮箱租金费用是否收取由旧式通信方式中数据终端当月实际使用的金额来确定,若某船该终端号实际使用金额没有达到规定值,则要收取。
6.1 人工的做法
(1) 将租金工作簿内的各表数据集中到第一张表中;
(2) 删除第一张表之外的其它表;
(3) 另存为BEIJINGZJ.CSV(逗号分隔的CSV)文件;
(4) 运用VFP数据导入方法,将BEIJINGZJ.CSV表生成新建同名的.DBF表;
(5) 制作空表CREATE TABLE BEIJINGZJYM.DBF (FBJ C(24), YHJ1 C(15), YHJ C(8)),生成的同名.DBF表中的追加并整理数据。
6.2 设想方法
(1) 用程序方法制作空表,如CREATE TABLE BEIJINGZJ1412.DBF (FBJ C(24), YHJ1 C(15), YHJ C(8));
(2) 逐一选定月租费用中的各表并另存为“表名.CSV”格式文件,同时将各表内容自动添加到空表中;
(3) 删除无效记录并清空。
6.3 实现方法
在核算程序中,以“邮箱租金费用清单的完全整理”菜单功能实现。在按要求输入年月之后,弹出文件选择窗口。
在租金费用整理过程中,需将各表名另存为“表名.CSV”文件,但实际的费用表名中可能存在空格,因此在整理之前就要对原始文件各表进行逐一检查、纠正和保存,以下面的程序段来实现。
WJM=’ BJRYDEX201412.XLS’
MYEXCEL=CREATEOBJECT('EXCEL.APPLICATION')
MYEXCEL.VISIBLE=.F.
MYEXCEL.WORKBOOKS.OPEN(WJM)
FOR EACH OMYVAR IN MYEXCEL.SHEETS
MYEXCEL.ACTIVEWORKBOOK.SHEETS(OMYVAR.NAME).SELECT
MYEXCEL.ACTIVEWORKBOOK.SHEETS(OMYVAR.NAME).NAME=ALLT(OMYVAR.NAME)
NEXT OMYVAR
MYEXCEL.DISPLAYALERTS=0
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).SAVEAS(WJM,39)
MYEXCEL.DISPLAYALERTS=1
MYEXCEL.WORKBOOKS.CLOSE
MYEXCEL.APPLICATION.QUIT
RELEASE MYEXCEL
至此,共整理出了5个数据文件和1个费率数据文件:BEIJING1412.DBF,BEIJINGZJ1412.DBF,FBB1412.DBF,FBBYUEZU1412.DBF,FBBZJJL1412.DBF和BEIJINGRATE1412.DBF。在整理过程中,这5个文件的数据结构有共同的字段,除了FBBZJJL1412.DBF在随后的核算工作中根据船舶的FBB实际数据使用量是否超过协议免费最低用量来确定该船FBB所用数据记录金额是否置0(或照常收费,但在费用中增加记录以作为免费用量的抵消)以外,其余4个文件均可直接整合到当月的卫星通信费用记录中,便于进行通信费用的统计等工作。
7整理功能展示
第一个菜单“北京岸站存放下载文件夹生成”不再展示,而其他的功能集中到“北京原始账单解压到最终完成整理”菜单完成。程序运行过程中,为验证程序运行的实际状况,会出现2个弹出窗口,要求选择租金费用原始表和FBB费用原始表。整个功能完成过程及有关的整理数据统计见图1~图4和表2。
图1 北京岸站原始账单实现自动整理的功能菜单
图2 全自动整理过程中弹出窗口一
图3 全自动整理过程中弹出窗口二
图4 所有数据整理结果提示
日期任务名称处理文件数/个所用时间/min有效记录/条原始记录/条用户数/个结果文件数/个2015-01旧式通信记录整理110.489061910622015-01邮箱租金整理60.287113312015-01新式通信FBB整理90.82255872657317712015-01新式通信FBB月租整理10.0210639022015-02旧式通信记录整理110.428442848322015-02邮箱租金整理60.277213112015-02新式通信FBB整理110.87251832618317612015-02新式通信FBB月租整理10.0010238422015-03旧式通信记录整理110.30100501010122015-03邮箱租金整理60.186613112015-03新式通信FBB整理111.62270522807218012015-03新式通信FBB月租整理10.0210339022015-04旧式通信记录整理110.309798984222015-04邮箱租金整理60.186412912015-04新式通信FBB整理111.08263652742018812015-04新式通信FBB月租整理10.0210540022015-05旧式通信记录整理110.329976100222015-05邮箱租金整理60.186312612015-05新式通信FBB整理111.47276532870318712015-05新式通信FBB月租整理10.021064102
实际工作的菜单功能,避免弹出打开文件窗口,采取自动获取所需的2个文件。从解压原始文件,直到完成三大类数据的整理,只需一键点击菜单后输入年月就可实现。
从2015年1月的数据整理来看,就新式通信FBB整理而言,有106套FBB设备,共进行了177项业务通信。若人工进行整理,要复制177次,每复制一次,就要在接下来的详细通信清单中将复制的内容添加到其产生的通信记录中,共要粘贴25 587条记录。之后将非通信的986条记录删除,完成新式FBB通信记录的整理, 另存为DBF格式文件。这样的人工整理过程无法记录准确时间,而用科学方法整理只需约48 s。
8结语
通过以上方法探讨、程序编写及最终集成功能菜单,实现了岸站提供的原始账单用两程序菜单功能对原始卫星通信费用清单的解压缩和最终数据整理,过程中还自动提取了岸站通信费用折算率,大大提高了核算工作的效率和卫星通信费用统计数据最终获得的速度。该数据整理方法对成百上千份表格文件或多表组成的大型工作簿文件的整理而言,意义更大。
参考文献:
[1]张洪瀚.数据库管理系统VISUAL FOXPRO 6.0[M].大连:东北财经大学出版社,2004.
[2]方建平.VISUAL FOXPRO 6.0参考详解[M].北京:清华大学出版社,2000.
[3]张宇.VISUAL FOXPRO 6.0程序设计与应用[M].北京:电子工业出版社,2004.
Sorting Ship Satellite Communications Data for Cost Accounting
LiRihong
(Guangzhou China Shipping Telecommunications Co.,Ltd, Guangzhou 510220, China)
Abstract:The invoices for marine satellite communication fee received from service providers are on the individual ship basis, which makes data processing and accounting a tedious job because of different statistical definition in shipping companies. This paper works on the electronic bills from Beijing LES to show the right way to deal with the matter.
Key words:satellite earth station; communication fee; old communication service; new communication service; bill sorting
中图分类号:TN927+.2;U675.7
文献标志码:A
文章编号:1674-5949(2015)04-057-08
作者简介:李日宏(1965—),男,广东人,工程师,从事计算机技术在卫星通信核算中的应用研究。
收稿日期:2015-08-04