একটি প্রশ্ন আইটেম যা উত্তরদাতাকে এক বা একাধিক চেকবক্স নির্বাচন করতে দেয়, সেইসাথে একটি ঐচ্ছিক "অন্যান্য" ক্ষেত্র। আইটেমগুলি একটি Form
থেকে অ্যাক্সেস বা তৈরি করা যেতে পারে। একটি কুইজে ব্যবহার করা হলে, এই আইটেমগুলি স্বয়ংক্রিয়ভাবে গ্রেড করা হয়।
// Open a form by ID and add a new checkbox item. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var item = form.addCheckboxItem(); item.setTitle('What condiments would you like on your hot dog?') .setChoices([ item.createChoice('Ketchup'), item.createChoice('Mustard'), item.createChoice('Relish') ]) .showOtherOption(true);
পদ্ধতি
পদ্ধতি | রিটার্ন টাইপ | সংক্ষিপ্ত বিবরণ |
---|---|---|
clearValidation() | CheckboxItem | এই চেকবক্স আইটেমের জন্য যেকোন ডেটা যাচাইকরণ মুছে দেয়। |
createChoice(value) | Choice | একটি নতুন পছন্দ তৈরি করে। |
createChoice(value, isCorrect) | Choice | একটি নতুন পছন্দ তৈরি করে। |
createResponse(responses) | ItemResponse | এই চেকবক্স আইটেমের জন্য একটি নতুন ItemResponse তৈরি করে। |
duplicate() | CheckboxItem | এই আইটেমটির একটি অনুলিপি তৈরি করে এবং ফর্মের শেষে এটি যুক্ত করে। |
getChoices() | Choice[] | একটি আইটেম জন্য সব পছন্দ পায়. |
getFeedbackForCorrect() | QuizFeedback | প্রতিক্রিয়া প্রদান করে যা উত্তরদাতাদের দেখানো হয় যখন তারা একটি প্রশ্নের সঠিকভাবে উত্তর দেয়। |
getFeedbackForIncorrect() | QuizFeedback | প্রতিক্রিয়া প্রদান করে যা উত্তরদাতাদের দেখানো হয় যখন তারা একটি প্রশ্নের ভুলভাবে উত্তর দেয়। |
getHelpText() | String | আইটেমের সহায়তা পাঠ্য পায় (কখনও কখনও ImageItems , PageBreakItems , এবং SectionHeaderItems এর মতো লেআউট আইটেমগুলির জন্য বর্ণনা পাঠ্য বলা হয়)। |
getId() | Integer | আইটেমের অনন্য শনাক্তকারী পায়। |
getIndex() | Integer | ফর্মের সমস্ত আইটেমের মধ্যে আইটেমের সূচী পায়। |
getPoints() | Integer | গ্রেডযোগ্য আইটেমের পয়েন্ট মান প্রদান করে। |
getTitle() | String | আইটেমের শিরোনাম পায় (কখনও কখনও হেডার টেক্সট বলা হয়, একটি SectionHeaderItem এর ক্ষেত্রে)। |
getType() | ItemType | আইটেমটির ধরন পায়, একটি ItemType হিসাবে উপস্থাপিত হয়। |
hasOtherOption() | Boolean | আইটেমটির একটি "অন্য" বিকল্প আছে কিনা তা নির্ধারণ করে। |
isRequired() | Boolean | উত্তরদাতাকে অবশ্যই প্রশ্নের উত্তর দিতে হবে কিনা তা নির্ধারণ করে। |
setChoiceValues(values) | CheckboxItem | স্ট্রিংগুলির একটি অ্যারের থেকে একটি আইটেমের জন্য পছন্দগুলি সেট করে৷ |
setChoices(choices) | CheckboxItem | একটি আইটেমের জন্য পছন্দের একটি অ্যারে সেট করে। |
setFeedbackForCorrect(feedback) | CheckboxItem | উত্তরদাতারা যখন একটি প্রশ্নের সঠিকভাবে উত্তর দেয় তখন তাদের দেখানো প্রতিক্রিয়া সেট করে। |
setFeedbackForIncorrect(feedback) | CheckboxItem | উত্তরদাতারা যখন একটি প্রশ্নের ভুলভাবে উত্তর দেয় তখন তাদের দেখানো প্রতিক্রিয়া সেট করে। |
setHelpText(text) | CheckboxItem | আইটেমটির সহায়তা পাঠ্য সেট করে (কখনও কখনও ImageItems , PageBreakItems এবং SectionHeaderItems আইটেমগুলির মতো লেআউট আইটেমের জন্য বর্ণনা পাঠ্য বলা হয়)। |
setPoints(points) | CheckboxItem | একটি গ্রেডযোগ্য আইটেমের মূল্যের পয়েন্টের সংখ্যা সেট করে। |
setRequired(enabled) | CheckboxItem | উত্তরদাতাকে প্রশ্নের উত্তর দিতে হবে কিনা তা সেট করে। |
setTitle(title) | CheckboxItem | আইটেমের শিরোনাম সেট করে (কখনও কখনও হেডার টেক্সট বলা হয়, একটি SectionHeaderItem এর ক্ষেত্রে)। |
setValidation(validation) | CheckboxItem | এই চেকবক্স আইটেমের জন্য ডেটা যাচাইকরণ সেট করে। |
showOtherOption(enabled) | CheckboxItem | আইটেমটিতে একটি "অন্য" বিকল্প আছে কিনা তা সেট করে। |
বিস্তারিত ডকুমেন্টেশন
clearValidation()
এই চেকবক্স আইটেমের জন্য যেকোন ডেটা যাচাইকরণ মুছে দেয়।
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createChoice(value)
একটি নতুন পছন্দ তৈরি করে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
value | String | পছন্দের মান, যা উত্তরদাতারা ফর্মটি দেখার সময় একটি লেবেল হিসাবে দেখে |
প্রত্যাবর্তন
Choice
- নতুন পছন্দ
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createChoice(value, isCorrect)
একটি নতুন পছন্দ তৈরি করে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
value | String | পছন্দের মান, যা উত্তরদাতারা ফর্মটি দেখার সময় একটি লেবেল হিসাবে দেখে |
isCorrect | Boolean | পছন্দ একটি সঠিক উত্তর কিনা |
প্রত্যাবর্তন
Choice
- নতুন পছন্দ
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createResponse(responses)
এই চেকবক্স আইটেমের জন্য একটি নতুন ItemResponse
তৈরি করে। আর্গুমেন্ট responses
হল একটি String[]
অ্যারে যাতে মান রয়েছে যা চেক করা দরকার। যদি showOtherOption(enabled)
true
তে সেট করা না থাকে তবে এই আইটেমের জন্য কোনো মান একটি বৈধ পছন্দের সাথে মেলে না হলে একটি ব্যতিক্রম থ্রো করে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
responses | String[] | এই বহু-পছন্দের আইটেমের জন্য বৈধ উত্তরগুলির একটি অ্যারে |
প্রত্যাবর্তন
ItemResponse
- আইটেমের প্রতিক্রিয়া
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
duplicate()
এই আইটেমটির একটি অনুলিপি তৈরি করে এবং ফর্মের শেষে এটি যুক্ত করে।
প্রত্যাবর্তন
CheckboxItem
— চেইন করার জন্য এই CheckboxItem
একটি সদৃশ
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getChoices()
getFeedbackForCorrect()
প্রতিক্রিয়া প্রদান করে যা উত্তরদাতাদের দেখানো হয় যখন তারা একটি প্রশ্নের সঠিকভাবে উত্তর দেয়।
প্রত্যাবর্তন
QuizFeedback
— প্রতিক্রিয়া, যদি থাকে।
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getFeedbackForIncorrect()
প্রতিক্রিয়া প্রদান করে যা উত্তরদাতাদের দেখানো হয় যখন তারা একটি প্রশ্নের ভুলভাবে উত্তর দেয়।
প্রত্যাবর্তন
QuizFeedback
— প্রতিক্রিয়া, যদি থাকে।
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getHelpText()
আইটেমের সহায়তা পাঠ্য পায় (কখনও কখনও ImageItems
, PageBreakItems
, এবং SectionHeaderItems
এর মতো লেআউট আইটেমগুলির জন্য বর্ণনা পাঠ্য বলা হয়)।
প্রত্যাবর্তন
String
- আইটেমের সাহায্য পাঠ্য বা বিবরণ পাঠ্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getId()
আইটেমের অনন্য শনাক্তকারী পায়।
প্রত্যাবর্তন
Integer
— আইটেমের আইডি
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getIndex()
ফর্মের সমস্ত আইটেমের মধ্যে আইটেমের সূচী পায়।
প্রত্যাবর্তন
Integer
- আইটেমের সূচক
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getPoints()
গ্রেডযোগ্য আইটেমের পয়েন্ট মান প্রদান করে।
প্রত্যাবর্তন
Integer
- একটি প্রশ্ন মূল্যের পয়েন্ট সংখ্যা.
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getTitle()
আইটেমের শিরোনাম পায় (কখনও কখনও হেডার টেক্সট বলা হয়, একটি SectionHeaderItem
এর ক্ষেত্রে)।
প্রত্যাবর্তন
String
- আইটেমের শিরোনাম বা শিরোনাম পাঠ্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getType()
hasOtherOption()
আইটেমটির একটি "অন্য" বিকল্প আছে কিনা তা নির্ধারণ করে।
প্রত্যাবর্তন
Boolean
— true
যদি আইটেমের একটি "অন্য" বিকল্প থাকে; false
না হলে
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
isRequired()
উত্তরদাতাকে অবশ্যই প্রশ্নের উত্তর দিতে হবে কিনা তা নির্ধারণ করে।
প্রত্যাবর্তন
Boolean
— উত্তরদাতাকে অবশ্যই প্রশ্নের উত্তর দিতে হবে কিনা
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setChoiceValues(values)
স্ট্রিংগুলির একটি অ্যারের থেকে একটি আইটেমের জন্য পছন্দগুলি সেট করে৷ প্রদত্ত অ্যারে খালি থাকলে একটি ব্যতিক্রম নিক্ষেপ করে।
// Open a form by ID and add a new list item. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?'); item.setChoiceValues(['Dogs', 'Cats']);
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
values | String[] | পছন্দের মানগুলির অ্যারে, যা উত্তরদাতারা ফর্মটি দেখার সময় লেবেল হিসাবে দেখে |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setChoices(choices)
একটি আইটেমের জন্য পছন্দের একটি অ্যারে সেট করে। প্রদত্ত অ্যারে খালি থাকলে বা একটি null
উপাদান ধারণ করলে একটি ব্যতিক্রম নিক্ষেপ করে।
// Open a form by ID and add a new list item. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?') item.setChoices([ item.createChoice('Cats'), item.createChoice('Dogs') ]);
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
choices | Choice[] | পছন্দের একটি অ্যারে |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
নিক্ষেপ করে
Error
- যদি প্রদত্ত অ্যারেটি null
, খালি বা একটি null
উপাদান থাকে
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setFeedbackForCorrect(feedback)
উত্তরদাতারা যখন একটি প্রশ্নের সঠিকভাবে উত্তর দেয় তখন তাদের দেখানো প্রতিক্রিয়া সেট করে।
// Open a form by ID and add a new list item. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?'); // Set "Dogs" as the correct answer to this question. item.setChoices([ item.createChoice('Dogs', true), item.createChoice('Cats', false)]); // Add feedback which will be shown for correct responses; ie "Dogs". item.setFeedbackForCorrect( FormApp.createFeedback().setDisplayText("Dogs rule, cats drool.").build());
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
feedback | QuizFeedback | নতুন প্রতিক্রিয়া। একটি শূন্য মান প্রতিক্রিয়া সাফ করবে। |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setFeedbackForIncorrect(feedback)
উত্তরদাতারা যখন একটি প্রশ্নের ভুলভাবে উত্তর দেয় তখন তাদের দেখানো প্রতিক্রিয়া সেট করে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
feedback | QuizFeedback | নতুন প্রতিক্রিয়া |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setHelpText(text)
আইটেমটির সহায়তা পাঠ্য সেট করে (কখনও কখনও ImageItems
, PageBreakItems
এবং SectionHeaderItems
আইটেমগুলির মতো লেআউট আইটেমের জন্য বর্ণনা পাঠ্য বলা হয়)।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
text | String | নতুন সাহায্য পাঠ্য |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setPoints(points)
একটি গ্রেডযোগ্য আইটেমের মূল্যের পয়েন্টের সংখ্যা সেট করে। নতুন আইটেমগুলির জন্য ডিফল্ট হল 0৷
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
points | Integer | একটি প্রশ্ন আইটেম মূল্য একটি পয়েন্ট সংখ্যা |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setRequired(enabled)
উত্তরদাতাকে প্রশ্নের উত্তর দিতে হবে কিনা তা সেট করে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
enabled | Boolean | উত্তরদাতা অবশ্যই প্রশ্নের উত্তর দিতে হবে কিনা |
প্রত্যাবর্তন
CheckboxItem
- বর্তমান আইটেম (চেইন করার জন্য)
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setTitle(title)
আইটেমের শিরোনাম সেট করে (কখনও কখনও হেডার টেক্সট বলা হয়, একটি SectionHeaderItem
এর ক্ষেত্রে)।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
title | String | নতুন শিরোনাম বা শিরোনাম পাঠ্য |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setValidation(validation)
এই চেকবক্স আইটেমের জন্য ডেটা যাচাইকরণ সেট করে। কোনো প্রয়োজনীয় ফাংশন ছাড়াই নাল বা বৈধকরণ পাস করা কোনো পূর্বের বৈধতা মুছে ফেলবে।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
validation | CheckboxValidation | এই আইটেমটিতে প্রয়োগ করার জন্য একটি চেকবক্স যাচাইকরণ। |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
showOtherOption(enabled)
আইটেমটিতে একটি "অন্য" বিকল্প আছে কিনা তা সেট করে। একটি নতুন CheckboxItem
বা MultipleChoiceItem
এর ডিফল্ট false
।
পরামিতি
নাম | টাইপ | বর্ণনা |
---|---|---|
enabled | Boolean | true যদি আইটেমের একটি "অন্য" বিকল্প থাকে; false না হলে |
প্রত্যাবর্তন
CheckboxItem
— এই CheckboxItem
, চেইন করার জন্য
অনুমোদন
যে স্ক্রিপ্টগুলি এই পদ্ধতিটি ব্যবহার করে তাদের নিম্নলিখিত এক বা একাধিক সুযোগের সাথে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms