ਡਾਇਨਾਮਿਕਸ 365 ਵਿੱਚ ਐਕਸਟੈਂਸ਼ਨ ਰਾਹੀਂ ਡਿਸਪਲੇ ਜਾਂ ਐਡਿਟ ਵਿਧੀ ਸ਼ਾਮਲ ਕਰੋ
ਪ੍ਰਕਾਸ਼ਿਤ: 19 ਮਾਰਚ 2025 9:35:53 ਬਾ.ਦੁ. UTC
ਇਸ ਲੇਖ ਵਿੱਚ, ਮੈਂ ਸਮਝਾਉਂਦਾ ਹਾਂ ਕਿ ਡਾਇਨਾਮਿਕਸ 365 ਵਿੱਚ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਇੱਕ ਟੇਬਲ ਅਤੇ ਇੱਕ ਫਾਰਮ ਵਿੱਚ ਇੱਕ ਡਿਸਪਲੇ ਵਿਧੀ ਜੋੜਨ ਲਈ ਇੱਕ ਕਲਾਸ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, X++ ਕੋਡ ਉਦਾਹਰਣਾਂ ਸ਼ਾਮਲ ਹਨ।
Add Display or Edit Method via Extension in Dynamics 365
ਜਦੋਂ ਤੁਸੀਂ Dynamics ਵਿੱਚ ਡਿਸਪਲੇਅ ਜਾਂ ਐਡੀਟ ਮੈਥਡਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਯੋਜਨਾ ਬਣਾਉਂਦੇ ਹੋ, ਤਾਂ ਇਹ ਕੁਝ ਹੱਲੀ ਵਿਚਾਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕੀ ਤੁਸੀਂ ਆਪਣਾ ਹੱਲ ਕਿਸੇ ਹੋਰ ਤਰੀਕੇ ਨਾਲ ਡਿਜ਼ਾਈਨ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਕਦੇ ਕਦੇ ਇਹ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਹੁੰਦਾ ਹੈ।
Dynamics ਅਤੇ Axapta ਦੇ ਪਿਛਲੇ ਵਰਜਨਾਂ ਵਿੱਚ, ਟੇਬਲਾਂ ਅਤੇ ਫਾਰਮਾਂ 'ਤੇ ਡਿਸਪਲੇਅ ਜਾਂ ਐਡੀਟ ਮੈਥਡਸ ਬਣਾਉਣਾ ਬਹੁਤ ਅਸਾਨ ਸੀ, ਪਰ ਜਦੋਂ ਮੈਂ ਹਾਲ ਹੀ ਵਿੱਚ Dynamics 365 ਵਿੱਚ ਆਪਣਾ ਪਹਿਲਾ ਐਡੀਟ ਮੈਥਡ ਬਣਾਉਣਾ ਪਿਆ, ਤਾਂ ਮੈਨੂੰ ਪਤਾ ਲੱਗਾ ਕਿ ਇਹ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ ਕੁਝ ਵੱਖਰਾ ਹੈ।
ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਕਈ ਜਾਇਜ਼ ਤਰੀਕੇ ਹਨ, ਪਰ ਜਿਸ ਤਰੀਕੇ ਨੂੰ ਮੈਂ ਸਭ ਤੋਂ ਵਧੀਆ ਲੱਭਦਾ ਹਾਂ (ਦੋਹਾਂ ਇੰਟੂਇਟਿਵ ਅਤੇ ਕੋਡ ਦੀ ਸੁੰਦਰਤਾ ਦੇ ਹਿਸਾਬ ਨਾਲ) ਉਹ ਹੈ ਕਲਾਸ ਐਕਸਟੇੰਸ਼ਨ ਦਾ ਉਪਯੋਗ ਕਰਨਾ। ਹਾਂ, ਤੁਸੀਂ ਕਲਾਸ ਐਕਸਟੇੰਸ਼ਨਾਂ ਦਾ ਉਪਯੋਗ ਹੋਰ ਐਲਿਮੈਂਟ ਟਾਈਪਸ ਨੂੰ ਮੈਥਡਸ ਦੇਣ ਲਈ ਕਰ ਸਕਦੇ ਹੋ - ਇਸ ਮਾਮਲੇ ਵਿੱਚ ਇੱਕ ਟੇਬਲ, ਪਰ ਇਹ ਫਾਰਮਾਂ ਲਈ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ।
ਪਹਿਲਾਂ, ਇੱਕ ਨਵੀਂ ਕਲਾਸ ਬਣਾਓ। ਤੁਸੀਂ ਇਸਨੂੰ ਕੁਝ ਵੀ ਨਾਮ ਦੇ ਸਕਦੇ ਹੋ, ਪਰ ਕਿਸੇ ਕਰਣ ਕਰਕੇ ਇਹ ਜਰੂਰੀ ਹੈ ਕਿ ਇਸ ਦਾ ਆਖਰੀ ਹਿੱਸਾ "_Extension" ਹੋਵੇ। ਮਾਨ ਲਓ ਕਿ ਤੁਸੀਂ CustTable ਨੂੰ ਇੱਕ ਡਿਸਪਲੇਅ ਮੈਥਡ ਜੋੜਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਉਦਾਹਰਨ ਲਈ ਇਸਨੂੰ MyCustTable_Extension ਨਾਮ ਦੇ ਸਕਦੇ ਹੋ।
ਕਲਾਸ ਨੂੰ ExtensionOf ਨਾਲ ਸਜਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਕਿ ਸਿਸਟਮ ਨੂੰ ਪਤਾ ਲੱਗੇ ਕਿ ਤੁਸੀਂ ਕਿਸ ਚੀਜ਼ ਨੂੰ ਐਕਸਟੇੰਡ ਕਰ ਰਹੇ ਹੋ, ਇਸ ਤਰ੍ਹਾਂ:
public final class MyCustTable_Extension
{
}
ਹੁਣ ਤੁਸੀਂ ਇਸ ਕਲਾਸ ਵਿੱਚ ਆਪਣਾ ਡਿਸਪਲੇਅ ਮੈਥਡ ਸਿੱਧਾ ਅਮਲ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਪਿਛਲੇ ਵਰਜਨਾਂ ਵਿੱਚ ਸਿੱਧਾ ਟੇਬਲ 'ਤੇ ਕਰਦੇ ਸੀ - "ਇਹ" ਟੇਬਲ ਨੂੰ ਵੀ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਫੀਲਡਸ ਅਤੇ ਹੋਰ ਮੈਥਡਸ ਤੱਕ ਪਹੁੰਚ ਸਕੋ।
ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਕਲਾਸ ਜਿਸ ਵਿੱਚ ਸਿਰਫ਼ (ਅਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੇਕਾਰ) ਡਿਸਪਲੇਅ ਮੈਥਡ ਹੈ ਜੋ ਸਿਰਫ਼ ਗਾਹਕ ਦਾ ਖਾਤਾ ਨੰਬਰ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਦਿੱਸ ਸਕਦੀ ਹੈ:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
ਹੁਣ, ਫਾਰਮ ਵਿੱਚ ਡਿਸਪਲੇਅ ਮੈਥਡ ਜੋੜਣ ਲਈ (ਜਾਂ ਫਾਰਮ ਐਕਸਟੇੰਸ਼ਨ, ਜੇਕਰ ਤੁਸੀਂ ਸਿੱਧਾ ਫਾਰਮ ਨੂੰ ਸੰਪਾਦਿਤ ਨਹੀਂ ਕਰ ਸਕਦੇ), ਤੁਹਾਨੂੰ ਫਾਰਮ ਵਿੱਚ ਇੱਕ ਫੀਲਡ ਮੈਨੁਅਲੀ ਤੌਰ 'ਤੇ ਜੋੜਣਾ ਪਵੇਗਾ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੋਵੇਗਾ ਕਿ ਸਹੀ ਕਿਸਮ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ (ਉਦਾਹਰਨ ਵਿੱਚ ਸਤਰਿੰਗ)।
ਫਿਰ, ਕੰਟਰੋਲ 'ਤੇ ਤੁਸੀਂ DataSource ਨੂੰ CustTable (ਜਾਂ ਜਿਸ ਦਾ ਵੀ ਤੁਹਾਡਾ CustTable ਡੇਟਾ ਸੋਰਸ ਹੈ) ਤੇ DataMethod ਨੂੰ MyCustTable_Extension.displayAccountNum ਸੈਟ ਕਰੋ (ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਕਲਾਸ ਦਾ ਨਾਮ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਨਹੀਂ ਤਾਂ ਕੈਂਪਾਇਲਰ ਮੈਥਡ ਨੂੰ ਨਹੀਂ ਲੱਭ ਸਕਦਾ)।
ਅਤੇ ਤੁਸੀਂ ਮੁਕੰਮਲ ਹੋ ਗਏ :-)
ਅਪਡੇਟ: ਹੁਣ ਫਾਰਮ ਵਿੱਚ ਡਿਸਪਲੇਅ ਮੈਥਡ ਜੋੜਦੇ ਸਮੇਂ ਕਲਾਸ ਐਕਸਟੇੰਸ਼ਨ ਦਾ ਨਾਮ ਸ਼ਾਮਲ ਕਰਨਾ ਜਰੂਰੀ ਨਹੀਂ ਹੈ, ਪਰ ਮੂਲ ਪਬਲੀਸ਼ਿੰਗ ਸਮੇਂ ਇਹ ਜਰੂਰੀ ਸੀ। ਮੈਂ ਇਹ ਜਾਣਕਾਰੀ ਇੱਥੇ ਛੱਡ ਰਿਹਾ ਹਾਂ ਤਾਂ ਜੋ ਕੁਝ ਪਾਠਕ ਜੇਹੜੇ ਹਾਲੇ ਵੀ ਪੁਰਾਣੇ ਵਰਜਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹਨ, ਉਹ ਇਸ ਨੂੰ ਵਰਤ ਸਕਣ।