{"version":"1.0","provider_name":"Alan portfoolio","provider_url":"https:\/\/alanlagunjonok23.thkit.ee\/wp","author_name":"admin","author_url":"https:\/\/alanlagunjonok23.thkit.ee\/wp\/blog\/author\/admin\/","title":"\u00dclesanne 8.4 - Alan portfoolio","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"kXpyClf9f8\"><a href=\"https:\/\/alanlagunjonok23.thkit.ee\/wp\/ulesanne-8-4\/\">\u00dclesanne 8.4<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/alanlagunjonok23.thkit.ee\/wp\/ulesanne-8-4\/embed\/#?secret=kXpyClf9f8\" width=\"600\" height=\"338\" title=\"&#8220;\u00dclesanne 8.4&#8221; &#8212; Alan portfoolio\" data-secret=\"kXpyClf9f8\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/alanlagunjonok23.thkit.ee\/wp\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","description":"Ma n\u00e4itan teile, kuidas ma \u00dclesanne 8.4-s funktsioone l\u00f5in ja selgitan, kuidas need t\u00f6\u00f6tavad. Esimene funktsioon calculateDeadlines: See funktsioon kasutab Noolefunktsioone ja .map(). const lastRow = sheet.getLastRow(); const range = sheet.getRange(2, 1, LastRow &#8211; 1, 2); const data = range.getValues(); 2, 1 &#8211; vahemiku algus (rida 2, veerg 1) lastRow &#8211; 1 ridade arv 2 &#8211; veergude arv const daysToAdd = row[1]; row[0] on kuup\u00e4evrow[1] on p\u00e4evade arv Apps Script tagastab m\u00f5nikord kuup\u00e4eva stringina; funktsioon kohandab seda vorminguga. Kui andmed on sobimatud, visatakse viga. setDate() saab automaatselt liikuda j\u00e4rgmise kuu v\u00f5i aasta juurde. Salvestamine tulemus:sheet.getRange(2, 5, tulemused.length, 1).setValues(tulemused); Enne: P\u00e4rast: 2. Funktsioon updateSalaries: C &#8211; rolli nimi D &#8211; palk Ja suurendab palka, kui roll = &#8220;Juht&#8221;. Mis on destruktureerimine? ([roll, palk]) =&gt; { \u2026 } See vorm v\u00f5imaldab teil mugavalt rea massiivist v\u00e4\u00e4rtusi ekstraheerida ilma kirjutamata:rida[0]rida[1] Suurendage 10% v\u00f5rra. Enne: P\u00e4rast: 3. Funktsioon generateOrderNotes: Funktsioon loob tekstim\u00e4rkme kolmest osast: Klient Hind M\u00e4rkme loomise aeg Enne: P\u00e4rast: 4. Funktsioon RowManager: See on n\u00e4ide klassi kasutamisest. this.rowIndex = rowIndex; } Salvestab:sheet \u2014 lehe viiderowIndex \u2014 rea number } 4 &#8211; veerg D. } Valib 5 veergu A-st E-ni. Loob objekti, mis haldab 5. rida. Enne: P\u00e4rast 5. Funktsioon appendLog(): Funktsioon lisab tabeli l\u00f5ppu logi. Kui staatus puudub, on see INFOKui v\u00e4rv puudub, on see valge appendRow() lisab l\u00f5ppu uue rea \u2013 kasulik logimiseks. Kogu rida A\u2013E on v\u00e4rvitud. Enne: P\u00e4rast: 6. Funktsioon setCalender: Andmed on tabelis suurusega: 8 rida 5 veergu alates lahtrist A1. Selle m\u00e4\u00e4ratlesin k\u00e4sitsi: const rowStart = 1; const colStart = 1; const rows = 8; const cols = 5; See t\u00e4hendab, et loetav vahemik on A1:E8. getRange(1, 1, 8, 5) t\u00e4hendab: start \u2014 rida 1, veerg 1 (A1) v\u00f5ta 8 rida (1\u20138) v\u00f5ta 5 veergu (A\u2013E) See t\u00e4hendab, et loetakse lahter A1:E8. getValues() tagastab sisemised andmed, samas kui getDisplayValues() kuvab need kasutajale. Valisin funktsiooni getDisplayValues(), kuna tunniplaan sisaldab tavaliselt: kuup\u00e4evi (tekstina) kellaaegu (nt &#8220;08:15&#8221;) klassi t\u00fc\u00fcpi nime \u00f5petajat K\u00f5ike seda on lihtsam stringidena kuvada. getDisplayValues() tagastab stringide massiivi: [[&#8220;01.02.2025&#8221;, &#8220;08:00&#8221;, &#8220;Loeng&#8221;, &#8220;Matemaatika&#8221;, &#8220;Mari&#8221;],[&#8220;01.02.2025&#8221;, &#8220;10:00&#8221;, &#8220;Praktikum&#8221;, &#8220;F\u00fc\u00fcsika&#8221;, &#8220;J\u00fcri&#8221;],\u2026] Iga sisemine element on tabelist \u00fcks rida. Kasutasin andmete destruktureerimist: data.forEach(([kuup\u00e4ev, kellaaeg, t\u00fc\u00fcp, nimi, \u00f5petaja]) =&gt; { See t\u00e4hendab: Iga rea \u200b\u200bkohta, n\u00e4iteks: [&#8220;01.02.2025&#8221;, &#8220;08:00&#8221;, &#8220;Loeng&#8221;, &#8220;Matemaatika&#8221;, &#8220;Mari&#8221;] Muutujad saavad j\u00e4rgmised v\u00e4\u00e4rtused: kuup\u00e4ev \u2192 &#8220;01.02.2025&#8221; aeg \u2192 &#8220;08:00&#8221; t\u00fc\u00fcp \u2192 &#8220;Loeng&#8221; nimi \u2192 &#8220;Matemaatika&#8221; \u00f5petaja \u2192 &#8220;Mari&#8221; Kui kirjutaksin selle ilma destruktureerimiseta, n\u00e4eks see v\u00e4lja selline: rida[0], rida[1], rida[2], rida[3], rida[4] Destruktureerimisega on see palju selgem. Tulemus:","thumbnail_url":"https:\/\/alanlagunjonok23.thkit.ee\/wp\/wp-content\/uploads\/2025\/12\/3A16F0A9-220E-4E83-9866-7EB389D4FFA6.png","thumbnail_width":641,"thumbnail_height":405}