Filters

Filters
is
 
Forum Title
OldPostUrl
Content
 
Is there a way to have a Multiple-choice field allow you to override the choices and put in a value that is not in the list. But not using the add new choice option. I want to be able to input an item that is rare and not make it a permanent choice. PostURL $("#_fid_6").attr({ 
  list: "QBU_options",
  autocomplete: "off", 
  autocorrect: "off",
  autocapitalize: "off"
  })
  .after("<datalist id='QBU_options'></datalist>")

$("#QBU_options")
  .append("<option value='alpha'></option>")
  .append("<option value='beta'></option>")
  .append("<option value='delta'></option>")
  .append("<option value='gamma'></option>");

//OR

var QBU_options = ["alpha", "beta", "delta", "gamma"];

$("#_fid_6").attr("list","QBU_options")
  .attr({
    autocomplete: "off",
    autocorrect: "off",
    autocapitalize: "off"
  })
  .after("<datalist id='QBU_options'></datalist>");

$.each(QBU_options, function(index, value) {   
  $("#QBU_options")
   .append($("<option value='" + value + "'>"));
});
Mass edit "Searchable" field for 1,000+ fields PostURL //$.ajaxSetup(data, {apptoken: "your apptoken"});

var dbid = "your dbid";

var promise1 = $.get(dbid,{
  act: "API_GetSchema"
});

$.when(promise1).then(function(xml1){
  var fids = $("field",xml1).map(function(){
    return $(this).attr("id");
  }).get();
  fids = _.reject(fids,function(fid){
    return parseInt(fid,10) < 6;
  });
  var promise2, promises2=[];
  $.each(fids,function(index,fid){
    promise2 = $.get(dbid,{
      act: "API_SetFieldProperties",
      fid: fid,
      find_enabled: "0"
    });
    promises2.push(promise2);
  });
  $.when(promises2).then(function(){
    alert("All Done!");
  });
});
How can you add an aggregating row number to a report? PostURL var dbid0 = "biauket7x";
var dbid1 = "biaukeub8";
var dbid2 = "biaukeugk";
var importid = "10";

apptoken = "bgnu3628tyau9d9f5hxebjr7kx";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid2,{
  act: "API_PurgeRecords",
  qid: "1"
});

$.when(promise).then(function(){
  $.get(dbid2,{
    act: "API_RunImport",
    id: importid
  });
How to select a specific number of records from a table PostURL //parameters:
var apptoken = "p3m9cfbqxmam4hx94uwd796ix7";
var dbid = "bia7xq7gm";
var qid = "5";
var fid = "13";
var pfid = "3";
var fid_vals = ["foo", "bar", "baz", "qux"];

var fid_vals_length = fid_vals.length;
var rids = [];
var csv = "";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid,{
  act: "API_DoQuery",
  qid: qid,
  clist: pfid 
});

$.when(promise).then(function(xml){
  rids = $("record_id_",xml).map(function(){
    return $(this).text();
  }).get();

  csv = _.map(rids,function(rid,index){
    return '"' + rid + '","' + fid_vals[index % fid_vals_length ] + '"';
  }).join("\n");
  $.post(dbid,{
    act: "API_ImportFromCSV",
    records_csv: csv,
    clist: pfid + "." + fid
  });
});
API_RunImport with Summary table PostURL function iframeLoaded(id, url) {

  var deferred;
  var iframe;

  deferred = $.Deferred();

  iframe = $("<iframe/>").attr({id: id, src: url}).css({display: "none"});
  iframe.appendTo("body" );
  iframe.load(deferred.resolve );

  return deferred.promise();
}

//source parameters
var dbid1 = "big4sysbf";
var qid1 = "5";
var id1 = "qbu";

//destination parameters
var dbid2 = "big4tmhxz";
var clist2 = "6.7";

var url1 = dbid1 + "?a=q&qid=" + qid1;

var promise1 = iframeLoaded(id1, url1);

$.when(promise1).then(function() {

  var $content = $("#" + id1).contents();

  var csv2 = $("table[qbqid=" + qid1 + "] tbody tr[id^=rid]", $content).map(function() {
    var $row = $(this);
     return '"' + 
            $("td:nth-child(1)",$row).text() +
            '","' + 
            $("td:nth-child(2)",$row).text() +
            '"';
  }).get().join("\n");

  var promise2 = $.post(dbid2,{
    act: "API_ImportFromCSV",
    records_csv: csv2,
    clist: clist2
  });

  $.when(promise2).then(function(xml){
    var xmlstr = xml.xml ? xml.xml : (new XMLSerializer()).serializeToString(xml);
    console.log(xmlstr);
  });

});
How Can I Show A User's "Last Access Date" from the billing account page in an application ? PostURL var accountid = "your account id";
var url1 = "main?a=AccountUsers&accountid=" + accountid;

$('<iframe src="' + url1 + '" id="myiframe" width="0" height="0"></iframe>').appendTo("body");

$("#myiframe").on("load", function() {
  var mytableInfo1 = $("#myiframe")[0].contentWindow.tableInfo;
  
  var mytableInfo2 = _.map(mytableInfo1, function(item){
    return [item[6], item[7], item[10]];
  });
  console.table(mytableInfo2);
});
How do I display a hyperlink in a text field from my javascript code. PostURL var dbid = "your dbid";
var engmnt_id = "your engmnt_id";
var hyperlink = "<a href=http://www.google.com>Whatever</a>";
//var hyperlink = "Whatever".link("http://www.google.com");

var promise = $.post(dbid,{
  act: "API_EditRecord",
  rid: engmnt_id,
  _fid_578: hyperlink
});

$.when(promise).then(function(xml){
  alert(xml.xml ? xml.xml : new XMLSerializer().serializeToString(xml));
});
Set New Tables to Default to Hidden for Roles PostURL _.chain(gTableInfo)
  .keys()
  .each(function(dbid){
    $.post(dbid,{
      a: "KeyProps",
      HideFromMenuBar: "on",
      //showInMenuBar: "on",
      apply: "Save"
    });
  });



_.chain(gTableInfo)
  .keys()
  .difference(["bikngjcqf"])
  .each(function(dbid){
    $.post(dbid,{
      a: "KeyProps",
      HideFromMenuBar: "on",
      //showInMenuBar: "on",
      apply: "Save"
    });
  });
Median and Percentiles using Java script PostURL var url1 = "http://www.javascriptstats.com/downloads/javascriptStats-1.0.1.js";
var promise1 = $.getScript(url1);

var cdbid = "you child dbid";
var fid = "your child field id";

var promise2 = $.get(cdbid,{
  act: "API_GenResultsTable",
  query: "{3.EX." + kRid + "}",
  clist: fid
});

$.when(promise1,promise2).then(function(){
  var data = _.chain(qdb_data).flatten().value();
  var mean = jsStats.mean(data);
  var median = jsStats.median(data);
  var mode = jsStats.mode(data);
  var min = jsStats.min(data);
  var max = jsStats.max(data);
  var range = jsStats.range(data);
  var sum = jsStats.sum(data);
  var sumOfSquares = jsStats.sum(data);
  var variance = jsStats.sum(data);
  var stddev = jsStats.sum(data);
});
How do I get my "Save & Next" ticket function to auto populate certain fields based on the previous ticket info? I have 100 different users on my ticketing system and they each have to enter their name, location name, phone number, etc. for every ticket. PostURL ///new code
var fids = [6,7,8];

var previous_rid = $("#previousRecordButton").attr("href").match(/rid=(\d+)/)[1];

var promise = $.get(gReqDBID,{
 act: "API_DoQuery",
 query: "{3.EX." + previous_rid " + "}",
 clist: "a",
 fmt: "structured"
});

$.when(promise).then(function(xml){
  fids.forEach(function(fid){
    $("#_fid_" + fid).val($("f[id=" + fid + "]",xml).text());
  });
});

//old code
var previous_rid = $("#previousRecordButton").attr("href").match(/rid=(\d+)/)[1];

var promise = $.get(gReqDBID,{
 act: "API_DoQuery",
 query: "{3.EX." + previous_rid " + "}",
 clist: "a",
 fmt: "structured"
});

$.when(promise).then(function(xml){
  $("#_fid_6").val($("f[id=6]",xml).text());
  $("#_fid_7").val($("f[id=7]",xml).text());
  $("#_fid_8").val($("f[id=8]",xml).text());
});
Javascript Prompt + Edit record for Decline button PostURL //User Defined Page: myscript.js

alert("myscript");
alert("QBU_rid=" + QBU_rid);

var apptoken = "your application token here";
$.ajaxSetup({data: {apptoken: apptoken}});

var reason = prompt("Enter your reason: ", "epic fail");

var promise = $.get(gReqDBID,{
  act: "API_EditRecord",
  rid: QBU_rid,
  _fid_6: reason
});

$.when(promise).then(function(){
  document.location.href = gReqDBID + "?a=dr&rid=" + QBU_rid;
});
Sampling report? PostURL var apptoken = "dur54msbn2rzdrzwhmxpdt6vp74";
var dbid = "biq65dq3b";
var n = 12;

$.ajaxSetup({data: {apptoken: apptoken}});

var url1 = dbid;
url1 += "?act=API_GenResultsTable";
url1 += "&query={0.CT.}";
url1 += "&clist=3";
url1 += "&jsa=1";

var promise1 = $.getScript(url1);
$.when(promise1).then(function(){
  var rids1 = _.chain(qdb_data).flatten().value();
  var rids2 = _.chain(rids1).shuffle().first(n).value();
  var query2 = "{3.EX." + rids2.join("}OR{3.EX.") + "}";
  var url2 = dbid;
  url2 += "?a=q";
  url2 += "&query=" + query2;
  url2 += "&clist=3.6.7.8.9.10.11.12.13";
  url2 += "&slist=3";
  document.location.href=url2;
});
Retrieving Field Value PostURL var dbid = "your table dbid";
var qid = "1";
var apptoken ="your apptoken";

// using non-API Methods:
var promise1 = $.get(dbid,{
  act: "q",
  qid: qid
});

$.when(promise1).then(function(html){
  //parse html using jQuery
});

// using API Methods:
$.ajaxSetup({data: {apptoken: apptoken}});

var promise2 = $.get(dbid,{
  act: "API_DoQuery",
  qid: qid
});

$.when(promise2).then(function(xml){
  //parse xml using jQuery
});
Need to populate a summary field with the previous record from the same table. PostURL var url = "https://www.quickbase.com/db/6ewwzuuj";
url += "?act=API_GenResultsTable";
url += "&jsa=1";
url += "&qid=1";
url += "&clist=3";
url += "&slist=3";
url += "&options=num-5.sortorder-A";
//url += "&options=num-5.sortorder-D";

$.getScript(url, function(){
  var mydata = _.map(qdb_data, function(val, index, list){
    return [parseFloat(val[0]), parseFloat((list[index-1] || [0])[0])];
  });
  console.table(mydata);
});
Need help in completing a script PostURL var apptoken = "your apptoken";
var dbid = "your dbid";
var query = "{'1476'.EX.''}AND{'1485'.EX.'1'}AND{'39'.EX.'In Process'}";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid,{
  act: "API_DoQueryCount",
  query: query
});

$.when(promise).then(function(xml){
  var numMatches = parseFloat($("numMatches" ,xml).text());
  //...
});
Summary from multiple tables PostURL var dbidSales = "";
var dbidAdvertising= "";
var dbidExpenses= "";

var fidSales = "";
var fidAdvertising = "";
var fidExpenses= "";

var promiseSales = $.get(dbidSales, {
  act: "API_DoQuery",
  qid: "1",
  clist: fidSales,
  fmt: "structured"
});

var promiseAdvertising = $.get(dbidAdvertising, {
  act: "API_DoQuery",
  qid: "1",
  clist: fidAdvertising,
  fmt: "structured"
});

var promiseExpenses = $.get(dbidExpenses, {
  act: "API_DoQuery",
  qid: "1",
  clist: fidExpenses,
  fmt: "structured"
});

$.when(promiseSales, promiseAdvertising , promiseExpenses ).then(function(aSales, aAdvertising, aExpenses){
  var sumSales = 0;
  $("field[id=" + fidSales + "]", aSales[0]).each(function() {
    sumSales += parseFloat($(this).text());
  });

  var sumAdvertising = 0;
  $("field[id=" + fidAdvertising + "]", aAdvertising[0]).each(function() {
    sumAdvertising += parseFloat($(this).text());
  });

  var sumExpenses = 0;
  $("field[id="+fidExpenses +"]", aExpenses[0]).each(function() {
    sumExpenses += parseFloat($(this).text());
  });

  $("#result").html("Profit=" + sumSales - sumAdvertising - sumExpenses );
});
Can you test a URL formula to determine if a web page is valid? PostURL var url1 = "http://www.example.com/page1.html";
var url2 = "http://www.example.com/page2.html";

$.ajax({
  url: url1,
  success: function(){
    document.location.href =  url1;
  },
  statusCode: {
    404: function() {
      document.location.href = url2;
    }
  }
});
Formula for date field to display only first day of each week? PostURL $("#_fid_6").datepicker("option", {
  beforeShowDay: function(date){
    var day = date.getDay();
    return [day == 0, ""];
  }
});
How would I specify a form rule to make all fields in a record read only on fulfillment of a condition, without specifying each field individually? The record has about a 50 odd fields. PostURL $("form[name=editform] [name^=_fid_6]").on("change", function() {
  if ($(this).val()) == "somevalue") {
    $("form[name=editform] [name!=_fid_6]").attr("readonly", "readonly");
  }
});
How can I export my user lists? PostURL var dbid = "your application dbid";
var apptoken = "your apptoken";
$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid,{
  act: "API_UserRoles"
});

$.when(promise).then(function(xml){
  var data = $("user", xml).map(function(){
    return [{
      uid: this.id, 
      name: $(">name", this).text(),
      lastAccess: (new Date(parseInt($("lastAccess", this).text(), 10))).toString(),
      firstName: $("firstName", this).text(),
      lastName: $("lastName", this).text(),
      roles: $("roles", this).map(function() {
        return [{
          roleId: $("role", this).attr("id"),
          roleName: $("name", this).text(),
          accessId: $("access", this).attr("id"),
          accessName: $("access", this).text()
        }];
      }).get()
    }];
  }).get();

  var template = "";
  template += "<table>";
  template += "{{#data}}";
  template += "  <tr>";
  template += "    <td>UID</td>";
  template += "    <td>{{uid}</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>Role Name</td>";
  template += "    <td>{{name}}</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>Last Access</td>";
  template += "    <td>{{lastAccess}}</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>First Name</td>";
  template += "    <td>{{firstName}}</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>Last Name</td>";
  template += "    <td>{{lastName}}</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>Roles</td>";
  template += "    <td>&nbsp;</td>";
  template += "  </tr>";
  template += "  <tr>";
  template += "    <td>&nbsp;</td>";
  template += "    <td>";
  template += "      {{#roles}}";
  template += "      <table>";
  template += "        <tr>";
  template += "          <td>Role ID</td>";
  template += "          <td>{{roleId}}</td>";
  template += "        </tr>";
  template += "        <tr>";
  template += "          <td>Role Name</td>";
  template += "          <td>{{roleName}}</td>";
  template += "        </tr>";
  template += "        <tr>";
  template += "          <td>Access ID</td>";
  template += "          <td>{{accessId}}</td>";
  template += "        </tr>";
  template += "        <tr>";
  template += "          <td>Access Name</td>";
  template += "          <td>{{accessName}}</td>";
  template += "        </tr>";
  template += "      </table>";
  template += "      {{/roles}}";
  template += "    </td>";
  template += "  </tr>";
  template += "{{/data}}";
  template += "</table>";

  var markup = Mustache.render(template, {data: data});
  $(markup).prependTo("body");

});
API Add record is not populating destination PostURL //Inside the user defined page <your script.js> place the following //code with substitutions for adobe, client and apptoken:

var adobe = "";
var client = "";
var apptoken = "";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 = $.get(adobe, {
  act: "API_DoQuery",
  query: "{3.EX." + kRid + "}",
  clist: "16.25.183.212.27",
  fmt: "structured"
});

$.when(promise1).then(function(xml1) {
  var fid16 = $("f#16").text();
  var fid25 = $("f#25").text();
  var fid183 = $("f#183").text();
  var fid212 = $("f#212").text();
  var fid27 = $("f#27").text();

  var promise2 = $.get(client, {
    act: "API_AddRecord",
    _fid_16: fid16,
    _fid_25: fid25,
    _fid_183: fid183,
    _fid_212: fid212,
    _fid_26: fid26
  });

  var promise3 = $.get(adobe, {
    act: "API_EditRecord",
    rid: kRid,
    _fid_12: "Moved to Work Entry"
  });

  $.when(promise2, promise3).then(function() {
    alert("all done");
  });
});
How to Convert Euro To Dollar In Real Time? PostURL var query = "select * from yahoo.finance.xchange where pair in ('EURUSD')";

var yql = "";
yql += "https://query.yahooapis.com/v1/public/yql?q=";
yql += encodeURIComponent(query);
yql += "&format=xml";
yql += "&callback=?";
yql += "&env=store://datatables.org/alltableswithkeys";

$.getJSON(yql, function(data) {
  var results = data.results;
  var name = $("Name", results[0]).text();
  var rate = $("Rate", results[0]).text();
  var date = $("Date", results[0]).text();
  var time = $("Time", results[0]).text();
  var ask  = $("Ask",  results[0]).text();
  var bid  = $("Bid",  results[0]).text();

  $("#_fid_9").val(name);
  $("#_fid_10").val(rate);
  $("#_fid_11").val(date);
  $("#_fid_12").val(time);
  $("#_fid_13").val(ask);
  $("#_fid_14").val(bid);

  $("#_fid_9,#_fid_10,#_fid_11,#_fid_12,#_fid_13,#_fid_14").attr("readonly", "readonly");

  $("#_fid_6").on("keyup blur",function(event){
    $("#_fid_7").val(parseFloat($("#_fid_6").val()) * parseFloat(rate));
  });

});
How to Determine Proxy Field Using API PostURL var url = "https://haversineconsulting.quickbase.com/db/bizwn573y?a=mf&fid=8&chain=1";

var promise = $.get(url);

$.when(promise).then(function(html){

  alert($("select[name=prxfid]", html).val());

});
How to Determine Proxy Field Using API PostURL //Custom API Definition
$.getProxyField = function(dbid, fid) {
  return $.Deferred(function(dfd) {
    $.get(dbid + "?a=mf&fid=" + fid).done(function(html){
      dfd.resolve($("select[name=prxfid]", html).val());
    });
  }).promise();
};

//Custom API Invocation
var dbid = "bizwn573y";
var fid = "8";

$.getProxyField(dbid, fid).done(function(prxfid) {
  alert(prxfid);
});
Form Rule Message Box - Dismiss With Enter Rather Than Click PostURL $(function(){
  var observer = new MutationObserver(function(mutations) {
    
    mutations.forEach(function(mutation) {
      if (mutation.type == "childList" && mutation.target.getAttribute("id") == "qbDialog") {
        $("#qbDialog button:contains(OK)").focus();
      }
    });

  });

  var body = document.body;
  
  var config = {
    childList: true,
    subtree: true
  };

  observer.observe(body, config);
  
});
how to add record using Jquery PostURL var dbid = "your table dbid";
var apptoken = "your apptoken";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 = $.get(dbid, {
  act: "API_AddRecord",
 _fid_6: "foo",
 _fid_7: "bar"
});

$.when(promise1).then(function(xml1){
  var newrid = $("rid", xml1).text();
  alert("You Got New Record With [Record ID#]=" + newrid);
});
How To Integrate Google's Angular? PostURL $("#pageNavBar").hide();

$("#mainBodyDiv")
  .css({margin: "10px"})
  .load("bi2ukmum4?a=dbpage&pagename=MyAngularApp.html");

How do I total results from multiple lines in a DoQuery? PostURL var dbid = "your dbid";
  
var apptoken = "your apptoken";
$.ajaxSetup({data: {apptoken: apptoken}});
  
var promise = $.get(dbid, {
  act: "API_DoQuery",
  qid: "1"
});

$.when(promise).then(function(xml) {
  var nops = $("number_of_payments", xml).map(function() {
    return parseFloat($(this).text());
  }).get();
  var total = _.reduce(nops, function(memo, nop) {return memo + nop; }, 0);
  alert(total);
});
Suggested parent record based on value range PostURL var apptoken = "ksug3ac3kmnpmbijdxbgcfqf8cz";
$.ajaxSetup({data: {apptoken: apptoken}});

var dbid = "bi3e6df8f";

(function(){
  var querystring=document.location.search;
  console.log(querystring);
  if (/nwr/i.test(querystring) || /a=er/i.test(querystring)) {
    $("#_fid_8").on("blur", function() {
      var price = $(this).val();
      
      var promise = $.get(dbid, {
        act: "API_DoQuery",
        qid: "1",
        clist: "3.7.8",
        slist: "7"
      });

      $.when(promise).then(function(xml) {
        var breakpoints = $("record", xml).map(function() {
          return {
            level: parseInt($("level_id_", this).text(),10), 
            low: parseFloat($("low", this).text()),
            high: parseFloat($("high", this).text())
          };
        }).get();

        var breakpoint = _.find(breakpoints, function(item) {
          return item.low < price && price <= item.high;
        });

        $("#_fid_10 option[value=" + breakpoint.level + "]").attr("selected", "selected");

      });
    });
  }
})();
API to another software program PostURL LinkAway = function(code) {document.location.href=code}

var name = $("#_fid_6").val();
var phone = $("#_fid_7").val();
var email = $("#_fid_8").val();
var company = $("#_fid_9").val();
var loc = $("#_fid_10").val();
var publication = $("#_fid_11").val();
var howhearabout = $("#_fid_12").val();
var message = $("#_fid_13").val();

var js = "";
js += "$('form#aspnetForm input[name=name]')       .val('" + name + "');\n";
js += "$('form#aspnetForm input[name=telephone]')  .val('" + phone + "');\n";
js += "$('form#aspnetForm input[name=email]')      .val('" + email + "');\n";
js += "$('form#aspnetForm input[name=company]')    .val('" + company + "');\n";
js += "$('form#aspnetForm input[name=location]')   .val('" + loc + "');\n";
js += "$('form#aspnetForm input[name=publication]').val('" + publication + "');\n";
js += "$('form#aspnetForm select[name=aboutus]')   .val('" + howhearabout + "');\n";
js += "$('form#aspnetForm textarea[name=msg]')     .val('" + message+ "');\n";

$("<textarea></textarea>")
  .css({width: "400px", height: "200px"})
  .html(js)
  .insertAfter("#tdf_8 a");
How to base a new field value off an old field value. PostURL var dbid = "your dbid";
var apptoken = "your apptoken";

$.ajaxSetup({data: {apptoken: apptoken}});

$.get(dbid, {
  act: "API_DoQuery",
  clist: "3",
  slist: "3",
  options: "num-1.sortorder-D"
}, function (xml) {
  var maxRid = parseInt($("record_id_", xml).text(), 10);
  $("#_fid_6").val(maxRid + 1);
});
I have two tables companies and applicants, each company has associated applicants. Is there a way to generate a specific number of randomly selected applicants by selecting the company? PostURL _.sample = function(obj, n, guard) {
    if (n == null || guard) {
      if (obj.length !== +obj.length) obj = _.values(obj);
      return obj[_.random(obj.length - 1)];
    }
    return _.shuffle(obj).slice(0, Math.max(0, n));
  };

var allRows = $("tr[id^=rid]").get();
var showRows = _.sample(allRows, 5);
var hideRows = _.difference(allRows, showRows);
$(hideRows).css("display", "none");
Delete File Attachment with API_EditRecord PostURL var apptoken = "your apptoken";
$.ajaxSetup({data: {apptoken: apptoken}});

var dbid = "your dbid";

var promise = $.post(dbid, {
  act: "API_EditRecord",
  rid: "43",
  _fid_9: "",
  delfile_fid_9: "1"
});

$.when(promise).then(function(xml){
  console.dirxml(xml);
});

/*
<qdbapi>
  <action>API_EditRecord</action>
  <errcode>0</errcode>
  <errtext>No error</errtext>
  <rid>43</rid>
  <num_fields_changed>1</num_fields_changed>
  <update_id>1402118976438</update_id>
</qdbapi>
*/
How to create a view or maybe report combine the items from 2 tables? PostURL var url1 = "";
url1 += "https://www.quickbase.com/db/93htvp8y";
url1 += "?act=API_GenResultsTable";
url1 += "&query={3.LT.65}";
url1 += "&jsa=1";

var url2 = "";
url2 += "https://www.quickbase.com/db/93htvp8y";
url2 += "?act=API_GenResultsTable";
url2 += "&query={3.GT.71}";
url2 += "&jsa=1";

var data = [];
$.getScript(url1, function() {
  data = qdb_data;
  $.getScript(url2, function() {
    data = data.concat(qdb_data);
    //data contains records from both queries
  });
});
Report from multiple tables PostURL var dbidApp = "your application dbid";
var dbidChild = "your child dbid";
var apptoken = "your apptoken";
$.ajaxSetup({data: {apptoken: apptoken}});
var fidsInParent = [6, 7, 8, 11, 12];
var n = 3;
var relatedParentFid = "9"

_.chain(fidsInParent).groupBy(function(fid, index){
  return Math.floor(index/n);
}).each(function(fidgroup){
  $.post(dbidApp, {
    act: "RelSetDoAddLookup",
    dtdbid: dbidChild,
    relfid: relatedParentFid,
    luFid0: fidgroup[0] || "",
    luFid1: fidgroup[1] || "",
    luFid2: fidgroup[2] || ""
  });
});
Report from multiple tables PostURL //This does NOT work:

function download(filename, content) {
  var blob = new Blob([content]);
  $("<a>")
    .attr("href", URL.createObjectURL(blob))
    .attr("download", filename)
    .css("display", "none")
    .click();   
}

//Use this:

function download(filename, content) {
  var blob = new Blob([content]);
  var a = document.createElement("a");
  a.href = window.URL.createObjectURL(blob); 
  a.download = filename;
  a.style.display = "none";
  document.body.appendChild(a);
  a.click();
}
how do I create a secondary counter? PostURL var dbid = "your table dbid";
var apptoken = "your apptoken";
var fid = "6";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid, {
  act: "API_DoQuery",
  qid: "1",
  clist: fid,
  slist: fid,
  options:  "num-1.skp-0.sortorder-D",
  fmt: "structured"
});

$.when(promise),then(function(xml) {
  var nextSpecialOrder = "S-" + (parseInt($("record f#"+ fid, xml).text().split("-")[1], 10) + 1);
  $("#_fid_" + fid).val(nextSpecialOrder);
});
csv export report without field names on first row of data PostURL var dbid = "6ewwzuuj";
var qid = "6";
var file = "headless.csv";

function download(filename, content) {
  var blob = new Blob([content]);
  var a = document.createElement("a");
  a.href = window.URL.createObjectURL(blob); 
  a.download = filename;
  a.style.display = "none";
  document.body.appendChild(a);
  a.click();
}

$.get(dbid + "?a=q&qid=" + qid + "&opts=csv", function(response) {
  var csv = response.split("\n");
  csv.shift();
  download(file, csv.join("\n"));
});
Automatically check and verify files PostURL $("#_fid_6").attr("accept", "image/*");

$("#_fid_6").change(function(e) {
  var file = this.files[0];
  name = file.name;
  type = file.type;
  size = file.size;
  var url = URL.createObjectURL(file);
  var img = new Image();
  img.onload = function() {
    var msg = [];
    msg.push("name   = " + file.name);
    msg.push("type   = " + file.type);
    msg.push("size   = " + file.size);
    msg.push("width  = " + img.width);
    msg.push("height = " + img.height);
    alert(msg.join("\n"));
    $("form[name=editform]").trigger("reset");
  };
  img.src = url;
});
Text formatting (especially italics) not working in fields PostURL $("label[for^=_fid_]").css({ // All labels
  "font-size": "16px"
});

$("label[for=_fid_7]").css({ // PostTitle label
  color: "red"
});

$("label[for=_fid_8]").css({ // PostUrl label
  color: "blue"
});

$("label[for=_fid_10]").css({ // Notes label
  fontFamily: "Verdana",
  fontSize: "24px"
});
Restrict a field to a fixed character length PostURL $("#_fid_7").on("keyup", function() {
  $(this).val($(this).val().substring(0,11));
});
Restrict a field to a fixed character length PostURL $("#_fid_7")
  .attr("pattern", ".{11}")
  .attr("required", "required");

$("#_fid_7").on("blur", function() {
  alert(this.validity.patternMismatch);
});
Remove hyphens, extra spaces from field value PostURL $("#_fid_7").on("keyup", function() {
  this.value = this.value.replace(/[^a-zA-Z0-9]/, "");
});
How to create dynamic text page and query issue PostURL $("#pageNavBar, #mainBodyDiv").fadeOut();
$("<div id=QBU_div>").insertAfter("#mainBodyDiv").load("bi46rmwkc?a=dbpage&pagename=MyDashboard.html");
How to Hide a coloumn in a table? PostURL setInterval(function() {
  $('#VR_bi5grcmf9_5 td:nth-child(3)').toggle();
}, 10000);
how can i edit multiple fields' properties at the same time? PostURL var dbid = "your dbid";
var apptoken = "your apptoken";
var fids = [6,7,8,9];  //your fids
$.ajaxSetup({data: {apptoken: apptoken}});

_.each(fids, function(fid) {
  $.get(dbid, {
    act: "API_SetFieldProperties",
    fid: fid,
    doesdatacopy: "1"  //set to "1" or "0" as needed
  });
});
Logging edits to a record PostURL $("#_fid_11").attr("readonly", "readonly");

var label, oldValue, newValue, log;

$("#_fid_6, #_fid_7, #_fid_8, #_fid_9, #_fid_10").on("change", function() {

  log = [];
  _.each([6, 7, 8, 9, 10], function(fid) {
    oldValue = $("[name=_fid_oval_" + fid + "]").val();
    newValue = $("#_fid_" + fid).val();
    if (oldValue != newValue) {
      label = $("label[for=_fid_" + fid + "]").text();
      log.push(label + " was =" + oldValue + "; now =" + newValue);
    }
  });
  $("#_fid_11").html(log.join("\n"));

});
API_SetFieldProperties HTTP Request. Why doesn't work? PostURL var dbid = "<your dbid>";
var apptoken = "<your apptoken>";
var fids = [8, 9, 10];
var promise, promises = [];

$.ajaxSetup({data: {apptoken: apptoken}});

_.each(fids, function(fid) {
  promise = $.post(dbid, {
    act: "API_SetFieldProperties",
    fid: fid,
    decimal_places: "6"
  });
  promises.push(promise);
});

$.when(promises).then(function() {
  alert("DONE!!!");
});
How to dynamically filter map reports based on user's current location? PostURL navigator.geolocation.getCurrentPosition(function(position) {
  var lat = position.coords.latitude;
  var lon = position.coords.longitude;
  console.log(lat, lon);
  // form query URL that returns those records where 
  // [lat] and [lon] satisfieds these two conditions:
  //
  //  lat - dlat < [lat] <= lat + dlat
  //  lon - dlon < [lon] <= lon + dlon
  // 
  // dlat and dlon are delta parameters you specify
});
JQuery not retrieving information PostURL var dbid = "your dbid";
var apptoken = "your apptoken";
var status = "INACTIVE";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid, {
  act: "API_DoQuery",
  query: "{311.EX._curuser_}AND{112.XEX." + status + "}",
  clist: "94.3.112",
  slist: "94.3.112", 
  options: "num-1.sortorder-D"
});


$.when(promise).then(function(xml) {
  console.dirxml(xml);
});
API_GenResultsTable, getting data returned as JS array PostURL var url = "";
url += "<your dbid>";
url += "?act=API_GenResultsTable";
url += "&query=<your query>";
url += "<other parameters>";
url += "&jsa=1";

$.getScript(url, function() {
  // response is available in global variables:
  // qdb_numcols
  // qdb_numrows
  // qdb_heading
  // qdb_data
});

OR 

var promise = $.getScript(url);

$.when(promise).then(function() {
  // response is available in global variables:
  // qdb_numcols
  // qdb_numrows
  // qdb_heading
  // qdb_data
});
How do I create a chart showing total number of records/items over time PostURL var dbidTable = "";
var qid = "";
var dbidLogTable = "";

var promise1 = $.get(dbidTable, {
  act: "API_DoQueryCount",
  qid: qid
}

$.when(promise1).then(function(xml1) {
  var count = $("numMatches", xml1).text();
  var promise2 = $.get(dbidLogTable, {
    act: "API_AddRecord",
    _fid_6: count
  });

  $.when(promise2).then(function(xml2) {
    alert("Progress Logged");
  });
});
how add records using API_ImportFromCSV in Jquery? PostURL var dbid, csv, clist;

var promise = $.post(dbid, {
  act: "API_ImportFromCSV",
  records_csv: csv,
  clist: clist
});

$.when(promise).then(function(xml) {
  // your code
})
Export into LEDES1998 format? PostURL function download(filename, content) {
  var blob = new Blob([content]);
  var a = document.createElement("a");
  a.href = window.URL.createObjectURL(blob); 
  a.download = filename;
  a.style.display = "none";
  document.body.appendChild(a);
  a.click();
}

var dbid= "bi8f8avyn";
var apptoken = "cpy8mu3c2eh9s5dqivb32cndrf3s";
$.ajaxSetup({data: {apptoken: apptoken}});
var url = dbid + "?act=API_GenResultsTable&jsa=1";

$.getScript(url, function() {
  var template = "";
  template += qdb_heading.join("|") + "[]\n";
  template += "{{#.}}\n"; 
  template += "{{" + _.range(22).join("}}|{{") + "}}[]\n";
  template += "{{/.}}\n"; 

  var ledes = Mustache.render(template, qdb_data);

  download("ledes.txt", ledes);
});
Formula field to find last entry in append field regardless of order of edits in field? PostURL var dbid = "bi8mu2e4b";
var apptoken = "ci7nus5g9rdb5cv6cvwydwptrfe";
$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 = $.get(dbid, {
  act: "API_DoQuery",
  query: "{3.EX.1}",
  clist: "6"
});

$.when(promise1).then(function(xml) {
  var log = $("log", xml).text().split("\n\n");
  var sortedLog = log.sort(function(x, y) {
    var xdate = x.match(/\[(.*)  /)[1];
    var ydate = y.match(/\[(.*)  /)[1];
    var xms = (new Date(xdate)).getTime();
    var yms = (new Date(ydate)).getTime();
    if (xms < yms) {
      return -1;
    }
    if (xms > yms) {
      return 1;
    }
    return 0;
  });

  console.log(sortedLog);
  alert(sortedLog.join("\n\n"));
  var promise2 = $.post(dbid, {
    act: "API_AddRecord",
    _fid_7: sortedLog.join("\n\n")
  });
  $.when(promise2).then(function(){
    document.location.reload();
  });
});
Attaching Multiple Records at Once to a Parent Record PostURL $("img[qbu=module]").closest("td").css("background-color","#FFFFFF");

var dbidOAP = "bi8dzdksc";
var dbidOrders = "bi8dzdks9";
var dbidAssignments = "bi8dzdkub";
var dbidProducts = "bi8dzdkvd";

var apptoken = "r63wfcvri57nccrsrv5dwtdgpv";
$.ajaxSetup({data: {apptoken: apptoken}});

var markup = "Assign Products to the Order Based on Selected Product Report: ";
markup += "<select id=QBU_QueryID>";
markup += "  <option value=''></option>";
markup += "  <option value=6>All Tools</option>";
markup += "  <option value=7>All Acme</option>";
markup += "  <option value=8>All Hammers</option>";
markup += "  <option value=9>All < $50</option>";
markup += "</select>";

$("#sect_s1").before(markup);

$("#QBU_QueryID").on("change", function() {
  var qid = this.value;
  var promise1 = $.get(dbidProducts, {
    act: "API_DoQuery",
    qid: qid,
    clist: "3"
  });
  $.when(promise1).then(function(xml) {
    var productRids = $("record", xml).map(function() {
      return $("record_id_", this).text();
    }).get();

    var csv = productRids.join("," + kRid + "\n") + "," + kRid;

    var promise2 = $.post(dbidAssignments, {
      act: "API_ImportFromCSV",
      records_csv: csv,
      clist: "14.11"
    });

    $.when(promise2).then(function(xml) {
      document.location.reload();
    });
  });
});
Cross Application Variables PostURL $.ajaxSetup({data: {apptoken: apptoken}});

var dbid, dbids = ["dbid1", "dbid2"];

var datum, data = [
    {varname: "foo", value: "3.14159"},
    {varname: "bar", value: "2.71828"}
  ];

var promise, promises = [];

for (var i=0; i < dbids.length; i++) {
  dbid = dbids[i];
  for (var j=0; i < data.length; i++) {
    datum = data[j];
    promises = $.post(dbid, {
      act: "API_SetDBvar",
      varname: data[j].varname,
      value: data[j].value
    });
    promises.push(promise);
  }
}

$.when(promises).then(function() {
  alert("all done");
});
How can I disable tha add link when referencing to another table? PostURL function openRecordPicker(whichSelect, targetDBID, fids, miscParams) {
  theRPselect = whichSelect;
  if (theRPselect && theRPselect == -1) {
    return
  }
  var params = "";
  if (fids) {
    params = "&fids=" + fids
  }
  if (miscParams && miscParams != "") {
    params += miscParams
  }
  if (miscParams == null || miscParams.indexOf("&forSandR") == -1) {
    if (theRPselect) {
      theRPselect.selectedIndex = -1;
      theRPselect.selectedIndex = 0
    }
  }
  var win = window.open(targetDBID + "?a=recordPicker" + params, "vb", "width=500,height=450,resizable");
  //insert these three lines to hide the "Add a new ..." button
  $(win.document).ready(function() {
      $(win.document).contents().find("input[name=addM]").fadeOut();
  });

  if (!win) {
    theRPdialog = QB.Dialog.dialog({
      contents: "<div style='overflow: auto; -webkit-overflow-scrolling:touch; height:454px; width: 500px;'><iframe frameborder=0 style='width:500px; height:450px;' src='" + targetDBID + "?a=recordPicker" + params + "' /></div>",
      contentType: "html",
      size: 524,
      title: null,
      cancel: null,
      confirm: null,
      jqDialogOptions: {
        autoOpen: true
      }
    });
    var frame = theRPdialog.find("iframe")[0];
    theRPwindow = frame.contentWindow
  } else {
    win.focus();
    theRPwindow = win
  }
}
Verify that a Text field follows a strict alphanumeric sequence PostURL $("#_fid_6")
  .attr("pattern", "[A-Za-z]{2}[0-9]{7}")
  .on("change keyup blur", function() {
    if ($(this).is(":invalid")) {
      $(this).css("color", "red");
      $("#saveButton").css("pointer-events", "none");
    } else {
      $(this).css("color", "#333");
      $("#saveButton").css("pointer-events", "auto");
    }
  });
adjust "now()" timing to capture truly current timestamp PostURL var originalClickHandler = $("#saveButton").data("events").click[0].handler;
$("#saveButton").unbind("click");

$("#saveButton").click(function() {
  $("#_fid_6").val(new Date());
  originalClickHandler();
});
How do I display the size of a file attachment in a report? PostURL var url = "url of your file attachemnt field";
var promise = $.ajax({
  url: url,
  type: "HEAD"
});

$.when(promise).then(function() {
  var size = promise.getResponseHeader("Content-Length");
  $("img[qbu=module]").replaceWith(size)
});
Embed Video in a Record PostURL //New and Add Forms:

//Left Labels (dfid=2)

var markup1 = "";
markup1 += "<h2>Insert Markup Before Section Heading (does not collapse)</h2>";
markup1 += '<svg width="400" height="100">';
markup1 += '  <rect width="400" height="100" style="fill:#FF5575;stroke-width:3;stroke:rgb(0,0,0)" >';
markup1 += '    <title>Insert Markup Before Section Heading (does not collapse)</title>';
markup1 += '  </rect>';
markup1 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup1 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup1 += '</svg>';

//insert div before section #sect_s1Header (does not collapse)
$("<div id=QBU1>" + markup1 + "</div>").insertBefore($("#sect_s1Header"));

var markup2 = "";
markup2 += "<h2>Insert Markup After Section Heading (will collapse with section)</h2>";
markup2 += '<svg width="400" height="100">';
markup2 += '  <rect width="400" height="100" style="fill:#B44DE8;stroke-width:3;stroke:rgb(0,0,0)" >';
markup2 += '    <title>Insert Markup After Section Heading (will collapse with section)</title>';
markup2 += '  </rect>';
markup2 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup2 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup2 += '</svg>';

//insert div after section #sect_s1 (will collapse with section)
$("<div id=QBU2>" + markup2 + "</div>").insertAfter($("#sect_s1"));

var markup3 = "";
markup3 += "<h2>Insert Markup Before Row Containing Field (will collapse with section)</h2>";
markup3 += '<svg width="400" height="100">';
markup3 += '  <rect width="400" height="100" style="fill:#6273FF;stroke-width:3;stroke:rgb(0,0,0)" >';
markup3 += '    <title>Insert Markup Before Row Containing Field (will collapse with section)</title>';
markup3 += '  </rect>';
markup3 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup3 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup3 += '</svg>';

//insert div before row containing field #_fid_6
$("<tr class=formRow><td><b>Label</b></td><td colspan=0>" + markup3 + "</td></tr>")
  .insertBefore($("#_fid_6")
  .closest("tr")
);

var markup4 = "";
markup4 += "<h2>Insert Markup After Row Containing Field (will collapse with section)</h2>";
markup4 += '<svg width="400" height="100">';
markup4 += '  <rect width="400" height="100" style="fill:#4DD2E8;stroke-width:3;stroke:rgb(0,0,0)" >';
markup4 += '    <title>Insert Markup After Row Containing Field (will collapse with section)</title>';
markup4 += '  </rect>';
markup4 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup4 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup4 += '</svg>';

//insert div after row containing field #_fid_6
$("<tr class=formRow><td><b>Label</b></td><td colspan=0>" + markup4 + "</td></tr>")
  .insertAfter($("#_fid_6")
  .closest("tr")
);

var markup5 = "";
markup5 += "<h2>Insert Markup In Place of IOL Field [-] (will collapse with section)</h2>";
markup5 += '<svg width="400" height="100">';
markup5 += '  <rect width="400" height="100" style="fill:#68FF9C;stroke-width:3;stroke:rgb(0,0,0)" >';
markup5 += '    <title>Insert Markup In Place of IOL Field [-] (will collapse with section)</title>';
markup5 += '  </rect>';
markup5 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup5 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup5 += '</svg>';

//Insert Markup In Place of IOL Field [-]
$("img[qbu=module]")
  .replaceWith(markup5)

===
New and Add Forms:
Labels Above (dfid=10)

var markup1 = "";
markup1 += "<h2>Insert Markup Before Section Heading (does not collapse)</h2>";
markup1 += '<svg width="400" height="100">';
markup1 += '  <rect width="400" height="100" style="fill:#FF5575;stroke-width:3;stroke:rgb(0,0,0)" >';
markup1 += '    <text>Insert Markup Before Section Heading</text>';
markup1 += '  </rect>';
markup1 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup1 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup1 += '</svg>';

//insert div above section #sect_s1Header (does not collapse)
$("<div id=QBU1>" + markup1 + "</div>").insertBefore($("#sect_s1Header"));

var markup2 = "";
markup2 += "<h2>Insert Markup After Section Heading (will collapse with section)</h2>";
markup2 += '<svg width="400" height="100">';
markup2 += '  <rect width="400" height="100" style="fill:#B44DE8;stroke-width:3;stroke:rgb(0,0,0)" >';
markup2 += '    <text>Insert Markup After Section Heading</text>';
markup2 += '  </rect>';
markup2 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup2 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup2 += '</svg>';

//insert div after section #sect_s1 (will collapse with section)
$("<div id=QBU2>" + markup2 + "</div>").insertAfter($("#sect_s1"));

var markup3 = "";
markup3 += "<h2>Insert Markup Before Row Containing Field (will collapse with section)</h2>";
markup3 += '<svg width="400" height="100">';
markup3 += '  <rect width="400" height="100" style="fill:#6273FF;stroke-width:3;stroke:rgb(0,0,0)" >';
markup3 += '    <text>Insert Markup Before Row Containing Field</text>';
markup3 += '  </rect>';
markup3 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup3 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup3 += '</svg>';

//insert div before row containing field #_fid_6
$("<tr class=formRow><td colspan=0><b>Label</b><div class=cell>" + markup3 + "</div></td></tr>")
  .insertBefore($("#_fid_6")
  .closest("tr")
);
var markup4 = "";
markup4 += "<h2>Insert Markup After Row Containing Field (will collapse with section)</h2>";
markup4 += '<svg width="400" height="100">';
markup4 += '  <rect width="400" height="100" style="fill:#4DD2E8;stroke-width:3;stroke:rgb(0,0,0)" >';
markup4 += '    <text>Insert Markup After Row Containing Field</text>';
markup4 += '  </rect>';
markup4 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup4 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup4 += '</svg>';

//insert div after row containing field #_fid_6
$("<tr class=formRow><td colspan=0><b>Label</b><div class=cell>" + markup4 + "</div></td></tr>")
  .insertAfter($("#_fid_6")
  .closest("tr")
);

var markup5 = "";
markup5 += "<h2>Insert Markup In Place of IOL Field [-] (will collapse with section)</h2>";
markup5 += '<svg width="400" height="100">';
markup5 += '  <rect width="400" height="100" style="fill:#68FF9C;stroke-width:3;stroke:rgb(0,0,0)" >';
markup5 += '    <title>Insert Markup In Place of IOL Field [-] (will collapse with section)</title>';
markup5 += '  </rect>';
markup5 += '  <line x1="0"   y1="0" x2="400" y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup5 += '  <line x1="400" y1="0" x2="0"   y2="100" style="stroke:rgb(0,0,0);stroke-width:2" />';
markup5 += '</svg>';

//Insert Markup In Place of IOL Field [-]
$("img[qbu=module]")
  .replaceWith(markup5)
Embed Video in a Record PostURL var markup = '<iframe width="640" height="480" src="//www.youtube.com/embed/z18sBHbdBgI" frameborder="0" allowfullscreen></iframe>';

$("img[qbu=module]")
  .replaceWith(markup);
API_AddRecord via XML request PostURL var dbid = "<your dbid>";
var apptoken = "<your apptoken>";
$.ajaxSetup({data: {apptoken: apptoken}});
 
var promise = $.post(dbid, {
  act: "API_AddRecord",
  _fid_6: "value1",
  _fid_7: "value2",
  _fid_8: "value3",
  _fid_9: "value4",
});

$.when(promise).then(function(xml) {
  console.dirxml(xml);
  console.log($("errcode", response).text());
});
Got CSV To Import? PostURL var csv = [];
var csvLine;
var csvData;

$.when(promise4).then(function(xml4) {
  csvLine = [];

  $("record", xml4).each(function() {
    csvLine.push($("record_id_", xml4).text());
    csvLine.push($("field1", xml4).text());
    csvLine.push($("field2", xml4).text());

    csv.push(csvLine.join(","));
  });
  csvData = csv.join("\n");
  console.log(csvData);
});
A User copies/pastes some data from another software into our Quickbase application. How can we handle removing leading/trailing spaces? PostURL $("#_fid_6").on("change", function() {
  $(this).val($(this).val().trim());
});
How to create a view or maybe report combine the items from 2 tables? PostURL var data = [[1,2],[3,4],[5,6]];

var tmp = "";
tmp += "<table>\n";
tmp += "{{#rows}}\n";
tmp += "  <tr>\n";
tmp += "    <th>Column #1</th>\n";
tmp += "    <th>Column #2</th>\n";
tmp += "  </tr>\n";
tmp += "  <tr>\n";
tmp += "    <td>{{0}}</td>\n";
tmp += "    <td>{{1}}</td>\n";
tmp += "  </tr>\n";
tmp += "{{/rows}}\n";
tmp += "</table>\n";

var markup = Mustache.render(tmp, {rows: data})
console.log(markup);
Using numMatches with an If statement PostURL var dbid = "";
var apptoken = "";

$.ajaxSetup({data: {apptoken: apptoken});

var promise1 = $.get(dbid, {
  act: "API_DoQueryCount",
  query: "{29.EX.6}"
});

$.when(promise1).then(function(xml1) {
  var numMatches = $("numMatches", xml1).text();
  if (numMatches >= 1) {
    $("#_fid_116").val(1);
  }
});
How to use Bootstrap with QuickBase? PostURL $("#pageNavBar, #mainBodyDiv").hide();

$("<div class=bootstrap>")
  .css( {margin: "0px 10px 0px 10px"})
  .insertAfter("#mainBodyDiv")
  .load(gReqAppDBID + "?a=dbpage&pagename=MyDashboard.html");

var markup = "";
markup +="  <script src='bjdd5k6dk?a=dbpage&pagename=bootstrap.min.js'></script>";
markup +="  <link rel='stylesheet' href='bjdd5k6dk?a=dbpage&pagename=bootstrap-custom.css'>";
$(markup).appendTo("head");
Best way to remove data with parent child relationships PostURL var dbidParent = "your parent dbid";
var dbidChild = "your child dbid";
var apptoken = "your apptoken";

var fidRelatedParent = "your related parent fid in child table";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 = $.get(dbidChild, {
  act: "API_PurgeRecords",
  query: "{" + fidRelatedParent  + ".EX." + kRid + "}"
});

var promise2 = $.get(dbidParent, {
  act: "API_PurgeRecords:,
  query: "{3.EX." + kRid + "}"
});

$.when(promise1, promise2).then(function() {
  alert("The parent and child records have been deleted. Redirecting to "List All" report");
  document.location.href = dbidParent + "?a=q&qid=1";
});
Is there a way I can generate a random number for my key field, instead of something sequential like a normal record ID? PostURL function makePasswd() {
  var passwd = '';
  var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  for (i = 1; i < 8; i++) {
    var c = Math.floor(Math.random() * chars.length + 1);
    passwd += chars.charAt(c)
  }
  return passwd;
}

$("#_fid_6").val(makePasswd());
How do I auto increment a date field? PostURL var dbid = "bjd4pyua8";
var dbidTable1 = "bjd4pyub4";
var apptoken = "cn334asdpi2ukqn57rxnckpxf84";
$.ajaxSetup({data: {apptoken: apptoken}});

var urlDatejs = "https://cdnjs.cloudflare.com/ajax/libs/datejs/1.0/date.min.js"
var promise1 = $.getScript(urlDatejs);

$.when(promise1).then(function() {
  var promise2 = $.get(dbidTable1, {
    act: "API_DoQuery",
    qid: "1",
    clist: "6",
    slist: "6",
    options: "num-1.sortorder-D"
  });

  $.when(promise2).then(function(xml2) {
    var lastDate = new Date(parseInt($("date", xml2).text(),10));
    var newDate = lastDate.add(7).days();
    $("#_fid_6").val(newDate);
  });
});
How can I set the "Print Option" to "include filtering criteria" by default for a specific report? PostURL var dbid = "your dbid";
var qid = "your qid";
var subdomain = "your subdomain";
var dealy = 5000;

var url = "https://" + subdomain + ".quickbase.com/db/" + dbid + "?a=q&qid=" + qid + "&dlta=pr~";

var printWindow = window.open(url);

var myscript = "";
myscript += "openCloseElem('critSection',true);";
myscript += "$('#qbDialogPrint button:contains(Print)').trigger('click');";

setTimeout(function() {
  printWindow.eval(myscript);
}, delay);
Can you override column headings at the field level for all reports? PostURL var mappings = {
  FName: "First Name",
  LName: "Last Name", 
  Phone: "Phone Number",
  Email: "Email Address",
  Notes: "Observations"
};

var oldHeading, newHeading;

$("div.hd-div span.ColumnHeading").each(function() {
  oldHeading = $(this).text();
  newHeading = mappings[oldHeading];
  $(this).html(newHeading);
});
is there a XLM parser in javascript or something similar to HTML 5 file reader for Text files. PostURL var parseFile = function(id) {
  return $.Deferred(function(dfd) {
    $("#" + id).on("change", function(){
        var reader = new FileReader();
        reader.onload = function () {
          dfd.resolve(reader.result);
        };
      reader.readAsText(this.files[0]);
    });
  }).promise();            
};

parseFile("myFile").then(function(data){
  var $xml = $(data);
  var tagText = $xml.find("tag").text();
});
number formatting and serial number fields PostURL var url = "https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/0.9.0/jquery.mask.min.js";

var promise = $.getScript(url);

$.when(promise).then(function() {
  $("#_fid_6").mask("000-0000000-00");
});
Record IDs returned from an ImportFromCSV API call PostURL var dbid = "pre65ehwr";
var apptoken = "qdwemiodfsw3drc84b854wz4dss";
var cslit = "6.7.8";

$.ajaxSetup({data: {apptoken: apptoken}});

csv = "1,2.3\n4,5,6";

var promise = $.post(dbid, {
  act: "API_ImportFromCSV",
  records_csv: csv,
  clist: clist
});

$.when(promise).then(function(xml) {
  var rids = $("rids rid", xml).map(function() {
    return $(this).text();
  }).get();
  // your code here - access rids Array
  console.log(rids);
});
Can I Control the length of dropdown list fields? PostURL $("#_fid_6").css({width: "200px"});
Want to reproduce a Summary Cross tab Report using JavaScript or JavaScript libraries such as underscore, to be imported as a new table just with the results. PostURL var dbid = "your table dbid";
var apptoken = "your application token";
var qid = "your qid";
$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.getScript(dbid + "?a=API_DoQuery&qid=" + qid + "&jsa=1");

$.when(promise).then(function() {
 // your raw data will be available in the variable qdb_data
});
How do I obtain a list of records with some field "bar" containing content "foo" with QuickBaseClient.js? PostURL var dbid = "your dbid";
var apptoken = "your apptoken";
var query = "{40.EX.15181}";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid, {
  act: "API_DoQuery",
  query: query
});

$.when(promise).then(function(xml) {
  console.dirxml(xml);
});
Use Javascript to Get a Single Record Value PostURL var dbid = "your dbid";
var apptoken = "your apptoken";

$.ajaxSetup({data: {apptoken: apptoken}});

var rid = "???";
var clist = "6";
var tagName = "name";

var promise = $.get(dbid, {
  act: "API_DoQuery",
  query: "{3.EX." + rid + "}",
  clist: clist
});

$.when(promise).then(function(xml) {
  var fieldValue = $(name, xml).text();
  console.log(fieldValue);
});
Capture rid from response of API_AddRecord PostURL var dbid = "your dbid";
var apptoken = "your apptoken";

$.ajaxSetup({data: {apptoken: apptoken}});

var promise = $.get(dbid, {
  act: "API_AddReord",
  _fid_6: "foo",
  _fid_7: "bar"
});

$.when(promise).then(function(xml) {
  var rid = $("rid", xml).text();
  console.log(rid);
});
Write user IP address to a field using a URL-Formula PostURL var promise = $.ajax({
  type: "GET",
  url: "https://api.ipify.org/?format=jsonp",
  dataType: "jsonp"
});

$.when(promise).then(function(json) {
  var ip = json.ip;
  $("#_fid_6").val(ip);
});
How do I control the allowable file attachment types for attachment fields? PostURL //PDF:
$("#_fid_6").attr("accept", "application/pdf");

//Images:
$("#_fid_6").attr("accept", "image/*");

//Word Docs:
$("#_fid_6").attr("accept", "application/msword");
How to add the mailto button from a specific report to the homepage or a form? PostURL var dbid = "your dbid";
var apptoken= "your apptoken";
$.ajaxSetup({data: {apptoken: apptoken}});

$.post(dbid, {
  a: "QBI_ValidateEmailView",
  qid: "1",
  toList: "dandiebolt@gmail.com\\dandiebolt@yahoo.com",
  subject: "Lorem Ipsum",
  msg: "It was a dark and stormy night; the rain fell in torrents — except at occasional intervals, when it was checked by a violent gust of wind which swept up the streets (for it is in London that our scene lies), rattling along the housetops, and fiercely agitating the scanty flame of the lamps that struggled against the darkness.",
});
Import CSV from "Drop box" or a connected NAS in my network PostURL $("<img>", {
  src: "https://ws.stressfreeprint.co.uk/bundles/sfpcommon/images/ajax.gif",
  id: "QBU_Spinner"
}).css({
  position: "fixed",
  top: "50%",
  left: "50%",
  transform: "translate(-50%, -50%)"
}).appendTo("body")
  .hide()
  .ajaxStart(function() {
    $(this).show();
  })
  .ajaxStop(function() {
    $(this).hide();
  });
What Exactly is the  "Be The API" Technique? PostURL $.getRecordPickerFields = function(dbid) {
  return $.Deferred(function(dfd) {
    $.get(dbid , {a: "KeyProps"}).done(function(html){
      var fid1 = $("#fieldSelect1 option:selected", html).val();
      var fid2 = $("#fieldSelect2 option:selected", html).val();
      var fid3 = $("#fieldSelect3 option:selected", html).val();
      dfd.resolve([fid1, fid2, fid3]);
    });
  }).promise();
};

var dbid = "your table dbid";
$.getRecordPickerFields(dbid).done(function(fidsRecordPicker) {
  console.log(fidsRecordPicker);
});

==============================
$.getApplicationTokens = function(dbid) {
  return $.Deferred(function(dfd) {
    $.get(dbid , {a: "GetAppDevKey"}).done(function(html){
      var apptokens = $("#devKeyTable tr.m > td:first-child", html).map(function() {
        return $(this).text();
      }).get();
      dfd.resolve(apptokens );
    });
  }).promise();
};

var dbid = "your application dbid";
$.getApplicationTokens(dbid).done(function(apptoekns) {
  console.log(apptoekns);
});

==============================
$.getAPICounts = function(accountid) {
  return $.Deferred(function(dfd) {
    $("<iframe>", {
      src: "main?a=AccountSummary&accountid=" + accountid,
      id: "QBU_myiframe",
      style: "display: none"
    }).appendTo("body");
    $("#QBU_myiframe").load(function() {
       var counts = $("#QBU_myiframe")[0].contentWindow.input.usageJSON.apiCounts.counts;
       dfd.resolve(counts);
    });
  }).promise();
};

var accountid = "your accountid";
$.getAPICounts(accountid).done(function(counts) {
  console.table(counts);
});
Apply same application token to multiple applications at once PostURL var dbids = ["bj2ghbams", "bj2ghdcsk", "bj2ghd33y", "bj2gheq3r", "bj2ghfbvd"];
var appkey = "dccza6pdxbda3nbh5bd4gdgt87ks";
var keydescription = "this is my apptoken";
var keyType = "P";
var pageToken;

dbids.forEach(function(dbid) {
  var promise = $.get("https://haversineconsulting.quickbase.com/db/" + dbid + "?a=GetAppDevKey", function(html) {
    pageToken = $("input[name=PageToken]", html).val();
  });
  promise.then(function(){
    $.post(dbid, {
      a: "QBI_AddApplicationDeveloperKey",
      devkey: appkey,
      keydescription: keydescription,
      keyType: keyType,
      PageToken: pageToken
    });
  });
});
Is there a way to show a relationship list as comma separated on a single row? PostURL $.getScript("bj2r4uuxm?a=API_GenResultsTable&qid=7&jsa=1", function() {

  var template1 = "";
  template1 += "<ul>\n";
  template1 += "{{#items}}\n";
  template1 += "  <li>{{player}}: {{positions}}</li>\n";
  template1 += "{{/items}}\n";
  template1 += "</ul>\n";

  var template2 = "";
  template2 += "<table>\n";
  template2 += "  {{#items}}\n";
  template2 += "    <tr>\n";
  template2 += "      <td>{{player}}</td>\n";
  template2 += "      <td>{{positions}}</td>\n";
  template2 += "    </tr>\n";
  template2 += "  {{/items}}\n";
  template2 += "</table>\n";

  var data1 = _.groupBy(qdb_data, function(data) {
    return data[0];
  });

  var data2 = _.map(data1, function(val, key) {
    var positions = _.map(val, function(val, index) {
      return val[1];
    });

    return {player: key, positions: positions.join(", ")};

  });

  var markup1 = Mustache.render(template1, {items:data2});
  alert(markup1)


  var markup2 = Mustache.render(template2, {items:data2});
  alert(markup2)
});
How To Get JSON From API_DoQuery? PostURL var dbid = "bjgzmpcgs";
var apptoken = "cqjnmdadpt6dp4depdb6mc5yr8hs";

$.ajaxSetup({
  data: {apptoken: apptoken}
});

var XMLFlatToObj = function(xml, type) {
  var data = [];
  var record = {};
  $("record", xml).each(function() {
    record = {};
    $(this).children().each(function () {
      record[$(this).prop("tagName")] = $(this).text();
    });
    data.push(record);
  });
  return {records: data};
}

var promise = $.ajax({
  url: dbid, 
  data: {
    act: "API_DoQuery",
    qid: "1",
    clist: "6.7.8"
  },
  dataFilter: XMLFlatToObj
});

promise.then(function(response) {
  console.log(JSON.stringify(response, null, "  "));
});
How To Generate Mustache Template? PostURL function RenderTable(cols, records) {

  var template0 = "";
  template0 += "<table>\n";
  template0 += "    <tr>\n";
  template0 += "      {{#cols}}\n";
  template0 += "      <th>{{col}}</th>\n";
  template0 += "      {{/cols}}\n";
  template0 += "    </tr>\n";

  template0 += "    {{=<% %>=}}\n";
  template0 += "    {{#records}}\n";
  template0 += "    <tr>\n";

  template0 += "      <%#cols%>\n";
  template0 += "      <td>{{<%token%>}}</td>\n";
  template0 += "      <%/cols%>\n";

  template0 += "    </tr>\n";
  template0 += "    {{/records}}\n";
  template0 += "    <%={{ }}=%>\n";

  template0 += "</table>\n";

  var template1 = Mustache.render(template0, {cols: cols});
  alert(template1);
  var markup = Mustache.render(template1, records );

  return markup;
}

var cols = [
  {col: "Name", token: "name"},
  {col: "Age", token: "age"},
  {col: "Email", token: "email"}
];


var records = {
  "records": [
    {
      "name": "Jane Doe",
      "age": "41",
      "email": "jane.doe@example.com",
      "update_id": "1435573081498"
    },
    {
      "name": "Baby Doe",
      "age": "12",
      "email": "BabyDoe@example.com",
      "update_id": "1435573101872"
    },
    {
      "name": "John Doe",
      "age": "44",
      "email": "jdoe@example.com",
      "update_id": "1435573130264"
    }
  ]
}

var markup = RenderTable(cols, records);
alert(markup);
Multiple JSA=1 Responses from AJAX & API PostURL var url = "";
url += "<your dbid>";
url += "?act=API_GenResultsTable";
url += "&query=<your query>";
url += "<other parameters>";
url += "&jsa=1";

var promise = $.getScript(url);

promise.then(function() {
  // response is available in global variables:
  // qdb_numcols
  // qdb_numrows
  // qdb_heading
  // qdb_data

  var qdb_numcols1 = qdb_numcols;
  var qdb_numrows1 = qdb_numrows;
  var qdb_heading1 = qdb_heading1;
  var qdb_data1 = qdb_data;
});
How do you Delete in cascading fashion? PostURL var dbidParent = "";
var dbidChild = "";
var fidRelatedParent = "";
var apptoken = "";
$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 = $.post(dbidChild, {
  act: "API_PurgeRecords",
  query: "{" + fidRelatedParent + ".EX." + kRid + "}"
});

var promise2 = $.post(dbidParent, {
  act: "API_PurgeRecords",
  query: "{3.EX." + kRid + "}"  
});

$.when(promise1, promise2). then(function () {
  alert("Cascade Delete Completed");
  document.location.href = dbidParent + "?a=td";
});
Multiple JSA=1 Responses from AJAX & API PostURL // utility function
var XMLFlatToObj = function(xml, type) {
  var data = [];
  var record = {};
  $("record", xml).each(function() {
    record = {};
    $(this).children().each(function() {
      record[$(this).prop("tagName")] = $(this).text();
    });
    data.push(record);
  });
  return {records: data};
};

var dbidJobs = "";
var apptoken = "";

$.ajaxSetup({
  data: {
    apptoken: apptoken
  }
});

var jobNumber = "";
var data1 = "";
var date2 = "";

var dataFirm = {
  act: "API_DoQuery",
  query: "{184.EX." + jobnumber + "}AND{281.GT." + date1 + "}AND{281.LT." + date2 + "}",
  clist: "6.28.281.133"
};

var dataClosing = {
  act: "API_DoQuery",
  query: "{184.EX." + jobnumber + "}AND{14.GT." + date1 + "}AND{14.LT." + date2 + "}",
  clist: "6.28.14.265"
};

var promiseFirming = $.ajax({
  url: dbidJobs,
  data: dataFirm,
  dataFilter: XMLFlatToObj
});

var promiseClosing = $.ajax({
  url: dbidJobs,
  data: dataClose,
  dataFilter: XMLFlatToObj
});

$.when(promiseFirming, promiseClosing).then(function(argsFirming, argsClosing) {
  //argsFirming[0] and argsClosing[0] should contain the JSON you want
  console.log(JSON.stringify(argsFirming[0], null, "  "));
  console.log(JSON.stringify(argsClosing[0], null, "  "));
});
What Exactly is the "Be The API" Technique? PostURL $.getExpandedURL = function(dbid, id) {
  return $.Deferred(function(dfd) {

    var promise = $.get(dbid, {
      a: "JBI_GenExpandedURL",
      qid: qid
    });

    promise.then(function(data) {
      var expURL = data.expURL;
      var query = $("<div/>").html(expURL).text().substring(1);
      var pairs = query.split("&");
      var props = {};
      for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split("=");
        props[pair[0]] = pair[1];
      }
      dfd.resolve(props);
    });
  }).promise();
};

var dbid = "bgcwm2m4g";
var qid = "1";

$.getExpandedURL(dbid, qid).done(function(props) {
  console.dir(JSON.stringify(props, null, "  "));
});

output:
{
  "qt": "tab",
  "dvqid": "1",
  "clist": "3.7.8.11.6.24",
  "slist": "3",
  "opts": "so-D.gb-X.nos."
}
Is there an easy way to pass data between two QuickBases to pre-populate fields? PostURL var dbid1 = "bj3za7mzn";
var clist1 = "6.7.8";
var qid1 = "5";

var dbid2 = "bj3zb5t4b";
var clist2 ="8.7.6";

var apptoken = "b8yb5ufc25jwakc2ucvh7d2zb5bi";
$.ajaxSetup({data: {apptoken: apptoken}});

var promise1 =$.get(dbid1, {
  a: "q",
  qt: "tab",
  dvqid: qid1,
  opts: "csv.nos."
});

promise1.then(function(csv) {
  console.log(csv);
  var promise2 =$.post(dbid2, {
    act: "API_ImportFromCSV",
    clist: clist2,
    skipfirst: "1",
    records_csv: csv
  });
  promise2.then(function(xml) {
    console.dirxml(xml);
  });
});
Field NOT changed PostURL var notesFid = "6";

var $new = $("form[name=editform]").find(":input")
  .filter("[name^=_fid_]")
  .not("[name^=_fid_oval]")
  .not("#_fid_" + notesFid);

var $old = $("form[name=editform]").find(":input")
  .filter("[name^=_fid_oval]")
  .not("#_fid_oval_" + notesFid)

var newSerialize = $new.serialize();
var oldSerialize = $old.serialize().replace(/_oval_/g, "_");;

console.log(newSerialize == oldSerialize);
Is is possible to disable ctrl+S save in a form? PostURL $(document).bind('keydown keypress', 'ctrl+s', function () {
  return false;
});
How to Add Up Summary Report Totals Each Month? PostURL //File: CaptureSummary.js

var dbid = "bj453ame5";
var dbidTasks = "bj453amf3";
var dbidTickets = "bj4557aqe";
var dbidLogs = "bj458bwja";
var apptoken = "cqrpqk8dtu6strd48djxq27zd9m";
var qid = "6";
$.ajaxSetup({data: {apptoken: apptoken}});

var urlIframe = "bj4557aqe?a=q&ifv=0&qid=" + qid;

$("<iframe>", {
  id: "myIframe",
  style: "display:none",
  src: urlIframe
}).appendTo("body");

$("#myIframe").on("load", function() {
  var $iframe = $(this).contents();
  var numCookOff = $("#facetViewContainer table tbody tr:eq(6) td:eq(3)", $iframe).text();
  var numFestival = $("#facetViewContainer table tbody tr:eq(9) td:eq(3)", $iframe).text();
  var numJamboree = $("#facetViewContainer table tbody tr:eq(12) td:eq(3)", $iframe).text();
  var totalAmount = $("#facetViewContainer table tbody tr:eq(15) td:eq(3)", $iframe).text();
  console.log(numCookOff , numFestival, numJamboree,totalAmount);

  var promise = $.post(dbidLogs, {
    act: "API_AddRecord",
    _fid_6: numCookOff,
    _fid_7: numFestival,
    _fid_8: numJamboree,
    _fid_9: totalAmount 
  });

  promise.then(function(xml) {
    document.location.href = dbidLogs + "?a=q&qid=1";
  });
});

Formula for Button:
"<a class=\"Vibrant Success\" onclick=\"$.getScript(gReqAppDBID+'?a=dbpage^pagename=" & [Script] &  "');return false;\">" & [Script] & "</a>"
How can I gain -complete- control over ALL the content of a Subscription message? I want to change the default content when Quickbase sends a subscription email. PostURL var message = "Efficiently unleash cross-media information without cross-media value. Quickly maximize timely deliverables for real-time schemas. Dramatically ";

var subject = "You Got Corporate Ipsum";

var toList = [
  "dandiebolt@gmail.com",
  "dandiebolt@yahoo.com"
].join("\\d");

var dbid = "bf3zb9bqt";

var promise = $.post(dbid, {
  a: "QBI_ValidateEmailView",
  toList: toList,
  subject: subject,
  msg: message
});

promise.then(function(res) {
  console.dirxml(res);
});
Result Pages:  1  2  3    

We're glad you're interested in doing more with Quick Base!

Now we need to make you official before you share apps or manage your account.

Verifying your email lets you share Quick Base with others in your company.

Your work email
Your company
Report Name *
Description
Reports and Charts Panel
Each table has a panel listing its reports and charts, organized in groups.
This report will be listed only for you, in the group Mine.
Only you can see the report in the panel. You can't ever list it for other users. You can still let others open it by sending them links.
Please wait while your new report is saved...
You've made changes
Save
Field label
Column heading override
Justification
What does auto mean?
Fields in:

Fields to Extract:

Name for the new table:
Items in the new table are called:

When you bring additional fields into a conversion, Quick Base often finds inconsistencies. For example, say you're converting your Companies column into its own table. One company, Acme Corporation, has offices in New York, Dallas and Portland. So, when you add the City column to the conversion, Quick Base finds three different locations for Acme. A single value in the column you're converting can only match one value in any additional field. Quick Base needs you to clean up the extra cities before it can create your new table. To do so, you have one of two choices:

Read more about converting a column into a table.

Show fields from Show fields from Show fields from a related table