李日宏
(廣州中海電信有限公司,廣州 510220)
?
船舶衛(wèi)星通信費(fèi)用核算中的數(shù)據(jù)整理方法
李日宏
(廣州中海電信有限公司,廣州 510220)
摘要:在衛(wèi)星通信核算工作中,當(dāng)收到船舶衛(wèi)星通信清單時,往往不容易進(jìn)行有關(guān)數(shù)據(jù)的統(tǒng)計和管理。對此,以北京衛(wèi)星岸站所提供的電子版通信賬單為基礎(chǔ),從其實(shí)際情況出發(fā),研究如何對每月雜亂的通信費(fèi)用實(shí)現(xiàn)科學(xué)地整理,為進(jìn)一步準(zhǔn)確核算和數(shù)據(jù)統(tǒng)計提供依據(jù)。
關(guān)鍵詞:衛(wèi)星岸站;通信費(fèi)用;舊式通信;新式通信;清單整理
0引言
衛(wèi)星通信費(fèi)用核算,是指根據(jù)船舶衛(wèi)星通信設(shè)備每次通信持續(xù)時間的長短、所使用或產(chǎn)生的通信流量的多少以及協(xié)議商定的資費(fèi)標(biāo)準(zhǔn),將所應(yīng)支付的通信費(fèi)用計算出來。北京岸站每月發(fā)生的、廣州中海電信有限公司下屬船舶的衛(wèi)星通信費(fèi)用清單壓縮文件解壓后可分成3類:
(1) 數(shù)張舊式通信清單(電子表格,每張表格包含有完整字段的通信費(fèi)用數(shù)據(jù));
(2) 新式衛(wèi)星通信清單,費(fèi)用涉及FLEET BROAD BAND最新衛(wèi)星通信業(yè)務(wù)的所有數(shù)據(jù)(電子表格工作簿,第一張表為FBB通信的船舶各業(yè)務(wù)費(fèi)用、FBB月租費(fèi)用統(tǒng)計表,其余表格為各船的實(shí)際FBB通信費(fèi)用清單,以船舶FBB終端號及業(yè)務(wù)類型為依據(jù)的分類通信清單)。
(3) 該岸站以船舶使用舊式通信數(shù)據(jù)郵箱費(fèi)用為依據(jù)收取的月租費(fèi)用,一份表格工作簿文件內(nèi)含多張不同部門船舶的月租費(fèi)用表格。
就該公司為能按協(xié)議條款進(jìn)行各業(yè)務(wù)類型的費(fèi)用核算和相關(guān)數(shù)據(jù)的統(tǒng)計,需將以上3類清單所含各表數(shù)據(jù)都集中到1張DBF數(shù)據(jù)表。
1方法探討的必要性
一般來說,電子版通信清單應(yīng)力求所有的通信費(fèi)用數(shù)據(jù)集中在1張數(shù)據(jù)表中,以方便用戶統(tǒng)計。但是,北京提供的電子版賬單卻有3個部分,這就使得某艘船的通信費(fèi)用需要從3個部分的各個文件中查找:舊式通信清單分部門保存各自下屬船舶的舊式通信費(fèi)用,若要找到某艘船的通信費(fèi)用,勢必要逐份打開文件。三部分的文件數(shù)據(jù)格式各不相同:第一部分?jǐn)?shù)據(jù)包含通信數(shù)據(jù)所要求的各個通信字段;第二部分租金數(shù)據(jù)沒有字段,是統(tǒng)計表格并分部門各列1張表形成工作簿文件;第三部分則為按船舶FBB終端號和業(yè)務(wù)類型出具的表格清單,也是按部門分類各占1張表格,另加FBB各業(yè)務(wù)、月租及優(yōu)惠費(fèi)用的統(tǒng)計表。若要對這些數(shù)據(jù)進(jìn)行相關(guān)統(tǒng)計,或進(jìn)行重新計費(fèi)等,需對各部分?jǐn)?shù)據(jù)進(jìn)行科學(xué)整理,才能提高核算工作的效率,同時方便各船公司統(tǒng)計通信費(fèi)用。
2衛(wèi)星通信費(fèi)用整理方法思路
利用計算機(jī)科學(xué)管理衛(wèi)星通信費(fèi)用核算,需從原始數(shù)據(jù)的接收、存放入手,規(guī)范程序的設(shè)計和編寫,實(shí)現(xiàn)自動化整理。
(1) 確定每月賬單的下載存放路徑。
(2) 指定年月自動建立三部分?jǐn)?shù)據(jù)文件夾,解壓縮所下載的文件并判斷所有文件名是否包含空格,隨后刪除空格并將這些文件分類移動到所建立的文件夾中。
(3) 將第一部分十多份表格文件另存為95XLS格式文件并添加到自動生成的通信數(shù)據(jù)表BEIJING.DBF中,在整理前從原始數(shù)據(jù)中拾取當(dāng)月的折算費(fèi)率并保存為指定費(fèi)率文件,刪除非通信記錄完成整理。
(4) 對第二部分表格工作簿,首先檢測各分表表名是否包含空格,隨后格式化、清除空格并將其另存為.CSV格式文件;制作租金數(shù)據(jù)表,逐個添加另存的文件數(shù)據(jù),刪除無用記錄整理出租金費(fèi)用數(shù)據(jù)表;最后刪除所有另存的.CSV格式文件,以騰出空間。
(5) 對第三部分FBB通信費(fèi)用數(shù)據(jù)表格工作簿,先以各組成表格名另存為“FBB”+“3字節(jié)編號字符串”+“表格名”的.CSV文件,編號字符串由“000”開始,則其中的FBB船舶統(tǒng)計表另存為FBB000_船舶統(tǒng)計.CSV文件。由于另存的以FBB000開頭的文件是FBB業(yè)務(wù)所有費(fèi)用的統(tǒng)計表,故將其添加到自動制作的FBBINVOICE.DBF表中,并以此為母表生成另外2張數(shù)據(jù)表FBBYUEZU.DBF和FBBZJJL.DBF;而以FBB001及以上編號另存的各.CSV文件數(shù)據(jù)則逐一添加到自動生成的空表FBBTEMP.DBF中。對FBBTEMP.DBF表,根據(jù)原表中抽取的用戶號碼按要求填寫各用戶號碼所產(chǎn)生的通信記錄,最后整理出FBB.DBF通信數(shù)據(jù)表并將本文件夾內(nèi)的所有另存的.CSV文件刪除,以騰出空間。
上述“(1)”作為一個菜單程序完成,而“(2)”~“(5)”任務(wù)可集中到另一個菜單功能一并實(shí)現(xiàn)。先分步探討,最后以1個菜單完成3類原始通信費(fèi)用數(shù)據(jù)的整理,并以圖片的形式展示出來。
3每月通信賬單下載存放路徑的確定
1) 由“北京岸站存放下載文件夾生成”菜單完成。指定年月(如“2014-12”)自動生成諸如E:SATCOMAGENTBEIJING201412的文件夾,將路徑存放在剪切板上,提示:“可以將原始文件保存在該文件夾”。
2) 下載岸站郵件附件后,指定文件夾有“廣州中海電信201412.RAR”壓縮文件。
3) 解壓縮北京岸站原始賬單并自動分類保存到新建立的預(yù)定文件夾中,由菜單功能完成。菜單功能完成后,分別在3個文件夾中保存分類表格文件。
關(guān)于文件名中空格的刪除問題,可用程序方法解決:
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以外的其他衛(wèi)星通信設(shè)備所產(chǎn)生的費(fèi)用清單,每月大概有十余張電子表格文件。
將每個文件人工另存為95格式的同名文件,制作對應(yīng)字段的DBF空表,將另存的95格式文件逐個追加到生成的空表中,最后將非通信記錄刪除。
用程序菜單方法將指定存放舊式通信清單的文件夾的所有XLS文件逐個另存為與原文件同文件名的95XLS格式文件,將另存的各個文件追加到自動制作的DBF空表中,刪除并清空非通信記錄。
在核算程序中,以菜單“舊式通信原賬單的完全整理”過程實(shí)現(xiàn)。整理完成后,指定文件夾文件BEIJING1412.DBF即為整理出的數(shù)據(jù)表。
在整理舊式通信數(shù)據(jù)之前,須在數(shù)據(jù)表中拾取當(dāng)月的外匯牌價,用于通信數(shù)據(jù)的核算和統(tǒng)計等工作。
NY='201412'
FBJG='BEIJING.DBF'
USE & FBJG
LOCA FOR 日期='外匯牌價'
IF EOF()
CLEAR
@10,10 SAY '有關(guān)外匯折算率拾取失敗,請查原始文件內(nèi)容后面第二列是否有提供“外匯牌價:”'
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衛(wèi)星通信設(shè)備所產(chǎn)生的費(fèi)用清單,每月有一份電子表格工作簿文件。
該工作簿的第一張表“船舶列表”另存為95XLS格式文件,通過整理形成FBBINVOICE.DBF,FBBYUEZU.DBF和FBBZJJL.DBF等3張表,并以FBBYUEZU.DBF數(shù)據(jù)為依據(jù)確定該公司當(dāng)月船舶的FBB月租費(fèi)用記錄,以FBBZJJL.DBF數(shù)據(jù)為依據(jù)在進(jìn)一步的費(fèi)用核算中收集FBB數(shù)據(jù)用量。該船F(xiàn)BB數(shù)據(jù)用量≤10,則將這些用量的費(fèi)用全部置為0;若其FBB數(shù)據(jù)用量>10,則將FBBZJJL.DBF表中該船記錄追加到當(dāng)月費(fèi)用中,以作為10 M費(fèi)用優(yōu)惠的抵消記錄。
將該工作簿中第二張表后的各表分別單獨(dú)另存為95XLS格式的表名文件,制作FBBTEMP.DBF空表文件,將這些FBB通信記錄逐一追加到該空表中。最后將FBBTEMP.DBF中的數(shù)據(jù)整理成能用于進(jìn)一步核算的數(shù)據(jù)。
1) 用程序方法將指定文件夾內(nèi)的FBB電子工作簿文件按各表逐一另存為“FBB000_表名.XLS ”的95XLS格式文件,第一另存文件名為“FBB000_船舶列表.XLS”文件,其余的則為冠上“FBB001”+”-表名.XLS”等的文件。自動生成FBBTEMP.DBF空表,將另存的除FBB000開頭以外的以FBB開頭的所有95XLS文件追加到空表中,之后提示“可以進(jìn)行FBB月租整理和對FBB通信記錄進(jìn)行整理”。
2) 用程序方法實(shí)現(xiàn)對FBBTEMP.DBF表的整理。
3) 用程序方法自動導(dǎo)入表“FBB000_船舶列表.XLS”中數(shù)據(jù),自動整理為FBB費(fèi)用月租和作為FBB數(shù)據(jù)用量優(yōu)惠依據(jù)的統(tǒng)計表。
在核算程序中,以“新式通信FBB原賬單拆分及FBBTEMP空表制作并添加通信數(shù)據(jù)”、“新式通信FBB原賬單數(shù)據(jù)FBBTEMP整理”和“新式通信FBB月租整理(FBB000_船舶統(tǒng)計.XLS)”菜單的方式完成所需數(shù)據(jù)的整理。
1) 新式通信FBB原賬單拆分及FBBTEMP空表制作并添加通信數(shù)據(jù)。
2) 新式通信FBB原賬單數(shù)據(jù)FBBTEMP整理。
在整理FBBTEMP.DBF數(shù)據(jù),若菜單程序采用的方法不同,則整理所用的時間可以相差很多。
第一種方法,即菜單程序采用單循環(huán),逐條記錄、檢測用戶號碼,根據(jù)接下來該用戶號碼產(chǎn)生的通信記錄逐條填上用戶號,作為FBJ字段數(shù)據(jù)。
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數(shù)據(jù)表中某字段為用戶號碼的號碼及其所在的記錄號形成新表,對新表的記錄循環(huán)一次,每次記錄用戶號碼和記錄號,對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
第三種方法,即將運(yùn)用第二種方法得到的新表按號碼列倒序排序循環(huán)一次,每次記錄用戶號碼和記錄號,對FBBTEMP.DBF表中大于等于記錄號并字段值為空的FBJ字段批量填上用戶號碼。
運(yùn)用以上3種方法整理同樣的原始數(shù)據(jù)所用時間對比見表1。
表1 新式通信FBB通信費(fèi)用記錄整理3種方法所用時間對比
雖然第二種方法所用時間與第三種方法相差甚少,但在最終的菜單功能實(shí)現(xiàn)上采取第三種處理方法。
3) 新式通信FBB月租整理(FBB000_船舶統(tǒng)計.XLS)。
6郵箱租金費(fèi)用整理
郵箱租金費(fèi)用是否收取由舊式通信方式中數(shù)據(jù)終端當(dāng)月實(shí)際使用的金額來確定,若某船該終端號實(shí)際使用金額沒有達(dá)到規(guī)定值,則要收取。
(1) 將租金工作簿內(nèi)的各表數(shù)據(jù)集中到第一張表中;
(2) 刪除第一張表之外的其它表;
(3) 另存為BEIJINGZJ.CSV(逗號分隔的CSV)文件;
(4) 運(yùn)用VFP數(shù)據(jù)導(dǎo)入方法,將BEIJINGZJ.CSV表生成新建同名的.DBF表;
(5) 制作空表CREATE TABLE BEIJINGZJYM.DBF (FBJ C(24), YHJ1 C(15), YHJ C(8)),生成的同名.DBF表中的追加并整理數(shù)據(jù)。
(1) 用程序方法制作空表,如CREATE TABLE BEIJINGZJ1412.DBF (FBJ C(24), YHJ1 C(15), YHJ C(8));
(2) 逐一選定月租費(fèi)用中的各表并另存為“表名.CSV”格式文件,同時將各表內(nèi)容自動添加到空表中;
(3) 刪除無效記錄并清空。
在核算程序中,以“郵箱租金費(fèi)用清單的完全整理”菜單功能實(shí)現(xiàn)。在按要求輸入年月之后,彈出文件選擇窗口。
在租金費(fèi)用整理過程中,需將各表名另存為“表名.CSV”文件,但實(shí)際的費(fèi)用表名中可能存在空格,因此在整理之前就要對原始文件各表進(jìn)行逐一檢查、糾正和保存,以下面的程序段來實(shí)現(xiàn)。
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個數(shù)據(jù)文件和1個費(fèi)率數(shù)據(jù)文件:BEIJING1412.DBF,BEIJINGZJ1412.DBF,F(xiàn)BB1412.DBF,F(xiàn)BBYUEZU1412.DBF,F(xiàn)BBZJJL1412.DBF和BEIJINGRATE1412.DBF。在整理過程中,這5個文件的數(shù)據(jù)結(jié)構(gòu)有共同的字段,除了FBBZJJL1412.DBF在隨后的核算工作中根據(jù)船舶的FBB實(shí)際數(shù)據(jù)使用量是否超過協(xié)議免費(fèi)最低用量來確定該船F(xiàn)BB所用數(shù)據(jù)記錄金額是否置0(或照常收費(fèi),但在費(fèi)用中增加記錄以作為免費(fèi)用量的抵消)以外,其余4個文件均可直接整合到當(dāng)月的衛(wèi)星通信費(fèi)用記錄中,便于進(jìn)行通信費(fèi)用的統(tǒng)計等工作。
7整理功能展示
第一個菜單“北京岸站存放下載文件夾生成”不再展示,而其他的功能集中到“北京原始賬單解壓到最終完成整理”菜單完成。程序運(yùn)行過程中,為驗(yàn)證程序運(yùn)行的實(shí)際狀況,會出現(xiàn)2個彈出窗口,要求選擇租金費(fèi)用原始表和FBB費(fèi)用原始表。整個功能完成過程及有關(guān)的整理數(shù)據(jù)統(tǒng)計見圖1~圖4和表2。
圖1 北京岸站原始賬單實(shí)現(xiàn)自動整理的功能菜單
圖2 全自動整理過程中彈出窗口一
圖3 全自動整理過程中彈出窗口二
圖4 所有數(shù)據(jù)整理結(jié)果提示
日期任務(wù)名稱處理文件數(shù)/個所用時間/min有效記錄/條原始記錄/條用戶數(shù)/個結(jié)果文件數(shù)/個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
實(shí)際工作的菜單功能,避免彈出打開文件窗口,采取自動獲取所需的2個文件。從解壓原始文件,直到完成三大類數(shù)據(jù)的整理,只需一鍵點(diǎn)擊菜單后輸入年月就可實(shí)現(xiàn)。
從2015年1月的數(shù)據(jù)整理來看,就新式通信FBB整理而言,有106套FBB設(shè)備,共進(jìn)行了177項(xiàng)業(yè)務(wù)通信。若人工進(jìn)行整理,要復(fù)制177次,每復(fù)制一次,就要在接下來的詳細(xì)通信清單中將復(fù)制的內(nèi)容添加到其產(chǎn)生的通信記錄中,共要粘貼25 587條記錄。之后將非通信的986條記錄刪除,完成新式FBB通信記錄的整理, 另存為DBF格式文件。這樣的人工整理過程無法記錄準(zhǔn)確時間,而用科學(xué)方法整理只需約48 s。
8結(jié)語
通過以上方法探討、程序編寫及最終集成功能菜單,實(shí)現(xiàn)了岸站提供的原始賬單用兩程序菜單功能對原始衛(wèi)星通信費(fèi)用清單的解壓縮和最終數(shù)據(jù)整理,過程中還自動提取了岸站通信費(fèi)用折算率,大大提高了核算工作的效率和衛(wèi)星通信費(fèi)用統(tǒng)計數(shù)據(jù)最終獲得的速度。該數(shù)據(jù)整理方法對成百上千份表格文件或多表組成的大型工作簿文件的整理而言,意義更大。
參考文獻(xiàn):
[1]張洪瀚.數(shù)據(jù)庫管理系統(tǒng)VISUAL FOXPRO 6.0[M].大連:東北財經(jīng)大學(xué)出版社,2004.
[2]方建平.VISUAL FOXPRO 6.0參考詳解[M].北京:清華大學(xué)出版社,2000.
[3]張宇.VISUAL FOXPRO 6.0程序設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,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
文獻(xiàn)標(biāo)志碼:A
文章編號:1674-5949(2015)04-057-08
作者簡介:李日宏(1965—),男,廣東人,工程師,從事計算機(jī)技術(shù)在衛(wèi)星通信核算中的應(yīng)用研究。
收稿日期:2015-08-04