Axapta: Multi tables lookup

本文介绍如何在Axapta中使用SysMultiTableLookup类实现多表查询,以获取销售订单行创建时所需的不同表中的信息。通过覆盖SalesTableForm中的SalesLine_ItemId查找方法,演示了具体实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/Files/JackyXu1981/SysMultiTableLookup.rar   SysMultiTableLookup Class DownLoad

The SysMultiTableLookup.rar is a class to show multi table information.

When you want to create a sales line in SO, You can selet an item and see some information of item. Those information is from invent table.

But sometimes you want those information from multi tables, How to do?

SysMultiTableLookup class provide a solution to it.

It is from http://kashperuk.blogspot.com/

I had used it on creating a sales line.

Overwrite lookup method of SalesLine_ItemId on SalesTable Form

 

public void lookup()
{
    Query                   query          = new Query();
    QueryBuildDataSource    queryBuildDataSource,queryBuildDataSource2 ;
    QueryBuildRange         queryBuildRange;
    SysMultiTableLookup          sysTableLookup ;  //Not SysTableLookup class
    ;


    queryBuildDataSource = query.addDataSource(tableNum(InventTable));    //link a another table
    queryBuildDataSource2 = queryBuildDataSource.addDataSource(tablenum(InventTableModule));
    queryBuildDataSource2.joinMode(JoinMode::InnerJoin) ;
    queryBuildDataSource2.relations(true) ;

    sysTableLookup =SysMultiTableLookup::newParameters(this,query) ;

    sysTableLookup.addLookupField(fieldNum(InventTable, ItemId));
    sysTableLookup.addLookupField(fieldNum(InventTable, ItemName));
    sysTableLookup.addLookupField(fieldNum(InventTable, NameAlias));
    sysTableLookup.addLookupfield(fieldNum(InventTable, ItemGroupId));
    sysTableLookup.addLookupfield(fieldNum(InventTable, ItemType));
    sysTableLookup.addLookupfield(fieldNum(InventTable, HDSH_ItemOriginName));
    sysTableLookup.addLookupfield(fieldNum(InventTable, HDSH_PrevItemId));
    sysTableLookup.addLookupField(fieldNum(InventTableModule,UnitId),2) ;    // get a field from another table. 2 is second datasource

    queryBuildDataSource.addRange(fieldNum(InventTable, HDSH_Visible)).value("0");
    queryBuildDataSource2.addRange(fieldNum(InventTableModule, ModuleType)).value("0");

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}

 

First only need u import class: SysMultiTableLookup. 

posted on 2008-11-21 11:08 Jacky Xu 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/JackyXu1981/archive/2008/11/21/1338228.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值