{"id":74614,"date":"2024-08-24T19:15:51","date_gmt":"2024-08-24T15:45:51","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/"},"modified":"2024-08-24T19:15:51","modified_gmt":"2024-08-24T15:45:51","slug":"how-to-build-pcf-dataset-control-using-react-4e6m","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 REACT"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0627\u062f\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc PCF \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Dynamics CRM \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<p>\u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u062a\u0631\u06cc \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc PCF \u062f\u0631 Dynamics CRM \u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u0627 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062a\u0627 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0634\u0645\u0627 \u067e\u0648\u0634\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.<\/p>\n<p>  \u0686\u06cc \u0645\u06cc\u0633\u0627\u0632\u06cc\u061f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u06a9\u0646\u062a\u0631\u0644\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0633\u0627\u062e\u062a \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u0648\u0646 CRM \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0648\u0634\u06cc \u0628\u0635\u0631\u06cc\u200c\u062a\u0631 \u0648 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u062f\u0647\u06cc\u200c\u0634\u062f\u0647\u200c\u062a\u0631 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f:<\/p>\n<p>\u062f\u0631 \u0628\u0631\u06af\u0647 Timeline\u060c \u0633\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u062d\u0633\u0627\u0628 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u062a\u0628 Notes\u060c \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0631\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0645\u0646\u0648\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0641\u0627\u06cc\u0644 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0641\u0627\u06cc\u0644\u060c \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u062f\u0631 \u0645\u0646\u0648\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0631\u06af\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647\u200c\u0627\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0645\u0637\u0627\u0628\u0642 \u0634\u06a9\u0644 \u0628\u0627\u0644\u0627 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0648 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u062f \u0645\u0627 \u06cc\u06a9 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0646\u06cc\u0632 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0633\u0627\u062e\u062a\u0646 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc PCF \u0628\u0627 React\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f:<\/p>\n<p>Node.js: \u0646\u0633\u062e\u0647 LTS \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f<br \/>\n\u06a9\u062f \u0648\u06cc\u0698\u0648\u0627\u0644 \u0627\u0633\u062a\u0648\u062f\u06cc\u0648 (VS Code): \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u0647 \u0628\u0647\u062a\u0631 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631\u06cc \u0645\u0627\u0646\u0646\u062f Visual Studio Code \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\nMicrosoft Power Platform CLI: \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Power Platform CLI \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc Power Platform \u0628\u0631\u0627\u06cc VS Code \u06cc\u0627 Power Platform CLI \u0628\u0631\u0627\u06cc \u0648\u06cc\u0646\u062f\u0648\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u060c \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u06a9\u062f \u0648\u06cc\u0698\u0648\u0627\u0644 \u0627\u0633\u062a\u0648\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0647 \u067e\u0648\u0634\u0647 \u0627\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0628\u0631\u0648\u06cc\u062f.<br \/>\n\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062c\u062f\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>pac pcf init &#8211;namespace SampleNamespace &#8211;name ReactDatasetControl &#8211;template dataset &#8211;framework react &#8211;run-npm-install<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>&#8211;namespace  \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0634\u0645\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n&#8211;name  \u0646\u0627\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0634\u0645\u0627 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n&#8211;template  \u0646\u0648\u0639 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f (\u0645\u062b\u0644\u0627\u064b \u0641\u06cc\u0644\u062f \u06cc\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647)<br \/>\n&#8211;framework  (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc) \u0686\u0627\u0631\u0686\u0648\u0628 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n&#8211;run-npm-install  \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06af\u0631\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f \u0628\u0627\u0644\u0627 pac pcf init \u0641\u0631\u0645\u0627\u0646 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 PCF \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0628\u0627 \u062a\u0645\u0627\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 PowerApps \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0627 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 XLSX \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632<\/p>\n<p>npm install xlsx<br \/>\nnpm install &#8211;save-dev ajv<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u062f\u0647 \u0627\u06cc\u062f\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u0631\u0648\u0631\u06cc \u0628\u0631 PCF Dataset Control \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645!<\/p>\n<p>  \u0628\u0631\u0631\u0633\u06cc \u06a9\u062f \u0634\u0631\u0648\u0639<\/p>\n<p>\u062f\u0631 \u06a9\u0627\u0648\u0634\u06af\u0631 \u0633\u0647 \u0628\u062e\u0634 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<p>node_modules \u0634\u0627\u0645\u0644 \u062a\u0645\u0627\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u06af\u0631\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a.<br \/>\nReactDatasetControl \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062d\u0627\u0648\u06cc \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a.<br \/>\neslintrc.json  \u060cpackage.json \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<p>ControlManifest.Input.xml<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0627\u0645 \u06a9\u0646\u062a\u0631\u0644\u060c \u0646\u0633\u062e\u0647\u060c \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0648 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f.<\/p>\n<p>index.ts<\/p>\n<p>\u0627\u06cc\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0628\u0631\u0627\u06cc \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0641\u062a\u0627\u0631 \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0631\u0648\u0634 \u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u0632\u0646\u062f\u06af\u06cc:<\/p>\n<p>init: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u062a\u0631\u0644\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u06a9\u0646\u062a\u0631\u0644\u200c\u06a9\u0646\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u060c \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<br \/>\nupdateView: \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u06cc\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0645\u062c\u062f\u062f \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0622\u062e\u0631\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<br \/>\ngetOutputs: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0645\u0642\u062f\u0627\u0631 \u0641\u0639\u0644\u06cc \u062e\u0631\u0648\u062c\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0633\u0637 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f \u06cc\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f.<br \/>\ndestroy: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0627\u0632 DOM \u062d\u0630\u0641 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639\u060c \u0645\u0627\u0646\u0646\u062f \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0646\u0634\u062a \u062d\u0627\u0641\u0638\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627\u060c updateView \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0635\u0641\u062d\u0647 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0631\u0646\u062f\u0631 \u0645\u06cc \u06a9\u0646\u062f HelloWorld \u062c\u0632\u0621 \u0627\u0632 HelloWorld.tsx \u0641\u0627\u06cc\u0644<\/p>\n<p>  \u0633\u0627\u062e\u062a \u062c\u0632\u0621<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 App.tsx \u062f\u0631 \u062f\u0627\u062e\u0644 \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 ReactDatasetControl \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u06a9\u0646\u062a\u0631\u0644 PCF \u0645\u0627 \u0631\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\/* App.tsx *\/<\/p>\n<p>import * as React from &#8216;react&#8217;;<br \/>\nimport { IInputs } from &#8220;.\/generated\/ManifestTypes&#8221;;<br \/>\nimport { DetailsList } from &#8216;@fluentui\/react&#8217;;<\/p>\n<p>export function PCFControl({sampleDataSet} : IInputs) {<\/p>\n<p>    const records = [<br \/>\n        {<br \/>\n            &#8220;First Name&#8221;: &#8220;Saturo&#8221;,<br \/>\n            &#8220;Last Name&#8221;: &#8220;Gojo&#8221;,<br \/>\n            &#8220;Domain&#8221;: &#8220;Infinity Void&#8221;<br \/>\n        },<br \/>\n        {<br \/>\n            &#8220;First Name&#8221;: &#8220;Sukuna&#8221;,<br \/>\n            &#8220;Last Name&#8221;: &#8220;Ryomen&#8221;,<br \/>\n            &#8220;Domain&#8221;: &#8220;Malevolent Shrine&#8221;<br \/>\n        }<br \/>\n    ];<\/p>\n<p>    return DetailsList items={records}\/&gt;<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062e\u0637\u0648\u0637 1-3 \u062a\u0645\u0627\u0645 \u0648\u0627\u0631\u062f\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc \u0622\u0648\u0631\u062f.<br \/>\n\u062e\u0637 \u0628\u0639\u062f\u06cc \u062a\u0627\u0628\u0639\u06cc \u0628\u0647 \u0646\u0627\u0645 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f PCFControl . \u0631\u0627 export \u06a9\u0644\u06cc\u062f\u0648\u0627\u0698\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062e\u0627\u0631\u062c \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u062f\u0631 PCFControl \u062a\u0627\u0628\u0639 a sampleDataSet \u0648\u06cc\u0698\u06af\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0634\u0628\u06a9\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u062f.<br \/>\n\u062a\u0627\u0628\u0639 a \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f DetailsList \u06a9\u0646\u062a\u0631\u0644 \u0628\u0627 \u0633\u0648\u0627\u0628\u0642 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0622\u0646 items \u062f\u0627\u0631\u0627\u06cc\u06cc<br \/>\nDetailsList  \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0648\u0627\u06a9\u0646\u0634 Fluent UI \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0644\u06cc\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>index.ts<\/p>\n<p>\u0641\u0627\u06cc\u0644 \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f index.ts \u060c \u0645\u0627 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f PCFControl \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f updateView \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627.<\/p>\n<p>import { PCFControl } from &#8220;.\/App&#8221;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>public updateView(context: ComponentFramework.ContextIInputs&gt;): React.ReactElement<br \/>\n{<br \/>\n    const props: IInputs = { sampleDataSet: context.parameters.sampleDataSet };<br \/>\n    return React.createElement(PCFControl, props);<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>context.parameters.sampleDataSet  \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 context \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0634\u0628\u06a9\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0628\u0647 \u0622\u0646 \u0645\u0644\u0632\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0633\u067e\u0633 \u06cc\u06a9 \u0639\u0646\u0635\u0631 React \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 PCFControl \u0645\u0624\u0644\u0641\u0647 \u0648 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644\u06cc props \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062e\u0648\u0627\u0635 \u0628\u0647 \u0622\u0646.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0633\u0627\u0633\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0638\u0627\u0647\u0631 \u0622\u0646 \u0686\u06af\u0648\u0646\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>npm run build<br \/>\nnpm start watch<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0644\u06cc\u0633\u062a \u062c\u062f\u0648\u0644\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c<\/p>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 props<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 CRM \u0631\u0627 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645 sampleDataSet \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9.<\/p>\n<p>\u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f App.tsx \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 parseDatasetToJSON \u062f\u0631 \u062f\u0627\u062e\u0644 \u062a\u0627\u0628\u0639 PCFControl\u060c \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f sampleDataSet \u0648\u06cc\u0698\u06af\u06cc (\u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0634\u0628\u06a9\u0647) \u0648 \u0622\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0622\u0631\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0634\u06cc\u0627\u0621 json \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function parseDatasetToJSON()<br \/>\n{<br \/>\n    const jsonData = [];<br \/>\n    for(const recordID of sampleDataSet.sortedRecordIds)<br \/>\n    {<br \/>\n        \/\/ Dataset record<br \/>\n        const record = sampleDataSet.records[recordID];<br \/>\n        const temp: Recordstring, any&gt; = {};<\/p>\n<p>        \/\/ Loop through each dataset columns<br \/>\n        for(const column of sampleDataSet.columns)<br \/>\n        {<br \/>\n            temp[column.name] = record.getFormattedValue(column.name)<br \/>\n        }<\/p>\n<p>        jsonData.push(temp);<br \/>\n    }<br \/>\n    return jsonData;<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 JSON \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 sampleDataSet \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>React \u06cc\u06a9 \u062a\u0648\u0627\u0628\u0639 \u0648\u06cc\u0698\u0647 \u0628\u0647 \u0646\u0627\u0645 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0642\u0644\u0627\u0628\u060c \u0645\u0627\u0646\u0646\u062f useState \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc \u0646\u0648\u0639 \u062d\u0627\u0644\u062a \u0648 useEffect \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc \u0646\u0648\u0639 \u062d\u0627\u0644\u062a \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f useState \u0648 useEffect \u0627\u0632\u060c<\/p>\n<p>\u0648\u0627\u0631\u062f\u0627\u062a useState \u0648 useEffect \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0641\u0627\u06cc\u0644\u060c \u0633\u067e\u0633 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f notes \u06a9\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0641\u0631\u0645\u062a JSON \u0645\u0627 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 sampleDataSet \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc\/\u062a\u063a\u06cc\u06cc\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c useEffect \u062a\u0627\u0628\u0639 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u0648 notes \u0645\u062a\u063a\u06cc\u0631 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u067e\u0633 DetailsList \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u06cc\u0645 items \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 notes \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0633\u0648\u0627\u0628\u0642 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0633\u062a\u0627.<\/p>\n<p>import { useState, useEffect } from &#8216;react&#8217;;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON Objects<\/p>\n<p>useEffect(() =&gt; {<\/p>\n<p>    const notesRecords = parseDatasetToJSON();<br \/>\n    setNotes(notesRecords);<\/p>\n<p>}, [sampleDataSet]); \/\/ On dataset property load or change<\/p>\n<p>return DetailsList items={notes}\/&gt;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0634\u0645\u0627 App.tsx \u06a9\u062f \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<p>import * as React from &#8216;react&#8217;;<br \/>\nimport { useState, useEffect } from &#8216;react&#8217;;<br \/>\nimport { IInputs } from &#8220;.\/generated\/ManifestTypes&#8221;;<br \/>\nimport { DetailsList } from &#8216;@fluentui\/react&#8217;;<\/p>\n<p>export function PCFControl({sampleDataSet} : IInputs) {<\/p>\n<p>    function parseDatasetToJSON()<br \/>\n    {<br \/>\n        const jsonData = [];<br \/>\n        for(const recordID of sampleDataSet.sortedRecordIds)<br \/>\n        {<br \/>\n            \/\/ Dataset record<br \/>\n            const record = sampleDataSet.records[recordID];<br \/>\n            const temp: Recordstring, any&gt; = {};<\/p>\n<p>            \/\/ Loop through each dataset columns<br \/>\n            for(const column of sampleDataSet.columns)<br \/>\n            {<br \/>\n                temp[column.name] = record.getFormattedValue(column.name)<br \/>\n            }<br \/>\n            jsonData.push(temp);<br \/>\n        }<br \/>\n        return jsonData;<br \/>\n    }<\/p>\n<p>    const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON Objects<\/p>\n<p>    useEffect(() =&gt; {<\/p>\n<p>        const notesRecords = parseDatasetToJSON();<br \/>\n        setNotes(notesRecords);<\/p>\n<p>    }, [sampleDataSet]); \/\/ On dataset property load or change<\/p>\n<p>    return DetailsList items={notes}\/&gt;<\/p>\n<p>}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f\u060c \u0648 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c<\/p>\n<p>\u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc\u060c \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u06af\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062e\u0648\u062f\u060c \u0627\u0632 \u0642\u0633\u0645\u062a \u0647\u0627\u06cc\u0644\u0627\u06cc\u062a \u0634\u062f\u0647 \u067e\u0627\u06cc\u06cc\u0646 \u0633\u0645\u062a \u0631\u0627\u0633\u062a\u060c \u0647\u0631 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644\u06cc \u0631\u0627 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0648 \u0631\u062f\u06cc\u0641 \u0647\u0627 \u0628\u0627\u0634\u062f\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 PCF Dataset Control \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0631\u0627 \u0628\u0647 sampleDataSet \u062f\u0627\u0631\u0627\u06cc\u06cc<\/p>\n<p>  \u062f\u0631\u06a9 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a CRM: \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a OOB Notes Dynamics CRM \u0647\u0633\u062a\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0644\u062d\u0638\u0647 \u06a9\u0648\u062a\u0627\u0647 \u0628\u0647 \u0645\u0631\u0648\u0631 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Notes \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f\u060c \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u0631\u0627 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u062f\u0631 Dynamics CRM \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u06cc\u0627 \u0646\u0638\u0631\u0627\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0646\u0647\u0627\u062f\u0647\u0627\u060c \u0645\u0627\u0646\u0646\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u060c \u0645\u062e\u0627\u0637\u0628\u06cc\u0646 \u06cc\u0627 \u0641\u0631\u0635\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06af\u06cc\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627 \u06cc\u0627 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc \u0645\u0647\u0645 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u0648\u0627\u0628\u0642 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Notes \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 (filename): \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0631\u0634\u062a\u0647 \u0627\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u067e\u0631 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<br \/>\n\u0628\u062f\u0646\u0647 \u0633\u0646\u062f (documentbody): \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u062d\u0627\u0648\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0631\u0634\u062a\u0647 \u0641\u0631\u0645\u062a Base64 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0648\u0633\u062a \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631\u06cc \u0627\u0632 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0627\u0631\u06cc\u0645\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u0645.<\/p>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc File \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u062a\u0648\u062c\u0647: \u062f\u0631 CRM\u060c \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0686\u0646\u062f\u06cc\u0646 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0647 \u0622\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0627\u0631\u0627\u06cc \u0641\u0642\u0637 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0622\u0646 \u0645\u062a\u0635\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 createFileOptions \u06a9\u0647 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a notes \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0631\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function createFileOptions(notes: ArrayRecordstring, any&gt;&gt;)<br \/>\n{<br \/>\n    const options: IDropdownOption[] = [];<\/p>\n<p>    for(const [index, note] of notes.entries())<br \/>\n    {<br \/>\n        const option = { key: index, text: note[&#8220;filename&#8221;] ?? &#8220;No File&#8221; };<br \/>\n        options.push(option);<br \/>\n    }<br \/>\n    return options;<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0632 IDropdownOption \u0627\u0634\u06cc\u0627\u0621\u060c \u0628\u0627 \u0647\u0631 \u0634\u06cc\u0621 \u062d\u0627\u0648\u06cc \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062a\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 the \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u062f\u0627\u0631\u062f filename \u0641\u06cc\u0644\u062f \u0627\u0632 \u0633\u0648\u0627\u0628\u0642 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a.<\/p>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f: notes  \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 parseDatasetToJSON \u062a\u0627\u0628\u0639 \u0648 \u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062d\u0627\u0648\u06cc \u062f\u0648 \u0648\u06cc\u0698\u06af\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a filename \u0648 documentbody<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 fileOptions \u0645\u062a\u063a\u06cc\u0631 state\u060c \u0648 \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc Fluent UI \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f DetailsList \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0628\u06cc\u0627\u0646\u06cc\u0647 \u0628\u0627\u0632\u06af\u0634\u062a.<\/p>\n<p>import { DetailsList, Dropdown, IDropdownOption, Stack } from &#8216;@fluentui\/react&#8217;;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\nconst [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects <\/p>\n<p>useEffect(() =&gt; {<\/p>\n<p>    const notesRecords = parseDatasetToJSON();<br \/>\n    const fileOptionsRecords = createFileOptions(notesRecords);<\/p>\n<p>    setNotes(notesRecords);<br \/>\n    setFileOptions(fileOptionsRecords);<\/p>\n<p>}, [sampleDataSet]); \/\/ On dataset change<\/p>\n<p>return (<br \/>\n    Stack&gt;<br \/>\n        Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions}\/&gt;<br \/>\n        DetailsList items={notes}\/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06a9\u062f App.tsx \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<p>import * as React from &#8216;react&#8217;;<br \/>\nimport { useState, useEffect } from &#8216;react&#8217;;<br \/>\nimport { IInputs } from &#8220;.\/generated\/ManifestTypes&#8221;;<br \/>\nimport { DetailsList, Dropdown, IDropdownOption, Stack } from &#8216;@fluentui\/react&#8217;;<\/p>\n<p>export function PCFControl({sampleDataSet} : IInputs) {<\/p>\n<p>    function parseDatasetToJSON()<br \/>\n    {<br \/>\n        const jsonData = [];<br \/>\n        for(const recordID of sampleDataSet.sortedRecordIds)<br \/>\n        {<br \/>\n            \/\/ Dataset record<br \/>\n            const record = sampleDataSet.records[recordID];<br \/>\n            const temp: Recordstring, any&gt; = {};<\/p>\n<p>            for(const column of sampleDataSet.columns)<br \/>\n            {<br \/>\n                temp[column.name] = record.getFormattedValue(column.name)<br \/>\n            }<br \/>\n            jsonData.push(temp);<br \/>\n        }<br \/>\n        return jsonData;<br \/>\n    }<\/p>\n<p>    function createFileOptions(notes: ArrayRecordstring, any&gt;&gt;)<br \/>\n    {<br \/>\n        const options: IDropdownOption[] = [];<\/p>\n<p>        for(const [index, note] of notes.entries())<br \/>\n        {<br \/>\n            const option = { key: index, text: note[&#8220;filename&#8221;] ?? &#8220;No File&#8221; }<br \/>\n            options.push(option);<br \/>\n        }<br \/>\n        return options;<br \/>\n    }<\/p>\n<p>    const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\n    const [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<\/p>\n<p>    useEffect(() =&gt; {<\/p>\n<p>        const notesRecords = parseDatasetToJSON();<br \/>\n        const fileOptionsRecords = createFileOptions(notesRecords);<\/p>\n<p>        setNotes(notesRecords);<br \/>\n        setFileOptions(fileOptionsRecords);<\/p>\n<p>    }, [sampleDataSet]); \/\/ On dataset change<\/p>\n<p>    return (<br \/>\n        Stack&gt;<br \/>\n            Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions}\/&gt;<br \/>\n            DetailsList items={notes}\/&gt;<br \/>\n        \/Stack&gt;<br \/>\n    );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u06a9\u0634\u0648\u06cc\u06cc \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0644\u06cc\u0633\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 filename \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u0628\u0627 \u06af\u0641\u062a\u0646 \u062e\u0637\u0627 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0631. \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc @typescript-eslint\/no-explicit-any \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f ?<\/p>\n<p>\u062e\u0648\u0628\u060c \u0632\u06cc\u0631\u0627 \u062a\u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0627 \u062a\u0627\u06cc\u067e \u0642\u0648\u06cc \u0627\u0633\u062a \u0648 \u0627\u0632 \u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0627\u0646\u0648\u0627\u0639 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0628\u0647 \u0622\u062f\u0631\u0633 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f .eslintrc.json \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0646\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 any. \u0633\u067e\u0633 \u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<p>&#8220;@typescript-eslint\/no-explicit-any&#8221;: &#8220;off&#8221;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 filename \u0641\u06cc\u0644\u062f \u0627\u0632 \u0633\u0648\u0627\u0628\u0642 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f filename \u0633\u062a\u0648\u0646 \u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0631\u062c\u0639 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0641\u0627\u06cc\u0644 dataset.csv \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0633\u0628\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0645\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<p>\u062d\u0627\u0644 \u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0632 \u0645\u0646\u0648\u06cc \u0628\u0627\u0632\u0634\u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u06af\u0641\u062a\u0647 \u0634\u062f \u062f\u0631 documentbody \u0641\u06cc\u0644\u062f \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a<\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0622\u0646\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 handleSelectFile \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0641\u0627\u06cc\u0644\u060c \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f documentbody \u0641\u06cc\u0644\u062f\u060c \u0648 \u0633\u067e\u0633 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0631\u0634\u062a\u0647 Base64 \u0647\u0633\u062a\u0646\u062f \u0628\u0647 \u06cc\u06a9 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f excelWorkbook \u0634\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 XLSX.<\/p>\n<p>\u062a\u0648\u062c\u0647: excelWorkbook \u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>import * as XLSX from &#8216;xlsx&#8217;;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function handleSelectFile(event: React.FormEventHTMLDivElement&gt;, option?: IDropdownOption)<br \/>\n{<br \/>\n    if(option === undefined) return; \/\/ Return if no option is selected<\/p>\n<p>    const note = notes[option.key as number]; \/\/ Get note record using index<br \/>\n    const base64Data = note[&#8220;documentbody&#8221;] ?? &#8220;&#8221;; \/\/ Get file data of that note record<br \/>\n    const workbook = XLSX.read(base64Data, { type: &#8216;base64&#8217;, cellDates: true }); \/\/ Converts base64 data to excel workbook object<br \/>\n    setExcelWorkbook(workbook);<\/p>\n<p>    console.log(workbook);<br \/>\n}<\/p>\n<p>const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\nconst [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\nconst [excelWorkbook, setExcelWorkbook] = useStateXLSX.WorkBook&gt;(XLSX.utils.book_new()); \/\/ Excel workbook object<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0633\u067e\u0633 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f onChange \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0634\u0648\u06cc\u06cc\u060c \u06a9\u0647 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u0641\u0627\u06cc\u0644\u06cc \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u0648\u062f\u060c \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>return (<br \/>\n    Stack&gt;<br \/>\n        Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions} onChange={handleSelectFile}\/&gt;<br \/>\n        DetailsList items={notes}\/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u060c \u0627\u0628\u062a\u062f\u0627 \u0633\u062a\u0648\u0646\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 documentbody \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0646\u0645\u0648\u0646\u0647 \u0645\u0627 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 base64 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0631\u0634\u062a\u0647 base64 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062a\u0648\u062c\u0647: documentbody \u0645\u0642\u062f\u0627\u0631 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0627 \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0633\u0644\u0648\u0644 F2 \u062d\u0627\u0648\u06cc \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 base64 \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a.<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0648\u0642\u062a\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc \u0633\u0627\u0632\u06cc\u0645 \u0648 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 Sales.xlsx\u060c \u0622\u0646 \u0641\u0627\u06cc\u0644 documentbody \u0645\u0642\u062f\u0627\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u0634\u06cc\u0621 \u0627\u06a9\u0633\u0644 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u06a9\u0646\u0633\u0648\u0644 \u0648\u0627\u0631\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc<\/p>\n<p>\u062a\u0627 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06a9\u0647 \u0645\u0648\u0641\u0642 \u0628\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a excelWorkbook \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062f\u0631 \u06a9\u062f \u0645\u0627 \u0634\u06cc\u0621 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f. \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u062a\u0645\u0627\u0645 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u0628\u0631\u06af\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062f\u0627\u062e\u0644 \u0645\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f excelWorkbook \u0634\u06cc \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627 \u0631\u062f\u06cc\u0641 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0628\u0647 \u0641\u0631\u0645\u062a \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u06cc\u0645. DetailsList \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 createSheetOptions \u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0646 \u062a\u062c\u0632\u06cc\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f workbook \u0634\u06cc \u0648 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u062d\u0627\u0648\u06cc \u0646\u0627\u0645 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0634\u0627\u0628\u0647 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645.<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function createSheetOptions(workbook: XLSX.WorkBook)<br \/>\n{<br \/>\n    const options: IDropdownOption[] = [];<br \/>\n    for(const [index, sheetName] of workbook.SheetNames.entries())<br \/>\n    {<br \/>\n        const option = { key: index, text: sheetName };<br \/>\n        options.push(option);<br \/>\n    }<br \/>\n    return options;<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 sheetOptions \u0645\u062a\u063a\u06cc\u0631\u060c \u0648 \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 a \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f Dropdown \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u06cc\u0627\u062f\u0634 \u0628\u062e\u06cc\u0631 \u062f\u0627\u0634\u062a\u06cc\u0645 \u0632\u0646\u06af \u0645\u06cc\u0632\u062f\u06cc\u0645 createFileOptions \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0632 \u0631\u0648\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f useEffect \u062a\u0627\u0628\u0639 \u062d\u0627\u0644\u0627 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u06cc\u062f \u0628\u0627 \u0622\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u0645 createSheetOptions ?<\/p>\n<p>\u062f\u0631\u0633\u062a\u0647! \u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u062d\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u060c \u06cc\u0639\u0646\u06cc \u062f\u0627\u062e\u0644\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u0648\u062f handleSelectFile \u062a\u0627\u0628\u0639 \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f\u060c \u0645\u0627 sheetOptions \u0628\u0631 \u0627\u0633\u0627\u0633 \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 handleSelectFile \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0647\u0645\u0627\u0646\u060c<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function handleSelectFile(event: React.FormEventHTMLDivElement&gt;, option?: IDropdownOption)<br \/>\n{<br \/>\n    if(option === undefined) return; \/\/ Return if no option is selected<\/p>\n<p>    const note = notes[option.key as number]; \/\/ Get note record using index<br \/>\n    const base64Data = note[&#8220;documentbody&#8221;] ?? &#8220;&#8221;; \/\/ Get file data<br \/>\n    const workbook = XLSX.read(base64Data, { type: &#8216;base64&#8217;, cellDates: true }); \/\/ Converts base64 data to excel workbook object<br \/>\n    setExcelWorkbook(workbook);<\/p>\n<p>    const sheetOptionsRecords = createSheetOptions(workbook);<br \/>\n    setSheetOptions(sheetOptionsRecords);<br \/>\n}<\/p>\n<p>const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\nconst [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\nconst [excelWorkbook, setExcelWorkbook] = useStateXLSX.WorkBook&gt;(XLSX.utils.book_new()); \/\/ Excel workbook object<br \/>\nconst [sheetOptions, setSheetOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 \u0639\u0628\u0627\u0631\u062a \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f sheetOptions \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631.<\/p>\n<p>return (<br \/>\n    Stack&gt;<br \/>\n        Stack horizontal&gt;<br \/>\n            Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions} onChange={handleSelectFile}\/&gt;<br \/>\n            Dropdown placeholder=&#8221;Select Sheet&#8221; options={sheetOptions} \/&gt;<br \/>\n        \/Stack&gt;<br \/>\n        DetailsList items={notes}\/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u0628\u0631\u06af\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0634\u0648\u06cc\u06cc \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u06cc\u0645\u060c \u0628\u0631\u0627\u06cc \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647\u200c\u0627\u06cc \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u060c \u0631\u062f\u06cc\u0641\u200c\u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0628\u0631\u06af\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u0646\u062f. DetailsList \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0622\u0646\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 handleSelectSheet \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0631\u06af\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0627\u0632 excelWorkbook \u0634\u06cc \u062f\u0631 \u06a9\u062f \u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0622\u0646 \u0631\u06a9\u0648\u0631\u062f\/\u0631\u062f\u06cc\u0641 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0633\u067e\u0633 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc json \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 rows \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0634\u0648\u062f DetailsList \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>function handleSelectSheet(event: React.FormEventHTMLDivElement&gt;, option?: IDropdownOption)<br \/>\n{<br \/>\n    if(option === undefined) return; \/\/ Return if no option is selected<\/p>\n<p>    const sheet = excelWorkbook.Sheets[option.text as string]; \/\/ Get sheet record using SheetName<br \/>\n    const rowRecords: Recordstring, any&gt;[] = XLSX.utils.sheet_to_json(sheet, {raw: false}); \/\/ Sheet Records in JSON Array<br \/>\n    setRows(rowRecords);<br \/>\n}<\/p>\n<p>const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\nconst [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\nconst [excelWorkbook, setExcelWorkbook] = useStateXLSX.WorkBook&gt;(XLSX.utils.book_new()); \/\/ Excel workbook object<br \/>\nconst [sheetOptions, setSheetOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\nconst [rows, setRows] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f onChange \u0648\u06cc\u0698\u06af\u06cc \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f items \u062f\u0627\u0631\u0627\u06cc\u06cc \u0627\u0632 DetailsList \u06a9\u0646\u062a\u0631\u0644 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 rows \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0633\u0648\u0627\u0628\u0642 \u0628\u0631\u06af\u0647 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0645\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>return (<br \/>\n    Stack&gt;<br \/>\n        Stack horizontal&gt;<br \/>\n            Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions} onChange={handleSelectFile}\/&gt;<br \/>\n            Dropdown placeholder=&#8221;Select Sheet&#8221; options={sheetOptions} onChange={handleSelectSheet} \/&gt;<br \/>\n        \/Stack&gt;<br \/>\n        DetailsList items={rows}\/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u062c\u0644\u0648 \u0628\u0631\u0648\u06cc\u0645 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u0642\u0633\u0645\u062a \u0646\u0647\u0627\u06cc\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645\u060c \u06cc\u0639\u0646\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644.<\/p>\n<p>\u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u062f\u060c \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u06a9\u0646\u062f (\u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 excelWorkbook \u0634\u06cc) \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0627\u0631\u0628\u0631.<\/p>\n<p>\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 XLSX.writeFile() \u0631\u0648\u0634 \u0628\u0631 \u0631\u0648\u06cc onClick \u06a9\u0646\u062a\u0631\u0644 \u062f\u06a9\u0645\u0647 \u0627\u06cc\u0646 \u0645\u062a\u062f \u0634\u06cc\u0621 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0627\u0648\u0644 \u0648 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f \u0634\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0648\u0645 \u062f\u0631 \u0646\u0638\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 PrimaryButton \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0633\u0627\u06cc\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0627\u0628\u0639\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f handleDownload \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 onClick \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u06a9\u0645\u0647<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>function handleDownload()<br \/>\n{<br \/>\n    XLSX.writeFile(excelWorkbook, &#8216;download.xlsx&#8217;);<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>return (<br \/>\n    Stack&gt;<br \/>\n        Stack horizontal&gt;<br \/>\n            Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions} onChange={handleSelectFile}\/&gt;<br \/>\n            Dropdown placeholder=&#8221;Select Sheet&#8221; options={sheetOptions} onChange={handleSelectSheet} \/&gt;<br \/>\n            PrimaryButton text=&#8221;Download&#8221; allowDisabledFocus onClick={handleDownload}\/&gt;<br \/>\n        \/Stack&gt;<br \/>\n        DetailsList items={rows}\/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062d\u0627\u0644 \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0634\u0645\u0627 App.tsx \u06a9\u062f \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<p>import * as React from &#8216;react&#8217;;<br \/>\nimport { useState, useEffect } from &#8216;react&#8217;;<br \/>\nimport { IInputs } from &#8220;.\/generated\/ManifestTypes&#8221;;<br \/>\nimport { DetailsList, DetailsListLayoutMode, Dropdown, IDropdownOption, PrimaryButton, Stack } from &#8216;@fluentui\/react&#8217;;<br \/>\nimport * as XLSX from &#8216;xlsx&#8217;;<br \/>\nimport { text } from &#8216;stream\/consumers&#8217;;<\/p>\n<p>export function PCFControl({sampleDataSet} : IInputs) {<\/p>\n<p>    function parseDatasetToJSON()<br \/>\n    {<br \/>\n        const jsonData = [];<br \/>\n        for(const recordID of sampleDataSet.sortedRecordIds)<br \/>\n        {<br \/>\n            \/\/ Dataset record<br \/>\n            const record = sampleDataSet.records[recordID];<br \/>\n            const temp: Recordstring, any&gt; = {};<\/p>\n<p>            for(const column of sampleDataSet.columns)<br \/>\n            {<br \/>\n                temp[column.name] = record.getFormattedValue(column.name)<br \/>\n            }<br \/>\n            jsonData.push(temp);<br \/>\n        }<br \/>\n        return jsonData;<br \/>\n    }<\/p>\n<p>    function createFileOptions(notes: ArrayRecordstring, any&gt;&gt;)<br \/>\n    {<br \/>\n        const options: IDropdownOption[] = [];<\/p>\n<p>        for(const [index, note] of notes.entries())<br \/>\n        {<br \/>\n            const option = { key: index, text: note[&#8220;filename&#8221;] ?? &#8220;No File&#8221; };<br \/>\n            options.push(option);<br \/>\n        }<br \/>\n        return options;<br \/>\n    }<\/p>\n<p>    function createSheetOptions(workbook: XLSX.WorkBook)<br \/>\n    {<br \/>\n        const options: IDropdownOption[] = [];<br \/>\n        for(const [index, sheetName] of workbook.SheetNames.entries())<br \/>\n        {<br \/>\n            const option = { key: index, text: sheetName };<br \/>\n            options.push(option);<br \/>\n        }<br \/>\n        return options;<br \/>\n    }<\/p>\n<p>    function handleSelectFile(event: React.FormEventHTMLDivElement&gt;, option?: IDropdownOption)<br \/>\n    {<br \/>\n        if(option === undefined) return; \/\/ Return if no option is selected<\/p>\n<p>        const note = notes[option.key as number]; \/\/ Get note record using index<br \/>\n        const base64Data = note[&#8220;documentbody&#8221;] ?? &#8220;&#8221;; \/\/ Get file data<br \/>\n        const workbook = XLSX.read(base64Data, { type: &#8216;base64&#8217;, cellDates: true }); \/\/ Converts base64 data to excel workbook object<br \/>\n        setExcelWorkbook(workbook);<\/p>\n<p>        const sheetOptionsRecords = createSheetOptions(workbook);<br \/>\n        setSheetOptions(sheetOptionsRecords);<br \/>\n    }<\/p>\n<p>    function handleSelectSheet(event: React.FormEventHTMLDivElement&gt;, option?: IDropdownOption)<br \/>\n    {<br \/>\n        if(option === undefined) return; \/\/ Return if no option is selected<\/p>\n<p>        const sheet = excelWorkbook.Sheets[option.text as string]; \/\/ Get sheet record using SheetName<br \/>\n        const rowRecords: Recordstring, any&gt;[] = XLSX.utils.sheet_to_json(sheet, {raw: false}); \/\/ Sheet Records in JSON Array<br \/>\n        setRows(rowRecords);<br \/>\n    }<\/p>\n<p>    function handleDownload()<br \/>\n    {<br \/>\n        XLSX.writeFile(excelWorkbook, &#8216;download.xlsx&#8217;);<br \/>\n    }<\/p>\n<p>    const [notes, setNotes] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<br \/>\n    const [fileOptions, setFileOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\n    const [excelWorkbook, setExcelWorkbook] = useStateXLSX.WorkBook&gt;(XLSX.utils.book_new()); \/\/ Excel workbook object<br \/>\n    const [sheetOptions, setSheetOptions] = useStateIDropdownOption[]&gt;([]); \/\/ Array of IDropdownOption objects<br \/>\n    const [rows, setRows] = useStateArrayRecordstring, any&gt;&gt;&gt;([]); \/\/ Array of JSON objects<\/p>\n<p>    useEffect(() =&gt; {<br \/>\n        const notesRecords = parseDatasetToJSON();<br \/>\n        const fileOptionsRecords = createFileOptions(notesRecords);<\/p>\n<p>        setNotes(notesRecords);<br \/>\n        setFileOptions(fileOptionsRecords);<\/p>\n<p>    }, [sampleDataSet]); \/\/ On dataset change<\/p>\n<p>    return (<br \/>\n        Stack&gt;<br \/>\n            Stack horizontal&gt;<br \/>\n                Dropdown placeholder=&#8221;Select File&#8221; options={fileOptions} onChange={handleSelectFile}\/&gt;<br \/>\n                Dropdown placeholder=&#8221;Select Sheet&#8221; options={sheetOptions} onChange={handleSelectSheet} \/&gt;<br \/>\n                PrimaryButton text=&#8221;Download&#8221; allowDisabledFocus onClick={handleDownload}\/&gt;<br \/>\n            \/Stack&gt;<br \/>\n            DetailsList items={rows}\/&gt;<br \/>\n        \/Stack&gt;<br \/>\n    );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0648\u0642\u062a\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f\u060c \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u060c \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0641\u0647\u0631\u0633\u062a \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f filename \u0633\u062a\u0648\u0646 (\u0627\u06cc\u0646 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a).<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u06a9\u062f documentbody \u0627\u0631\u0632\u0634 (\u0627\u06cc\u0646 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a) \u0627\u0632 \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u06cc\u06a9 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0627\u06a9\u0633\u0644 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u062f\u0631 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0634\u06cc\u062a\u060c \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0622\u0646 \u0634\u06cc\u062a \u0628\u0647 \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062a\u0648\u062c\u0647: \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0631\u0634\u062a\u0647 base64 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0631\u062c\u0639\u060c \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c<\/p>\n<p>  \u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u06a9\u0627\u0631 \u0639\u0627\u0644\u06cc \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0631 \u0622\u0645\u0648\u0632\u0634\u2026<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 PCF \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647\u062a\u0631\u060c \u0633\u0628\u06a9\u06cc \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f ControlStyles.tsx \u062f\u0631 \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0633\u0628\u06a9 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\/* ControlStyles.tsx *\/<\/p>\n<p>import { IStackTokens, IStackStyles, IDetailsListStyles, IDropdownStyles } from &#8220;@fluentui\/react&#8221;;<\/p>\n<p>export const stackTokens: IStackTokens = {<br \/>\n    childrenGap: 10<br \/>\n};<\/p>\n<p>export const stackStyles: IStackStyles = {<br \/>\n    root: {<br \/>\n        padding: 10,<br \/>\n        width: &#8216;100%&#8217;,<br \/>\n        marginBottom: 20,<br \/>\n    },<br \/>\n};<\/p>\n<p>export const detailsListStyles: IDetailsListStyles = {<br \/>\n    root: {<br \/>\n        overflowX: &#8216;auto&#8217;<br \/>\n    },<br \/>\n    contentWrapper: {<br \/>\n        overflowY: &#8216;auto&#8217;,<br \/>\n        width: &#8216;max-content&#8217;,<br \/>\n        height: 450<br \/>\n    },<br \/>\n    focusZone : {},<br \/>\n    headerWrapper: {}<br \/>\n}<\/p>\n<p>export const dropDownStyles : PartialIDropdownStyles&gt; = {<br \/>\n    root : {<br \/>\n        width: &#8216;auto&#8217;,<br \/>\n        minWidth: 200<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0633\u067e\u0633 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0633\u0628\u06a9 \u0631\u0627 \u062f\u0631 \u0627\u0635\u0644\u06cc \u0645\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f App.tsx \u0641\u0627\u06cc\u0644 \u0648 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc Fluent UI \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>import {stackTokens, stackStyles, detailsListStyles, dropDownStyles} from &#8216;.\/ControlStyles&#8217;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>return (<br \/>\n    Stack tokens={stackTokens} styles={stackStyles}&gt;<br \/>\n        Stack horizontal tokens={stackTokens} styles={stackStyles}&gt;<br \/>\n            Dropdown<br \/>\n                placeholder=&#8221;Select File&#8221;<br \/>\n                options={fileOptions}<br \/>\n                onChange={handleSelectFile}<br \/>\n                styles={dropDownStyles}<br \/>\n            \/&gt;<br \/>\n            Dropdown<br \/>\n                placeholder=&#8221;Select Sheet&#8221;<br \/>\n                options={sheetOptions}<br \/>\n                onChange={handleSelectSheet}<br \/>\n                styles={dropDownStyles}<br \/>\n                defaultSelectedKey=&#8217;0&#8242;<br \/>\n            \/&gt;<br \/>\n            PrimaryButton text=&#8221;Download&#8221; allowDisabledFocus onClick={handleDownload}\/&gt;<br \/>\n        \/Stack&gt;<br \/>\n        DetailsList<br \/>\n            items={rows}<br \/>\n            styles={detailsListStyles}<br \/>\n            data-is-scrollable={false}<br \/>\n            layoutMode={DetailsListLayoutMode.fixedColumns}<br \/>\n        \/&gt;<br \/>\n    \/Stack&gt;<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0646\u062a\u0631\u0644 PCF \u0627\u0633\u062a\u0627\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c<\/p>\n<p>  \u062c\u0645\u0639 \u0628\u0646\u062f\u06cc \u0646\u0647\u0627\u06cc\u06cc<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0622\u0646 \u0634\u0628\u06a9\u0647 \u0645\u0634\u062a\u0631\u06a9 \u0645\u06cc \u0634\u0648\u062f. \u0641\u06cc\u0644\u062f\u0647\u0627 \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0628\u0647 \u0622\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u06cc\u0648\u0647\u200c\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0634\u062f\u0647 \u0627\u0631\u0627\u0626\u0647 \u06cc\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u0627\u0646\u0646\u062f documentbody \u062f\u0631 note \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0628\u0627\u06cc\u0646\u0631\u06cc \u0627\u0633\u062a \u0648 Dynamics CRM \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0627\u062c\u0627\u0632\u0647 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0628\u0627\u06cc\u0646\u0631\u06cc \u062f\u0631 \u0646\u0645\u0627\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 documentbody \u0648 filename \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0622\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 sampleDataSet \u0627\u0645\u0648\u0627\u0644 \u0627\u0632 updateView \u0631\u0648\u0634 \u062f\u0631 index.ts \u0641\u0627\u06cc\u0644<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>public updateView(context: ComponentFramework.ContextIInputs&gt;): React.ReactElement<br \/>\n{<\/p>\n<p>    if (context.parameters.sampleDataSet.addColumn)<br \/>\n    {<br \/>\n        context.parameters.sampleDataSet.addColumn(&#8220;documentbody&#8221;);<br \/>\n        context.parameters.sampleDataSet.addColumn(&#8220;filename&#8221;);<br \/>\n        context.parameters.sampleDataSet.refresh();<br \/>\n    }<\/p>\n<p>    const props: IInputs = { sampleDataSet: context.parameters.sampleDataSet };<br \/>\n    return React.createElement(PCFControl, props);<br \/>\n}<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u062a\u0631\u0644 PCF<\/p>\n<p>\u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 Power Apps \u062f\u0631 \u0639\u0645\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u062f\u0631 \u0645\u062d\u06cc\u0637 Power Apps\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>npm run build<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0642\u062f\u0631\u062a \u062e\u0648\u062f \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f\u060c<\/p>\n<p>pac auth create &#8211;environment &#8220;{Your Environment Name}&#8221;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f\u060c<\/p>\n<p>pac pcf push<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632\u060c \u0628\u0647 make.powerapps.com \u0628\u0631\u0648\u06cc\u062f:<\/p>\n<p>\u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f: \u0645\u062d\u06cc\u0637\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<br \/>\n\u0628\u0647 \u0631\u0627\u0647 \u062d\u0644 \u0647\u0627 \u0628\u0631\u0648\u06cc\u062f: \u0628\u0647 Solutions > Default Solution > Custom Controls \u0628\u0631\u0648\u06cc\u062f.<br \/>\n\u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f: \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0644\u06cc\u0633\u062a \u0638\u0627\u0647\u0631 \u0634\u0648\u062f.<\/p>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 Grid<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0634\u0628\u06a9\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627 \u062f\u0631 \u0641\u0631\u0645 \u062c\u062f\u0648\u0644 \u062d\u0633\u0627\u0628 \u0636\u0645\u06cc\u0645\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u062a\u0648\u062c\u0647: \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0641\u0631\u0645 \u0645\u0648\u062c\u0648\u062f\u06cc \u06a9\u0647 \u0641\u0639\u0627\u0644 \u0628\u0627\u0634\u062f \u062a\u0627 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0634\u0648\u062f\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062c\u062f\u0648\u0644 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0646\u0645\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u062f\u0631 \u0646\u0645\u0627\u06cc\u060c \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0641\u0642\u0637 \u0622\u0646 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0628\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0645\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0633\u067e\u0633 \u0628\u0647 Get More Components \u0648 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f ReactDatasetControl \u06a9\u0647 \u0628\u0647 \u062a\u0627\u0632\u06af\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0644\u06cc\u0633\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645.<br \/>\n\u0622\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0641\u0631\u0645 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u062d\u0633\u0627\u0628\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc\u06cc \u0628\u0627 \u067e\u06cc\u0648\u0633\u062a \u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0628\u0633\u062a\u0647 \u0634\u062f\u0646<\/p>\n<p>\u062a\u0628\u0631\u06cc\u06a9 \u0645\u06cc \u06af\u0648\u06cc\u0645! \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647:<\/p>\n<p>\u0646\u0645\u0627\u06cc\u0634 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0648\u0633\u062a \u0627\u06a9\u0633\u0644 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u062f\u0644\u060c<br \/>\n\u0647\u0631 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f\u060c<br \/>\n\u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u0648\u0646 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc Fluent UI React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc Dynamics \u0645\u062f\u0631\u0646 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0631 \u062e\u0648\u0628! \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0627\u062d\u0633\u0627\u0633 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631\u06a9 \u0645\u0646\u0627\u0633\u0628\u06cc \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc React \u0648 PCF \u062f\u0631 \u062f\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644\u06cc React \u0648 PCF \u062e\u0648\u062f \u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062a\u0642\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u06cc\u062f\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:<\/p>\n<p>\u0645\u0646\u0637\u0642 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0628\u0627\u0634\u062f.<br \/>\n\u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc\u060c \u0641\u06cc\u0644\u062a\u0631 \u0648 \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u06af\u0631\u06cc\u062f DetailsList \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n\u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0646\u0648\u0627\u0639 \u062f\u06cc\u06af\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0645\u0627\u0646\u0646\u062f txt\u060c pdf\u060c docx \u0648 \u063a\u06cc\u0631\u0647\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc CRUD \u0631\u0627 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0627\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u0627\u0644\u0628\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f \u06cc\u0627 \u062a\u0631\u062f\u06cc\u062f\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0628\u062e\u0634 \u0646\u0638\u0631\u0627\u062a \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062e\u0632\u0646 GitHub \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9\u2026<\/p>\n<div data-article-id=\"1971853\" id=\"article-body\">\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0627\u062f\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc PCF \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Dynamics CRM \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<p>\u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u062a\u0631\u06cc \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc PCF \u062f\u0631 Dynamics CRM \u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u0627 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062a\u0627 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0634\u0645\u0627 \u067e\u0648\u0634\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%DA%86%DB%8C_%D9%85%DB%8C%D8%B3%D8%A7%D8%B2%DB%8C%D8%9F\" >\u0686\u06cc \u0645\u06cc\u0633\u0627\u0632\u06cc\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A2%D9%85%D9%88%D8%B2%D8%B4\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%AC%D8%AF%DB%8C%D8%AF\" >\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D9%84%DB%8C\" >\u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%DA%A9%D8%AF_%D8%B4%D8%B1%D9%88%D8%B9\" >\u0628\u0631\u0631\u0633\u06cc \u06a9\u062f \u0634\u0631\u0648\u0639<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%B3%D8%A7%D8%AE%D8%AA_%D8%AC%D8%B2%D8%A1\" >\u0633\u0627\u062e\u062a \u062c\u0632\u0621<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_props\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 props<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%AF%D8%B1%DA%A9_%D9%85%D9%88%D8%AC%D9%88%D8%AF%DB%8C%D8%AA_CRM_%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D9%87%D8%A7\" >\u062f\u0631\u06a9 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a CRM: \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%DA%A9%D8%B4%D9%88%DB%8C%DB%8C_%D9%81%D8%A7%DB%8C%D9%84\" >\u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D8%A8%D8%B1%DA%AF%D9%87_%DA%A9%D8%B4%D9%88%DB%8C%DB%8C\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%AF%DA%A9%D9%85%D9%87_%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF\" >\u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%DB%8C%DA%A9_%D8%B8%D8%A7%D9%87%D8%B1_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%B1%D8%A7_%D8%A8%D9%87_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D9%87%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%AC%D9%85%D8%B9_%D8%A8%D9%86%D8%AF%DB%8C_%D9%86%D9%87%D8%A7%DB%8C%DB%8C\" >\u062c\u0645\u0639 \u0628\u0646\u062f\u06cc \u0646\u0647\u0627\u06cc\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_PCF\" >\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u062a\u0631\u0644 PCF<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AF%D8%B1_Grid\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 Grid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/how-to-build-pcf-dataset-control-using-react-4e6m\/#%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86\" >\u0628\u0633\u062a\u0647 \u0634\u062f\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%DB%8C_%D9%85%DB%8C%D8%B3%D8%A7%D8%B2%DB%8C%D8%9F\"><\/span>\n<p>  \u0686\u06cc \u0645\u06cc\u0633\u0627\u0632\u06cc\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u06a9\u0646\u062a\u0631\u0644\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0633\u0627\u062e\u062a \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u0648\u0646 CRM \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0648\u0634\u06cc \u0628\u0635\u0631\u06cc\u200c\u062a\u0631 \u0648 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u062f\u0647\u06cc\u200c\u0634\u062f\u0647\u200c\u062a\u0631 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f:<\/p>\n<p><\/p>\n<p>\u062f\u0631 \u0628\u0631\u06af\u0647 Timeline\u060c \u0633\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u062d\u0633\u0627\u0628 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u062a\u0628 Notes\u060c \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0631\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0645\u0646\u0648\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0641\u0627\u06cc\u0644 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0641\u0627\u06cc\u0644\u060c \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u062f\u0631 \u0645\u0646\u0648\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0631\u06af\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647\u200c\u0627\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u0645\u0637\u0627\u0628\u0642 \u0634\u06a9\u0644 \u0628\u0627\u0644\u0627 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0648 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u062f \u0645\u0627 \u06cc\u06a9 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0646\u06cc\u0632 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A2%D9%85%D9%88%D8%B2%D8%B4\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0622\u0645\u0648\u0632\u0634<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0633\u0627\u062e\u062a\u0646 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc PCF \u0628\u0627 React\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f:<\/p>\n<ol>\n<li>\n<p>Node.js: \u0646\u0633\u062e\u0647 LTS \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f<\/p>\n<\/li>\n<li>\n<p>\u06a9\u062f \u0648\u06cc\u0698\u0648\u0627\u0644 \u0627\u0633\u062a\u0648\u062f\u06cc\u0648 (VS Code): \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u0647 \u0628\u0647\u062a\u0631 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631\u06cc \u0645\u0627\u0646\u0646\u062f Visual Studio Code \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>Microsoft Power Platform CLI<\/strong>: \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Power Platform CLI \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc Power Platform \u0628\u0631\u0627\u06cc VS Code \u06cc\u0627 Power Platform CLI \u0628\u0631\u0627\u06cc \u0648\u06cc\u0646\u062f\u0648\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D8%AC%D8%AF%DB%8C%D8%AF\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u060c \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<ol>\n<li>\n<p>\u06a9\u062f \u0648\u06cc\u0698\u0648\u0627\u0644 \u0627\u0633\u062a\u0648\u062f\u06cc\u0648 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0647 \u067e\u0648\u0634\u0647 \u0627\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062c\u062f\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<\/li>\n<\/ol>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">pac pcf init --namespace SampleNamespace --name ReactDatasetControl --template dataset --framework react --run-npm-install\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><code>--namespace<\/code>  \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0634\u0645\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>--name<\/code>  \u0646\u0627\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0634\u0645\u0627 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>--template<\/code>  \u0646\u0648\u0639 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f (\u0645\u062b\u0644\u0627\u064b \u0641\u06cc\u0644\u062f \u06cc\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647)<\/p>\n<\/li>\n<li>\n<p><code>--framework<\/code>  (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc) \u0686\u0627\u0631\u0686\u0648\u0628 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>--run-npm-install<\/code>  \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06af\u0631\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f \u0628\u0627\u0644\u0627 <code>pac pcf init<\/code> \u0641\u0631\u0645\u0627\u0646 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 PCF \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0628\u0627 \u062a\u0645\u0627\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 PowerApps \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0627 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 XLSX \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">npm install xlsx\nnpm install --save-dev ajv\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D9%84%DB%8C\"><\/span>\n<p>  \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u062f\u0647 \u0627\u06cc\u062f\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u0631\u0648\u0631\u06cc \u0628\u0631 PCF Dataset Control \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%DA%A9%D8%AF_%D8%B4%D8%B1%D9%88%D8%B9\"><\/span>\n<p>  \u0628\u0631\u0631\u0633\u06cc \u06a9\u062f \u0634\u0631\u0648\u0639<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u06a9\u0627\u0648\u0634\u06af\u0631 \u0633\u0647 \u0628\u062e\u0634 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucaulg6vbqudshw4k21j.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"298\" title=\"\"><\/p>\n<ol>\n<li>\n<p><em>node_modules<\/em> \u0634\u0627\u0645\u0644 \u062a\u0645\u0627\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u06af\u0631\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p><em>ReactDatasetControl<\/em> \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062d\u0627\u0648\u06cc \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n<p><code>eslintrc.json<\/code>  \u060c<code>package.json<\/code> \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<\/li>\n<\/ol>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u0628\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<p><code>ControlManifest.Input.xml<\/code><\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0627\u0645 \u06a9\u0646\u062a\u0631\u0644\u060c \u0646\u0633\u062e\u0647\u060c \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0648 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f.<\/p>\n<p><code>index.ts<\/code><\/p>\n<p>\u0627\u06cc\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0628\u0631\u0627\u06cc \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0641\u062a\u0627\u0631 \u0648 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzfhwyflcfod5xmt7ktf.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"200\" title=\"\"><\/p>\n<p><strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u0686\u0631\u062e\u0647 \u0632\u0646\u062f\u06af\u06cc:<\/strong><\/p>\n<ul>\n<li>\n<p><strong><code>init<\/code><\/strong>: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u062a\u0631\u0644\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u06a9\u0646\u062a\u0631\u0644\u200c\u06a9\u0646\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u060c \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong><code>updateView<\/code><\/strong>: \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u06cc\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0645\u062c\u062f\u062f \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0622\u062e\u0631\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong><code>getOutputs<\/code><\/strong>: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0645\u0642\u062f\u0627\u0631 \u0641\u0639\u0644\u06cc \u062e\u0631\u0648\u062c\u06cc \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0633\u0637 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f \u06cc\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong><code>destroy<\/code><\/strong>: \u0627\u06cc\u0646 \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0627\u0632 DOM \u062d\u0630\u0641 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639\u060c \u0645\u0627\u0646\u0646\u062f \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u060c \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0646\u0634\u062a \u062d\u0627\u0641\u0638\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627\u060c <code>updateView<\/code> \u0645\u062a\u062f \u0632\u0645\u0627\u0646\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0635\u0641\u062d\u0647 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0631\u0646\u062f\u0631 \u0645\u06cc \u06a9\u0646\u062f <code>HelloWorld<\/code> \u062c\u0632\u0621 \u0627\u0632 <code>HelloWorld.tsx<\/code> \u0641\u0627\u06cc\u0644<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_%D8%AC%D8%B2%D8%A1\"><\/span>\n<p>  \u0633\u0627\u062e\u062a \u062c\u0632\u0621<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 App.tsx \u062f\u0631 \u062f\u0627\u062e\u0644 \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 ReactDatasetControl \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u06a9\u0646\u062a\u0631\u0644 PCF \u0645\u0627 \u0631\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"cm\">\/* App.tsx *\/<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/generated\/ManifestTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DetailsList<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@fluentui\/react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">PCFControl<\/span><span class=\"p\">({<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">}<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">records<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">First Name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Saturo<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">Last Name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Gojo<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">Domain<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Infinity Void<\/span><span class=\"dl\">\"<\/span>\n        <span class=\"p\">},<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">First Name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Sukuna<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">Last Name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Ryomen<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">Domain<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Malevolent Shrine<\/span><span class=\"dl\">\"<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">];<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">records<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p>\u062e\u0637\u0648\u0637 1-3 \u062a\u0645\u0627\u0645 \u0648\u0627\u0631\u062f\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc \u0622\u0648\u0631\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062e\u0637 \u0628\u0639\u062f\u06cc \u062a\u0627\u0628\u0639\u06cc \u0628\u0647 \u0646\u0627\u0645 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f <code>PCFControl<\/code> . \u0631\u0627 <code>export<\/code> \u06a9\u0644\u06cc\u062f\u0648\u0627\u0698\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062e\u0627\u0631\u062c \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062f\u0631 <code>PCFControl<\/code> \u062a\u0627\u0628\u0639 a <code>sampleDataSet<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0634\u0628\u06a9\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062a\u0627\u0628\u0639 a \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u0628\u0627 \u0633\u0648\u0627\u0628\u0642 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0622\u0646 <code>items<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc<\/p>\n<\/li>\n<li>\n<p><code>DetailsList<\/code>  \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0648\u0627\u06a9\u0646\u0634 Fluent UI \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0644\u06cc\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<\/ul>\n<p><code>index.ts<\/code><\/p>\n<p>\u0641\u0627\u06cc\u0644 \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>index.ts<\/code> \u060c \u0645\u0627 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f <code>PCFControl<\/code> \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>updateView<\/code> \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">PCFControl<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/App<\/span><span class=\"dl\">\"<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">public<\/span> <span class=\"nf\">updateView<\/span><span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ComponentFramework<\/span><span class=\"p\">.<\/span><span class=\"nx\">Context<\/span><span class=\"o\"><span class=\"nx\">IInputs<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">):<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ReactElement<\/span> \n<span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">props<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">sampleDataSet<\/span><span class=\"p\">:<\/span> <span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span> <span class=\"p\">};<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nf\">createElement<\/span><span class=\"p\">(<\/span><span class=\"nx\">PCFControl<\/span><span class=\"p\">,<\/span> <span class=\"nx\">props<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><code>context.parameters.sampleDataSet<\/code>  \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 <code>context<\/code> \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0634\u0628\u06a9\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0628\u0647 \u0622\u0646 \u0645\u0644\u0632\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0633\u067e\u0633 \u06cc\u06a9 \u0639\u0646\u0635\u0631 React \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 <code>PCFControl<\/code> \u0645\u0624\u0644\u0641\u0647 \u0648 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644\u06cc <code>props<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062e\u0648\u0627\u0635 \u0628\u0647 \u0622\u0646.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0633\u0627\u0633\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0638\u0627\u0647\u0631 \u0622\u0646 \u0686\u06af\u0648\u0646\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">npm run build\nnpm start watch\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0644\u06cc\u0633\u062a \u062c\u062f\u0648\u0644\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uzn2hdros6t6jtkvj01.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"448\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D8%A7%D8%B2_%D8%B7%D8%B1%DB%8C%D9%82_props\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 props<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 CRM \u0631\u0627 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645 <code>sampleDataSet<\/code> \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9.<\/p>\n<p>\u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>App.tsx<\/code> \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>parseDatasetToJSON<\/code> \u062f\u0631 \u062f\u0627\u062e\u0644 \u062a\u0627\u0628\u0639 PCFControl\u060c \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f <code>sampleDataSet<\/code> \u0648\u06cc\u0698\u06af\u06cc (\u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0634\u0628\u06a9\u0647) \u0648 \u0622\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0622\u0631\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0634\u06cc\u0627\u0621 json \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">()<\/span> \n<span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">jsonData<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n    <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">recordID<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">sortedRecordIds<\/span><span class=\"p\">)<\/span> \n    <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/ Dataset record<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">records<\/span><span class=\"p\">[<\/span><span class=\"nx\">recordID<\/span><span class=\"p\">];<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">temp<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n        <span class=\"c1\">\/\/ Loop through each dataset columns<\/span>\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">column<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">columns<\/span><span class=\"p\">)<\/span> \n        <span class=\"p\">{<\/span>\n            <span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">getFormattedValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">}<\/span>\n\n        <span class=\"nx\">jsonData<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">jsonData<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 JSON \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 <code>sampleDataSet<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>React \u06cc\u06a9 \u062a\u0648\u0627\u0628\u0639 \u0648\u06cc\u0698\u0647 \u0628\u0647 \u0646\u0627\u0645 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0646\u062f <em>\u0642\u0644\u0627\u0628<\/em>\u060c \u0645\u0627\u0646\u0646\u062f <code>useState<\/code> \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc \u0646\u0648\u0639 \u062d\u0627\u0644\u062a \u0648 <code>useEffect<\/code> \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc \u0646\u0648\u0639 \u062d\u0627\u0644\u062a \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u06cc\u0634\u062a\u0631 \u0628\u062f\u0627\u0646\u06cc\u062f <code>useState<\/code> \u0648 <code>useEffect<\/code> \u0627\u0632\u060c<\/p>\n<p>\u0648\u0627\u0631\u062f\u0627\u062a <code>useState<\/code> \u0648 <code>useEffect<\/code> \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0641\u0627\u06cc\u0644\u060c \u0633\u067e\u0633 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f <code>notes<\/code> \u06a9\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0641\u0631\u0645\u062a JSON \u0645\u0627 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 <code>sampleDataSet<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc\/\u062a\u063a\u06cc\u06cc\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c <code>useEffect<\/code> \u062a\u0627\u0628\u0639 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f \u0648 <code>notes<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u067e\u0633 DetailsList \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>items<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 <code>notes<\/code> \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0633\u0648\u0627\u0628\u0642 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0633\u062a\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON Objects<\/span>\n\n<span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">notesRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">();<\/span>\n    <span class=\"nf\">setNotes<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n\n<span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">]);<\/span> <span class=\"c1\">\/\/ On dataset property load or change<\/span>\n\n<span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0634\u0645\u0627 <code>App.tsx<\/code> \u06a9\u062f \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/generated\/ManifestTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DetailsList<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@fluentui\/react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">PCFControl<\/span><span class=\"p\">({<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">}<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">()<\/span> \n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">jsonData<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">recordID<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">sortedRecordIds<\/span><span class=\"p\">)<\/span> \n        <span class=\"p\">{<\/span>\n            <span class=\"c1\">\/\/ Dataset record<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">records<\/span><span class=\"p\">[<\/span><span class=\"nx\">recordID<\/span><span class=\"p\">];<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">temp<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n            <span class=\"c1\">\/\/ Loop through each dataset columns<\/span>\n            <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">column<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">columns<\/span><span class=\"p\">)<\/span> \n            <span class=\"p\">{<\/span>\n                <span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">getFormattedValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">)<\/span>\n            <span class=\"p\">}<\/span>\n            <span class=\"nx\">jsonData<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">jsonData<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON Objects<\/span>\n\n    <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n\n        <span class=\"kd\">const<\/span> <span class=\"nx\">notesRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">();<\/span>\n        <span class=\"nf\">setNotes<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">]);<\/span> <span class=\"c1\">\/\/ On dataset property load or change<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f\u060c \u0648 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs1ah2vpjb7n1gae7pcsv.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"426\" title=\"\"><\/p>\n<p>\u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc\u060c \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u06af\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062e\u0648\u062f\u060c \u0627\u0632 \u0642\u0633\u0645\u062a \u0647\u0627\u06cc\u0644\u0627\u06cc\u062a \u0634\u062f\u0647 \u067e\u0627\u06cc\u06cc\u0646 \u0633\u0645\u062a \u0631\u0627\u0633\u062a\u060c \u0647\u0631 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644\u06cc \u0631\u0627 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0648 \u0631\u062f\u06cc\u0641 \u0647\u0627 \u0628\u0627\u0634\u062f\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 PCF Dataset Control \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0631\u0627 \u0628\u0647 <code>sampleDataSet<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrkvjpsryc861ebxc4ja.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"401\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1%DA%A9_%D9%85%D9%88%D8%AC%D9%88%D8%AF%DB%8C%D8%AA_CRM_%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D9%87%D8%A7\"><\/span>\n<p>  \u062f\u0631\u06a9 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a CRM: \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a OOB Notes Dynamics CRM \u0647\u0633\u062a\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0644\u062d\u0638\u0647 \u06a9\u0648\u062a\u0627\u0647 \u0628\u0647 \u0645\u0631\u0648\u0631 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Notes \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f\u060c \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u0631\u0627 <strong>\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627<\/strong> \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u062f\u0631 Dynamics CRM \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u06cc\u0627 \u0646\u0638\u0631\u0627\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0646\u0647\u0627\u062f\u0647\u0627\u060c \u0645\u0627\u0646\u0646\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u060c \u0645\u062e\u0627\u0637\u0628\u06cc\u0646 \u06cc\u0627 \u0641\u0631\u0635\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06af\u06cc\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627 \u06cc\u0627 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc \u0645\u0647\u0645 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u0648\u0627\u0628\u0642 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Notes \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\n<p><strong>\u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 (<code>filename<\/code>):<\/strong> \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0631\u0634\u062a\u0647 \u0627\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u067e\u0631 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u062f\u0646\u0647 \u0633\u0646\u062f (<code>documentbody<\/code>):<\/strong> \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u062d\u0627\u0648\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0631\u0634\u062a\u0647 \u0641\u0631\u0645\u062a Base64 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u0627\u0632 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0648\u0633\u062a \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<\/ol>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631\u06cc \u0627\u0632 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0627\u0631\u06cc\u0645\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%DA%A9%D8%B4%D9%88%DB%8C%DB%8C_%D9%81%D8%A7%DB%8C%D9%84\"><\/span>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc File \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0628\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<blockquote>\n<p><em>\u062a\u0648\u062c\u0647: \u062f\u0631 CRM\u060c \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0686\u0646\u062f\u06cc\u0646 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0647 \u0622\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0627\u0631\u0627\u06cc <strong>\u0641\u0642\u0637 \u06cc\u06a9 \u0641\u0627\u06cc\u0644<\/strong> \u062f\u0631 \u0622\u0646 \u0645\u062a\u0635\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/em><\/p>\n<\/blockquote>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>createFileOptions<\/code> \u06a9\u0647 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a <code>notes<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0631\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notes<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">options<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n    <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"nx\">note<\/span><span class=\"p\">]<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">())<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">option<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">filename<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">No File<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">};<\/span>\n        <span class=\"nx\">options<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">options<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0632 <code>IDropdownOption<\/code> \u0627\u0634\u06cc\u0627\u0621\u060c \u0628\u0627 \u0647\u0631 \u0634\u06cc\u0621 \u062d\u0627\u0648\u06cc \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062a\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 the \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u062f\u0627\u0631\u062f <code>filename<\/code> \u0641\u06cc\u0644\u062f \u0627\u0632 \u0633\u0648\u0627\u0628\u0642 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a.<\/p>\n<blockquote>\n<p><em><strong>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/strong> <code>notes<\/code>  \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 <code>parseDatasetToJSON<\/code> \u062a\u0627\u0628\u0639 \u0648 \u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062d\u0627\u0648\u06cc \u062f\u0648 \u0648\u06cc\u0698\u06af\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a <code>filename<\/code> \u0648 <code>documentbody<\/code><\/em><\/p>\n<\/blockquote>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>fileOptions<\/code> \u0645\u062a\u063a\u06cc\u0631 state\u060c \u0648 \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc Fluent UI \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0628\u06cc\u0627\u0646\u06cc\u0647 \u0628\u0627\u0632\u06af\u0634\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DetailsList<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Dropdown<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Stack<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@fluentui\/react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects <\/span>\n\n<span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">notesRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">();<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">fileOptionsRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nf\">setNotes<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n    <span class=\"nf\">setFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">fileOptionsRecords<\/span><span class=\"p\">);<\/span>\n\n<span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">]);<\/span> <span class=\"c1\">\/\/ On dataset change<\/span>\n\n<span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06a9\u062f App.tsx \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/generated\/ManifestTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DetailsList<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Dropdown<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Stack<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@fluentui\/react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">PCFControl<\/span><span class=\"p\">({<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">}<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">()<\/span> \n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">jsonData<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">recordID<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">sortedRecordIds<\/span><span class=\"p\">)<\/span> \n        <span class=\"p\">{<\/span>\n            <span class=\"c1\">\/\/ Dataset record<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">records<\/span><span class=\"p\">[<\/span><span class=\"nx\">recordID<\/span><span class=\"p\">];<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">temp<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n            <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">column<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">columns<\/span><span class=\"p\">)<\/span> \n            <span class=\"p\">{<\/span>\n                <span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">getFormattedValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">)<\/span>\n            <span class=\"p\">}<\/span>\n            <span class=\"nx\">jsonData<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">jsonData<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notes<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">options<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"nx\">note<\/span><span class=\"p\">]<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">())<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">option<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">filename<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">No File<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">}<\/span>\n            <span class=\"nx\">options<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">options<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n\n    <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n\n        <span class=\"kd\">const<\/span> <span class=\"nx\">notesRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">();<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">fileOptionsRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"nf\">setNotes<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">fileOptionsRecords<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">]);<\/span> <span class=\"c1\">\/\/ On dataset change<\/span>\n\n    <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u06a9\u0634\u0648\u06cc\u06cc \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0644\u06cc\u0633\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 <code>filename<\/code> \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627<\/p>\n<blockquote>\n<p><strong>\u0647\u0646\u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u0628\u0627 \u06af\u0641\u062a\u0646 \u062e\u0637\u0627 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f<\/strong> <em>\u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0631. \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc @typescript-eslint\/no-explicit-any \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f<\/em> ?<\/p>\n<\/blockquote>\n<p>\u062e\u0648\u0628\u060c \u0632\u06cc\u0631\u0627 \u062a\u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0627 \u062a\u0627\u06cc\u067e \u0642\u0648\u06cc \u0627\u0633\u062a \u0648 \u0627\u0632 \u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0627\u0646\u0648\u0627\u0639 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0628\u0647 \u0622\u062f\u0631\u0633 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f <code>.eslintrc.json<\/code> \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0646\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 <code>any<\/code>. \u0633\u067e\u0633 \u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"dl\">\"<\/span><span class=\"s2\">@typescript-eslint\/no-explicit-any<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">off<\/span><span class=\"dl\">\"<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>filename<\/code> \u0641\u06cc\u0644\u062f \u0627\u0632 \u0633\u0648\u0627\u0628\u0642 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f <code>filename<\/code> \u0633\u062a\u0648\u0646 \u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0631\u062c\u0639 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0641\u0627\u06cc\u0644 dataset.csv \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5j58wd1qqfplzl4tn3z4.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"156\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtos427bumefbkogskbi.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"327\" title=\"\"><\/p>\n<blockquote>\n<p><em><strong>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0633\u0628\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0645\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/strong><\/em><\/p>\n<\/blockquote>\n<p>\u062d\u0627\u0644 \u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0632 \u0645\u0646\u0648\u06cc \u0628\u0627\u0632\u0634\u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u06af\u0641\u062a\u0647 \u0634\u062f \u062f\u0631 <code>documentbody<\/code> \u0641\u06cc\u0644\u062f \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a<\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0622\u0646\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>handleSelectFile<\/code> \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0641\u0627\u06cc\u0644\u060c \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>documentbody<\/code> \u0641\u06cc\u0644\u062f\u060c \u0648 \u0633\u067e\u0633 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0631\u0634\u062a\u0647 Base64 \u0647\u0633\u062a\u0646\u062f \u0628\u0647 \u06cc\u06a9 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f <code>excelWorkbook<\/code> \u0634\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 XLSX.<\/p>\n<blockquote>\n<p><em>\u062a\u0648\u062c\u0647: <code>excelWorkbook<\/code> \u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/em><\/p>\n<\/blockquote>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">XLSX<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">xlsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">handleSelectFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">FormEvent<\/span><span class=\"o\"><span class=\"nx\">HTMLDivElement<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">option<\/span><span class=\"p\">?:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Return if no option is selected<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">note<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">key<\/span> <span class=\"k\">as<\/span> <span class=\"kr\">number<\/span><span class=\"p\">];<\/span> <span class=\"c1\">\/\/ Get note record using index<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">base64Data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">documentbody<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Get file data of that note record<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">workbook<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nf\">read<\/span><span class=\"p\">(<\/span><span class=\"nx\">base64Data<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">base64<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">cellDates<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">});<\/span> <span class=\"c1\">\/\/ Converts base64 data to excel workbook object<\/span>\n    <span class=\"nf\">setExcelWorkbook<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setExcelWorkbook<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">book_new<\/span><span class=\"p\">());<\/span> <span class=\"c1\">\/\/ Excel workbook object<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>onChange<\/code> \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0634\u0648\u06cc\u06cc\u060c \u06a9\u0647 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u0641\u0627\u06cc\u0644\u06cc \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u0648\u062f\u060c \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u060c \u0627\u0628\u062a\u062f\u0627 \u0633\u062a\u0648\u0646\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 <code>documentbody<\/code> \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0646\u0645\u0648\u0646\u0647 \u0645\u0627 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 base64 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0631\u0634\u062a\u0647 base64 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<blockquote>\n<p><em>\u062a\u0648\u062c\u0647: <code>documentbody<\/code> \u0645\u0642\u062f\u0627\u0631 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0645\u0627 \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0645\u06cc \u0634\u0648\u062f<\/em><\/p>\n<\/blockquote>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0633\u0644\u0648\u0644 F2 \u062d\u0627\u0648\u06cc \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 base64 \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhe1zzbgt3etm6g3ds3z.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"131\" title=\"\"><\/p>\n<p>\u062d\u0627\u0644\u0627 \u0648\u0642\u062a\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc \u0633\u0627\u0632\u06cc\u0645 \u0648 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <strong>Sales.xlsx<\/strong>\u060c \u0622\u0646 \u0641\u0627\u06cc\u0644 <code>documentbody<\/code> \u0645\u0642\u062f\u0627\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u0634\u06cc\u0621 \u0627\u06a9\u0633\u0644 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u06a9\u0646\u0633\u0648\u0644 \u0648\u0627\u0631\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17n7zjj9c16tj67ml0t2.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"284\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D8%A8%D8%B1%DA%AF%D9%87_%DA%A9%D8%B4%D9%88%DB%8C%DB%8C\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u0627 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06a9\u0647 \u0645\u0648\u0641\u0642 \u0628\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a <code>excelWorkbook<\/code> \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062f\u0631 \u06a9\u062f \u0645\u0627 \u0634\u06cc\u0621 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f. \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u062a\u0645\u0627\u0645 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u0628\u0631\u06af\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062f\u0627\u062e\u0644 \u0645\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f <code>excelWorkbook<\/code> \u0634\u06cc \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627 \u0631\u062f\u06cc\u0641 \u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0628\u0647 \u0641\u0631\u0645\u062a \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u06cc\u0645. <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>createSheetOptions<\/code> \u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0646 \u062a\u062c\u0632\u06cc\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f <code>workbook<\/code> \u0634\u06cc \u0648 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u062d\u0627\u0648\u06cc \u0646\u0627\u0645 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0634\u0627\u0628\u0647 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">createSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">:<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">options<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n    <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"nx\">sheetName<\/span><span class=\"p\">]<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">workbook<\/span><span class=\"p\">.<\/span><span class=\"nx\">SheetNames<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">())<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">option<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"nx\">sheetName<\/span> <span class=\"p\">};<\/span>\n        <span class=\"nx\">options<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">options<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>sheetOptions<\/code> \u0645\u062a\u063a\u06cc\u0631\u060c \u0648 \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 a \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f <code>Dropdown<\/code> \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u06cc\u0627\u062f\u0634 \u0628\u062e\u06cc\u0631 \u062f\u0627\u0634\u062a\u06cc\u0645 \u0632\u0646\u06af \u0645\u06cc\u0632\u062f\u06cc\u0645 <code>createFileOptions<\/code> \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0627 \u0627\u0632 \u0631\u0648\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f <code>useEffect<\/code> \u062a\u0627\u0628\u0639 \u062d\u0627\u0644\u0627 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u06cc\u062f \u0628\u0627 \u0622\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u0645 <code>createSheetOptions<\/code> ?<\/p>\n<p>\u062f\u0631\u0633\u062a\u0647! \u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u062d\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u060c \u06cc\u0639\u0646\u06cc \u062f\u0627\u062e\u0644\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u0648\u062f <code>handleSelectFile<\/code> \u062a\u0627\u0628\u0639 \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f\u060c \u0645\u0627 <code>sheetOptions<\/code> \u0628\u0631 \u0627\u0633\u0627\u0633 \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 <code>handleSelectFile<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0647\u0645\u0627\u0646\u060c<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">handleSelectFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">FormEvent<\/span><span class=\"o\"><span class=\"nx\">HTMLDivElement<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">option<\/span><span class=\"p\">?:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Return if no option is selected<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">note<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">key<\/span> <span class=\"k\">as<\/span> <span class=\"kr\">number<\/span><span class=\"p\">];<\/span> <span class=\"c1\">\/\/ Get note record using index<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">base64Data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">documentbody<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Get file data<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">workbook<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nf\">read<\/span><span class=\"p\">(<\/span><span class=\"nx\">base64Data<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">base64<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">cellDates<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">});<\/span> <span class=\"c1\">\/\/ Converts base64 data to excel workbook object<\/span>\n    <span class=\"nf\">setExcelWorkbook<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">sheetOptionsRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n    <span class=\"nf\">setSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">sheetOptionsRecords<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setExcelWorkbook<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">book_new<\/span><span class=\"p\">());<\/span> <span class=\"c1\">\/\/ Excel workbook object<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setSheetOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0634\u0648\u06cc\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 \u0639\u0628\u0627\u0631\u062a \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f <code>sheetOptions<\/code> \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">horizontal<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select Sheet<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">notes<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0628\u0631\u06af\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0634\u0648\u06cc\u06cc \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u06cc\u0645\u060c \u0628\u0631\u0627\u06cc \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647\u200c\u0627\u06cc \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u060c \u0631\u062f\u06cc\u0641\u200c\u0647\u0627\/\u0633\u0648\u0627\u0628\u0642 \u0628\u0631\u06af\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u0646\u062f. <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0622\u0646\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>handleSelectSheet<\/code> \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0631\u06af\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0627\u0632 <code>excelWorkbook<\/code> \u0634\u06cc \u062f\u0631 \u06a9\u062f \u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0622\u0646 \u0631\u06a9\u0648\u0631\u062f\/\u0631\u062f\u06cc\u0641 \u0628\u0631\u06af\u0647 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0633\u067e\u0633 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc json \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u062d\u0627\u0644\u062a \u0628\u0647 \u0646\u0627\u0645 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>rows<\/code> \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0634\u0648\u062f <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">handleSelectSheet<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">FormEvent<\/span><span class=\"o\"><span class=\"nx\">HTMLDivElement<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">option<\/span><span class=\"p\">?:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Return if no option is selected<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">sheet<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">excelWorkbook<\/span><span class=\"p\">.<\/span><span class=\"nx\">Sheets<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span> <span class=\"k\">as<\/span> <span class=\"kr\">string<\/span><span class=\"p\">];<\/span> <span class=\"c1\">\/\/ Get sheet record using SheetName<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">rowRecords<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">sheet_to_json<\/span><span class=\"p\">(<\/span><span class=\"nx\">sheet<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"na\">raw<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">});<\/span> <span class=\"c1\">\/\/ Sheet Records in JSON Array<\/span>\n    <span class=\"nf\">setRows<\/span><span class=\"p\">(<\/span><span class=\"nx\">rowRecords<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setExcelWorkbook<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">book_new<\/span><span class=\"p\">());<\/span> <span class=\"c1\">\/\/ Excel workbook object<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setSheetOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n<span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">rows<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setRows<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>onChange<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0628\u0631\u06af\u0647 \u06a9\u0634\u0648\u06cc\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0628\u0631\u06af\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>items<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc \u0627\u0632 <code>DetailsList<\/code> \u06a9\u0646\u062a\u0631\u0644 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>rows<\/code> \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0633\u0648\u0627\u0628\u0642 \u0628\u0631\u06af\u0647 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0645\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">horizontal<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select Sheet<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectSheet<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">rows<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%AF%DA%A9%D9%85%D9%87_%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF\"><\/span>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u062c\u0644\u0648 \u0628\u0631\u0648\u06cc\u0645 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u0642\u0633\u0645\u062a \u0646\u0647\u0627\u06cc\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645\u060c \u06cc\u0639\u0646\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644.<\/p>\n<p>\u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u062f\u060c \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u06a9\u0646\u062f (\u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u062f\u0631 <code>excelWorkbook<\/code> \u0634\u06cc) \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0627\u0631\u0628\u0631.<\/p>\n<p>\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 <code>XLSX.writeFile()<\/code> \u0631\u0648\u0634 \u0628\u0631 \u0631\u0648\u06cc <code>onClick<\/code> \u06a9\u0646\u062a\u0631\u0644 \u062f\u06a9\u0645\u0647 \u0627\u06cc\u0646 \u0645\u062a\u062f \u0634\u06cc\u0621 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0627\u0648\u0644 \u0648 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f \u0634\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0648\u0645 \u062f\u0631 \u0646\u0638\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>PrimaryButton<\/code> \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0633\u0627\u06cc\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0627\u0628\u0639\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f <code>handleDownload<\/code> \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>onClick<\/code> \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u06a9\u0645\u0647<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">handleDownload<\/span><span class=\"p\">()<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">download.xlsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">horizontal<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select Sheet<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectSheet<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">PrimaryButton<\/span> <span class=\"nx\">text<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Download<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">allowDisabledFocus<\/span> <span class=\"nx\">onClick<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleDownload<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">rows<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644 \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0634\u0645\u0627 <code>App.tsx<\/code> \u06a9\u062f \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">React<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/generated\/ManifestTypes<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DetailsList<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DetailsListLayoutMode<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Dropdown<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">,<\/span> <span class=\"nx\">PrimaryButton<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Stack<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@fluentui\/react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">XLSX<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">xlsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">text<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">stream\/consumers<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">PCFControl<\/span><span class=\"p\">({<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">}<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">()<\/span> \n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">jsonData<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">recordID<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">sortedRecordIds<\/span><span class=\"p\">)<\/span> \n        <span class=\"p\">{<\/span>\n            <span class=\"c1\">\/\/ Dataset record<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">records<\/span><span class=\"p\">[<\/span><span class=\"nx\">recordID<\/span><span class=\"p\">];<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">temp<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n            <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">column<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">columns<\/span><span class=\"p\">)<\/span> \n            <span class=\"p\">{<\/span>\n                <span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">getFormattedValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">)<\/span>\n            <span class=\"p\">}<\/span>\n            <span class=\"nx\">jsonData<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">jsonData<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notes<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">options<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"nx\">note<\/span><span class=\"p\">]<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">())<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">option<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">filename<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">No File<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">};<\/span>\n            <span class=\"nx\">options<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">options<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">createSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">:<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">options<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n        <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"nx\">sheetName<\/span><span class=\"p\">]<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">workbook<\/span><span class=\"p\">.<\/span><span class=\"nx\">SheetNames<\/span><span class=\"p\">.<\/span><span class=\"nf\">entries<\/span><span class=\"p\">())<\/span>\n        <span class=\"p\">{<\/span>\n            <span class=\"kd\">const<\/span> <span class=\"nx\">option<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">key<\/span><span class=\"p\">:<\/span> <span class=\"nx\">index<\/span><span class=\"p\">,<\/span> <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"nx\">sheetName<\/span> <span class=\"p\">};<\/span>\n            <span class=\"nx\">options<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nx\">options<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">handleSelectFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">FormEvent<\/span><span class=\"o\"><span class=\"nx\">HTMLDivElement<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">option<\/span><span class=\"p\">?:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Return if no option is selected<\/span>\n\n        <span class=\"kd\">const<\/span> <span class=\"nx\">note<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">notes<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">key<\/span> <span class=\"k\">as<\/span> <span class=\"kr\">number<\/span><span class=\"p\">];<\/span> <span class=\"c1\">\/\/ Get note record using index<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">base64Data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">note<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">documentbody<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Get file data<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">workbook<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nf\">read<\/span><span class=\"p\">(<\/span><span class=\"nx\">base64Data<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">base64<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">cellDates<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">});<\/span> <span class=\"c1\">\/\/ Converts base64 data to excel workbook object<\/span>\n        <span class=\"nf\">setExcelWorkbook<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"kd\">const<\/span> <span class=\"nx\">sheetOptionsRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">workbook<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setSheetOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">sheetOptionsRecords<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">handleSelectSheet<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">FormEvent<\/span><span class=\"o\"><span class=\"nx\">HTMLDivElement<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">option<\/span><span class=\"p\">?:<\/span> <span class=\"nx\">IDropdownOption<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">option<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"k\">return<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Return if no option is selected<\/span>\n\n        <span class=\"kd\">const<\/span> <span class=\"nx\">sheet<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">excelWorkbook<\/span><span class=\"p\">.<\/span><span class=\"nx\">Sheets<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">text<\/span> <span class=\"k\">as<\/span> <span class=\"kr\">string<\/span><span class=\"p\">];<\/span> <span class=\"c1\">\/\/ Get sheet record using SheetName<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">rowRecords<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">sheet_to_json<\/span><span class=\"p\">(<\/span><span class=\"nx\">sheet<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span><span class=\"na\">raw<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">});<\/span> <span class=\"c1\">\/\/ Sheet Records in JSON Array<\/span>\n        <span class=\"nf\">setRows<\/span><span class=\"p\">(<\/span><span class=\"nx\">rowRecords<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">function<\/span> <span class=\"nf\">handleDownload<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">download.xlsx<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">notes<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNotes<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setFileOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">excelWorkbook<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setExcelWorkbook<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">WorkBook<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">XLSX<\/span><span class=\"p\">.<\/span><span class=\"nx\">utils<\/span><span class=\"p\">.<\/span><span class=\"nf\">book_new<\/span><span class=\"p\">());<\/span> <span class=\"c1\">\/\/ Excel workbook object<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setSheetOptions<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nx\">IDropdownOption<\/span><span class=\"p\">[]<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of IDropdownOption objects<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">rows<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setRows<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\"><span class=\"nb\">Array<\/span><span class=\"o\"><span class=\"nb\">Record<\/span><span class=\"o\"><span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"kr\">any<\/span><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"p\">([]);<\/span> <span class=\"c1\">\/\/ Array of JSON objects<\/span>\n\n    <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">notesRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseDatasetToJSON<\/span><span class=\"p\">();<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">fileOptionsRecords<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">createFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"nf\">setNotes<\/span><span class=\"p\">(<\/span><span class=\"nx\">notesRecords<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setFileOptions<\/span><span class=\"p\">(<\/span><span class=\"nx\">fileOptionsRecords<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">]);<\/span> <span class=\"c1\">\/\/ On dataset change<\/span>\n\n    <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">horizontal<\/span><span class=\"o\">&gt;<\/span>\n                <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>                <span class=\"o\"><span class=\"nx\">Dropdown<\/span> <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select Sheet<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">}<\/span> <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectSheet<\/span><span class=\"p\">}<\/span> <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>                <span class=\"o\"><span class=\"nx\">PrimaryButton<\/span> <span class=\"nx\">text<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Download<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">allowDisabledFocus<\/span> <span class=\"nx\">onClick<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleDownload<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">DetailsList<\/span> <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">rows<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0648\u0642\u062a\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f\u060c \u062f\u0631 \u0645\u0646\u0648\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u060c \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0641\u0647\u0631\u0633\u062a \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f <code>filename<\/code> \u0633\u062a\u0648\u0646 (<em>\u0627\u06cc\u0646 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a<\/em>).<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u06a9\u062f <code>documentbody<\/code> \u0627\u0631\u0632\u0634 (<em>\u0627\u06cc\u0646 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0631\u06a9\u0648\u0631\u062f \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 CRM \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a<\/em>) \u0627\u0632 \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u06cc\u06a9 \u06a9\u062a\u0627\u0628 \u06a9\u0627\u0631 \u0627\u06a9\u0633\u0644 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u0622\u0646 \u062f\u0631 \u0628\u0631\u06af\u0647\u200c\u0647\u0627\u06cc \u06a9\u0634\u0648\u06cc\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u06a9 \u0634\u06cc\u062a\u060c \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0622\u0646 \u0634\u06cc\u062a \u0628\u0647 \u0622\u0631\u0627\u06cc\u0647 json \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<blockquote>\n<p><em>\u062a\u0648\u062c\u0647: \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0631\u0634\u062a\u0647 base64 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<\/blockquote>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0631\u062c\u0639\u060c \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u060c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxwe4l382tdj93hbpm9o.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"500\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6l54xiyak23phwf2p5i2.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"333\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DB%8C%DA%A9_%D8%B8%D8%A7%D9%87%D8%B1_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%B1%D8%A7_%D8%A8%D9%87_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D9%87%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0637\u0631\u0627\u062d\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06a9\u0627\u0631 \u0639\u0627\u0644\u06cc \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0631 \u0622\u0645\u0648\u0632\u0634\u2026<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 PCF \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647\u062a\u0631\u060c \u0633\u0628\u06a9\u06cc \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>ControlStyles.tsx<\/code> \u062f\u0631 \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0633\u0628\u06a9 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"cm\">\/* ControlStyles.tsx *\/<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">IStackTokens<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IStackStyles<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IDetailsListStyles<\/span><span class=\"p\">,<\/span> <span class=\"nx\">IDropdownStyles<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@fluentui\/react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">stackTokens<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IStackTokens<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> \n    <span class=\"na\">childrenGap<\/span><span class=\"p\">:<\/span> <span class=\"mi\">10<\/span> \n<span class=\"p\">};<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">stackStyles<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IStackStyles<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">root<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">padding<\/span><span class=\"p\">:<\/span> <span class=\"mi\">10<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">100%<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">marginBottom<\/span><span class=\"p\">:<\/span> <span class=\"mi\">20<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">detailsListStyles<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IDetailsListStyles<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">root<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">overflowX<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">auto<\/span><span class=\"dl\">'<\/span>\n    <span class=\"p\">},<\/span> \n    <span class=\"na\">contentWrapper<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">overflowY<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">auto<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> \n        <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">max-content<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> \n        <span class=\"na\">height<\/span><span class=\"p\">:<\/span> <span class=\"mi\">450<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">focusZone<\/span> <span class=\"p\">:<\/span> <span class=\"p\">{},<\/span>\n    <span class=\"na\">headerWrapper<\/span><span class=\"p\">:<\/span> <span class=\"p\">{}<\/span> \n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">dropDownStyles<\/span> <span class=\"p\">:<\/span> <span class=\"nb\">Partial<\/span><span class=\"o\"><span class=\"nx\">IDropdownStyles<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">root<\/span> <span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">auto<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> \n        <span class=\"na\">minWidth<\/span><span class=\"p\">:<\/span> <span class=\"mi\">200<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0633\u0628\u06a9 \u0631\u0627 \u062f\u0631 \u0627\u0635\u0644\u06cc \u0645\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f <code>App.tsx<\/code> \u0641\u0627\u06cc\u0644 \u0648 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc Fluent UI \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span><span class=\"nx\">stackTokens<\/span><span class=\"p\">,<\/span> <span class=\"nx\">stackStyles<\/span><span class=\"p\">,<\/span> <span class=\"nx\">detailsListStyles<\/span><span class=\"p\">,<\/span> <span class=\"nx\">dropDownStyles<\/span><span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/ControlStyles<\/span><span class=\"dl\">'<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">tokens<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">stackTokens<\/span><span class=\"p\">}<\/span> <span class=\"nx\">styles<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">stackStyles<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span>\n        <span class=\"o\"><span class=\"nx\">Stack<\/span> <span class=\"nx\">horizontal<\/span> <span class=\"nx\">tokens<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">stackTokens<\/span><span class=\"p\">}<\/span> <span class=\"nx\">styles<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">stackStyles<\/span><span class=\"p\">}<\/span><span class=\"o\">&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> \n                <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select File<\/span><span class=\"dl\">\"<\/span> \n                <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">fileOptions<\/span><span class=\"p\">}<\/span> \n                <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectFile<\/span><span class=\"p\">}<\/span> \n                <span class=\"nx\">styles<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">dropDownStyles<\/span><span class=\"p\">}<\/span>\n            <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>            <span class=\"o\"><span class=\"nx\">Dropdown<\/span> \n                <span class=\"nx\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Select Sheet<\/span><span class=\"dl\">\"<\/span> \n                <span class=\"nx\">options<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">sheetOptions<\/span><span class=\"p\">}<\/span> \n                <span class=\"nx\">onChange<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleSelectSheet<\/span><span class=\"p\">}<\/span> \n                <span class=\"nx\">styles<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">dropDownStyles<\/span><span class=\"p\">}<\/span>\n                <span class=\"nx\">defaultSelectedKey<\/span><span class=\"o\">=<\/span><span class=\"dl\">'<\/span><span class=\"s1\">0<\/span><span class=\"dl\">'<\/span> \n            <span class=\"o\">\/&gt;<\/span>\n            <span class=\"o\"><span class=\"nx\">PrimaryButton<\/span> <span class=\"nx\">text<\/span><span class=\"o\">=<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Download<\/span><span class=\"dl\">\"<\/span> <span class=\"nx\">allowDisabledFocus<\/span> <span class=\"nx\">onClick<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">handleDownload<\/span><span class=\"p\">}<\/span><span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span>        <span class=\"o\"><span class=\"nx\">DetailsList<\/span> \n            <span class=\"nx\">items<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">rows<\/span><span class=\"p\">}<\/span> \n            <span class=\"nx\">styles<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">detailsListStyles<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">data<\/span><span class=\"o\">-<\/span><span class=\"k\">is<\/span><span class=\"o\">-<\/span><span class=\"nx\">scrollable<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"kc\">false<\/span><span class=\"p\">}<\/span>\n            <span class=\"nx\">layoutMode<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"nx\">DetailsListLayoutMode<\/span><span class=\"p\">.<\/span><span class=\"nx\">fixedColumns<\/span><span class=\"p\">}<\/span>\n        <span class=\"sr\">\/<\/span><span class=\"err\">&gt;\n<\/span>    <span class=\"o\"><span class=\"sr\">\/Stack<\/span><span class=\"err\">&gt;\n<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0646\u062a\u0631\u0644 PCF \u0627\u0633\u062a\u0627\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0639\u0645\u0644 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4c6zf1feb63x0z0rxolm.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"327\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AC%D9%85%D8%B9_%D8%A8%D9%86%D8%AF%DB%8C_%D9%86%D9%87%D8%A7%DB%8C%DB%8C\"><\/span>\n<p>  \u062c\u0645\u0639 \u0628\u0646\u062f\u06cc \u0646\u0647\u0627\u06cc\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0622\u0646 \u0634\u0628\u06a9\u0647 \u0645\u0634\u062a\u0631\u06a9 \u0645\u06cc \u0634\u0648\u062f. \u0641\u06cc\u0644\u062f\u0647\u0627 \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0628\u0647 \u0622\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u06cc\u0648\u0647\u200c\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0634\u062f\u0647 \u0627\u0631\u0627\u0626\u0647 \u06cc\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u062e\u06cc \u0627\u0632 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0645\u0627\u0646\u0646\u062f <code>documentbody<\/code> \u062f\u0631 <code>note<\/code> \u0645\u0648\u062c\u0648\u062f\u06cc\u062a \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0628\u0627\u06cc\u0646\u0631\u06cc \u0627\u0633\u062a \u0648 Dynamics CRM \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0627\u062c\u0627\u0632\u0647 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0628\u0627\u06cc\u0646\u0631\u06cc \u062f\u0631 \u0646\u0645\u0627\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 <code>documentbody<\/code> \u0648 <code>filename<\/code> \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0622\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 <code>sampleDataSet<\/code> \u0627\u0645\u0648\u0627\u0644 \u0627\u0632 <code>updateView<\/code> \u0631\u0648\u0634 \u062f\u0631 <code>index.ts<\/code> \u0641\u0627\u06cc\u0644<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">public<\/span> <span class=\"nf\">updateView<\/span><span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ComponentFramework<\/span><span class=\"p\">.<\/span><span class=\"nx\">Context<\/span><span class=\"o\"><span class=\"nx\">IInputs<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">):<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ReactElement<\/span> \n<span class=\"p\">{<\/span>\n\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nx\">addColumn<\/span><span class=\"p\">)<\/span> \n    <span class=\"p\">{<\/span>\n        <span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nf\">addColumn<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">documentbody<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nf\">addColumn<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">filename<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span><span class=\"p\">.<\/span><span class=\"nf\">refresh<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"kd\">const<\/span> <span class=\"nx\">props<\/span><span class=\"p\">:<\/span> <span class=\"nx\">IInputs<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">sampleDataSet<\/span><span class=\"p\">:<\/span> <span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">parameters<\/span><span class=\"p\">.<\/span><span class=\"nx\">sampleDataSet<\/span> <span class=\"p\">};<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nf\">createElement<\/span><span class=\"p\">(<\/span><span class=\"nx\">PCFControl<\/span><span class=\"p\">,<\/span> <span class=\"nx\">props<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_PCF\"><\/span>\n<p>  \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u062a\u0631\u0644 PCF<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 Power Apps \u062f\u0631 \u0639\u0645\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u062a\u0631\u0644 PCF \u062e\u0648\u062f \u062f\u0631 \u0645\u062d\u06cc\u0637 Power Apps\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">npm run build\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0628\u0627 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0642\u062f\u0631\u062a \u062e\u0648\u062f \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f\u060c\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">pac auth create --environment \"{Your Environment Name}\"\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f\u060c\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight console\"><code><span class=\"go\">pac pcf push\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632\u060c \u0628\u0647 make.powerapps.com \u0628\u0631\u0648\u06cc\u062f:<\/p>\n<ul>\n<li>\n<p><strong>\u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/strong>: \u0645\u062d\u06cc\u0637\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u0647 \u0631\u0627\u0647 \u062d\u0644 \u0647\u0627 \u0628\u0631\u0648\u06cc\u062f:<\/strong> \u0628\u0647 Solutions > Default Solution > Custom Controls \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/strong> \u06a9\u0646\u062a\u0631\u0644 PCF \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0644\u06cc\u0633\u062a \u0638\u0627\u0647\u0631 \u0634\u0648\u062f.<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnis8toscxdf0b6eewlz.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"131\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AF%D8%B1_Grid\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 Grid<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0634\u0628\u06a9\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627 \u062f\u0631 \u0641\u0631\u0645 \u062c\u062f\u0648\u0644 \u062d\u0633\u0627\u0628 \u0636\u0645\u06cc\u0645\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<blockquote>\n<p><em>\u062a\u0648\u062c\u0647: \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0641\u0631\u0645 \u0645\u0648\u062c\u0648\u062f\u06cc \u06a9\u0647 \u0641\u0639\u0627\u0644 \u0628\u0627\u0634\u062f \u062a\u0627 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0622\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0634\u0648\u062f\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<\/blockquote>\n<ul>\n<li>\u062c\u062f\u0648\u0644 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 \u0632\u06cc\u0631\u0634\u0628\u06a9\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkx9yiao7bfe6nayazh8.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"327\" title=\"\"><\/p>\n<ul>\n<li>\u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0646\u0645\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u062f\u0631 \u0646\u0645\u0627\u06cc\u060c \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0641\u0642\u0637 \u0622\u0646 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0628\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0645\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u06cc\u0648\u0633\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F941xhn1n6z4j5panb8ym.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"308\" title=\"\"><\/p>\n<ul>\n<li>\u0633\u067e\u0633 \u0628\u0647 <code>Get More Components<\/code> \u0648 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f <code>ReactDatasetControl<\/code> \u06a9\u0647 \u0628\u0647 \u062a\u0627\u0632\u06af\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0644\u06cc\u0633\u062a \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645.<\/li>\n<li>\u0622\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0631\u0627 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0641\u0631\u0645 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8y499n61g3vorqd4qqr.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"372\" title=\"\"><\/p>\n<ul>\n<li>\u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u062d\u0633\u0627\u0628\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc\u06cc \u0628\u0627 \u067e\u06cc\u0648\u0633\u062a \u0647\u0627\u06cc \u0627\u06a9\u0633\u0644 \u0627\u0633\u062a \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4701r96fs3704x0v5r15.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"720\" height=\"378\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86\"><\/span>\n<p>  \u0628\u0633\u062a\u0647 \u0634\u062f\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u0628\u0631\u06cc\u06a9 \u0645\u06cc \u06af\u0648\u06cc\u0645! \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 PCF \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647:<\/p>\n<ul>\n<li>\n<p>\u0646\u0645\u0627\u06cc\u0634 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0648\u0633\u062a \u0627\u06a9\u0633\u0644 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u062f\u0644\u060c<\/p>\n<\/li>\n<li>\n<p>\u0647\u0631 \u0628\u0631\u06af\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0627\u06a9\u0633\u0644 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f\u060c<\/p>\n<\/li>\n<li>\n<p>\u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u0648\u0646 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc Fluent UI React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc Dynamics \u0645\u062f\u0631\u0646 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u06a9\u0627\u0631 \u062e\u0648\u0628! \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0627\u062d\u0633\u0627\u0633 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631\u06a9 \u0645\u0646\u0627\u0633\u0628\u06cc \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u200c\u0647\u0627\u06cc React \u0648 PCF \u062f\u0631 \u062f\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644\u06cc React \u0648 PCF \u062e\u0648\u062f \u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062a\u0642\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u06cc\u062f\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u0646\u062a\u0631\u0644 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:<\/p>\n<ol>\n<li>\u0645\u0646\u0637\u0642 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0628\u0627\u0634\u062f.<\/li>\n<li>\u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc\u060c \u0641\u06cc\u0644\u062a\u0631 \u0648 \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u062f\u0631 \u06a9\u0646\u062a\u0631\u0644 \u06af\u0631\u06cc\u062f DetailsList \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0646\u0648\u0627\u0639 \u062f\u06cc\u06af\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0645\u0627\u0646\u0646\u062f txt\u060c pdf\u060c docx \u0648 \u063a\u06cc\u0631\u0647\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc CRUD \u0631\u0627 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0627\u06cc\u0631 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u0627\u0644\u0628\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f \u06cc\u0627 \u062a\u0631\u062f\u06cc\u062f\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0628\u062e\u0634 \u0646\u0638\u0631\u0627\u062a \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062e\u0632\u0646 GitHub \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9\u2026<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0627\u062f\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc PCF \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 React \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a Dynamics CRM \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f. \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u062a\u0631\u06cc \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0627\u06cc PCF \u062f\u0631 Dynamics CRM \u0645\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":74615,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-74614","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/74614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=74614"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/74614\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/74615"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=74614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=74614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=74614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}