Показать сообщение отдельно
Старый 31.03.2011, 19:50   #10  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Всё правильно, я также делаю - обычно для классов типа "Proposal", у которого задача заполнить таблицу дочерними запясими.

Давно уже писал, вроде работает.
Сделано так, потому что форма может быть открыта из разных форм, и допустим, если надо знать какой нибудь "параметр", то можно сделать поиск по возможным вариантам.
Например, "Invoice" может фильтроваться и от "Дебитора/Кредитора", и также от самой "заготовки" (Sales/PurchTable).
X++:
/*
    Finds specific cursor on DS dynalinks
*/
public static Common findDynalinkTable(tableId _tableId, Common _common)
{
    FormDatasource          ds = _common.dataSource();
    QueryBuildDatasource    qbds;
    QueryBuildDynalink      qbd;
    Common                  ret;
    int                     i;
    ;

    if (ds)
    {
        qbds = ds.query().dataSourceTable(_common.tableId);
        if (qbds)
        {
            if (qbds.dynalinkCount())
            {
                for (i=1; i <= qbds.dynalinkCount(); i++)
                {
                    qbd = qbds.dynalink(i);
                    if (qbd && qbd.cursor().TableId == _tableId)
                    {
                        ret = qbd.cursor();
                        break;
                    }
                }
            }
        }
    }

    return ret;
}

Последний раз редактировалось Delfins; 31.03.2011 в 19:55.