加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

金蝶K3二次开发之WEBSERVICE导入凭证

(2016-12-24 09:05:27)
标签:

金蝶k3

凭证

导入

二次开发

webservice

分类: 金蝶
金蝶K3二次开发之通过WEBSERVICE导入凭证
1.测试WEBSERVICE是否能正常使用。
WEBSERVICE安装完成后,在开始菜单-金蝶 K3 WISE创新管理平台-金蝶K/3工具下,打开“客户端工具包”,选择“Adapter适配器”下的“k/3 WebServices”,打开后即可启动K/3 Web Services测试工具,可通过选择“服务类型”和“调用的方法”,在请求文件路径中修改测试的参数,点执行时会开展WebService的测试并获取测试结果,如下图。


2.在C#中调用凭证接口。
打开C#.NET新建一个winform项目,在解决方案资源管理器窗口点击右键添加服务引用。弹出对话框如下图。
3.调用代码如下(代码在K/3 14.2的环境下编写,其他环境如有错误请做适当修改)
增加引用
using WindowsFormsApplication1.Vos;

  private void VoucherUpdate()
        {
            //特别注意,所有对象的属性都要按要求设置内容,切记不可图省事,否则提示下标越界错误。
            VoucherServicesSoapClient VServices = new VoucherServicesSoapClient();
            string errstr = string.Empty;
            Voucher[] voh2={new Voucher()};   
            voh2[0].FNumber = 719;  //凭证号
            voh2[0].FNumberSpecified = true;    //凭证号是否更改
            voh2[0].FDate = "2015-09-01";   //日期
            voh2[0].FExplanation = "摘要";  //摘要
            voh2[0].FGroup = "记";     //凭证字
            voh2[0].FPeriod = 9;       //期间 
            voh2[0].FPeriodSpecified = true;  //期间是否更改
            voh2[0].FYear = 2015;            //年
            voh2[0].FYearSpecified = true;    //年是否更改
            voh2[0].FSerialNum = 5058;        //凭证序号  
            voh2[0].FSerialNumSpecified = true; //凭证序号是否更改
            voh2[0].FAttachments = 0;            //附件数量   
            voh2[0].FAttachmentsSpecified = true; //附件数量是否更改
            voh2[0].FReference = "";  //参考信息
            voh2[0].FCashier = "NONE";  //出纳员
            voh2[0].FHandler = "";     //会计主管
            voh2[0].FTransDate = "2015-09-01";  //  发生日期
            voh2[0].FPreparer = "Administrator";   //制单人
            voh2[0].FPoster = "NONE";               //记账人

            //增加两个凭证分录
            Entries[] ents = { new Entries(), new Entries() };
            //-------设置第一个凭证分录属性
            //具体字段解释请查询  select * from t_FieldDescription  where FTableID=1
            ents[0].FExplanation = "凭证录入检测-分录1";
            ents[0].FAccountNumber = "1406";
            ents[0].FAccountName = "发出商品";
            ents[0].FCurrencyNumber = "RMB";
            ents[0].FCurrencyName = "人民币";
            ents[0].FAmount = 1000;
            ents[0].FAmountSpecified = true;
            ents[0].FAmountFor = 1000;
            ents[0].FAmountForSpecified = true;
            ents[0].FEntryID = 0;
            ents[0].FEntryIDSpecified = true;
            ents[0].FDC = 1;
            ents[0].FDCSpecified = true;
            ents[0].FSettleTypeName = "";
            ents[0].FTransNo = "";
            ents[0].FSettleNo = "";
            ents[0].FMeasureUnit = "";
            ents[0].FMeasureUnitUUID = "";
            ents[0].FExchangeRate = 1;
            ents[0].FExchangeRateSpecified = true;
            ents[0].FQuantitySpecified = true;
            ents[0].FUnitPriceSpecified = true;

            //-------设置第二个凭证分录属性
            ents[1].FExplanation = "凭证录入检测-分录2";
            ents[1].FAccountNumber = "1601.04";            
            ents[1].FAccountName = "运输工具";
            ents[1].FCurrencyNumber = "RMB";
            ents[1].FCurrencyName = "人民币";
            ents[1].FAmount = 1000;
            ents[1].FAmountForSpecified = true;
            ents[1].FAmountFor = 1000;
            ents[1].FAmountSpecified = true;
            ents[1].FDC = 0;
            ents[1].FDCSpecified = true;
            ents[1].FEntryID = 1;
            ents[1].FEntryIDSpecified = true;

            ents[1].FSettleTypeName = "";
            ents[1].FTransNo = "";
            ents[1].FSettleNo = "";
            ents[1].FMeasureUnit = "";
            ents[1].FMeasureUnitUUID = "";

            ents[1].FExchangeRate = 1;
            ents[1].FExchangeRateSpecified = true;
            ents[1].FQuantitySpecified = true;
            ents[1].FUnitPriceSpecified = true;            
            voh2[0].Entries = ents;

            //为第一个凭证分录增加两个核算科目
            DetailEntries[] dets = { new DetailEntries(), new DetailEntries() };
            //设置核算科目数据
            dets[0].FDetailNumber = "1.1.2.007";
            dets[0].FTypeNumber = "001";
            dets[0].FTypeName = "客户";
            dets[1].FDetailNumber = "00011";
            dets[1].FTypeNumber = "003";
            dets[1].FTypeName = "职员";
            voh2[0].Entries[0].DetailEntries = dets;
            //保存
            VServices.Update(out errstr,6, "administrator", "", voh2, false, true, 0);
            
            //参数说明:
            //  iAisID:账套ID,通过账套查询服务获取,类型:inteager
            //  在 KDAcctDB 数据库中查询select * from t_ad_kdAccount_gl 的facctid字段
            //  strUser:用户名称,必须为K/3中的合法用户,类型:string
            //  strPassword:用户密码,目前通过明文传递,类型:string
            //  Data:业务数据,符合Schema规范,类型:数组
            //  bCheckByUUID:指明是否按UUID更新数据。True表示按UUID更新数据,False表示按Number,Name更新数据,类型:Boolean
            //  bAddNewOnly:是否只增加记录,true表示只增加不覆盖记录,
            //  false表示既增加又覆盖记录,类型:boolean

        }
}
4.代码文件

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有