登陆注册
4865700000033

第33章 价值链会计信息交换系统开发案例(4)

em_date.y=dw_pz0.y+dw_pz0.height+100

em_bill.y=dw_pz0.y+dw_pz0.height+100

st_number.y=dw_pz0.y+dw_pz0.height+100

st_3.y=dw_pz0.y+dw_pz0.height+100

st_7.y=dw_pz0.y+dw_pz0.height+100

st_15.y=dw_pz0.y+dw_pz0.height+100

st_17.y=dw_pz0.y+dw_pz0.height+100

st_19.y=dw_pz0.y+dw_pz0.height+100

st_20.y=dw_pz0.y+dw_pz0.height+100

st_21.y=dw_pz0.y+dw_pz0.height+100

st_8.y=dw_pz0.y+dw_pz0.height+100

tab_1.x=dw_pz0.width+dw_pz0.x+50

tab_1.height=dw_pz0.height

3.“保存转换文件路径及文件名”按钮(cb_1)的鼠标单击(cilcked)事件代码:要求检验用户输入的文件路径及文件名的正确性,对正确的输入内容予以确认和保存。

long filepointer

string readstring,ufservername,ufsapassword

filepointer=FileOpen( getcurrentdirectory()+″\fibank_uffile.ini″, &

LineMode!, write!, LockReadWrite!, Replace!)

ufservername=″path=″+trim(SLe_1.TEXT)

ufsapassword=″filename=″+trim(sle_2.text)

filewrite(filepointer, ufservername)

filewrite(filepointer, ufsapassword)

fileclose(filepointer)

messagebox(″提示!″,″已保存转换文件的路径及文件名!″)

4.“凭证转换”按钮(cb_3)的鼠标单击(cilcked)事件代码:逐张凭证进行识读,按要求转换为要求的数据格式,保存到指定的文件。

//检验所选凭证范围的正确性

if trim(tab_1.tabpage_1.em_2.text)=″″ or isnull(tab_1.tabpage_1.em_2.text) or &

trim(tab_1.tabpage_1.em_3.text)=″″ or isnull(tab_1.tabpage_1.em_3.text) then

messagebox(″错误!″,″凭证号未选择!请确定需转换的凭证编号。″)

return

end if

if long(tab_1.tabpage_1.em_2.text) 〈 long(condition_ns) or &

long(tab_1.tabpage_1.em_3.text) 〉 long(condition_ne) then

messagebox(″错误!″,″凭证号选择超出了范围!″)

return

end if

dw_pz.setfilter(″″)

dw_pz.filter()

dw_pz.setfilter(″yue="″+condition_yue+″" and long(number) 〉=″+tab_1. &

tabpage_1.em_2.text+″ and long(number) 〈=″+tab_1.tabpage_1.em_3.text )

dw_pz.filter()

//检验保存文件的路径和文件名的正确性

if not DirectoryExists( SLe_1.TEXT ) then

messagebox(″错误!″,″保存路径不存在!请事先创建好文件夹。″)

return

end if

if trim(SLe_2.TEXT)=or isnull( SLe_2.TEXT ) then

messagebox(″错误!″,″未指定文件名!请在输入需保存的文件名称。″)

return

end if

//////////////////////////

if messagebox(″提示!″,″确实要转换 ″+string(integer(tab_1.tabpage_1.em_1.text)) &

+″ 月份的 ″+tab_1.tabpage_1.em_2.text+″-″+tab_1.tabpage_1.em_3.text+&

″ 号凭证吗?″,question!,yesno!)=2 then

return

end if

string filename,linestring,number1

string f[68]

integer filepointer,rows,rown,n68

long foundrow

boolean goon, erroroccur

filename=trim(SLe_1.TEXT)+″\″+trim(SLe_2.TEXT)+″.txt″

if fileExists( filename ) then

if messagebox(″提示!″,″指定的文件已经存在,要替换这个文件吗?″, &

question!,yesno!)=2 then return

if FileDelete( filename )=false then return

end if

//创建并打开文件

filepointer=FileOpen( filename, LineMode!, Write! )

if filepointer=-1 then

messagebox(″错误!″,″不能创建或打开文件: ″+filename+″ !″)

return

end if

//写入第一行

linestring=″凭证输出″,″V800″,″001″,″Accounting Systrm″,″+currentyear+″,″F1日期F2类别″,″F3凭证号F4附单据数″,″F5摘要F6科目编码″,″F7借方F8贷方″,″F9数量F10外币″,″F11汇率″,″F12制单人″,″F13结算方式″,″F14票号″,″F15发生日期″,″F16部门编码″,″F17个人编码″,″F18客户编码″,″F19供应商编码″,″F20业务员″,″F21项目编码″,″F22自定义项1″,″F23自定义项2″,″F24自由项1″,″F25自由项2″,″F26自由项3″,″F27自由项4″,″F28自由项5″,″F29自由项6″,″F30自由项7″,″F31自由项8″,″F32自由项9″,″F33自由项10″,″F34外部系统标识″,″F35业务类型″,″F36单据类型″,″F37单据日期″,″F38单据号″,″F39凭证是否可改″,″F40分录是否可增删″,″F41合计金额是否保值″,″F42数值是否可改″,″F43科目是否可改″,″F44受控科目″,″F45往来是否可改″,″F46部门是否可改″,″F47项目是否可改″,″F48往来项是否必输″,″F49账套号″,″F50核算单位″,″F51会计年度″,″F52会计期间″,″F53类别顺序号″,″F54凭证号″,″F55审核人″,″F56记账人″,″F57是否记账″,″F58出纳人″,″F59行号″,″F60外币名称″,″F61单价″,″F62科目名称″,″F63部门名称″,″F64个人名称″,″F65客户简称″,″F66供应商简称″,″F67项目名称″,″F68项目大类编码″,″F69项目大类名称″,″F70对方科目″,″F71银行两清标志″,″F72往来两清标志″,″F73银行核销标志″,″F74外部系统名称″,″F75外部账套号″,″F76外部会计年度″,″F77外部会计期间″,″F78外部制单日期″,″F79外部系统版本″,″F80凭证标识″,″F81分录自动编号″,″F82唯一标识″,″F83主管签字″,″F84自由项11″,″F85自由项12″,″F86自由项13″,″F87自由项14″,″F88自由项15″,″F89自由项16″

filewrite(filepointer,linestring)

//重复写入多行内容

goon=true

erroroccur=true

rows=dw_pz.rowcount()

for rown=1 to rows

f[1]=string(dw_pz.getitemdatetime(rown, ″pzdate″),″yyyy-mm-dd″)

if isnull(f[1]) then erroroccur=false

f[2]=″记″

f[3]=dw_pz.getitemstring(rown, ″number″)

if isnull(f[3]) then erroroccur=false

f[4]=string(dw_pz.getitemnumber(rown, ″bill″))

if isnull(f[4]) then f[4]=″0″

f[5]=dw_pz.getitemstring(rown, ″note″)

if isnull(f[5]) then erroroccur=false

//得到用友科目编码

number1=dw_pz.getitemstring(rown, ″inumber″)

foundrow=dw_i.find(″number=″+number1+″″, 1, 10000 )

if foundrow 〈=0 then

goon=false

//f[6]=″没有″

else

f[6]=dw_i.getitemstring(foundrow,″ufcode″)

if isnull(f[6]) then goon=false

end if

//////////////////////

f[7]=string(dw_pz.getitemnumber(rown, ″jje″),″#########.00″)

if isnull(f[7]) then f[7]=″.00″

f[8]=string(dw_pz.getitemnumber(rown, ″dje″),″#########.00″)

if isnull(f[8]) then f[8]=″.00″

f[9]=″.00″

f[10]=″.00″

f[11]=″.00″

f[12]=dw_pz.getitemstring(rown, ″zdy″)

if isnull(f[12]) then f[12]=″″

f[13]=″″

f[14]=″″

f[15]=″″

//得到用友部门编码

number1=dw_pz.getitemstring(rown, ″bnumber″)

if trim(number1)=″″ or isnull(number1) then

f[16]=″″

else

foundrow=dw_b.find(″number="″+number1+″"″, 1, 10000 )

if foundrow 〈=0 then

goon=false

//f[16]=″″

else

f[16]=dw_b.getitemstring(foundrow,″ufcode″)

if isnull(f[16]) then goon=false

end if

end if

//////////////////////

//得到用友个人编码

number1=dw_pz.getitemstring(rown, ″pnumber″)

if trim(number1)=″″ or trim(number1)=fill(″9″,psumno) or&

trim(number1)=fill(″0″,psumno) or isnull(number1) then

f[17]=″″

else

foundrow=dw_p.find(″number="″+number1+″"″, 1, 10000 )

if foundrow 〈=0 then

goon=false

//f[17]=″″

else

f[17]=dw_p.getitemstring(foundrow,″ufcode″)

if isnull(f[17]) then goon=false

end if

end if

//////////////////////

f[18]=″″

f[19]=″″

f[20]=″″

//得到用友费用编码

number1=dw_pz.getitemstring(rown, ″enumber″)

if trim(number1)=″″ or isnull(number1) then

f[21]=″″

else

foundrow=dw_e.find(″number="″+number1+″"″, 1, 10000 )

if foundrow 〈=0 then

goon=false

//f[21]=″″

else

f[21]=mid(dw_e.getitemstring(foundrow,″ufcode″),4)

f[68]=left(dw_e.getitemstring(foundrow,″ufcode″),2)

if isnull(f[21]) or isnull(f[68]) then goon=false//f[21]=″″

end if

end if

//////////////////////

linestring=″″

for n68=1 to 68

if n68 〈 7 or (n68 〉 11 and n68 〈 22 ) or n68=68 then

if f[n68] 〈〉 ″″ then linestring=linestring+″+f[n68]+″

else

linestring=linestring+f[n68]

end if

if n68 〈〉 68 then linestring=linestring+″,″

next

//messagebox(″提示!″,linestring)

filewrite(filepointer,linestring)

next

//关闭文件

fileclose(filepointer)

if not goon then

messagebox(″提示!″,″所转换的凭证中有的编码还没有指定与U8 &

系统的编码相对应!~r~n本次转换无效,请设置对应关系后再转换!″)

FileDelete( filename )

return

end if

if not erroroccur then

messagebox(″提示!″,″转换发生了错误!~r~n本次转换无效,&

请设置对应关系后再转换!″)

return

//FileDelete( filename )

else

messagebox(″提示!″,″数据转换成功!~r~n文件成功保存到″+&

trim(SLe_1.TEXT)+″\″中,可在总账工具中“引入凭证”!″)

end if

四 输出文件

《标准》要求输出的数据具有对自身内容和格式的自描述特性。因此转换后的文件首先包括格式说明文件,然后才是数据文件。转换文件格式可以是文本文件,也可以是XML文件。但是与XML文件相比,文本文件对数据结构的自描述性功能相对较弱,因此文本接口的可扩展性相对较低,通常适用于标准财务数据的交换,如记账凭证、科目余额、会计报表的传递。本案例的主要用于记账凭证的转换,因此采用文本文件方式进行数据转换。上述文件VOUCHER.TXT能被价值链信息整合平台——U8系统直接读取,并经第八章第二节所述的“数据抽取”,即可参与生成价值链虚拟企业会计信息。

同类推荐
  • 赢在战略:对战略管理理论和实践的思考

    赢在战略:对战略管理理论和实践的思考

    我国企业正进入战略管理时代。这是一种进步,是我国企业自身成长和市场竞争环境不断变化以及它们相互作用的共同结果。战略管理时代,既意味着一种必然的要求,也意味着挑战和考验。企业要在激烈的竞争中求得发展,就必须有明确的战略。国内外许多企业的实践表明,一个企业战略的优势不仅决定着其能否在激烈的市场竞争中获得优势,而且也决定着其能否实现可持续发展。实施战略管理,有利于企业确立长远的发展方向和奋斗目标,能提高企业各项管理工作的效率,提高企业的经济效益。
  • 跟科特勒学营销

    跟科特勒学营销

    最实用、最全面的科特勒营销理念。本书总结了科特勒几十年的营销经验,并对他的营销精髓进行了简明扼要的介绍,结合具体的营销经典案例,教给大家全面、具体的营销实战操作方法和技巧,就如同“营销界的爱因斯坦”亲身传授你营销知识一样亲切、自然,能让你迅速领悟它的精髓。
  • 品牌传播策划实验:策略、流程与工具运用

    品牌传播策划实验:策略、流程与工具运用

    本书共分11章,通过项目实验的公式,使学习者把握品牌传播企划的总体流程、导入策略,不同环节传播企划方法等的运用,使学习者受到系统综合训练。
  • 最经典的管理智慧全集

    最经典的管理智慧全集

    以清新隽永的语言,真实生动的案例,全面提示了成功管理者当具备的管理智慧,对那些希望提高管理认知和能力的人来说,本书介绍的内容将对你大有裨益。
  • 国美公开课:谁在公司抢班夺权

    国美公开课:谁在公司抢班夺权

    2011年3月9日,随着陈晓正式离职,“国美内斗”事件得以顺利解决。当天晚上,陈晓迫不及待地赶晚班飞机离开北京,这座城市留下了他的野心和失落。“国美内斗”事件是混杂商业伦理和规则的结合体,当事各方:黄光裕、陈晓、高管团队、贝恩、机构投资者和小股东虽都在商业规则的范围内大搏杀,但背后又直指大股东对小股东的责任、职业经理人对股东的信托责任缺失等问题。通过该事件,中国企业界人士可以借鉴,企业家该在什么样的商业伦理下,如何通过商业规则争取自己的利益。
热门推荐
  • 如风拂铃

    如风拂铃

    风起从不经意的时刻自窗檐下银铃拂过徘翔于樱花凋落的天际掀起阵阵铃声清脆惊醒多少尘封回忆偶遇自清晨金色阳光那一抹唇角的微笑铭记在最深邃黑亮的眼眸短短一瞬的相视恍若不可磨灭的永恒情生于不可思议的缘初见的相惹相怨日久的相知相恋由最陌生的距离变为两颗心最紧密的触碰爱灭一场浮华的落空爱情只是场美丽的童话如一道绚烂花火诺言敌不过现实的蹉跎徒剩斑驳记忆梦醒忘却所有的眷恋无数个空荡寂寞的夜无数回梦牵魂绕的人注定了等不到的他注定了选择的抉择原点在爱开始的地方时间给与了答案爱的邂逅无法忘却那一幕相拥的身影定格画面墨色深处
  • 泡沫之爱

    泡沫之爱

    红红纯洁美丽、热情善良。在嫁与她并不喜爱的丈夫国庆后,她生命的热情被压抑了,但她心中仍然充满爱、相信爱。这个感情丰富的女子当她如愿所偿的离开围城后,真的能得到她所期盼的幸福吗?
  • 废材逆袭:商女不知亡国恨

    废材逆袭:商女不知亡国恨

    年少无知的少女一朝穿越为哪般?后宅阴暗几多许少女频被算计却屡屡得助又是为什么欢迎收看走近科学,呸!欢迎收看走进商女~p(# ̄▽ ̄#)o
  • 飞仙

    飞仙

    我要这天,再也遮不住我的眼;我要这地,再也埋不了我的心;我要芸芸众生,都明白我意;我要站在至高之巅,主宰天地沉浮!
  • 若残红颜鸾鸢殇

    若残红颜鸾鸢殇

    “我居北荒之地万年,觉得寂寞,是遇到她之后的事了。”“我用了一辈子的时间才明白,她心里那个人终究不是我。”“我总觉得你眼熟。”她轻笑出口。他没回应,内心却长叹一声,这何尝不是他得感觉?可他算过阴阳,他与她前世今生,都不曾见过。(四年时间,足够一个人从幼稚走向成熟。折木的四年,愿不会让大家失望。)(本文重新修改换血,沉淀四年心血之作,望大家喜欢。)
  • 查理九世之水晶头骨再现

    查理九世之水晶头骨再现

    印度安人有13颗水晶头骨他们能说话会唱歌这些头骨里隐藏了关于人类死亡的秘密。
  • 公主成神进化史

    公主成神进化史

    公主是什么?是喜欢在华丽宫殿的粉色纱幔里抱着洋娃娃装可爱的傻美丽?NONONO!是天生魔力超群,才智超群,相貌超群的人。哦不,是神!南宫家族的四位公主要成神,阻拦者,杀无赦!
  • 萌物归来

    萌物归来

    拥有英国皇室血统的萌物,无意遇难成为冷血反派,任务失败再次失忆巧遇父母,看萌物如何玩转校园。
  • 请给我一支烟(男版)

    请给我一支烟(男版)

    这个故事讲的是一个地下性工作者的屈辱隐事。一个大学生,因命运的捉弄,走上了一条与夜色为伴的悲剧之路。在令人绝望的境地中,他接受了一切屈辱,并一度陷入真正的绝望迷津,甚至对夜色产生迷恋。然而,人性深处对光明的向往,使他心有不甘,他竭力抗争,矢志不渝地寻找,最终战胜自己内心的黑暗与痛楚,找到一条走进光明的自新之路……
  • 卡耐基写给青少年的励志书

    卡耐基写给青少年的励志书

    年轻的朋友,你是不是曾因为某些挫折而失意迷茫?是不是曾因不懂得与人交往的技巧而无心得罪了他人?是不是曾因担心某些事情降临在自己头上而忧心忡忡?……本书可以帮助你摆脱诸如此类的思想困惑和束缚,让你坚定信念、锐意进取,成为出类拔萃的年轻才俊。本书是集卡耐基的《人性的弱点》、《人性的优点》、《美好的人生》、《快乐的人生》等多本励志书之大成于一体,从中精选出适合青少年心理需要的经典篇目,加以优化重组,旨在引导青少年在轻松愉悦的氛围中,认识和接纳自己,欣赏他人,保持积极乐观的心态,拥有健康向上的思维品格。