<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS (JS) + GoogleDocs]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10920&amp;type=atom" />
	<updated>2015-09-07T07:20:24Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10920</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS (JS) + GoogleDocs]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97178#p97178" />
			<content type="html"><![CDATA[<p>Да, задачка у меня специфическая, но я её всё-таки решил, через гуглеформы.<br />Собственно, решение и так было, но оно затормаживалось тем, что если Таблица связана с Формой, то удалить из неё результаты нельзя. Описывал выше.<br />Решение получилось такое.<br />Есть Форма. Она не связана с Таблицей, и Ответы хранятся только в ней.<br />На форму навешан и опубликован гуглескрипт, который сливает ответы в Таблицу. Название функции важно.<br /></p><div class="codebox"><pre><code>function doGet() {
   // Open a form by ID and log the responses to each question.
  var form = FormApp.openById(&#039;FormKey&#039;);
  var ss = SpreadsheetApp.openById(&#039;SpreadSheetKey&#039;).getSheetByName(&#039;SheetName&#039;);
  var formResponses = form.getResponses();
  for (var i = 0; i &lt; formResponses.length; i++) {
   var formResponse = formResponses[i];
   var itemResponses = formResponse.getItemResponses();
   for (var j = 0; j &lt; itemResponses.length; j++) {
     var itemResponse = itemResponses[j];
     var cell = ss.getRange(i+1, j+1);
     cell.setValue(itemResponse.getResponse());
   }
 }
 form.deleteAllResponses(); 
  
}</code></pre></div><p>На Таблицу тоже навешан и опубликован гуглескрипт, который её чистит, удаляет все строки.</p><p>Механизм такой<br />-Пользователь при помощи Планшета заходит на Форму, заполняет и отправляет данные. Он должен сделать это до определённого времени. Это решается административно.<br />- В шедулере на сервере крутится некий vbs, который<br />1) Запускает опубликованный скрипт от Формы, который переносит Ответы<br />2) Читает Ответы из Таблицы<br />3) Чистит Таблицу (запускает опубликованный скрипт от Таблицы)</p><p>Да, много промежуточных действий, но Оператор при этом не задействован, что есть хорошо. Ну т.е. Оператор в итоге задействован, но он не получает информацию, а только проверяет, все ли её сдали.</p><p>Вдруг кому поможет.</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2015-09-07T07:20:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97178#p97178</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS (JS) + GoogleDocs]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97119#p97119" />
			<content type="html"><![CDATA[<p>Это один из вариантов, но он не удобный, т.к. придётся делать много дополнительных действий.<br />Например, результаты в таблице нельзя очистить, пока существует связь с формой. Удаление связи с формой приведёт к созданию новой таблицы с ответами. Удаление ответов не удаляет записи в таблице... В общем, замкнутый круг. Ну, не то, чтобы замкнутый, но оооочень трудный.</p><p>Изначальная задача такая<br />Есть Андроид с интернетом.<br />Есть Пользователь, который должен передавать информацию.<br />Есть Оператор, который должен эту информацию получать и обрабатывать.<br />Сейчас это делает через &quot;алё, да-да, 2583&quot;, а Оператор заносит данные.<br />Хочется убрать лишнее звено. Самым простым способом посчитал гуглеформы, но вот не выходит каменный цветок ((<br />Заказывать написание приложения - дорого, вот и маюсь, ищу варианты.</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2015-09-06T11:49:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97119#p97119</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS (JS) + GoogleDocs]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97118#p97118" />
			<content type="html"><![CDATA[<p>Вы привели код Google App Script (GAS) - он работает на серверной части. WSH на клиентской.<br />Для решения задачи на WSH просто обращайтесь к url с результатами формы и парсите HTML-код.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2015-09-06T05:11:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97118#p97118</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS (JS) + GoogleDocs]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97053#p97053" />
			<content type="html"><![CDATA[<p>Добрый день.<br />Вопрос следующий.<br />Есть Форма на GoogleDocs. У формы есть Ответы. Мне бы хотелось их получить скриптом. Можно в файл. По определённым причинам, связка Форма - Таблица - Выгрузка в файл не походит, хоть и реализуется.</p><p>Среди скриптов гугля есть, например, такое:<br /></p><div class="codebox"><pre><code>
 // Open a form by ID and log the responses to each question.
 var form = FormApp.openById(&#039;1234567890abcdefghijklmnopqrstuvwxyz&#039;);
 var formResponses = form.getResponses();
 for (var i = 0; i &lt; formResponses.length; i++) {
   var formResponse = formResponses[i];
   var itemResponses = formResponse.getItemResponses();
   for (var j = 0; j &lt; itemResponses.length; j++) {
     var itemResponse = itemResponses[j];
     Logger.log(&#039;Response #%s to the question &quot;%s&quot; was &quot;%s&quot;&#039;,
         (i + 1).toString(),
         itemResponse.getItem().getTitle(),
         itemResponse.getResponse());
   }
 }</code></pre></div><p>Судя по всему, это всё перебирает ответы и записывает их в некий Logger, текст из которого хотелось бы получить...</p><p>Ещё раз отмечу, что мне по сути нужно автоматизировано получать текст ответов, а не смотреть их (с этим проблем нет).</p><p>Вдруг кто...</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2015-09-03T14:04:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97053#p97053</id>
		</entry>
</feed>
