1.component
moduleName模块名 name包名 moduleName.name
例:<component name="transferapply" moduleName="st" title="调拨订单组件" domain="ustock"> domain为域名
2.class 实体 数据库表
例:<class name="TransferApply" title="调拨订单主表" tableName="st_transferapply">
3.attributes 类变量/数据库表字段 集合
4.attribute 类变量/数据库表字段
name 类变量
columnNmae 数据库字段(如果没有默认与name一样)
title 标题备注
type 类变量/数据库表字段 类型
如果type值为对应的实体类,则实际对应的为该实体的id,也有为文档通过实体快速获取属性的含义(在数据库中表示表连接的关系入口,暂定以为子表)
目的:1)可以通过子表查到主表的记录
2)可以为文档编写提供便利
例:<attribute name="operator" title="经办人ID" type="aa.operator.Operator" columnName="iOperatorId" dataPowerFlag="true"/>
isKey="true" 设置为主键
isSyncKey="true" 不为空,默认值为系统时间
Decimal类型 type="Decimal" 精度长度 iPrecision="19" 小数位 iScale="8"
String类型 (varchar类型)type="String" 长度 iLength="20"
5.realizations 接口的实现
supplier 要实现的接口
client 具体实现接口的类
作用:可以得到接口中定义的变量/表字段
6.generalizations 类继承
parent 要继承的父类
child 子类
*接口和父类中的‘属性’都会在子类中存在,表中建立对应字段
7.associations 父类子类/主表子表 间关系 1对1 or 1对多
主要作用:与4中的对象类型type对比,4中是通过子表找主表,相当于外键,
而7的作用是通过主表找与子表有关的数据。类似hibernate中的1对1及1对多
当是1对多时,类中为引用类的集合
当是1对1时,类中为引用类对象
例:
<association type="composition" roleB="mainid" typeB="TransferApply" roleA="TransferApplys" typeA="TransferApplys"/>
typeB 主表映射类
roleA 主表映射类中与子表关联的变量名
typeA 子表映射的类
roleB 子表与主表的关联字段
表示:typeB中定义了一个变量roleA,而roleA的泛型为typeA,通过
子表的roleB与主表的id进行关联封装
举 个 栗 子~
<?xml version="1.0" encoding="utf-8"?>
<components xmlns="http://www.imeta.org/meta" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.imeta.org/meta http://upsms.yonyouup.com/meta.xsd">
<!-- 参考文献(相当于import引用,此处在云网址上已经与此处的主子类相关联了,所以其实可以不写这个) -->
<references>
<reference file="java.xml" />
<reference file="aa.xml" />
<reference file="base.xml" />
<reference file="store.xml" />
<reference file="op.xml" />
<reference file="warehouse.xml" />
<reference file="businesstype.xml" />
<reference file="retail.vouch.xml" />
<reference file="product.xml" />
<reference file="retaildailyreport.xml"/>
<reference file="matterinfo.xml"/>
<reference file="pu.xml"/>
<reference file="pub.xml"/>
</references>
<!-- domain域是什么==========-->
<!-- 楼上解析:采购订单domain域就是upu。都挂在pu模块下 -->
<component name="purblueinvoicegr" moduleName="pu" title="采购蓝票组件gr" domain="upu">
<enum name="InvoiceTypegr" title="发票类型">
<item name="VATSpecail" title="增值税专用发票" value="0" />
<item name="VATNormal" title="增值税普通发票" value="1" />
<item name="VATNormalE" title="增值税电子普通发票" value="2" />
</enum>
<!-- 没用到=================== -->
<!-- 楼上解析:可以删除试试,应该没影响 -->
<enum name="PriceIdentifygr" title="价格标识">
<item name="haveTax" title="含税价" value="0" />
<item name="noTax" title="无税价" value="1" />
</enum>
<!-- 此处的dataPowerScene填什么============ -->
<!-- 楼上解析:dataPowerScene dataPowerFlag dataPowerAuthAttribute这里的三个属性,共同进行权限管理 -->
<class name="PurBlueInvoicegr" title="采购发票主表gr" tableName="st_purblueinvoice_gr" dataPowerScene="bill_maintain">
<attributes>
<attribute name="operator" title="采购业务员" type="bd.staff.Staff" columnName="iOperatorId" dataPowerFlag="true"/>
<attribute name="custom" columnName="iCustomId" title="所属客户" type="Long" iLength="20"/>
<attribute name="invoiceType" title="发票类型" type="InvoiceTypegr" columnName="invoiceTypegr" />
<attribute name="bustype" title="业务类型" type="bd.bill.TransType" columnName="iBusType" />
<!-- isFunShare和cDataRule作用是什么=======-->
<attribute name="org" title="采购组织" type="aa.org.PurchaseOrg" columnName="iOrgid" isFunShare="true" cDataRule=""<%u8c-config.option.singleOrg%>"=="false""/>
<!-- isMasterOrg和cDataRule作用===========-->
<!-- 楼上解析:每一个的单据都有对应的组织,没有组织的单据无意义。可以这么理解,主表中为主组织,从表为从组织 -->
<attribute name="inInvoiceOrg" title="收票组织" type="aa.org.FinanceOrg" columnName="iInInvoiceOrgid" isMasterOrg="true" cDataRule=""<%u8c-config.option.singleOrg%>"=="false""/>
<attribute name="balanceOrg" title="结算组织" type="aa.org.Org" columnName="iBalanceOrgid" cDataRule=""<%u8c-config.option.singleOrg%>"=="false""/>
<attribute name="otherInvoiceCode" title="对方发票号" type="String" iLength="100" columnName="cOtherInvoiceCode" />
<attribute name="otherInvoiceDate" title="对方发票日期" type="Date" columnName="dOtherInvoiceDate" />
<attribute name="vendor" title="供货供应商" type="aa.vendor.Vendor" columnName="iVendorId" dataPowerFlag="true"/>
<attribute name="contact" title="供货联系人" columnName="cContact" type="String" iLength="100" note="供货联系人"/>
<attribute name="contactTel" title="供货联系人手机" columnName="cContactTel" type="String" iLength="100" note="供货联系人手机"/>
<!-- dataPowerFlag和dataPowerType作用============-->
<!-- 楼上解析:dataPowerScene dataPowerFlag dataPowerAuthAttribute这里的三个属性,共同进行权限管理 -->
<attribute name="department" title="采购部门" type="aa.dept.Department" columnName="iDepartment" dataPowerFlag="true" dataPowerType="bd.adminOrg.AdminOrgVO"/>
<attribute name="invoiceVendor" title="开票供应商" type="aa.vendor.Vendor" columnName="iInvoiceVendor" />
<attribute name="invVendorBank" title="开票供应商银行名称" type="String" iLength="100" columnName="cInvVendorBank" />
<attribute name="invVendorAccount" title="开票供应商银行账号" type="String" iLength="100" columnName="cInvVendorAccount" />
<!-- iPrecision和iScale作用==========-->
<!-- 楼上解析:这俩个属性规定小数点前后数据的位数 -->
<attribute name="taxRate" title="税率" type="Decimal" columnName="fTaxRate" iPrecision="28" iScale="8" note="税率"/>
<attribute name="isInvBack" title="是否红字发票" type="Boolean" columnName="iIsInvBack" />
<attribute name="totalPayNATMoney" title="本币累计付款金额" columnName="fTotalPayNATMoney" type="Decimal" iPrecision="28" iScale="8" note="本币累计付款金额"/>
<attribute name="totalQuantity" title="整单数量" columnName="fTotalQuantity" type="Decimal" iPrecision="28" iScale="8" />
<attribute name="srcBill" title="来源单据" type="Long" columnName="iSrcBillID" />
<attribute name="srcBillNO" title="来源单据号" type="String" iLength="100" columnName="cSrcBillNO" />
<attribute name="source" title="来源单据类型" type="String" iLength="100" columnName="cSource" />
<attribute name="isBeginning" title="是否期初发票" type="Boolean" columnName="isBeginning" />
</attributes>
</class>
<class name="PurBlueInvoicesgr" title="采购发票子表gr" tableName="st_purblueinvoices_gr" dataPowerScene="bill_maintain">
<attributes>
<attribute name="mainid" columnName="iMainId" title="mainid" type="PurBlueInvoicegr" />
<attribute name="inOrg" title="收货组织" type="aa.org.InventoryOrg" columnName="iInOrg" cDataRule=""<%u8c-config.option.singleOrg%>"=="false""/>
<attribute name="demandOrg" title="需求组织" type="aa.org.InventoryOrg" columnName="iDemandOrg" cDataRule=""<%u8c-config.option.singleOrg%>"=="false""/>
<attribute name="priceHaveTax" title="价格是否含税" type="Boolean" columnName="iPriceHaveTax" />
<attribute name="isGiftProduct" title="是否赠品" columnName="isGiftProduct" type="Boolean" />
<attribute name="batchno" title="批号" columnName="cBatchNO" type="String" iLength="255" />
<attribute name="supplyItemCode" title="供应商存货编码" columnName="cSupplyItemCode" type="String" iLength="255" />
<attribute name="supplyItemName" title="供应商存货名称" columnName="cSupplyItemName" type="String" iLength="255" />
<attribute name="unit" title="主计量" type="aa.product.ProductUnit" columnName="iUnitId" />
<attribute name="priceUOM" title="计价单位" type="aa.product.ProductUnit" columnName="oPriceUOM" />
<attribute name="purUOM" title="采购单位" type="aa.product.ProductUnit" columnName="oPurUOM" />
<attribute name="totalPayQuantity" title="累计付款数量" columnName="fTotalPayQuantity" type="Decimal" iPrecision="28" iScale="8" note="累计付款数量"/>
<attribute name="totalPayNATMoney" title="本币累计付款金额" columnName="fTotalPayNATMoney" type="Decimal" iPrecision="28" iScale="8" note="本币累计付款金额"/>
<attribute name="totalBalanceQuantity" title="累计结算数量" columnName="fTotalBalanceQuantity" type="Decimal" iPrecision="28" iScale="8" note="累计结算数量"/>
<attribute name="totalBalanceMoney" title="累计结算金额" columnName="fTotalBalanceMoney" type="Decimal" iPrecision="28" iScale="8" note="累计结算金额"/>
<attribute name="balanceDate" title="结算日期" type="Date" columnName="dBalanceDate" />
<attribute name="rationalLossQuantity" title="合理损耗数量" columnName="fRationalLossQuantity" type="Decimal" iPrecision="28" iScale="8" note="合理损耗数量"/>
<attribute name="nRationalLossQuantity" title="非合理损耗数量" columnName="fNRationalLossQuantity" type="Decimal" iPrecision="28" iScale="8" note="非合理损耗数量"/>
<attribute name="nRationalLossMoney" title="非合理损耗金额" columnName="fNRationalLossMoney" type="Decimal" iPrecision="28" iScale="8" note="非合理损耗金额"/>
<attribute name="maxInPrice" title="最高进价" type="Decimal" iPrecision="28" iScale="8" columnName="fMaxInPrice" />
<attribute name="srcPOID" title="来源订单号" type="Long" columnName="iSrcPOID" />
<attribute name="srcPOLineID" title="来源订单行" type="Long" columnName="iSrcPOLineID" />
<attribute name="srcPOLineRowNo" title="来源订单行号" type="Integer" columnName="iSrcPOLineRowNo" />
<attribute name="srcPOCode" title="来源订单编号" type="String" columnName="iSrcPOCode" iLength="255" />
<attribute name="accountOrg" title="会计主体" type="aa.org.Org" columnName="account_org"/>
<attribute name="project" title="项目id" type="bd.project.ProjectVO" columnName="iProject" dataPowerFlag="true"/>
</attributes>
</class>
<!-- 此处为过滤区那里的自定义项嘛============== -->
<!-- 楼上解析:此处为UI元数据,所以自定义项为页面展示时候,罗列出来的那些列,如果需要加的话,就会编辑自定义项,之后就会出现新的一列 -->
<!-- 此处的自定义项会另生一张表来存放这些字段,要不然60个自定义字段都放在主表或者子表,会夹中表的负担,分开放为好 -->
<class name="PurBlueInvoiceCustomItemgr" title="采购发票主表自定义项" tableName="st_purblueinvoice_customitem_gr">
<attributes>
<attribute name="id" columnName="id" title="采购发票主表id" type="PurBlueInvoicegr" isKey="true" />
</attributes>
</class>
<class name="PurBlueInvoicesCustomItemgr" title="采购发票子表自定义项" tableName="st_purblueinvoices_customitem_gr">
<attributes>
<attribute name="id" columnName="id" title="采购发票子表id" type="PurBlueInvoicesgr" isKey="true" />
</attributes>
</class>
<!-- 接口的实现 -->
<realizations>
<!-- 自定义项 --> <!-- 还有一个固定自定义项 -->
<realization supplier="base.itf.CustomItem" client="PurBlueInvoiceCustomItemgr" />
<realization supplier="base.itf.CustomItem" client="PurBlueInvoicesCustomItemgr" />
<!-- 规格 -->
<realization supplier="base.itf.FreeItem" client="PurBlueInvoicesgr" />
<!-- 计量单位信息 -->
<realization supplier="voucher.base.IUOMInfo" client="PurBlueInvoicesgr" />
<!-- 原币金额信息 -->
<realization supplier="voucher.base.IOriMoneyInfo" client="PurBlueInvoicesgr" />
<!-- 本币金额信息 -->
<realization supplier="voucher.base.INatMoneyInfo" client="PurBlueInvoicesgr" />
<!-- 生单回写 -->
<realization supplier="base.itf.IBackWrite" client="PurBlueInvoicesgr" />
<!-- 计量单位信息 -->
<realization supplier="voucher.base.IUOMPriceInfo" client="PurBlueInvoicesgr" />
<realization supplier="voucher.base.IOriMoneyInfo" client="PurBlueInvoicegr" />
<realization supplier="voucher.base.INatMoneyInfo" client="PurBlueInvoicegr" />
<!-- 打印次数 -->
<realization supplier="base.itf.IPrintCount" client="PurBlueInvoicegr" />
<!-- 商家相关 -->
<realization supplier="base.itf.IShop" client="PurBlueInvoicegr" />
<!-- 币种信息 -->
<realization supplier="voucher.base.ICurrency" client="PurBlueInvoicegr" />
<!-- 事项交换 -->
<realization supplier="st.matterinfo.IMatterInfoAble" client="PurBlueInvoicegr" />
<!-- 采购公共业务校验 -->
<realization supplier="pu.pub.ICommonBizCheck" client="PurBlueInvoicegr" />
<!-- 立账规则接口 -->
<realization supplier="pub.accountRule.IAccountRule" client="PurBlueInvoicegr" />
<!-- 是否 -->
<realization supplier="pub.uom.IUnitExchangeType" client="PurBlueInvoicesgr" />
<!-- 单据回写 -->
<realization supplier="retail.voucher.IHeadWriteBack" client="PurBlueInvoicegr" />
</realizations>
<!-- 类的继承 -->
<generalizations>
<generalization parent="retail.voucher.RetailVouch" child="PurBlueInvoicegr" />
<generalization parent="retail.voucher.RetailVouchLine" child="PurBlueInvoicesgr" />
</generalizations>
<!-- 将类之间的关系表明出来-->
<!--
typeB 主表映射类
roleA 主表映射类中与子表关联的变量名
typeA 子表映射的类
roleB 子表与主表的关联字段
表示: typeB中定义了一个变量roleA,而roleA的泛型为typeA,通过子表的roleB与主表的id进行关联封装
-->
<associations>
<!-- (roleA)purBlueInvoicesgr类为(typeA)PurBlueInvoicesgr类型,(roleA)随意取个名字为roleA(它为一个集合,一对多中一对应的多的集合,之后再excel列表中
通过roleA.属性的方式来获取子类中的属性),它中的(roleB)mainid类型为(typeB)PurBlueInvoicegr-->
<!-- 自己的理解:typeA类中的roleB属性是typeB类型的 -->
<association type="composition" roleB="mainid" typeB="PurBlueInvoicegr" roleA="purBlueInvoicesgr" typeA="PurBlueInvoicesgr" />
<!-- (roleA)headItem类为(typeA)PurBlueInvoiceCustomItemgr类型,(roleA)headItem类中的(roleB)id类型为(typeB)PurBlueInvoicegr========================-->
<association type="composition" roleB="id" typeB="PurBlueInvoicegr" roleA="headItem" typeA="PurBlueInvoiceCustomItemgr" roleAMulti="1" />
<association type="composition" roleB="id" typeB="PurBlueInvoicesgr" roleA="bodyItem" typeA="PurBlueInvoicesCustomItemgr" roleAMulti="1" />
</associations>
</component>
</components>
个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情
如果觉得这篇文章对你有小小的帮助的话,记得在右下角“点赞”~“评论” “收藏”哦,博主在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!