Aşağıdaki kodlar ile çağıran nesnenin formun işlevlerini yöntemlerini, kayıt tabo datasource vs bilgilerini çağırmak kullanmak için kullanılır
void workWithCallingRecord()
{
common common;
object object;
formDataSource formDataSource;
formRun formRun;
inventDim inventDim;
salesTable salesTable;
int i;
;
// Call method from calling record
if( element.args() &&
element.args().record() )
{
common = element.args().record();
if(common.isFormDataSource())
{
info(tableId2Name(common.TableId));
if(formDataSourceHasMethod(common.dataSource(), identifierStr("someMethod")))
{
object = common.dataSource();
object.someMethod();
}
}
}
// Call method from calling form
if(element.args() && element.args().caller() && element.args().caller().handle() == className2Id('formRun'))
{
formRun = element.args().caller();
if(sysFormRun::hasMethod(formRun, identifierStr("someFormMethod")))
{
object = formRun;
object.someFormMethod();
}
}
// Get value from calling record
if( element.args() &&
element.args().record() )
{
common = element.args().record();
if(common.TableId == tableNum(salesTable))
{
info(common.(fieldNum(salesTable, salesId)));
}
}
// Get value from calling datasource (form with multiple datasources)
if(element.args() && element.args().caller() && element.args().caller().handle() == className2Id('formRun'))
{
formRun = element.args().caller();
for (i = 0; i <= formRun.dataSourceCount(); i++)
{
formDataSource = formRun.datasource(i);
if (formDataSource && formDataSource.table() == tablenum(inventDim)) // Search for specific table
{
inventDim = formDataSource.cursor();
break;
}
}
if(inventDim)
{
info(inventDim.InventLocationId);
}
}
// Change data in calling datasource
if(element.args() && element.args().caller() && element.args().caller().handle() == className2Id('formRun'))
{
formRun = element.args().caller();
for (i = 0; i <= formRun.dataSourceCount(); i++)
{
formDataSource = formRun.datasource(i);
if (formDataSource && formDataSource.table() == tablenum(salesTable)) // Search for specific table
{
salesTable = formDataSource.cursor();
break;
}
}
if(salesTable)
{
// Update data
salesTable.PurchOrderFormNum = "Some value";
salesTable.update();
}
}
// Refresh calling datasource
if( element.args() &&
element.args().record() )
{
common = element.args().record();
if(common.isFormDataSource())
{
formDataSource = common.dataSource();
formDataSource.research(true);
}
}
}---
FormRun formRun;
FormObjectSet formObjSet;int i;
InventTable inventTable;// refresh and reread inventTable datasource if exists in form
formRun = this.dataSource().formRun();
for (i=1; i<= formRun.dataSourceCount(); i++)
{
if (formRun.dataSource(i).cursor() is InventTable)
{
formObjSet = formRun.dataSource(i);
inventTable = formObjSet.cursor() as InventTable;
break;
}
}****
PurchTable purchTable; PurchTable argPurchTable; select firstOnly purchTable; args.record(purchTable); if (args.record() && args.dataset() == tableNum(PurchTable)) { argPurchTable = args.record(); //do something }
yenileme
1.yol: #Task FormRun formRun; // Get an instance of the calling form. formRun = element.args().caller(); // If the caller is a form, refresh that form. if(formRun) { formRun.task(#taskF5); } 2.yol: FormRun callerForm; ; // Get an instance of the calling form callerForm = element.args().caller(); callerForm.dataSource().refresh(); callerForm.dataSource().reread(); callerForm.dataSource().research(); 3.yol: FormDataSource callerDataSource; ; callerDataSource = element.args().record().dataSource(); callerDataSource.research(true);4.yol:FormDataSource fds;
_CallerTable = element.args().record();
if (_CallerTable .isFormDataSource())
{
fds = _CallerTable.dataSource();
if (fds)
{
fds.executeQuery();
}
}