ਡਾਇਨਾਮਿਕਸ 365 ਵਿੱਚ ਇੱਕ ਵਿੱਤੀ ਮਾਪ ਲਈ ਇੱਕ ਲੁੱਕਅੱਪ ਫੀਲਡ ਬਣਾਉਣਾ
ਪ੍ਰਕਾਸ਼ਿਤ: 19 ਮਾਰਚ 2025 9:35:39 ਬਾ.ਦੁ. UTC
ਇਹ ਲੇਖ ਦੱਸਦਾ ਹੈ ਕਿ ਡਾਇਨਾਮਿਕਸ 365 ਫਾਰ ਓਪਰੇਸ਼ਨਜ਼ ਵਿੱਚ ਇੱਕ ਵਿੱਤੀ ਪਹਿਲੂ ਲਈ ਇੱਕ ਲੁੱਕਅੱਪ ਫੀਲਡ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ, ਜਿਸ ਵਿੱਚ ਇੱਕ X++ ਕੋਡ ਉਦਾਹਰਣ ਵੀ ਸ਼ਾਮਲ ਹੈ।
Creating a Lookup Field for a Financial Dimension in Dynamics 365
ਇਸ ਪੋਸਟ ਵਿੱਚ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਡਾਈਨਾਮਿਕਸ 365 ਫਰ ਓਪਰੇਸ਼ਨਜ਼ 'ਤੇ ਅਧਾਰਿਤ ਹੈ, ਪਰ ਇਸ ਵਿੱਚੋਂ ਜਿਆਦਾਤਰ ਡਾਈਨਾਮਿਕਸ AX 2012 ਲਈ ਵੀ ਕੰਮ ਕਰੇਗੀ (ਹੇਠਾਂ ਦੇਖੋ)।
ਮੈਨੂੰ ਹਾਲ ਹੀ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਫੀਲਡ ਬਣਾਉਣ ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਸੌਂਪੀ ਗਈ ਸੀ ਜਿਸ ਵਿੱਚ ਇੱਕ ਇਕੱਲੀ ਵਿੱਤੀ ਮਾਪਦੰਡ ਦਰਜ ਕੀਤਾ ਜਾ ਸਕੇ, ਇਸ ਕੇਸ ਵਿੱਚ ਉਤਪਾਦ। ਕਦੇ ਵੀ, ਨਵੀਂ ਫੀਲਡ ਨੂੰ ਇਸ ਮਾਪਦੰਡ ਦੇ ਸਹੀ ਮੁੱਲ ਨੂੰ ਲੁੱਕਅਪ ਕਰਨ ਦੀ ਯੋਗਤਾ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਇਹ ਇੱਕ ਸਧਾਰਣ ਟੇਬਲ ਵਿੱਚ ਲੁੱਕਅਪ ਨਾਲੋਂ ਥੋੜ੍ਹਾ ਜਿਆਦਾ ਜਟਿਲ ਹੈ, ਪਰ ਜੇ ਤੁਸੀਂ ਜਾਣਦੇ ਹੋ ਕਿ ਕਿਵੇਂ ਕਰਨਾ ਹੈ, ਤਾਂ ਇਹ ਦਰਅਸਲ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮੁਸ਼ਕਲ ਨਹੀਂ ਹੈ।
ਖੁਸ਼ਕਿਸਮਤੀ ਨਾਲ, ਮਿਆਰੀ ਐਪਲੀਕੇਸ਼ਨ ਇੱਕ ਸੁਵਿਧਾਜਨਕ ਲੁੱਕਅਪ ਫਾਰਮ (DimensionLookup) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਇਸ ਉਦੇਸ਼ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਕੇਵਲ ਇਹ ਦੱਸ ਦਿਓ ਕਿ ਕਿਹੜਾ ਮਾਪਦੰਡ ਗੁਣਵੱਤਾ ਦੇਣੀ ਹੈ।
ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਫਾਰਮ ਫੀਲਡ ਖੁਦ ਬਣਾਉਣੀ ਹੈ। ਇਹ ਟੇਬਲ ਫੀਲਡ ਜਾਂ ਇੱਕ ਐਡਿਟ ਮੈਥਡ 'ਤੇ ਆਧਾਰਿਤ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਲੁੱਕਅਪ ਲਈ ਇਹ ਮਾਮਲਾ ਨਹੀਂ ਹੈ, ਪਰ ਕਿਸੇ ਨਾ ਕਿਸੇ ਤਰੀਕੇ ਨਾਲ ਇਹਨੂੰ DimensionValue ਵਿਸਥਾਰਿਤ ਡਾਟਾ ਟਾਈਪ ਵਰਤਣਾ ਪਵੇਗਾ।
ਫਿਰ ਤੁਹਾਨੂੰ ਫੀਲਡ ਲਈ ਇੱਕ OnLookup ਇਵੈਂਟ ਹੈਂਡਲਰ ਬਣਾਉਣੀ ਹੈ। ਇਵੈਂਟ ਹੈਂਡਲਰ ਬਣਾਉਣ ਲਈ, ਫੀਲਡ ਲਈ OnLookup ਇਵੈਂਟ 'ਤੇ ਰਾਈਟ-ਕਲਿਕ ਕਰੋ, ਫਿਰ "Copy event handler method" ਚੁਣੋ। ਤੁਸੀਂ ਫਿਰ ਇੱਕ ਖਾਲੀ ਇਵੈਂਟ ਹੈਂਡਲਰ ਮੈਥਡ ਨੂੰ ਇੱਕ ਕਲਾਸ ਵਿੱਚ ਪੇਸਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਉਥੇ ਤੋਂ ਇਸਨੂੰ ਸੋਧ ਸਕਦੇ ਹੋ।
ਨੋਟ: ਇਸਦਾ ਜਿਆਦਾਤਰ ਹਿੱਸਾ ਡਾਈਨਾਮਿਕਸ AX 2012 ਲਈ ਵੀ ਕੰਮ ਕਰੇਗਾ, ਪਰ ਇਵੈਂਟ ਹੈਂਡਲਰ ਬਣਾਉਣ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਫਾਰਮ ਫੀਲਡ ਦੇ ਲੁੱਕਅਪ ਮੈਥਡ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰ ਸਕਦੇ ਹੋ।
ਇਵੈਂਟ ਹੈਂਡਲਰ ਕੁਝ ਇਸ ਤਰ੍ਹਾਂ ਦਾ ਦਿਖਾਈ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ (ਫਾਰਮ ਦਾ ਨਾਮ ਅਤੇ ਫੀਲਡ ਦਾ ਨਾਮ ਜ਼ਰੂਰੀ ਅਨੁਸਾਰ ਬਦਲੋ):
FormControlEventHandler(formControlStr( MyForm,
MyProductDimField),
FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup( FormControl _sender,
FormControlEventArgs _e)
{
FormStringControl control;
Args args;
FormRun formRun;
DimensionAttribute dimAttribute;
;
dimAttribute = DimensionAttribute::findByName('Product');
args = new Args();
args.record(dimAttribute);
args.caller(_sender);
args.name(formStr(DimensionLookup));
formRun = classFactory.formRunClass(args);formRun.init();
control = _sender as FormStringControl;
control.performFormLookup(formRun);
}