Фильтр в showRecord кнопка "..."

This commit is contained in:
2023-08-24 14:52:58 +06:00
parent f5fb0d08ad
commit bba5650103
3 changed files with 381 additions and 13 deletions

View File

@ -413,28 +413,35 @@ class SRec
}
//we pass the id to the object filter column_n - the name of the filter
setFilterObject(TypeName, column_n, id, filter)
setFilterObject(TypeName, column_n, id, nodeFilter)
{
let node=findFirstNodeOnAttribute(this.nodeMetadata,'column','n',column_n);
if(node!==null)
{
let name=node.getAttribute("FieldCaption");
getCdata(node).nodeValue=id;
//we request data from the server to fill in the comments on the record id
let prop=document.getElementById('filter_'+this.uid+'_'+column_n);
if(prop!==null) prop.value = id;
//Request a comment on the record id from the server
let xml = '';
if(filter!=''){
if(nodeFilter!=null){
//Настройка для последующего вызова
xml='<column n="'+column_n+'"><type n="' + TypeName + '"><objects-list>'+filter+'</objects-list></type></column>';
xml='<column n="'+column_n+'"><type n="' + TypeName + '"><objects-list>'+getXMLNodeSerialisation(nodeFilter)+'</objects-list></type></column>';
applyNodeToNode(CreateXMLDOC(xml).documentElement, node, "n");
//Настройка для фильтрации списка
xml = '<?xml version="1.0" encoding="utf-8"?>' +
'<metadata fn="6"><type n="' + TypeName + '" c="' + name + '" pn="' + column_n + '" fn="' + name + '">' +
'<objects-list>' + filter + '</objects-list>' +
'</type></metadata>';
if(node.getAttribute("selector")=="combo") {
xml = '<?xml version="1.0" encoding="utf-8"?>' +
'<metadata fn="6"><type n="' + TypeName + '" c="' + name + '" pn="' + column_n + '" fn="' + name + '">' +
'<objects-list>' + getXMLNodeSerialisation(nodeFilter) + '</objects-list>' +
'</type></metadata>';
}else{
xml = '<?xml version="1.0" encoding="utf-8"?>' +
'<metadata fn="6"><type n="' + TypeName + '" c="' + name + '" pn="' + column_n + '" fn="' + name + '">' +
'<objects-list><filter><column n="id"><![CDATA[' + id + ']]></column></filter></objects-list>' +
'</type></metadata>';
}
}else{
xml = '<?xml version="1.0" encoding="utf-8"?>' +
'<metadata fn="6"><type n="' + TypeName + '" c="' + name + '" pn="' + column_n + '" fn="' + name + '">' +
@ -1631,14 +1638,10 @@ class SRec
let filter="";
let nodeType=findFirstNode(this.nodeMetadata, "type");
let nodeFilter=findNodeOnPath(nodeType,"objects-list/filter");
if (nodeFilter!=null)
{
filter=getXMLNodeSerialisation(nodeFilter)
}
//Send the id of the selected record to the parent of the selected record and close the window
//alert2(trt('Alert'),"id="+id+" f_PropName="+this.f_PropName+" f_TypeName="+this.f_TypeName);
this.opener.setFilterObject(this.f_TypeName, this.f_PropName, id, filter);
this.opener.setFilterObject(this.f_TypeName, this.f_PropName, id, nodeFilter);
this.win.Close();
}else{
let erec = new EdtRec("");
@ -1652,6 +1655,7 @@ class SRec
}else
if(this.f_State=="2") //Multiple choice (on the records of ticking TODO is not implemented)
{
alert2(trt('Alert'), 'TODO');
}
}