109 cfs subparams
This commit is contained in:
@@ -55,7 +55,8 @@
|
||||
<cfset var maxrows=arguments.pageSize*arguments.page/>
|
||||
<cfset var startrow=arguments.pageSize*(arguments.page-1)+1/>
|
||||
|
||||
<cfquery name="local.qRead" result="local.result">
|
||||
<!--- *** обширное дублирование с instance_operation_cfs_param.cfc --->
|
||||
<cfquery name="local.qCfsParam" result="local.result">
|
||||
select
|
||||
<m:field_set titleMapOut="local.titleMap" lengthOut="fieldCount">
|
||||
<m:field title="instance_operation_cfs_param_uid">iop.instance_operation_cfs_param_uid::text as instance_operation_cfs_param_uid</m:field>
|
||||
@@ -70,6 +71,12 @@
|
||||
<m:field>sop.svc_operation_cfs_param</m:field>
|
||||
<m:field>sop.sort</m:field>
|
||||
<m:field formatter=#request.castToBool#>sop.is_sensitive</m:field>
|
||||
<m:field>sop.data_type</m:field>
|
||||
<m:field formatter=#function(x){return listToArray(x);}#>sop.value_list</m:field>
|
||||
<m:field>sop.default_value</m:field>
|
||||
<m:field>sop.func</m:field>
|
||||
<m:field>null as data_descriptor</m:field>
|
||||
<m:field>e.service_id</m:field>
|
||||
</m:field_set>
|
||||
from instance_operation_cfs_param iop
|
||||
join instance_operation io on (iop.instance_operation_uid=io.instance_operation_uid)
|
||||
@@ -89,18 +96,40 @@
|
||||
from instance_operation_cfs_param iop
|
||||
where iop.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceOperationUid#" null=#!isValid('guid',arguments.instanceOperationUid)#/>
|
||||
</cfquery>
|
||||
|
||||
<cfloop query="local.qCfsParam">
|
||||
<cfif len(func)><!--- приоритет отдается функции перед списком значений--->
|
||||
<!--- *** отличается от аналогичных вызовов --->
|
||||
<cfset var args = {
|
||||
"functionName":"#func#",
|
||||
"svcId":#local.qCfsParam.service_id#,
|
||||
"contractId":#arguments.contractId#
|
||||
}/> <!--- если появятся новые аргументы у новых функций, будем добавлять их сюда --->
|
||||
<!--- <cfset local.qCfsParam.value_list=generateValueList(argumentCollection=#args#)/> --->
|
||||
<cfinvoke component="instance_operation_cfs_param" method="generateValueList" argumentCollection=#args# returnVariable="local.qCfsParam.value_list"/><!--- *** тут засада с форматом списка: массив или лист --->
|
||||
<!--- можно перечислить именованные аргументы обычным порядком, но с коллекцией потенциально более гибко --->
|
||||
<cfif len(trim(local.qCfsParam.value_list)) AND listLen(local.qCfsParam.value_list) EQ 1>
|
||||
<cfset local.qCfsParam.default_value=local.qCfsParam.value_list/>
|
||||
</cfif>
|
||||
</cfif>
|
||||
|
||||
<cfif data_type EQ "map">
|
||||
<cfinvoke component="instance_operation_cfs_param" method="processMap" qParam=#local.qCfsParam#/>
|
||||
</cfif>
|
||||
</cfloop>
|
||||
|
||||
|
||||
<cfset "out.queryDurationMs"=getTickCount() - request.startTickCount/>
|
||||
<cfset "out.total"=#local.qTotal.cnt#/>
|
||||
<cfset "out.resultSetSize"=#local.qRead.recordCount#/>
|
||||
<cfset "out.resultSetSize"=#local.qCfsParam.recordCount#/>
|
||||
<cfset "out.pageSize"=#arguments.pageSize*1#/>
|
||||
<cfset "out.page"=#arguments.page*1#/>
|
||||
<cfset "out.orderBy"=#arguments.orderBy#/>
|
||||
|
||||
<cfset var resultCollection=[]/>
|
||||
<cfloop query=#local.qRead# startRow=#startrow# endRow=#(startrow+maxrows-1)#>
|
||||
<cfloop query=#local.qCfsParam# startRow=#startrow# endRow=#(startrow+maxrows-1)#>
|
||||
<cfset var rec={}/>
|
||||
<cfset this.helper.appendRecord(rec, "", local.titleMap, local.qRead, this.helper.snake2camel)/>
|
||||
<cfset this.helper.appendRecord(rec, "", local.titleMap, local.qCfsParam, this.helper.snake2camel)/>
|
||||
<cfset arrayAppend(resultCollection, rec)/>
|
||||
</cfloop>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user