Hi All,
-
I need to lookup the form labels. I ve given “formname” edt, but it s displaying same form name twice.
-
I need to create a lookup consisting field names for the chosen form name.
Regards,
S.Kuppusamy
Hi All,
I need to lookup the form labels. I ve given “formname” edt, but it s displaying same form name twice.
I need to create a lookup consisting field names for the chosen form name.
Regards,
S.Kuppusamy
Hi kuppusamy
following code will help you (for point 2)
public void lookup()
{
SysTableLookup sysTableLookup;
Treenode formnaode= treenode::findNode(@‘\forms\Form64\data sources’);// Form64 must be your form name
DictTable dicttab;
sysDictField field;
Treenode datasource=formnaode.AOTfirstChild();
str nameofdatsource;
int i;
;
if(datasource)
{
nameofdatsource=datasource.AOTgetProperty(‘Table’);
sysTableLookup=sysTableLookup::newParameters(tableName2Id(nameofdatsource),this);
dicttab=new DictTable(tableName2Id(nameofdatsource));
for (i=1;i<=dicttab.fieldCnt();i++)
{
field=new sysDictField(dicttab.id(),dicttab.fieldCnt2id(i));
if(!field.isSystem())
{
sysTableLookup.addLookupfield(field.id());
}
}
}
sysTableLookup.performFormLookup();
}
regards
P.RAM
Hi Ram,
Thank you for your code. I did the same using syspicklist class. It works well
Thanks
S.Kuppusamy
Hi Kuppusamy,
Would you please post the code
Regards,
P.Ram
Hi ram,
What I did was, I inserted the datasources name in a table named “DisplayTableName”, based on the form selection I made. I ll fetch the data if It s available already in the table or else I ll insert it and pass the arguments and get lookup.
void lookup()
{
str _formNameStr;
TreeNode tn;
Args args;
TableName tableNam;
SysTableLookup sysTableLookup;
Query query = new Query(); QueryBuildDataSource qbds;
SysQueryform sysQueryform; ; _formNameStr = AGRUnitMapping.
FormName; tn = infolog.findNode(‘FORMS’).AOTfindChild(_formNameStr);
if(tn) tn = tn.AOTfindChild(“Data Sources”).AOTfirstChild();
while(tn)
{
tableNam = tn.AOTgetProperty(“Table”);
tableId = tablename2id(tableNam);
displayTableName = DisplayTableName::find(_formNameStr,tableNam);
if(!displayTableName)
{
displayTableName.FormName = _formNameStr;
displayTableName.TableName = tableNam;
displayTableName.insert();
}
tn = tn.AOTnextSibling();
}
sysTableLookup=SysTableLookup::newParameters(tablenum(DisplayTableName), this);
sysTableLookup.addLookupfield(fieldnum(DisplayTableName, TableName));
qbds = query.addDataSource(tablenum(DisplayTableName));
qbds.addRange(fieldnum(DisplayTableName,FormName)).value(AGRUnitMapping.FormName);
if(sysTableLookup)
{
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
}
The above code is to get the table name from Form.
the following code is to get fields from table name,
The fieldid is edit method written in table level and added it in form design
public void lookup()
{
FieldId fieldId;
Map map;
TableName table;
Args args;
FormRun formRun;
;
AGRUnitMapping.Table_Id = tablename2id(AGRUnitMapping.TableName);
fieldId = pickField(AGRUnitMapping.Table_Id);
if (fieldId)
{
AGRUnitMapping.FieldId = fieldId;
AGRUnitMapping.FieldName = Fieldid2Name(AGRUnitMapping.Table_Id,AGRUnitMapping.FieldId);
AGRUnitMapping_ds.refresh();
}
}
Regards,
S.Kuppusamy
Hi Kuppusamy,
Thanks for your reply.