Creiamo una nuova tabella chiamandola CustTableTmp, impostaimo la proprietà TableType = InMemory e creiamo 4 campi per contenere le informazioni. Creiamo ora un semplice form con un campo testo su cui andremo a fare l'override del metodo lookup. Creiamo un metodo a livello di form per popolare la tabella:
public CustTableTmp fillTmpTable()
{
CustTable custTable;
CustTableTmp CustTableTmp;
int i = 1;
while select custTable
{
if(i > 10)
{
break;
}
CustTableTmp.clear();
CustTableTmp.Counter = i;
CustTableTmp.CustAccount = custTable.AccountNum;
CustTableTmp.CustName = custTable.name();
CustTableTmp.LogisticsAddressing = custTable.address();
i++;
CustTableTmp.insert();
}
return CustTableTmp;
}
a questo punto sul controllo implementiamo il metodo lookup:
public void lookup()
{
CustTableTmp CustTableTmp;
SysTableLookup sysTableLookup;
CustTableTmp = element.fillTmpTable();
sysTableLookup = SysTableLookup::newParameters(tableNum(CustTableTmp),this,false);
sysTableLookup.addLookupField(fieldNum(CustTableTmp, Counter),False);
sysTableLookup.addLookupField(fieldNum(CustTableTmp, CustAccount),True);
sysTableLookup.addLookupField(fieldNum(CustTableTmp, CustName),false);
sysTableLookup.addLookupField(fieldNum(CustTableTmp, LogisticsAddressing),False);
sysTableLookup.parmTmpBuffer(CustTableTmp);
sysTableLookup.performFormLookup();
}
Aprendo il form vediamo il risultato:
Nessun commento:
Posta un commento