Posts

Showing posts from November, 2025

Data cleanup in x++

   public void process() {     DictTable dictTable = new DictTable(tablenum(MyTable));       if (dictTable && dictTable.enabled())     {         str sqlTableName = dictTable.name(DbBackend::Sql);         SqlDataDictionary sqlTable = new SqlDataDictionary();           if (sqlTable.tableExist(sqlTableName))         {             ttsbegin;             new SqlDataDictionaryPermission(methodstr(SqlDataDictionary, tableTruncate)).assert();             sqlTable.tableTruncate(tablenum(MyTable), false);             CodeAccessPermission::revertAssert();             ttscommit;         }         Info("Data clean");     } }

Override LookUp Event handler with Adding range

 [FormControlEventHandler(formControlStr(CustTable, CustTable_GCNPABranch), FormControlEventType::Lookup)] public static void CustTable_GCNPABranch_OnLookup(FormControl sender, FormControlEventArgs e) {     SysTableLookup          sysTableLookup;     QueryBuildDataSource    queryBuildDataSource, qbds;     QueryBuildRange         queryBuildRange;     Query                   query;     sysTableLookup = sysTableLookup::newParameters(tableNum(InventLocation), sender);     sysTableLookup.addLookupfield(fieldNum(InventLocation, InventLocationId));     sysTableLookup.addLookupfield(fieldNum(InventLocation, Name));     sysTableLookup.addLookupfield(fieldNum(InventLocation, InventSiteId));     query = new Query();     queryBuildDataSource = query.addDataSource(tableNum(InventLocation)...