2012-03-07 30 views
7

Có điều gì tương tự với phương pháp toString() nổi tiếng của C# trong Axapta không?Biến .toString() trong X ++ hoặc Dynamics AX là gì?

Tôi cố gắng chạy mã cơ bản:

info(this.dataSource()); 

Nhưng nó mang lại cho tôi thông báo lỗi này: "Đối số 'txt' không tương thích với các loại yêu cầu."

+0

'info' dự kiến ​​giá trị chuỗi. Không có chuyển đổi tự động. –

Trả lời

9

Các toString có sẵn trên tất cả các đối tượng nhưng thường không giá trị nhiều:

info(this.dataSource().toString()) 

này mang lại cho sản lượng này:

Class FormDataSource Address 

Có lẽ bạn biết rằng rồi! Tuy nhiên các nguồn dữ liệu truy vấn không đưa ra một cái gì đó hữu ích:

FormDataSource fds = this.dataSource(); 
; 
info(fds.query().dataSourceTable(tableNum(Address)).toString()); 

cung cấp cho các truy vấn SQL tương ứng:

SELECT FIRSTFAST * FROM Address 
+1

.toString() cũng hữu ích đối với các lớp thu thập AX, chẳng hạn như kiểu Array. Array.toString() thường sẽ xuất ra các nội dung có thể đọc được. Nếu bạn có một loạt các lớp học hoặc một cái gì đó kỳ lạ, có lẽ không. –

+1

Tôi luôn cố gắng tránh sử dụng datSourceNo() trong mã sản xuất vì dataSourceNo có thể thay đổi. Nếu bạn sửa đổi biểu mẫu hoặc báo cáo và thêm hoặc xóa (hoặc thậm chí thay đổi thứ tự) dataSources, điều này sẽ phá vỡ mã của bạn. Tôi đã thấy điều này xảy ra trong mã cơ sở của Microsoft khi nâng cấp từ 4.0 đến 2009, họ đã thay đổi thứ tự của một số nguồn dữ liệu và nó đã phá vỡ các tra cứu đang sử dụng DataSourceNo. Tôi luôn luôn cố gắng sử dụng dataSource(). Name(), bởi vì đó là ít có khả năng thay đổi. –

0

Không may là không, nhưng có một số phương pháp "... 2Str()" để chuyển đổi các kiểu dữ liệu cơ sở thành chuỗi, ví dụ;

int2Str() http://technet.microsoft.com/en-us/library/aa851371(v=ax.50).aspx

int642str() http://technet.microsoft.com/en-us/library/aa851371(v=ax.50).aspx

date2str() http://msdn.microsoft.com/en-us/library/aa857241(v=ax.10).aspx

Ngoài ra những người khác.

+0

Đọc lại Tôi đã cập nhật câu hỏi – SamekaTV

+0

@IllDevelopIt Tôi sẽ cập nhật câu trả lời - bạn có đang cố gắng lấy mô tả nguồn dữ liệu hoặc nội dung vào chuỗi không?!! – AnthonyBlake

2

Nếu bạn chỉ tìm kiếm tên của nguồn dữ liệu bạn có thể làm như sau:

info(this.dataSource().name()); 
0

Tôi chỉ muốn thêm rằng tôi thường sử dụng strFmt.

Counter c = 25; 
int id = 3; 
; 
info(strfmt("Record number %1, id = %2", c, a)); //Record number 25, id = 3 

Nó tương tự như String.Format() trong C#. Bạn có thể xem thêm chi tiết here.

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