Ich habe ein Skript, das ich in meiner Testumgebung verwendet habe, um programmgesteuert eine Verfolgungsnummer zu erstellen, indem das Jahr vom Zeitstempel analysiert und der Antwortindex aufgefüllt wird .Eine Zeichenfolge des Formulars nnnn-nnnn wird in einer Tabelle als Datum oder sonstwie falsch angezeigt
function setTrackingNumber(ss, lastRowInx, createDateColumn) //This block generates and stores a tracking number in Column AU on the backend
{
var padTrackNo = "" + lastRowInx;
var trackSize = 4;
var trackingNumberColumn = createDateColumn-3; //trackingNumberColumn is currently in AU (Column 47) Calculating using it's relative position to createDateColumn Position
if (ss.getRange(lastRowInx, trackingNumberColumn).getValue() == "") // so that subsequent edits to Google Form don't overwrite original tracking number
{
if (padTrackNo > trackSize)
{
var padTrackNo = pad(padTrackNo, trackSize);
}
else {} //do nothing
var shortYear = setShortYear(ss, lastRowInx, createDateColumn);
var trackingNumber = shortYear + "-" + padTrackNo;
var createTrackingNumber = ss.getRange(lastRowInx, trackingNumberColumn);
createTrackingNumber.setValue(trackingNumber);
}
else {} //should do nothing
return;
}//This is the end of the setTrackingNumber function
function setShortYear(ss, lastRowInx, createDateColumn)
{
var newCreateDate = ss.getRange(lastRowInx,createDateColumn).getValue();
var strDate = "" + newCreateDate;
var splitDate = strDate.split(" ");
var trimYear = splitDate[3];
var shortYear = trimYear;
return shortYear;
}//This is the end of the shortYear function
function pad(padTrackNo, trackSize)
{
while (padTrackNo.length < trackSize)
{
padTrackNo = "0"+padTrackNo;
}
return padTrackNo;
}//This is the end of pad function
Das hat mich test result bekommt, die wie erwartet ab ist. 2016-0005. Als wir es jedoch zu einem anderen Produktionsblatt hinzufügten, schien es mit den Testdaten zu funktionieren, und dann zeigten sich die Produktionsdaten wie ein Datum 01.03.2016. production result - first cell.
Ich dachte, es muss nur die Zeichenfolge als ein Datum wegen der Zahlen formatieren, so habe ich versucht, die Spalte als Nur-Text formatiert, aber das Datum nur in eine reine Textversion des Datums geändert.
Ich dachte, dies zu benötigen ähnlich sein könnte, das Format, wie ich in dieser Frage Appending initial timestamp from Google Form to end of record in order to permanently store create date onFormSubmit bei @SandyGood ‚s Vorschlag tat so habe ich versucht, das Zahlenformat als [0000-0000] Einstellung von
createTrackingNumber.setValue(trackingNumber);
Wechsel
zu
createTrackingNumber.setValue(trackingNumber).setNumberFormat("0000-0000");
, die in der [Produktionsergebnis - zweite Zelle] geführt, die wiederum nicht das erwartete Ergebnis überein.
Seltsamerweise scheinen einige Eingaben gut zu funktionieren [Produktionsergebnis - dritte Zelle]. In den letzten 3 Tagen und ungefähr 10 Aufzeichnungen war es gut, dann hinky, dann gut, sie hinky, dann wieder gut. Ich bin mir nicht wirklich sicher, was ich sonst noch versuchen soll, dieses seltsame Verhalten zu debuggen.
Hinweis: Ich musste das Datum als String analysieren, da ich Probleme hatte, das Datum korrekt vom Erstellungsdatum zu analysieren, das vom ursprünglichen Zeitstempel übernommen wurde.