PB生成XML文件与税务系统接口

chengdu2012 2011-06-16 10:26:40
因长度受限,代码部分省略。
long li_row,li_selectedrow,li_i
string ls_exepath
datetime ldt_sfrq_start,ldt_sfrq_end,ldt_bbrq
ldt_sfrq_start = datetime(Date(left(em_sfrq_start.text,10)),Time(right(em_sfrq_start.text,8)))
ldt_sfrq_end = datetime(Date(left(em_sfrq_end.text,10)),Time(right(em_sfrq_end.text,8)))
ldt_bbrq = gf_getdatetime()
setpointer(hourglass!)
ls_exepath = GetCurrentDirectory()

setpointer(hourglass!)
dw_1.settransobject(sqlca)
if dw_1.rowcount() < 1 then
messagebox('提示','没有收费数据! ')
setpointer(arrow!)
return
end if

long li_fileno
li_fileno = fileopen('D:\税务数据XML\NsrXsktFpsjSbb.xml',LineMode!, Write!, LockWrite!, Replace!)
if li_fileno = -1 then
messagebox('提示','创建文件NsrXsktFpsjSbb.xml失败,请检查是否其他程序正在使用该文件。')
return
end if

FileWrite(li_fileno , '<?xml version="1.0" encoding="GB2312"?>')
FileWrite(li_fileno , '<SCHEMA NAME="NsrXsktFpsjSbb" CNNAME="纳税人销售开填发票数据申报表" VERSION="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="model.xsd">')
FileWrite(li_fileno , '<HEAD>')
FileWrite(li_fileno , '<NSRSBH>530924748298822</NSRSBH>')
FileWrite(li_fileno , '<SSSQ_Q>' + string(ldt_sfrq_start,'yyyy-mm-dd') + '</SSSQ_Q>')
FileWrite(li_fileno , '<SSSQ_Z>' + string(ldt_sfrq_end,'yyyy-mm-dd') + '</SSSQ_Z>')
FileWrite(li_fileno , '<TBRQ>' + string(ldt_bbrq,'yyyy-mm-dd') + '</TBRQ>')
FileWrite(li_fileno , '<NSRMC>供水有限责任公司</NSRMC>')

FileWrite(li_fileno , '<DZ></DZ>')
FileWrite(li_fileno , '<DHHM></DHHM>')
FileWrite(li_fileno , '<JBR>罗桂芹</JBR>')
FileWrite(li_fileno , '<BZ></BZ>')
FileWrite(li_fileno , '</HEAD>')

FileWrite(li_fileno , '<HEAD_AFFIX>')
FileWrite(li_fileno , '<HYFL_DM>4610</HYFL_DM>')
FileWrite(li_fileno , '<HYFL_MC>自来水的生产和供应</HYFL_MC>')
FileWrite(li_fileno , '</HEAD_AFFIX>')

FileWrite(li_fileno , '<BODY>')
string yhh,updatetime,cbkh,qbbh,qblc,yyhh,pym,yhm,yhdz,lxdh,qjmc,pjh,fpdm,sfry,fpzt
string sczds,bczds,sscbb,cbbmc,cbxh,ls_id
string ls_line
long li_id
datetime sfrq

updatetime = string(gf_getdatetime())
for li_row = 1 to dw_1.rowcount()
yhh = dw_1.getitemstring(li_row,'yhh')
.......
fpzt = dw_1.getitemstring(li_row,'fpzt') //发票状态[10:正常,20:作废]
ls_line = '<FP ID = "' + string(li_row) + '" >'//发票信息,根据导出总份数1至发票n
FileWrite(li_fileno,ls_line)
ls_line = '<FPZL_DM>' + '26149' + '</FPZL_DM>'
FileWrite(li_fileno,ls_line)

ls_line = '<XXSL>' + '6' + '</XXSL>'
FileWrite(li_fileno,ls_line)

ls_line = '<GMBZ>' + 'y' + '</GMBZ>'
FileWrite(li_fileno,ls_line)

ls_line = '<DKBZ>' + '0' + '</DKBZ>'
FileWrite(li_fileno,ls_line)

ls_line = '<NCPBZ>' + 'n' + '</NCPBZ>'
FileWrite(li_fileno,ls_line)

ls_line = '<FP_DM>' + fpdm + '</FP_DM>'
FileWrite(li_fileno,ls_line)

ls_line = '<FPHM>' + pjh + '</FPHM>'
FileWrite(li_fileno,ls_line)

ls_line = '<KPRQ>' + string(datetime(sfrq),'yyyy-mm-dd hh:mm:ss') + '</KPRQ>'
FileWrite(li_fileno,ls_line)

ls_line = '<HYFL>' + '自来水的生产和供应' + '</HYFL>'
FileWrite(li_fileno,ls_line)

ls_line = '<FKMC>' + yhm + '</FKMC>'
FileWrite(li_fileno,ls_line)

ls_line = '<FKSBH>' + '</FKSBH>'
FileWrite(li_fileno,ls_line)

dw_2.settransobject(sqlca)
dw_2.retrieve(yhh,pjh)
for li_i = 1 to dw_2.rowcount()
ldec_id = dw_2.getitemnumber(li_i,'compute_1')
....// 中间代码为li_i = 1 到li_i = 6
end for

FileWrite(li_fileno,'<FPMX COUNT="6">')//项目最大为6行
FileWrite(li_fileno,'<mx1>')
ls_line = '<HLMC>' + '自来水的生产和供应' + '</HLMC>'
FileWrite(li_fileno,ls_line)
ls_line = '<GG>' + '' + '</GG>'
FileWrite(li_fileno,ls_line)
ls_line = '<DW>' + '立方' + '</DW>'
FileWrite(li_fileno,ls_line)
ls_line = '<DJ>' + string(ldec_sj1) + '</DJ>'
FileWrite(li_fileno,ls_line)
ls_line = '<SL>' + string(ldec_sl1) + '</SL>'
FileWrite(li_fileno,ls_line)
ls_line = '<JE>' + string(ldec_yssf1) + '</JE>'
FileWrite(li_fileno,ls_line)
ls_line = '<ZDY>' + '</ZDY>'
FileWrite(li_fileno,ls_line)
FileWrite(li_fileno,'</mx1>')

FileWrite(li_fileno,'<mx2>')
ls_line = '<HLMC>' + '自来水的生产和供应' + '</HLMC>'
FileWrite(li_fileno,ls_line)
ls_line = '<GG>' + '' + '</GG>'
FileWrite(li_fileno,ls_line)
ls_line = '<DW>' + '立方' + '</DW>'
FileWrite(li_fileno,ls_line)
ls_line = '<DJ>' + string(ldec_sj2) + '</DJ>'
FileWrite(li_fileno,ls_line)
ls_line = '<SL>' + string(ldec_sl2) + '</SL>'
FileWrite(li_fileno,ls_line)
ls_line = '<JE>' + string(ldec_yssf2) + '</JE>'
FileWrite(li_fileno,ls_line)
ls_line = '<ZDY>' + '</ZDY>'
FileWrite(li_fileno,ls_line)
FileWrite(li_fileno,'</mx2>')

.......//到mx6

FileWrite(li_fileno,'</FPMX>')

ls_line = '<HJDX>' + gf_jezh(yssf) + '</HJDX>'
FileWrite(li_fileno,ls_line)

ls_line = '<HJXX>' + string(yssf) + '</HJXX>'
FileWrite(li_fileno,ls_line)

ls_line = '<BZ>' + '</BZ>'
FileWrite(li_fileno,ls_line)

ls_line = '<WTSKMC>' + '</WTSKMC>'
FileWrite(li_fileno,ls_line)

ls_line = '<WTSKSBH>' + '</WTSKSBH>'
FileWrite(li_fileno,ls_line)

ls_line = '<NSRMC>' + '供水有限责任公司' + '</NSRMC>'
FileWrite(li_fileno,ls_line)

ls_line = '<NSRSBH>' + '530924748298822' + '</NSRSBH>'
FileWrite(li_fileno,ls_line)

ls_line = '<KPR_MC>' + sfry + '</KPR_MC>'
FileWrite(li_fileno,ls_line)

ls_line = '<SKZJLB>' + '</SKZJLB>'
FileWrite(li_fileno,ls_line)

ls_line = '<NSR_SWJG_DM>' + '15309240000' + '</NSR_SWJG_DM>'/
FileWrite(li_fileno,ls_line)

ls_line = '<FPZT>' + fpzt + '</FPZT>'
FileWrite(li_fileno,ls_line)

ls_line = '<KJLX>' + '2' + '</KJLX>'
FileWrite(li_fileno,ls_line)
FileWrite(li_fileno , '</FP>')
end for

FileWrite(li_fileno , '</BODY>')
FileWrite(li_fileno , '<BODY_AFFIX>')
FileWrite(li_fileno , '<SBFPZFS>' + string(dw_1.rowcount()) + '</SBFPZFS>')
FileWrite(li_fileno , '<SBFPZJE>' + string(hjqf) + '</SBFPZJE>')
FileWrite(li_fileno , '</BODY_AFFIX>')
FileWrite(li_fileno , '</SCHEMA>')
fileclose(li_fileno)
setpointer(arrow!)

//生成新的XML文件
if CopyFileA('D:\税务数据XML\NsrXsktFpsjSbb.xml','D:\税务数据XML\NsrXsktFpsjSbb_' + string(ldt_sfrq_start,'yyyy-mm-dd') +'_' + string(ldt_sfrq_end,'yyyy-mm-dd') + '_'+'530924748298822'+'_'+'V10'+'.xml',false) = false then
messagebox('提示','生成NsrXsktFpsjSbb.xml文件时出错,请检查data\NsrXsktFpsjSbb.xml是否在使用中。 ')
return -1
end if
messagebox('提示','已成功生成收费XML文件。 ')



...全文
734 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjlion 2011-06-21
  • 打赏
  • 举报
回复
想说明啥?
lao_bulls 2011-06-18
  • 打赏
  • 举报
回复
不错,有时间学习一下。
chengdu2012 2011-06-16
  • 打赏
  • 举报
回复
pbdom 用的少,不是很熟悉了。
pb8 2011-06-16
  • 打赏
  • 举报
回复
为什么不直接用pbdom对象呢?
chengdu2012 2011-06-16
  • 打赏
  • 举报
回复
详细信息可以Q聊
youzhi1007 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fxq0109 的回复:]
不用PDOM用XMLDOM也可以呀,自己一行行写文件这个办法也太笨了吧
[/Quote]

生成的话这个是很最灵活的。
非行列规律的xml数据窗口saveas也不如这个直接写。
凡爸 2011-06-16
  • 打赏
  • 举报
回复
不用PDOM用XMLDOM也可以呀,自己一行行写文件这个办法也太笨了吧
内容概要:本文针对网型T型三电平逆变器的低电压穿越(LVRT)能力及其综合控制策略开展深入研究,重点分析电网电压跌落条件下逆变器的动态响应特性与稳定性控制方法。研究基于Simulink平台构建详细的系统仿真模型,融合改进的电流环控制策略与中点电位平衡控制算法,有效提升逆变器在故障工况下的电流跟踪精度、过流抑制能力和直流侧中点电压稳定性。通过多场景仿真验证,所提出的综合控制策略能够显著增强逆变器在低电压穿越过程中的鲁棒性与电能质量,确保新能源系统在电网扰动下的持续可靠并网运行。; 适合人群:电力电子、新能源发电、电力系统自动化等相关专业的研究生、科研人员及从事并网逆变器设计与控制的工程技术人员。; 使用场景及目标:①深入理解三电平逆变器在电网故障下的运行机理与控制挑战;②掌握低电压穿越技术中电流限幅、故障响应及中点电位平衡的核心控制方法;③应用于光伏、风电等新能源并网系统的控制策略开发与仿真验证; 阅读建议:建议结合提供的Simulink仿真模型进行动手实践,重点关注控制器参数设计、中点电位观测与调节模块的实现逻辑,并通过对比不同电压跌落深度和控制策略的仿真结果,深化对系统动态行为与控制性能的理解。
yolo算法港口码头船舶目标检测数据集 目标类别:['ship'] 中文类别:['船舶'] 训练集:16046 张 验证集:1971 张 测试集:983 张 总计:19000 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 1 names: ['ship'] 该数据集聚焦于港口码头及近海水域的船舶检测任务,涵盖多种类型船舶在不同天气、光照和水文条件下的真实场景。图像样本覆盖了货轮、客轮、拖船、油轮及工程船等典型船只,充分体现了海上交通与港口作业的复杂性与多样性。通过高精度标注,该数据集为海上智能监控、船舶识别与航行安全预警系统提供了高质量的数据支撑,具有重要的实际应用价值。 该数据集在训练集、验证集和测试集之间实现了科学合理的分布,训练集包含16046张图像,验证集1971张,测试集983张,总计19000张。这种分布结构确保了模型在训练过程中具备充足的样本学习能力,同时验证集与测试集规模适中,能够有效评估模型的泛化性能与稳定性,符合深度学习项目对数据划分的标准要求。 该数据集的标注工作严谨规范,所有船舶均采用精确边界框进行标注,覆盖了不同尺寸、姿态和视角下的目标实例。标注框紧密贴合船舶轮廓,未出现明显偏移或遗漏,且在复杂背景(如水面反光、雾天、桥梁遮挡)下仍保持高一致性。标注信息完整可靠,为后续模型训练提供了坚实基础。 该数据集可广泛应用于港口自动化管理、海上交通监控、船舶动态跟踪、航道安全预警以及海洋执法等领域。其丰富的场景覆盖和多样化的船舶类型使其特别适用于智慧港口建设、海上搜救系统开发及航运物流智能化升级,能够有效提升相关系统的识别准确率与响应效率,推动海洋经济数字化转型。

663

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧