2009-08-24 18 views
7

Tôi có biểu mẫu với lưới VendTable chẳng hạn, có trường CustAccount.Dynamics ax 4.0, biểu mẫu mở mà không áp dụng bộ lọc trên bản ghi hiện tại

Tôi muốn đặt nút, nhấp vào nút này sẽ mở biểu mẫu CustTable nơi tất cả khách hàng có thể nhìn thấy.

Nếu tôi chỉ đặt CustTable menuitem, sau đó nhấp vào nó sẽ mở biểu mẫu CustTable, nhưng trong biểu mẫu này chỉ có một bản ghi được hiển thị - một trong đó có cùng AccountNum như trong vendTable.CustAccount.

Làm cách nào để mở toàn bộ bảng lưu giữ? Có giải pháp tốt hơn nút tạo, và sau đó sử dụng ClassFactory :: FormRunOnClient để hiển thị biểu mẫu?

PS. Tôi cần nút, vì vậy RMB -> "Go to the Main Table Form" không tính.

Trả lời

6

Vấn đề là bản ghi VendTable được áp dụng làm đối số cho biểu mẫu CustTable, sau đó tạo một dynalink. Giải pháp là tránh tranh cãi.

Override phương pháp clicked trong mục menu CustTable hiển thị như thế này:

void clicked() 
{ 
    this.menufunction().run(new Args(element)); 
} 

này gọi là hình thức CustTable với chỉ và không có đối số kỷ lục đối tượng gọi.

0

Bạn có 2 tùy chọn, bạn có thể tạo nút và ghi đè phương thức đã nhấp() hoặc sử dụng MenuItemButton và gán một MenuItem hành động cho nó.

Sử dụng MenuItems là phương pháp hay nhất, vì nó cho phép bạn sử dụng khung bảo mật AX & cấu hình. Bạn có thể kết hợp một lớp với MenuItem và trong phương thức main() của lớp, bạn có thể chạy các công cụ FormRunOnClient() khi cần thiết.

3

Tôi biết đây là câu hỏi khá cũ nhưng nếu ai đó đến đây tìm kiếm câu trả lời, chỉ cần gọi phương thức clearDynalinks() trên đối tượng QueryBuildDataSource.

Ví dụ, bạn đã tạo ra một mẫu và nó sẽ tự động lọc Datasource của bạn vì Dynalinks rằng Dynamics tạo ra tự động, bạn giải quyết nó bằng cách đặt đoạn mã sau bên trong phương pháp init(), vào mẫu Datasource của bạn:

QueryBuildDatasource qbds; 
; 


qbds = this.query().dataSourceTable(tablenum(MyTableName)); 
qbds.clearDynalinks(); 

// Next line is optional, it clears initial ranges 
qbds.clearRanges(); 

// if you need to add any ranges you can do it right after you clear the initial dynalinks/ranges 

Hy vọng điều này sẽ giúp ...

Các vấn đề liên quan