导航

MAP平台--自定义查询

Posted on 2010-05-10 16:39  毅无涯  阅读(199)  评论(0编辑  收藏  举报

需求:

现在要检索一个单据(yishiyiyijingji2Head),查询界面上有很多条件,但是其中 三个查询条件: 企业名称,税务电脑代码,税务登记证代码,现在要 拼上 关联查询
下面以 企业名称 为例,比如 查询界面上,企业名称 输入 东方绿洲

原来是 select * from X where billdate between TO_DATE('2005-03-27', 'YYYY-MM-DD') and TO_DATE('2010-05-07', 'YYYY-MM-DD') and Upper(qiyemingcheng) like Upper('%东方绿洲%')

那么现在要变成
select * from X where billdate between TO_DATE('2005-03-27', 'YYYY-MM-DD') and TO_DATE('2010-05-07', 'YYYY-MM-DD') and qiyemingcheng in (select distinct qiyemingcheng from scm_yishiyiyihuguanhead where billid1 in (select distinct billid1 from scm_yishiyiyihuguanhead where Upper(qiyemingcheng) like Upper('%东方绿洲%') ) )

税务电脑代码,税务登记证代码 也一样,如果 查询界面上 输入值,就把 关联查询 拼到sql文里,我得到CC的帮助,试过很多方式都没能实现

现在又看宝典2,27,想加一个无数据源的 自定义的 新条件,代替原来的 条件
是想 企业名称 输入 东方绿洲, 新条件 文本框 生成
(qiyemingcheng in(select distinct qiyemingcheng from scm_yishiyiyihuguanhead where billid1 in (select distinct billid1
from scm_yishiyiyihuguanhead where Upper(qiyemingcheng) like Upper('%东方绿洲%')))) 按照宝典 可以加上到sql文里 ,但是 原来的 条件 and Upper(qiyemingcheng) like Upper('%东方绿洲%')同时存在,不去掉,自定义加的新条件不起作用, 现在不知道 怎么去掉原来的条件

 

 

以自定义"企业名称"为例来说明一下操作步骤:
1,新加一个无数据源 查询字段 "企业名称1",去掉用户喜好, 设置CondDefaultSign="Custom" ,设置行高为0
2,去掉View_yishiyiyijingji2View.xml 里的 WhereClause

3,在"企业名称" 字段里写个Triggers ,用SetValue() 给"企业名称1" 赋拼写好的SQL 语句

代码如下:

<BillMetaField Key="qiyemingcheng@ONE" Caption="企业名称1" DBLocation="Table2" FieldType="Varchar" CharLen="500" CondDefaultSign="Custom" UseUserCfg="False" ControlType="TEXTBOX">
				<BillMetaUITextBox InvalidChars="">
					<BillMetaUICommon left="2" top="8" width="1" height="1" PanelKey="main_container"/>
					<BillMetaUIFont/>
					<BillMetaUIInnerLabel left="1" top="8" width="1" height="1" valignment="CENTER" PanelKey="main_container">
						<BillMetaUIFont/>
					</BillMetaUIInnerLabel>
				</BillMetaUITextBox>
			</BillMetaField>
			<BillMetaField Key="qiyemingch" Caption="企业名称" DBLocation="None" FieldType="Varchar" CharLen="100" Triggers="if(value(qiyemingch)&lt;&gt;&quot;&quot;,setvalue(qiyemingcheng@ONE,{qiyemingcheng in (select distinct qiyemingcheng from scm_yishiyiyihuguanhead where billid in (select distinct billid from scm_yishiyiyihuguanhead where Upper(qiyemingcheng) like Upper('%}&amp;value(qiyemingch)&amp;{%')))}),setvalue(qiyemingcheng@ONE,&quot;&quot;))" CondDefaultSign="Custom" UseUserCfg="False" ControlType="TEXTBOX">
				<BillMetaUITextBox InvalidChars="">
					<BillMetaUICommon left="2" top="7" width="1" height="1"  PanelKey="main_container"/>
					<BillMetaUIFont/>
					<BillMetaUIInnerLabel left="1" top="7" width="1" height="1" valignment="CENTER" PanelKey="main_container">
						<BillMetaUIFont/>
					</BillMetaUIInnerLabel>
				</BillMetaUITextBox>
			</BillMetaField>
<BillMetaUIPanel Key="main_container" Width="0" Cols="6" Rows="28" ColWidth="20;100;130;20;40;130" RowHeight="5;25;5;25;5;25;5;30;0;25;5;25;5;25;5;25;5;25;5;25;5;25;5;25;20;25;5;25"/>