Monday, November 17, 2025

Sys operation UIBuilder Class

 UIBuilder classs: 

============= 

 

class Test_UiBuilder extends SysOperationAutomaticUIBuilder 

{ 

 

 DialogField  dialogfied,dialogfiedsales; 

 

Text_SysOperationDataContractClass DataContractClass; 

 

 

} 

public void build() 

{ 

     //DialogField dialogLocal = this.dataContractObject(); 

   // Dialog dialogLocal = this.dialog(); 

 

    DataContractClass= this.dataContractObject(); 

 

   // dialogLocal.addGroup('Customer Id'); 

 

 

    //.allowEdit(true); 

 

 

   this.addDialogField(methodStr(Text_SysOperationDataContractClass,parmcust),DataContractClass); 

    this.addDialogField(methodStr(Text_SysOperationDataContractClass,parmsales),DataContractClass).allowEdit(true); 

 

 

} 

Public void lookupPostJour(FormStringControl _formStringControl) 

 

    { 

 

 

    Query   query = new Query(); 

 

 

        QueryBuildDataSource    qbds; 

 

        QueryBuildRange         qbr; 

 

        SysTableLookup          lookup; 

 

 

        lookup = SysTableLookup::newParameters(tableNum(SalesTable), _formStringControl); 

        lookup.addLookupfield(fieldNum(SalesTable, SalesId)); 

 

        lookup.addLookupfield(fieldNum(SalesTable, CustAccount)); 

 

 

 

        qbds=query.addDataSource(tableNum(SalesTable)); 

 

        qbr=qbds.addRange(fieldNum(SalesTable, CustAccount)); 

 

        qbr.value(dialogfied.value()); 

        //SysQuery::value 

        lookup.parmQuery(query); 

 

 

        lookup.performFormLookup(); 

    } 

 Public void PostBuild() 

 

    { 

 

      // DialogField saleslookup; 

 

 

        dialogfied=this.bindInfo().getDialogField(this.dataContractObject(), 

 

                                            methodStr(Text_SysOperationDataContractClass,parmcust)); 

 

 

        dialogfiedsales = this.bindInfo().getDialogField(this.dataContractObject(), 

 

                                            methodStr(Text_SysOperationDataContractClass, parmsales)); 

//if write multiselect look up code no need to  write below write 

        dialogfiedsales.registerOverrideMethod(methodStr(FormStringControl, lookup), 

 

                                            methodStr(Test_UiBuilder, lookupPostJour), this); 

      // info(dialogfield.value()); 

    } 

 

 

Service Class: 

================= 

public class Text_SysOperationServiceClass extends SysOperationServiceBase 

{ 

} 

ublic void processOperation(Text_SysOperationDataContractClass _contract) 

{ 

   //info ("Running SysOperation Batch Operation"); 

 

    //CustAccount custAccount; 

    //SalesId salesid; 

 

 

info(" customer "+ _contract.parmcust()); 

info("salesnumber"+  _contract.parmsales()); 

 

 

} 

Data contract class: 

[DataContractAttribute, 

SysOperationAlwaysInitializeAttribute, 

SysOperationContractProcessingAttribute(classstr(Test_UiBuilder))] 

public class Text_SysOperationDataContractClass 

{ 

    CustAccount textValue1; 

   SalesId textValue; 

} 

 

[DataMemberAttribute, 

 

 SysOperationLabelAttribute('CustomerID Number'), 

 SysOperationHelpTextAttribute('select customer number'), 

 SysOperationDisplayOrderAttribute('1')] 

 

// we provide EDT only ex: CustAccount is EDT 

public CustAccount parmcust(CustAccount _textValue=textValue1) 

{ 

    textValue1 =_textValue; 

    return textValue1; 

} 

[DataMemberAttribute, 

 

 SysOperationLabelAttribute('SaleID number'), 

 SysOperationHelpTextAttribute('select SaleId number'), 

 SysOperationDisplayOrderAttribute('2')] 

// we provide EDT only ex: SalesId is EDT 

public SalesId parmsales(SalesId _textValue=textValue) 

{ 

    textValue = _textValue; 

    return textValue; 

} 

Control Class: 

============= 

public class Text_SysOperationControllerClass extends SysOperationServiceController 

{ 

} 

 

public ClassDescription caption() 

{ 

    return "Batch Operation Task Description"; 

} 

public void new() 

{ 

    super(); 

 

    this.parmClassName(classStr(Text_SysOperationServiceClass)); 

    this.parmMethodName(methodStr(Text_SysOperationServiceClass, processOperation)); 

 

    this.parmDialogCaption("Batch Operation Dialog Title"); 

} 

 

public static void main(Args args) 

{ 

    Text_SysOperationControllerClass controller; 

 

    controller = new Text_SysOperationControllerClass(); 

    controller.startOperation(); 

} 

 

 

 

 

Multiselect lookup code: 

 


 

public void postRun() 

{ 

             Query query; 

    QueryBuildDataSource qbds; 

    container selectedFields; 

    // super(); 

 

     query = new Query(); 

    qbds= query.adddatasource(tablenum(SalesTable)); 

 

    qbds.fields().addField(fieldNum(SalesTable,SalesId)); 

     selectedFields=[tableNum(SalesTable),fieldNum(SalesTable,SalesId)]; 

    msCtrl = SysLookupMultiSelectCtrl::constructWithQuery(this.dialog().dialogForm().formRun(), 

dialogfiedsales.control(),query,true,selectedFields);//dynamic Query 

} 

 

 

No comments:

Post a Comment