smartscript:create_checkboxes
Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія | ||
| smartscript:create_checkboxes [2024/02/26 18:37] – wiki_admin | smartscript:create_checkboxes [2024/02/26 21:02] (поточний) – wiki_admin | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| + | ====== Створення checkbox в Smart Script ====== | ||
| + | {{: | ||
| + | |||
| + | |||
| + | На потрібній нам сторінці треба створити нове питання з тегом </hr> для відображення лінії. Потім на в Script_Open треба додати відмальовування checkboxes функція getChecks() | ||
| + | |||
| + | |||
| + | <code javascript> | ||
| + | TheApplication().SetProfileAttr(" | ||
| + | TheApplication().SetProfileAttr(" | ||
| + | GetPage(" | ||
| + | </ | ||
| + | |||
| + | В моєму випадку це отримання данних з бізнес компонента, | ||
| + | <code javascript> | ||
| + | function getChecks() | ||
| + | { | ||
| + | try { | ||
| + | var html =""; | ||
| + | var counter = 0; | ||
| + | var checked = ""; | ||
| + | var list = TheApplication().GetProfileAttr(" | ||
| + | var boSMS = TheApplication().GetBusObject(" | ||
| + | var bcSMS = boSMS.GetBusComp(" | ||
| + | bcSMS.ActivateField(" | ||
| + | bcSMS.ActivateField(" | ||
| + | bcSMS.ActivateField(" | ||
| + | bcSMS.ActivateField(" | ||
| + | bcSMS.ClearToQuery(); | ||
| + | bcSMS.SetViewMode(3); | ||
| + | bcSMS.SetSearchExpr(" | ||
| + | bcSMS.ExecuteQuery(ForwardOnly); | ||
| + | var countRecords = bcSMS.CountRecords() | ||
| + | var rec = bcSMS.FirstRecord() | ||
| + | while(rec){ | ||
| + | counter = counter+1 | ||
| + | checked = ""; | ||
| + | var listArr = list.split("," | ||
| + | for (var ssk = 0; ssk < listArr.length; | ||
| + | if (listArr[ssk] == bcSMS.GetFieldValue(" | ||
| + | checked = " | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | html +="< | ||
| + | rec = bcSMS.NextRecord(); | ||
| + | } | ||
| + | return html; | ||
| + | } catch (e) { | ||
| + | TheApplication().RaiseErrorText(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | <code javascript> | ||
| + | function getChecksScript (){ | ||
| + | var script = | ||
| + | " | ||
| + | "var amountChecked = 0;\n"+ | ||
| + | "var valuesChecked = \" | ||
| + | "var prof = \" | ||
| + | " | ||
| + | " for (var i = 0; i < document.getElementById(id).dataset.records; | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | "// | ||
| + | "// | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | return script; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | Але не все так просто! | ||
| + | Якщо у вас існують перевірки, | ||
| + | |||
| + | Перед появою TheApplication().RaiseErrorText("" | ||
| + | |||
| + | |||
| + | <code javascript> | ||
| + | Script().GetPage(" | ||
| + | </ | ||
| + | |||
| + | |||
| + | **Стан checkboxes зберігається в** | ||
| + | <code javascript> | ||
| + | TheApplication().SetProfileAttr(" | ||
| + | </ | ||
| + | |||
| + | **Кількість обраних checkboxes зберігається в** | ||
| + | <code javascript> | ||
| + | TheApplication().SetProfileAttr(" | ||
| + | </ | ||
