JDP
弹框表结构里面选择弹框、报表查询条件弹框,通过弹框代码的编写就能实现
表弹框
单仓库弹出框如:/popup/Stock/Stock.xml
<?xml version="1.0" encoding="gb2312"?>
<popupSelect>
<select name="Stock">
<table>tblStock</table>
<forwardModel>tblStock</forwardModel>
<relation></relation>
<saveParentFlag></saveParentFlag>
<defineSQL>
select
tblStock.classCode f1,
tblStock.StockNumber f2,
tblStock.StockFullName f3,
tblStock.StockFullNamePYM f4
from tblStock
</defineSQL>
<classCode>tblStock.classCode</classCode>
<condition></condition>
<changeCond>tblStock.statusid!='-1' and tblStock.workFlowNodeName='finish'</changeCond>
<orderBy>tblStock.StockNumber,tblStock.StockFullName</orderBy>
<displayFields>
<field name="tblStock.StockNumber" width="100" searchType="match" keySearch="true" parentDisplay="false" orderBy="升" />
<field name="tblStock.StockFullName" width="75" searchType="match" keySearch="true" parentDisplay="true" display="@TABLENAME.StockCode" orderBy="升" />
<field name="tblStock.StockFullNamePYM" width="100" searchType="match" keySearch="true" parentDisplay="false" hiddenInput="true" />
</displayFields>
<saveFields>
<field name="tblStock.classCode" parentName="@TABLENAME.StockCode" relationKey="true" hidden="true" />
</saveFields>
</select>
</popupSelect>
报表弹框
报表条件弹框
客户选择+输入一体弹框
<?xml version="1.0" encoding="gb2312"?>
<popupSelect>
<select name="ReportSelectClient_v2" type="checkBox" version="2" belongTableName="tblCompany">
<table>tblCompany</table>
<forwardModel></forwardModel>
<relation></relation>
<saveParentFlag>true</saveParentFlag>
<defineSQL>
select
tblCompany.classCode f1,
tblCompany.isCatalog f2,
tblCompany.ComNumber f3,
tblCompany.ComFullName f4,
tblCompany.ComFullNamePYM f5
from tblCompany
</defineSQL>
<classCode>tblCompany.classCode</classCode>
<condition>(len(tblCompany.ComFullName)!=0 and tblCompany.ClientFlag in ('2','3')) and tblCompany.workFlowNodeName='finish'</condition>
<changeCond></changeCond>
<orderBy>tblCompany.ComNumber</orderBy>
<displayFields>
<field name="tblCompany.ComNumber" width="140" searchType="match" keySearch="true" parentDisplay="false" />
<field name="tblCompany.ComFullName" width="140" searchType="match" keySearch="true" parentDisplay="true" display="tblSalesOutStock.CompanyCode" />
<field name="tblCompany.ComFullNamePYM" width="60" searchType="match" keySearch="true" parentDisplay="false" hiddenInput="true" />
</displayFields>
<saveFields>
<field name="tblCompany.classCode" parentName="CompanyCode" relationKey="false" hidden="true" />
<field name="tblCompany.isCatalog" parentName="isCatalog" relationKey="false" hidden="true" />
</saveFields>
</select>
</popupSelect>
多单引用
所有弹出框都放在对应版本安装路径下\config\Popup\
以popupSelect开头的文件中,把需要修改和增加的弹出框内容放在新增加的 popupSelect 文件中,然后在安装路径下
<PopupSelectFile_user></PopupSelectFile_user>
<!--里增加新加的 PopupSelect 文件-->
代码说明
<select name="" type=""></select>
表示一个弹出窗的起始及结束,弹出框内容其实相当于一个查询语句,将查询出来的数据显示出来
<select name="值"
值:是弹出窗的名称既是在表结构中字段的输入类型选择是关联表选择后的录入内容,在整个系统中 必须是唯一 的;
弹出窗的类型
当无
type=""
时,表示为普通类型只能单选
<table> </table>
表示弹出框中所涉及到的数据表,如需在多个表取数据时在表名与表名之间用逗号进行分隔,如:
<table>tblStockDet,tblGoods </table>
<classCode> </classCode>
表示存在分类、分级、分层次的的情况,弹出窗需按分类逐层显示数据
:::remark
系统只辨认classCode
字段,例如:商品的分类代码tblGoods.classCode
:::
<forwardModel></forwardModel>
表示往数据表列表界面跳转 并可以在数据表中添加新的信息 如在做单据时发现某个商品信息没有 需要新增该商品,填入表名tblGoods 在弹出窗中即有添加按钮 点添加 即可跳转到商品列表界面 增加新的商品 而不需要关掉弹出窗才能转到商品管理进行添加商品信息。
<relation></relation>
表示如果
<table></table>
存在多个表或视图时的数据表与数据表之间的关联关系 相当于 SQL 语句中使用的"LEFT JOIN 表名 ON 关联关系"
中的 ON后面的关联关系。
比如
<relation>on tblStockDet.GoodsCode=tblGoods.classCode</relation>
<condition></condition>
表示条件的过滤 相当于 SQL 查询语句中
WHERE
后面的过滤条件
如果条件中需要对单据界面已选信息做过滤时候可使用 '@ValueofDB:'
'@ValueofDB:字段名'
取主表上的值
比如取主表往来单位:
'@ValueofDB:CompanyCode'
'@ValueofDB:表名_字段名'
则取从表的字段值 获取界面上已经存在的数据
比如取明细表的仓库:'@ValueofDB:@TABLENAME_StockCode',@TABLENAME=明细表名如:@tblBuyOrderDet-->购货订单明细表
亦可使用'@Sess:系统参数名'
获取系统参数值
<orderBy></orderBy>
相当于 SQL 查询语句中的 order by 后面的排序字段部分
<hasChild></hasChild>
一般用在引用单据的弹出窗中 表示存在子弹出框。是从表弹出窗的 ID 弹出窗名称)即表示显示弹出框后 还可双击显示子弹出框信息
<displayFields></displayFields>
表示弹出窗中显示出来的数据信息<saveParentFlag>true</saveParentFlag>
表示可以选择父类数据 即分类数据 为false 时则不可以选择
<field name="9" „„/>
表示显示的字段信息,其中
name="9"
为弹出窗中要显示信息的字段
asName="10"
是 9 的别名当一个模块用到多个弹出框 当弹出框里有相同字段时需用别名标识出来
display="11"
是弹出窗的选中提交的字段 10 内容后在单据中哪个字段上显示。width=“100”表示弹出窗中字段 10 显示的宽度
searchType="12"
表示字段 10 是否做为查询条件 13 值为“match”时可进行模糊查询 为“no”时不作查询条件 为“equal”表示匹配查询 为“scope”作为区间查询
parentDisplay="13"
表示是否在单据中显示该字段的信息 当 14 为 true时 在单据中显示 为 false 时不显示。hiddenInput=“true” 表示隐藏可显示的内容 主要用于列配置中 该字段可在列配置弹出框里调出来 keySearch=“true” 为关键字查询 只有加上该标识的字段 可以在弹出窗中做关键字搜索内容
<saveFields></saveFields>
表示在弹出窗中选中数据并提交后 单据中需要保存的字段信息
Field name=" 14 "
需要保存字段 14 的内容 保存到单据中的字段 15 中即
parentName=" 15 "
如果字段(15)在表信息维护中的输入类型是关联表选择的 且弹出窗名为当前弹出窗名的 则relationKey="true"
,否则为false
hidden="(16)"
中的值为 true 时表示字段(15)的内容在单据中显示 如为 false 时不显示
<changeCond>
也是做为查询时的过滤条件,但它跟
<condition>
不同<condition>
条件是在添加、修改、详情界面弹出框都会加上此条件过滤,但<changeCond>
的条件 只在添加界面加上 进行条件过滤
Tips
<condition>tblSalesOrder.workFlowNode='-1'</condition>
<changeCond>tblOtherIn.Cncjg=1 and (len(tblSalesOrderDet.slwgDate)=0 or tblSalesOrderDet.slwgDate is null)</changeCond>
- 上面的代码,如果换成下面的代码,会导致保存之后弹框条件失效,也就是弹框关联的数据不显示了。
<condition>tblSalesOrder.workFlowNode='-1' and (len(tblSalesOrderDet.slwgDate)=0 or tblSalesOrderDet.slwgDate is null)</condition>
<changeCond>tblOtherIn.Cncjg=1</changeCond>