U8快开工具生成凭证.docx_第1页
U8快开工具生成凭证.docx_第2页
U8快开工具生成凭证.docx_第3页
U8快开工具生成凭证.docx_第4页
U8快开工具生成凭证.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

U8知识库文档U8快速开发工具-凭证生成摘要在U8 的客户化开发中经常会遇到客户化的单需要生成凭证,标准单据生成凭证,本文即介绍如何使用U8 快速开发工具完成两种参照生单的开发。目标本文主要介绍基于快速开发工具,通过脚本预置插件开发的方式完成生成凭证功能。客户化开发单据生成凭证1. 添加自定义按钮操作步骤详见U8产业链_快速开发工具_基础介绍.docx中的“增加自定义按钮”章节。本文接续之前的介绍在UA_Menu表加记录在ufsystem.ua_idt表加记录在sa_menuconfig表加记录在sa_toolbarconfig表加记录-BEGIN 创建菜单脚本delete UA_Menu where cmenu_name = 发货单制单 and csub_id =AR GOinsert into UA_Menu (cMenu_Id,cMenu_Name,cMenu_Eng,cSub_Id,IGrade,cSupMenu_Id,bEndGrade,cAuth_Id,iOrder,iImgIndex,Paramters,Depends,Flag,IsWebFlag)values(AR109,发货单制单,Null,AR,1,AR,0,Null,900,2,Null,Null,Null,Null)delete UA_Menu where cmenu_name = 发货单制单处理 and csub_id =AR GOinsert into UA_Menu (cMenu_Id,cMenu_Name,cMenu_Eng,cSub_Id,IGrade,cSupMenu_Id,bEndGrade,cAuth_Id,iOrder,iImgIndex,Paramters,Depends,Flag,IsWebFlag)values(AR10901,发货单制单处理,Null,AR,2,AR109,1,AR10901,910,4,Null,Null,Null,Null)-当前工具版本V4.00.0011 脚本创建时间:2012-09-18 9:34:52- 创建菜单脚本GO-ENDdelete from ufsystem.ua_idt where id =AR10901 GOinsert into ufsystem.ua_idt (id,assembly,catalogtype,type,class,entrypoint,parameter,reserved) values(AR10901,EFMain.clsProductFacade,0,0,Null,Null,Null,Null) -delete from sa_menuconfig where parameters=AR10901 GOinsert into sa_menuconfig (menuid,helpid,functionid,parameters,toolbarname,authid,defaultstr,condition)values(AR10901,Null,voucherlist,AR10901,AR10901_list,Null,Null,Null)-delete from sa_toolbarconfig where tblkey=AR10901_list GOinsert into sa_toolbarconfig (tblkey,imageid,keydownapplytask,keyupfreetask,buttonkey,buttoncaptionresid,tooltiptextresid,buttonstyle,inivisible,inienable,buttonindex,subindex,hotshift,hotkeycode,hotkeystate,editenable,buttonparas,downstatus,upstatus,errstatus,buttontag,grouptype)values(AR10901_list,16,Null,Null,refresh,U8.SA.xsglsql.01.frmbillvouch.00290,U8.SA.xsglsql.01.frmbillvouch.00291,0,1,1,22,Null,2,82,Ctrl+R,0,Null,0,Null,Null,Refresh,iAssistant)insert into sa_toolbarconfig (tblkey,imageid,keydownapplytask,keyupfreetask,buttonkey,buttoncaptionresid,tooltiptextresid,buttonstyle,inivisible,inienable,buttonindex,subindex,hotshift,hotkeycode,hotkeystate,editenable,buttonparas,downstatus,upstatus,errstatus,buttontag,grouptype)values(AR10901_list,36,Null,Null,help,U8.SA.xsglsql.01.frmbillvouch.00293,U8.SA.xsglsql.01.frmbillvouch.00294,0,1,1,23,Null,0,112,Null,0,Null,0,Null,Null,Help,iAssistant)-生成凭证insert into sa_toolbarconfig (tblkey,imageid,keydownapplytask,keyupfreetask,buttonkey,buttoncaptionresid,tooltiptextresid,buttonstyle,inivisible,inienable,buttonindex,subindex,hotshift,hotkeycode,hotkeystate,editenable,buttonparas,downstatus,upstatus,errstatus,buttontag,grouptype)values(AR10901_list,13,Null,Null,SendCreatePZ,生成凭证,生成凭证,0,1,1,13,Null,0,112,Null,0,Null,0,Null,Null,incomplete_tsk,iAssistant)-参考附件:参照生单按钮.sql2. 创建发货单制单列表创建只有单据列表的操作参考U8产业链_快速开发工具_基础介绍.docx中的“创建单据列表”章节。本文以“发货单制单列表”为例。领料申请单参照列表-删除栏目缓存信息begin -delete AA_ColumnDicCache_Main where ckey =AR10901 GOdelete AA_ColumnDicCache_Detail where ckey =AR10901 GOdelete aa_columnset_base where ckey =AR10901 GO-删除栏目缓存信息end delete sa_voucherlistconfig where ckey =AR10901GOinsert into sa_voucherlistconfig (ckey,listfrom,defaultfilter,filtername,subsysid,columnkey,menuid,maintbl,detailtbl,mainkey,detailkey,showsumoption,canmodify)values(AR10901,Sales_FHDPZ_T inner join Sales_FHDPZ_W on Sales_FHDPZ_T.dlid=Sales_FHDPZ_W.dlid,Null,SAAddPZ01,AR10901,Null,Sales_FHDPZ_T,Sales_FHDPZ_W,NULL,NULL,1,0)-Insert into the Table aa_busobject_basedelete aa_busobject_base where cbusobid=AR10901GOinsert into aa_busobject_base (cBusObId,cBusObName,iAuthType,bAuthControl,cSub_Id,cMark,iFuncType,langid,iOrder,bLocked,cLockedBy,bNoAuth)values(AR10901,list of delivery document,1,0,SA,Null,2,en-US,1,0,Null,0)insert into aa_busobject_base (cBusObId,cBusObName,iAuthType,bAuthControl,cSub_Id,cMark,iFuncType,langid,iOrder,bLocked,cLockedBy,bNoAuth)values(AR10901,发货单制单处理,1,0,SA,Null,2,zh-CN,1,0,Null,0)insert into aa_busobject_base (cBusObId,cBusObName,iAuthType,bAuthControl,cSub_Id,cMark,iFuncType,langid,iOrder,bLocked,cLockedBy,bNoAuth)values(AR10901,發貨單制單处理,1,0,SA,Null,2,zh-TW,1,0,Null,0)-Insert into the Table aa_columndic_basedelete aa_columndic_base where ckey =AR10901GOinsert into aa_columndic_base (cKey,cFld,cQryField,iColPos,cCaption,cCaptionPar,bFixed,bDisp,iColWidth,iAlign,cOrder,bLock,iMergeCols,bMustSel,bNeedSum,LocaleID,IsEnum,EnumType,EnumTypeString,bFilter,bMerge,CanModify,ReferType,bHideInColSet,cSumType)values(AR10901,selcol,selcol,1,选择,Null,1,1,800,4,Null,1,0,1,0,zh-CN,0,Null,Null,0,0,0,Null,0,Null)insert into aa_columndic_base (cKey,cFld,cQryField,iColPos,cCaption,cCaptionPar,bFixed,bDisp,iColWidth,iAlign,cOrder,bLock,iMergeCols,bMustSel,bNeedSum,LocaleID,IsEnum,EnumType,EnumTypeString,bFilter,bMerge,CanModify,ReferType,bHideInColSet,cSumType,iFieldType,bExtended)values(AR10901,ccusabbname,310,客户简称,0,1,1200,1,0,0,0,0,zh-CN,0,Null,Null,0,0,0,Null,0,Null,Null,0)insert into aa_columndic_base (cKey,cFld,cQryField,iColPos,cCaption,cCaptionPar,bFixed,bDisp,iColWidth,iAlign,cOrder,bLock,iMergeCols,bMustSel,bNeedSum,LocaleID,IsEnum,EnumType,EnumTypeString,bFilter,bMerge,CanModify,ReferType,bHideInColSet,cSumType,iFieldType,bExtended)values(AR10901,ccuscode,300,客户编码,0,0,1200,1,0,0,0,0,zh-CN,0,Null,Null,0,0,0,Null,0,Null,Null,0)参考附件:Data_Voucherlist_EFKPZY_DispatchList_AR10901_NL.SQL3. 配置参照信息配置“发货单制单处理”列表的过虑条件“领料申请单”参考附件:参照生单配置脚本.sql其中: AR10901 :发货单制单处理的单据号; SAAddPZ01为发货单制单处理列表界面的过滤条件key值; Sales_FHDPZ_T 、Sales_FHDPZ_W 为客户化的发货单列表主子表视图。获取菜单id如下图所示: 获取过滤界面的key值如下图所示:4. 创建发货单列表视图 Sales_FHDPZ_T、Sales_FHDPZ_W为发货单列表界面对应的视图,在此视图中需要将数据源字段 as 到目标单据字段,如下图所示:-创建发货单生成凭证视图/* Object: View dbo.Sales_FHDPZ_T Script Date: 09/25/2012 15:56:01 */IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(Ndbo.Sales_FHDPZ_T)DROP VIEW dbo.Sales_FHDPZ_TGO /* Object: View dbo.Sales_FHDPZ_T Script Date: 09/25/2012 15:56:02 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW dbo.Sales_FHDPZ_TAS select * from Sales_FHD_T -where isnull(cCloser,)=GO/* Object: View dbo.Sales_FHDPZ_W Script Date: 09/25/2012 15:56:39 */IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(Ndbo.Sales_FHDPZ_W)DROP VIEW dbo.Sales_FHDPZ_WGO /* Object: View dbo.Sales_FHDPZ_W Script Date: 09/25/2012 15:56:39 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW dbo.Sales_FHDPZ_WAS select w.dlid,sum(itax) as itax -税额,sum(isum) as isum -价税合计from Sales_FHD_W w inner join Sales_FHD_T t on t.dlid=w.dlid where isnull(t.cverifier,) and isnull(w.cdefine22,)=group by w.dlidGO/* Object: View dbo.Sales_FHDPZ_W2 Script Date: 09/25/2012 15:56:39 */IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(Ndbo.Sales_FHDPZ_W2)DROP VIEW dbo.Sales_FHDPZ_W2GO /* Object: View dbo.Sales_FHDPZ_W2 Script Date: 09/25/2012 15:56:39 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW dbo.Sales_FHDPZ_W2AS select w.dlid,sum(itax) as itax -税额,sum(isum) as isum -价税合计,cdefine22 -凭证线索号,cdefine23 -凭证号,cdefine36 -制单日期from Sales_FHD_W w inner join Sales_FHD_T t on t.dlid=w.dlid where isnull(t.cverifier,) and isnull(w.cdefine22,)group by w.dlid,cdefine22,cdefine23,cdefine36GO参考附件:Data_View_EFKPZY_DispatchList_AR109_NL.SQL5. 生成凭证按钮插件功能开发在接口方法中补充生成凭证功能逻辑参照按钮逻辑Private WithEvents m_objPz As clsPZ首先需要实现凭证控件的保存事件rstCurrentVouch 当前凭证数据记录集 IsSuccess 只有返回true的时候凭证才可以保存Private Sub m_objPz_Save(rstCurrentVouch As ADODB.Recordset, IsSuccess As Boolean) Dim objCon As ADODB.Connection Set objCon = rstCurrentVouch.ActiveConnection 当前数据库连接 Dim coutno_id As String 线索号 Dim csignino_id As String 凭证号 Dim dbill_date As String 制单日期 Dim ccode As String 销售收入科目 csignino_id = 记- ccode = kzkm If Trim(rstCurrentVouch.fields(ino_id) Then coutno_id = Trim(rstCurrentVouch.fields(coutno_id).Value) csignino_id = csignino_id & Right(0000 & Trim(rstCurrentVouch.fields(ino_id).Value), 4) dbill_date = Trim(rstCurrentVouch.fields(dbill_date).Value) 凭证保存回写发货单信息 cDefine22表体自定义项1为凭证线索号coutno_id,cDefine23表体自定义项2为凭证号,cDefine24表体自定义项3为收入科目,就是应收单位款的会计科目,cDefine36表体自定义项15制单日期 objCon.Execute update DispatchLists set cDefine22= & coutno_id & ,cDefine23= & csignino_id & ,cDefine24= & ccode & ,cDefine36= & dbill_date & where dlid in ( & dlids & ) End If IsSuccess = True Exit SubEnd SubVoucher 当前单据对象ButtonKey 按扭关键字strUserErr 错误信息bSuc =true 表示成功并终止系统流程 =false表示失败并继续系统流程Public Sub Before_ButtonClick(Voucher As Object, ButtonKey As String, strUserErr As String, bSuc As Boolean) Select Case LCase(StrCardNum) Case LCase(AR10901) 凭证 Dim UfDb As New UfDbKit.UfDatabase Dim sql As String Dim dbc As New ADODB.Connection UfDb.OpenDatabase m_login.UfDbName 总账公用函数实例化 Set m_ZwPub = New clsPub m_ZwPub.InitPubs m_login.UfSystemDb, m_login.UfDbName, m_login.cAcc_Id, m_login.cIYear, m_login.cUserId, m_login.CurDate, m_login.SysPassword Set m_ZwPub.oLogin = m_login Set m_ZwPub.g_business = g_busines1 这个注释了会弹出模态对话框 m_ZwPub.InitPubs2 AR, m_login.UfSystemDb, UfDb, m_login.cAcc_Id, m_login.cIYear, m_login.cUserName, m_login.CurDate, m_login.SysPassword 调用凭证对象 Set m_objPz = New clsPZ Set m_objPz.zzLogin = m_login Set m_objPz.zzSys = m_ZwPub If dbc.State 0 Then dbc.Close dbc.open m_login.UfDbName dbc.Execute delete & m_ZwPub.WbTableName sqlstr = insert into & m_ZwPub.WbTableName & (csign,ino_id,inid,cbill,doutbilldate,ccashier,idoc,ctext1,ctext2,cexch_name,cdigest,ccode,md,mc,md_f,mc_f,nfrat,nd_s,nc_s,csettle,cn_id,dt_date,cdept_id,cperson_id,ccus_id,csup_id,citem_id,citem_class,cname,ccode_equal,bvouchedit,bvouchaddordele,bvouchmoneyhold,bvalueedit,bcodeedit,ccodecontrol,bPCSedit,bDeptedit,bItemedit,bCusSupInput,coutaccset,ioutyear,coutsysname,coutsysver,ioutperiod,coutsign,coutno_id,doutdate,coutbillsign,coutid,iflag,cDefine1,cDefine2,cDefine3,cDefine4,cDefine5,cDefine6,cDefine7,cDefine8,cDefine9,cDefine10,cDefine11,cDefine12,cDefine13,cDefine14,cDefine15,cDefine16,iBG_ControlResult,daudit_date) & _ values(记,Null, & calcI & , & m_login.cUserName & , & m_login.CurDate & ,Null, & idoc & ,Null,Null,Null, & cdigest & , & kzkm & , & iSum & ,0,0,0,0, & iQuantity & ,0,Null,Null,Null, & cdepCode & , & cPersonCode & , & cCusCode & ,Null,Null,Null, & cPersonName & ,Null,1,1,0,0,1,AR,0,1,1,0, & m_login.cAcc_Id & , & m_login.cIYear & ,AR,Null, & m_login.iMonth & ,AR, & guid & , & m_login.CurDate & ,05, & cDLCode & spaceStr & calcI & ,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,0,Null); dbc.Execute sqlstr Case Else bSuc = False End Select 自定义逻辑结束 bSuc = False End Sub特别提示:以上代码在调试状态下保存凭证“会提示外部系统错误!”这时一般直接把工程编译后直接运行就可以了。参考附件:Interface_kangpu工程注册插件XML文件运行代码,启动U8标准产品单据参照客户化开发单据以下以材料出库单参照“DEMO业务单1”生单为例进行讲解。1. 增加自定义按钮增加自定义按钮-材料出库单上增加客户化按钮DEMO业务单1delete aa_customerbutton where cvoucherkey=0412 and cButtonKey=EF_0201GOinsert into aa_customerbutton (cButtonID,cButtonKey,cButtonType,cProjectNO,cFormKey,cVoucherKey,cKeyBefore,iOrder,cGroup,cCustomerObjectName,cCaption,cLocaleID,cImage,cToolTip,cHotKey,bInneralCommand,cVariant,cVisibleAsKey,cEnableAsKey,cSubID,DependenceSubIdList)values(newid(),EF_0201,PortalToolbar,U870,0412,0412,tlbAdd,12,ST_Voucher_P_2,Interface_EFDEMO.cls_aa_customerbutton,参照DEMO1,ZH-C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论