DriveBase API(v1系)
DriveBaseは、DriveBaseが提供しているAPIと関数を組み合わせてアプリケーションを作成していきます。
目的に沿ったAPIを利用してください。
DriveBase REST API(A→Z順)
createCSVBySQL【 SQLにて取得されたテーブルデータのCSVダウンロードを行う】 (Ver 1.00〜)
_db.createCSVBySQL(sql, sqlParam, fileName, columnOrder, encoding)
SQLにて指定されたテーブルデータのCSVのダウンロード
sql[String]・・・実行するJDBC形式のSQL
sqlParam[Array]・・・ JDBC形式のSQLに渡すパラメータ配列
fileName[String]・・・保存するCSV名
columnOrder[Array]・・・ 出力するCSVの並び順、ヘッダー名を下記のオブジェクト形式にて指定
ex.[{"title":CSVのヘッダー名称, "JSONKeyName":ヘッダー名に対応する項目のJSONKeyName},...]
encoding[String]・・・出力するエンコーディング形式(未指定の場合はUTF-8)
createCSVFromJson 【 JSONデータから、指定されたCSVファイル名でCSVダウンロードを行う】(Ver 1.03〜)
_db.createCSVFromJson(columArray, data, fileName)
JSONデータから、指定されたファイル名でCSVダウンロード
columnOrder[Array]・・・ 出力するCSVの並び順、ヘッダー名をArray形式にて指定
ex.[{"title": CSVのヘッダー名称, "JSONKeyName":ヘッダー名に対応する項目のJSONKeyName}, ...]
data [Array]・・・出力するオブジェクト形式の配列データ
ex.[{タイトル1:"データ11", タイトル2:"データ21", タイトル3: "データ31"}, {タイトル1:"データ12", タイトル2:"データ22", タイトル3: "データ32"}, ...]
fileName[String]・・・保存するCSV名
CreatePDFFromJson【 JSONデータから、指定されたjasperフォームでのPDF生成を行う】(Ver 1.00〜)※非推奨
_db.createPDFFromJson(id, data)
JSONデータから、指定されたPDFの生成
id [String]・・・jrxml又はjspaerファイルのGoogleドライブ保存ID
data [Array]・・・出力するオブジェクト形式の配列データ
ex.[{タイトル1:"データ11", タイトル2:"データ21", タイトル3: "データ31"}, {タイトル1:"データ12", タイトル2:"データ22", タイトル3: "データ32"}]
※ Google Apps Script(v8)とGoogleスプレッドシートを組み合わせて出力することを推奨しています。
deleteBySQL【SQLにてデータベーステーブルへDELETE文を発行する】(Ver 1.00〜)
_db.deleteBySQL(SQLObjects, callback)
SQLにて、データベーステーブルにDELETE文を発行します。
SQLObjects[Object or Array]・・・ 下記の構成のオブジェクト("sql/必須"又は"name/必須【Ver1.04以降】"(どちらか必須)、"param/任意")をセット(複数実行時は配列としてセット)。
[{"sql":実行するSQL, "param":[DBC形式のSQLに渡すパラメータ, ....}, ...]
※1 SQLに記述するJSONKeyName項目は、必ず"で括る。
ex.delete from 社員マスタ where "社員名コード" = ?
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベーステーブルにDELETE SQLを発行します。
レスポンスには削除した行数が帰ってきます
ex.button1のclick時
_db.deleteBySQL({'sql':'delete from 社員マスタ where "社員コード" = ?', 'param':[$('#text1').val()]}, function(response) {
if ($.isArray(response)) {
swal('データ削除', '削除されました。削除件数は、' + response[0] + '件です。', 'success');
}
else {
swal('データ削除', '削除されました。削除件数は、' + JSON.stringify(response) + '件です。', 'success');
}
});
deleteDBData【表示されている内容をデータベーステーブルから削除する】(Ver 1.00〜)
_db.deleteDBData(target, callback)
フォームデータをデータベース(MySQL)に更新する。
target [String](省略可能)・・・削除対象となるテーブル名(省略時はプロパティ"DBTableNamesにしてあるテーブルの現在表示レコード全てが削除されます)
callback [Function]・・・関数実行終了後に実行するスクリプト
表示中のフォーム内容をデータベーステーブルから削除します。データベースの削除テーブル名はプロパティの「DBTableNames」に設定した値で削除されます。削除対象となる行を特定するには、プロパティの「DBKeyField」がtrueの項目の値が使用されます。 主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
ex.button1のclick時
_db.deleteDBData('TBL_社員マスタ', function(response) {
if (!('message' in response)) {
swal('データ削除', '削除されました。', 'success');
}
});
deleteDocData【表示されている内容をGoogleドライブから削除する(ゴミ箱へ移動)】(Ver 1.00〜)※非推奨
_db.deleteDocData(fileId, callback)
フォームデータをGoogleドライブから削除する
fileId[String]・・・Googleドライブの保存先ファイルid
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
入力したフォーム内容をGoogleドライブのファイルから削除します。ドライブから完全に削除される訳ではなく、ゴミ箱へ移動と同様の動作です(検索対象から外れない)。主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
ex.button1のclick時
_db.deleteDocData("XXXXXXXX", function(response) {
alert('ゴミ箱へ移動されました');
});
※ executeDriveCommandを利用して下さい。将来バージョンで廃止予定です。
executeDriveCommand【Googleドライブの操作を行う】(Ver 1.02〜)
_db.executeDriveCommand(command, param, sync, callback)
GoogleDriveのファイル操作コマンドを実行する。
command [String]・・・行う処理("copy":ファイルのコピー、"move":ファイルの移動、"remove":ファイルの削除、"put":ファイルの更新、"post":ファイルの作成、"permission":ファイル属性の変更および権限の変更、"change":ファイル属性の変更、"get":ファイルの取得、"list":ディレクトリのファイルリストの取得)
param [String]・・・各処理を実行するパラメータをJSON型で設定
"copy": コピー元ファイルID(id)、コピー御ファイル名(title)、[任意]詳細内容(description)、コピー先フォルダID(targetParent)
"move": 移動元ファイルID(id)、異動先フォルダID(targetParent)、[任意]移動元フォルダID(parent)
"remove": 削除ファイルID(id)
"put": 更新ファイルID(id)、[任意]書込文字データ(data)
"post": 作成タイトル(title)、作成MimeType(mimeType)、[任意]詳細内容(description)、[任意]作成先フォルダID(parent)、書込文字データ(data)
"permission": 変更元ファイルID(id)、変更情報(execute)>>[以下のJSONをArrayでセット]
updateTitle:{title:"変更タイトル"}・・・タイトル変更
updateDescription:{title:"変更詳細内容"}・・・詳細内容変更
updateRole:{email:"更新するメールアドレス", newRole:"変更する権限"}・・・権限変更
addRole:{email:"追加するメールアドレス(typeがuserまたはgroupの場合)" or domain:"追加するドメイン名(タイプがdomainの場合)", type:"domain" or "user" or "group", role:"追加する権限"}・・・権限追加
deleteRole:{email:"権限を削除するメールアドレス"}・・・権限削除
deleteAllRole:true・・・全権限削除(owner以外)
changeOwner:{email:"オーナー権限を譲渡するメールアドレス"}・・・owner変更
"change": 変更元ファイルID(id)
[任意]変更ファイル名(title)
[任意]変更MimeType(mimeType)
[任意]変更説明内容(description)
[任意]変更権限(role)>>{"email":変更する対象メールアドレス,"newRole":付与する権限(owner,writer,reader等),"additionalRoles"(任意):"commenter"}
"get": 取得ファイルID(id)、[任意]リビジョンID(revisionId)
"list": [任意]取得条件(q)、[指定しない]次ページ情報(pageToken)
"getCommentReplies": 対象ファイルID(id)、対象コメントID(commentId)
"postCommentReply": 対象ファイルID(id)、対象コメントID(commentId)、コメント(content)
"putCommentReply": 対象ファイルID(id)、対象コメントID(commentId)、対象リプライID(replyId)、コメント(content)
sync [boolean]・・・非同期通信するか否か(true:非同期通信、false(デフォルト):同期通信)
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
Googleドライブに対して指定の処理を実行します。戻り値は操作結果(status)と、操作したGoogleDriveRestAPIと同様のJSONキー名でファイルの詳細情報(listコマンドの場合はpageListというObjectにArray形式でファイル情報が格納されている)が戻ります。
button1のclick時
_db.executeDriveCommand("get", {id:"XXXXXX",} true, function(response) {
if (response.status == 0) {
alert('取得したファイル名は' + response.title + "です。");
}
});
executeServerScript【サーバーサイドスクリプトを実行する】(Ver 1.00〜)
_db.executeServerScript(functionName, param, callback)
functionName [String](省略可)・・・スクリプトとして記述された処理中の指定されたfunctionを実行する。省略時はスクリプト全てが実行される
param [Object](省略可)・・・functionNameが指定されている時、そのfunctionの引数に値を設定する(オブジェクトの値はString型以外指定できません)
callback [String](省略可)・・・サーバースクリプト終了後、クライアントに戻ってきた時に行う処理を記述。引数には、サーバーサイドスクリプトの戻り値が入る
※ 引数が全て省力された場合、document>(Server Script)に記述されたサーバーサイドスクリプトがそのまま実行される
サーバーサイドスクリプト中のfunction内にて、returnで値を戻すと、その値がfnのレスポン値として返却されます。
document>(ServerScript)内のスクリプト
function getWebPage(url) {
return _dbs.wget(url);
}
button1のclick時
_db.executeServerScript('getWebPage(url)', {url: 'https://www.google.co.jp'}, function(response) {
alert(response); // GoogleページのHTMLが表示される
});
formDataToJson【フォームデータをJSONデータ化】(Ver 1.00〜)
_db.formDataToJson(selector)
フォームデータをjsonデータとして返却する
selector [String](省略可)・・・DBTablesNames等のクラス名。
画面に表示されている現在のデータを項目名(id)をキーとしたjson形式のオブジェクトとして返却する
button1のclick時
var tempSaveData = _db.formDataToJson("customer");
getFormDataBySQL【SQLにてデータベーステーブルからデータを取得し、フォームへ展開する】(Ver 1.00〜)
_db.getFormDataBySQL(SQLObjects, callback)
SQLを実行し、取得したJSONデータをフォームデータとして展開する(展開される項目は、プロパティ、"DBTableNames"と"DBColumnName"に一致する項目)
SQLObjects[Object or Array]・・・ 下記の構成のオブジェクト("sql/必須"又は"name/必須【Ver1.04以降】"(どちらか必須)、"param/任意")をセット(複数実行時は配列でセット)。
ex.[{"sql":実行するSQL,"param":JDBC形式のSQLに渡すパラメータ配列}, ...]
※1 JSONKeyName項目は、必ず"で括る。
例:select "部署マスタ.部署名", "社員マスタ.社員名" from 部署マスタ left outer join 社員マスタ on ("部署マスタ.部署コード" = "社員マスタ.部署コード" where "部署マスタ.部署コード" = ?
但し、副問合せ等の複雑なSQLは対応していません。副問合せなどのSQLを記述する時は、"で括らず、データベースがそのまま理解できる記述で指定します。例えば、"部署コード"と書いている部分を、json_extract(value,'$.[部署コード]')と記述します。
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベースから取得したデータをフォームのデータとして展開します。画面への取得対象テーブルは、プロパティ「DBTableNames」、取得対象列はプロパティ「DBColumnName」に設定されている値です。行形式の複数レコードの画面展開、単票形式の1レコードの画面展開どちらも、この関数で対応します。
button1のclick時
_db.getFormDataBySQL({'sql':'select * from 社員マスタ where 会社コード=? and 部署コード=?', 'param':[$('#text1').val(), $('#text2').val()]},function(response) {
if ('社員マスタ' in response) {
swal("社員マスタメンテナンス","社員データを展開しました","success");
}
});
getFormDataFromDBData【データベーステーブルからデータを取得し、フォームへ展開する】(Ver 1.00〜)
_db.getFormDataFromDBData(condition, callback)
データベース(MySQL)のJSONデータをフォームデータとして展開する(展開される項目は、プロパティ、"DBTableNames"と"DBColumnName"に一致する項目)
condition [Object]・・・検索する条件。指定していない(null)場合は、項目のプロパティ(DBTableNames、DBColumnName、DBKeyField)とその値から自動構築。
キー名:[String]検索対象のDBテーブル名
値:[Object]検索条件オブジェクト
キー名:[String]条件を発行するDBカラム名(またはソート指定の"SYS_SORT"、取得する列を絞る"SYS_COLUMN")
値:[String/Object/Array]比較する値
Stringの場合 →
イコール検索する値
Objectの場合 →
キー名:"compare"[String]
値 :=、Likeなど、SQL Where句の比較演算子
キー名:"value"
値:比較する値。
Arrayの場合 →
条件を発行するDBカラム名に対して、IN句の値になる値/検索条件オブジェクト(同じDBカラム名でのor結合)。または、ソート項目の指定
Objectの場合 →
キー名:"compare"[String]
値:=、Likeなど、SQL Where句の比較演算子
キー名:"value"[String]
値:比較する値。
Stringの場合(条件を発行するDBカラム名が"SYS_SORT"以外) →
IN句の値
Stringの場合(条件を発行するDBカラム名が"SYS_SORT") →
並び替えるDBカラム名+空白+"DESC or ASC"
Stringの場合(条件を発行するDBカラム名が"SYS_COLUMN") →
取得するDBカラム名
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベースから取得したデータをフォームのデータとして展開します。画面への取得対象テーブルは、プロパティ「DBTableNames」、取得対象列はプロパティ「DBColumnName」に設定されている値です。
行形式の複数レコードの画面展開、単票形式の1レコードの画面展開どちらも、この関数で対応します。
取得対象となる行を特定するには、プロパティの「DBKeyField」がtrueの項目の値が使用されます(複数指定可)。 主な使い方は、検索画面で、検索ボタン押下時にデータを一覧取得する、又は画面ロード時に前画面から渡された値で、データを画面表示するような使い方です。
button1のclick時
_db.getFormDataFromDBData({'customer':{'id': $('#hidden1').val()}}, function() {
$('#button2').val('更新');
});
getFormDataFromDocData【Googleドライブからデータを取得し、フォームへ展開する】(Ver 1.00〜)
_db.getFormDataFromDocData(fileId, tableId, callback)
GoogleドライブファイルのJSONデータをフォームデータとして展開する(展開される項目は、プロパティ、"DBTableNames"と"JSONKeyName"に一致する項目)
fileId[String]・・・GoogleドライブのファイルID
tableId[String](省略可)・・・読み込むtableのid
callback[Function](省略可)・・・RESUFulAPI終了後に実行する関数
Googleドライブファイルに保存しているフォームデータから取得したデータを画面フォーム項目として展開します。画面への転送対象テーブルは、プロパティ「DBTableNames」、取得対象列はプロパティ「JSONKeyName」に設定されている値が一致している項目です。行形式の複数レコードの画面展開、単票形式の1レコードの画面展開どちらも、この関数で対応します。複数レコードがGoogleドライブファイルに格納されている場合は、その値を展開するHTMLテーブルのDriveBaseのidを指定してください。
button1のclick時
_db.getFormDataFromDoc("XXXXXX", null, function() {
$('#button2').val('更新');
});
getJsonBySQL【SQLにてデータベーステーブルからデータをJSON形式で取得する】(Ver 1.00〜)
_db.getJsonBySQL(SQLObjects, mthod, callback)または、DriveBaseScript.getJsonBySQL(SQLObjects, mthod, callback)
SQLにて取得したデータを、JSONデータとしてレスポンスに返します。
SQLObjects[Array]・・・ 下記の構成のオブジェクト("sql/必須"又は"name/必須【Ver1.04以降】"(どちらか必須)、"param/任意")を検索対象テーブル分を、配列としてセット。
[{"sql":実行するSQL,"param":JDBC形式のSQLに渡すパラメータ配列}, ...]
※1 JSONKeyName項目は、必ず"で括る。
例:select "部署マスタ.部署名", "社員マスタ.社員名" from 部署マスタ left outer join 社員マスタ on ("部署マスタ.部署コード" = "社員マスタ.部署コード" where "部署マスタ.部署コード" = ?
但し、副問合せ等の複雑なSQLは対応していません。副問合せなどのSQLを記述する時は、"で括らず、データベースがそのまま理解できる記述で指定します。例えば、"部署コード"と書いている部分を、json_extract(value,'$.[部署コード]')と記述します。
method [String](省略可)・・・"GET" or "POST"(省略時、"POST")
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベースからデータ取得します。レスポンスには検索結果が下記構成のオブジェクトが配列で帰ってきます。
{結果を取得したテーブル名:[項目列をObjectとした結果行全て]}
ex.{"社員マスタ":[{"id":1,"部署コード":"001","社員コード":"2009001","社員名":"山田太郎"},{"id":2,"部署コード":"001","社員コード":"2012009", ...}, ...]
button1のclick時
_db.getJsonBySQL({'sql':'select * from 社員マスタ where 会社コード=? and 部署コード=?', 'param':[$('#text1').val(), $('#text2').val()]}, function(response) {
if ('社員マスタ' in response) {
for(var i=0;i<response['社員マスタ'].length;i++) {
var optElement = $(document.createElement('option');
optElement.val(response['社員マスタ'][i]['社員コード']);
optElement.text(response['社員マスタ'][i]['社員名']);
$('#datalist3').append(optElement);
}
}
});
getJsonFromDBData【データベーステーブルからデータをJSON形式で取得する】(Ver 1.00〜)
_db.getJsonFromDBData(condition, callback)
指定条件にてテーブルデータを取得し、JSONデータとしてレスポンスに返します。
condition [Array]・・・下記の構成のオブジェクト("target/必須"、"sumKey/任意"、"sumField/任意"、"condition/任意")を検索対象テーブル分を、配列としてセット。
キー名:[String]"target"
値:[String]検索対象のDBテーブル名
キー名:[String]"sumKey"
値:[Array]集計キーとなるカラム名をStringで列挙
キー名:[String]"sumField"
値:[Array]集計用関数(function)と集計されるカラム名(field)をObjectで列挙
キー名:[String]"function"
値;[String]"sum"、"max"、"min"、"avg"等の集計関数名
キー名:[String]"field"
値:[String]集計されるカラム名
キー名:[String]"condition"
値:[Object]検索条件オブジェクト
キー名:[String]条件を発行するDBカラム名(またはソート指定の"SYS_SORT")
値:[String、Object、Array]比較する値
String →
イコール検索する値
Object →
キー名:"compare"[String]
値:=、Likeなど、SQL Where句の比較演算子
キー名:"value"[String]
値:比較する値
Array →
条件を発行するDBカラム名に対して、IN句の値になる値/検索条件オブジェクト(同じDBカラム名でのor結合)。または、ソート項目の指定
Object →
キー名:"compare"[String]
値:=、Likeなど、SQL Where句の比較演算子
キー名:"value"[String]
値:比較する値
String(条件を発行するDBカラム名が"SYS_SORT"以外) →
IN句の値
String(条件を発行するDBカラム名が"SYS_SORT") →
並び替えるDBカラム名+空白+"DESC or ASC"
fn [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベースからデータ取得します。
レスポンスには検索結果が下記構成のオブジェクトが配列で帰ってきます
{結果を取得したテーブル名:[項目列をObjectとした結果行全て]}
ex.{"社員マスタ":[{"id":1,"部署コード":"001","社員コード":"2009001","社員名":"山田太郎"},{"id":2,"部署コード":"001","社員コード":"2012009", ...}, ...]
button1のclick時
var array = new Array();
array[0] = {
"target":"customer",
"condition":{"id":$('#hidden1').val()}
}
array[1] = {
"target":"sales",
"sumKey":"customerId",
"sumField":{"function":"sum", "field":"orderCount"},
"condition":{"customerId":$('#text2').val()}
}
_db.getJsonFromDBData(array, function(response) {
if ("sales" in response) {
for(var i=0;i<response["sales"].length;i++) {
・・・
}
}
});
importDriveBase【CSVや他データベースデータをDriveBaseテーブルへインポートする】】(Ver 1.00〜)
_db.importDriveBase(configFile, deleteBefore, catalog, wait, callback)
CSVファイル、Googleスプレッドシート、別データベース・テーブルデータをDriveBaseのテーブルへ、インポートします。
configFile [String]・・・インポート実行処理を行う定義ファイルのGoogleドライブファイルID、又は定義ファイルのJSONを文字列化した文字列
deleteBefore [String]・・・インポート前に削除を行うか?(1:YES 1以外:NO)
catalog [String](省略可)・・・エクスポート先のデータベースカタログ名、又は{"token":"発行したトークン"}をシリアライズ(String)した文字列(省略時、自ドメインのデータベース)
wait [int](省略可)・・・処理の待ち時間(デフォルト60秒)
callback [Function](省略可)・・・インポート実行終了後に実行する処理を記述
configFileをGoogleドライブファイルIDを渡すのではなく、定義ファイルJSONを直接渡す場合は、認証の為に事前に取り込み元のグローバルIPアドレスの登録が必要になります。この場合は、利用可能かどうかは、DriveBase管理者へお申し込み下さい。また、importDriveBase関数ではなく、サーバーから直接インポート処理を実施する場合もDriveBase管理者へご確認下さい。
cofigFileの定義は以下のように定義して下さい。
取り込みタイプが"database"の時のconfigFileの形式(1定義で複数のテーブルからのインポートが可能です)
{
importType: "database",
source: {
url: "drivebase/取り込み元データベース名" or "取り込み元JDBC定義(Oracle、SQLServer、PostgreSQL、MySQLに対応)",
user: "データベースのユーザー名(urlがJDBCの時に必須)",
password: "データベースのパスワード(urlがJDBCの時に必須)",
tables: [
{
sql: "select * from 取り込み元テーブル名1",
columns: [
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
...
],
target: "取り込み先のテーブル名1(DBTableNames)"
},
{
sql: "select * from 取り込み元テーブル名2",
columns: [
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{name:"取り込むカラム名", type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double" or "BigDecimal", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
...
],
target: "取り込み先のテーブル名2(DBTableNames)"
},
...
]
}
}
取り込みタイプが"csv"の時のconfigFileの形式(1定義で1つのCSVからのインポートが可能です)
{
importType: "csv",
source: {
url: "http GetするURL、又はDriveBaseサーバーが読み込めるディレクトリパス",
basicAuth: true or false(受け取り先のBasic認証。省略時はfalseと同様),
basicUser: "basic認証時のユーザー名(basicAuthがfalse時、省略可能)",
basicPass: "basic認証時のパスワード(basicAuthがfalse時、省略可能)",
fileEncode: "CSVファイルのエンコード",
separate: "項目の区切り文字", <- 正規化のエスケープ文字は"@"
header: true or false(ヘッダーの有無。省略時はfalseと同様)
table: {
target: "取り込み先のテーブル名(DBTableNames)",
keyColumns: [ <- ターゲット先のキー項目を列挙する
{type:"String" or "Int" or "Long" or "Double", JSONKeyName:"キー項目のカラム名(JSONKeyName)", TableColumnName:"キー項目の実カラム名"}, <- TableColumnNameはGeneratedColumnで作成された列が存在する場合のみ
{type:"String" or "Int" or "Long" or "Double", JSONKeyName:"キー項目のカラム名(JSONKeyName)", TableColumnName:"キー項目の実カラム名"}, <- TableColumnNameはGeneratedColumnで作成された列が存在する場合のみ
...
],
duplicateAction: "delete&insert" or "update|insert" or "update|nothing" or "nothing", <- キーが重複した時のアクション
columns: [ <- CSV列の並び順通りに記述
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)", condition:{compare:"= or <> or < or <= or > or >= or in", value:"比較する値"}}, <-条件マッチしない場合、行自体がインポートされない
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", , condition:{compare:"= or <> or < or <= or > or >= or in", value:"比較する値"}}, <- 条件文のみで値を取り込みたくない場合は、JSONKeyNameを指定しない
{}, <- 取り込みたくないCSV列は何も指定しない
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)"},
...
]
},
finishSQL: [ <- 取り込み後に行うSQLがある場合は指定(省略可能)
"UPDATE XXXX ZZZZ='0001' WHERE YYYY= '0002'",
...
]
}
}
取り込みタイプが"spreadsheet"の時のconfigFileの形式(1定義で複数のテーブルからのインポートが可能です)
{
importType: "spreadsheet",
source: {
url: "スプレッドシートのURL、又はファイルID",
tables: [
{
range: "A1:G10000", <- 取り込む範囲を指定
target: "取り込み先のテーブル名(DBTableNames)", <- テーブル名とシート名が同一のものを対象として、シートが選択される
keyColumns: [
{type:"String" or "Int" or "Long" or "Double", JSONKeyName:"キー項目のカラム名(JSONKeyName)", TableColumnName:"キー項目の実カラム名"}, <- TableColumnNameはGeneratedColumnで作成された列が存在する場合のみ
{type:"String" or "Int" or "Long" or "Double", JSONKeyName:"キー項目のカラム名(JSONKeyName)", TableColumnName:"キー項目の実カラム名"}, <- TableColumnNameはGeneratedColumnで作成された列が存在する場合のみ
...
],
duplicateAction: "delete&insert" or "update|insert" or "nothing",
columns: [ <- SpreadSheet列の並び順通りに記述
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)", format:""%05d"", condition:{compare:"= or <> or < or > or <= or >= or in", value:"比較する値"}},
{}, <- このCSV列は取り込まれない
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)", format:""%5d"", condition:{compare:"= or <> or < or > or <= or >= or in", value:"比較する値"}},
{type:"String" or "Timestamp" or "Time" or "Date" or "Int" or "Long" or "Double", JSONKeyName:"取り込み先のカラム名(JSONKeyName)", condition:{compare:"= or <> or < or > or <= or >= or in", value:"比較する値"}},
...
]
},
...
],
finishSQL: [ <- 取り込み後に行うSQLがある場合は指定(省略可能)
"update XXXX set XXXX='YYYY' where XXXX = 'ZZZZ'",
"update XXXX set XXXX='YYYY' where XXXX = 'ZZZZ'",
...
]
}
}
button1のclick時
_db.importDriveBase($("#textarea1").val(), "0", "xxxxxx", function(response) {
swal('データインポート', '正常にインポートされました。', 'success');
});
insertBySQL【SQLにてデータベーステーブルへINSERT文を発行する】(Ver 1.00〜)
_db.insertBySQL(SQLObjects, callback)
SQLにて、データベーステーブルにINSERT文を発行します。
SQLObjects[Object or Array]・・・ 下記の構成のオブジェクト("sql/必須"又は"name/必須【Ver1.04以降】"(どちらか必須)、"param/任意")をセット(複数実行時は配列でセット)。
ex.[{"sql":実行するSQL, "param":JDBC形式のSQLに渡すパラメータ配列}, ...]
※1 JSONKeyName項目は、必ず"で括る。また、パラメータ指定項目はJSONKeyName項目のみ対応。
例:insert into 社員マスタ("部署コード", "社員名") values('001',?)
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベーステーブルにINSERT SQLを発行します。結果レスポンスには挿入した行のIDが帰ってきます
button1のclick時
_db.insertBySQL({'sql':'insert into 社員マスタ("部署コード", "社員名") values(\'001\',?)', 'param':[$('#text1').val()]}, function(response) {
if ($.isArray(response)) {
swal('データ登録', '登録されました。登録IDは、' + response[0] + 'です。', 'success');
}
else {
swal('データ登録', '登録されました。登録IDは、' + response + 'です。', 'success');
}
});
insertDBData【入力データをデータベーステーブルへ新規保存する】(Ver 1.00〜)
_db.insertDBData(target, callback)
フォームデータをデータベースに登録する。
target [String](省略可)・・・登録対象となるテーブル名
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
入力したフォーム内容をデータベースに登録します。データベースの登録テーブル名はプロパティの「DBTableNames」、列名は「JSONKeyName」に設定した値で登録されます。主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
button1のclick時
_db.insertDBData(function(response) {
if (!('message' in response)) {
swal('データの登録', '正常に登録されました', 'success');
}
});
insertDocData【入力データをGoogleドライブへ新規保存する】(Ver 1.00〜)※非推奨
_db.insertDocData(folderId, description, target, callback)
フォームデータをGoogleドライブに登録する
folderId[String]・・・Googleドライブの保存先フォルダid
description[String]・・・ファイルの説明
target[String]・・・保存するDBTableName
callback[Function](省略可)・・・RESUFulAPI終了後に実行する関数
入力したフォーム内容をGoogleドライブに登録します。ファイルのmimetypeは、"application/vnd.uapps.drivebase.doc."+target(プロパティの「DBTableNames」に相当させる)、列名は「JSONKeyName」に設定した値で登録されます。主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
button1のclick時
_db.insertDocData("XXXXXXXX", "サンプルファイル", "gdrivedata", function(response) {
if (!isNull(response.id)) {
swal('データの保存', '正常に保存されました', 'success');
}
});
※ executeDriveCommandを利用して下さい。将来バージョンで廃止予定です。
jsonToFormData【JSON形式のデータをフォームへ展開する】(Ver 1.00〜)
_db.jsonToFormData(object, targetTableId, sessionSave)
フォームデータをjsonデータとして返却します
object [Object]・・・展開するJSONデータ
targetTableId [String/Object]・・・テーブルに行形式で展開する場合に、展開するテーブルのIDを指定(任意)。テーブルを追加モードか書き換えモードかで設定する場合、オブジェクトとして渡す(例:{"table": "展開するテーブルID", "append":true or false})
sessionSave [boolean]・・・セッションストレージにデータを保存するか否か(任意)
button1のclick時
_db.getJsonBySQL({"sql":"select * from 社員マスタ"}, function(response) {
if ("社員マスタ" in response) {
_db.jsonToFormData(response, "table1", true);
}
});
sendMail【メールを送信する】(Ver 1.00〜)
_db.sendMail(account, sendMailInfo, attFileId, callback)
DriveBaseより指定アドレスへメールを送信します。メール送信は、DriveBaseの設定が必要です。詳細はお問い合わせ下さい。
account [String]・・・送信するドメイン(又はメールアドレス)情報
sendMailInfo [Object]・・・送信するメール内容
キー名:"to"
値:[Array] Key:Email Value:送信先メールアドレス/Key:Name Value:宛名
キー名:"cc"
値:[Array] Key:Email Value:送信先メールアドレス/Key:Name Value:宛名
キー名:"bcc"
値:[Array] Key:Email Value:送信先メールアドレス/Key:Name Value:宛名
キー名:"subject"
値:[String]件名
キー名:"text"
値:[String]本文
attFileId [String](省略可)・・・添付ファイルコンポーネントのid(Googleドライブへのリンクとして案内されます。手動でGoogleドライブファイルへ共有設定を行う必要があります。)
callback [function](省略可)・・・実行後のスクリプト
button1のclick時
var mailInfo = {to:[{Email:"test@example.com", Name:"テストユーザー"}], subject:"テストメールです", text:"ここに本文を記述します。\n改行も出来ます。"};
_db.sendMail("メール配信サービスと契約しているドメイン", mailInfo, "attfile12", function(response) {
swal("メール送信", "指定アドレスへメールを送信しました", "success");
});
updateBySQL【SQLにてデータベーステーブルへUPDATE文を発行する】(Ver 1.00〜)
_db.updateBySQL(SQLObjects, callback)
SQLにて、データベーステーブルにUPDATE文を発行します。
SQLObjects[Object or Array]・・・ 下記の構成のオブジェクト("sql/必須"又は"name/必須【Ver1.04以降】"(どちらか必須)、"param/任意")をセット(複数実行時は配列でセット)。
ex.[{"sql":実行するSQL, "param":JDBC形式のSQLに渡すパラメータ配列}, ...]
※1 JSONKeyName項目は、必ず"で括る。また、パラメータ指定項目はJSONKeyName項目のみ対応。
例:update 社員マスタ set "部署コード"=?, "社員名"=? where "社員コード"=?
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
データベーステーブルにUPDATE SQLを発行します。レスポンスには更新した行数が帰ってきます
button1のclick時
_db.updateBySQL({'sql':'update 社員マスタ set "社員名" = \'anonymous\', "社員名かな"=? where "社員コード" = ?', 'param':[$('#text1').val(), $('#text2').val()]}, function(response) {
if ($.isArray(response)) {
swal('データ更新', '更新されました。更新件数は、' + response[0] + '件です。', 'success');
}
else {
swal('データ更新', '更新されました。更新件数は、' + response + '件です。', 'success');
}
});
updateDBData【入力データをデータベーステーブルへ更新する】(Ver 1.00〜)
_db.updateDBData(target, callback)
フォームデータをデータベース(MySQL)に更新する。
target [String](省略可)・・・更新対象となるテーブル名(省略時はプロパティ"DBTableNames"にしてあるテーブルの表示レコードが更新となります)
callback [Function](省略可)・・・関数実行終了後に実行するスクリプト
入力したフォーム内容をデータベースに更新します。データベースの更新テーブル名はプロパティの「DBTableNames」、更新列名は「DBColumnName」に設定した値で登録されます。
更新対象となる行を特定するには、プロパティの「DBKeyField」がtrueの項目の値が使用されます(複数指定可)。 主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
button1のclick時
_db.updateDBData(function(response) {
if (!('message' in response)) {
swal('社員マスタの更新', '正常に更新されました', 'success);
}
});
updateDocData【入力データをGoogleドライブへ更新する】(Ver 1.00〜)※非推奨
_db.updateDocData(fileId, target, callback)
フォームデータをGoogleドライブに登録する
fileId[String]・・・Googleドライブの保存先ファイルid
target[String]・・・保存するDBTableName
callback[Function](省略可)・・・RESUFulAPI終了後に実行する関数
入力したフォーム内容をGoogleドライブのファイルに更新します。ファイルのmimetypeは、"application/vnd.uapps.drivebase.doc."+target(プロパティの「DBTableNames」に相当させる)、列名は「JSONKeyName」に設定した値で登録されます。
主な使い方は、HTMLのボタン部品を配置して、そのクリック時にこの関数を呼び出すようにします。
button1のclick時
_db.updateDocData("XXXXXXXX", "gdrivedata", function(response) {
if (!isNull(response.id)) {
swal('データの登録', '正常に登録されました', 'success);
}
});
※ executeDriveCommandを利用して下さい。将来バージョンで廃止予定です。
フロントエンドUI/UX関数(A→Z順)
checkValidity【入力項目の必須入力チェックを行う】(Ver 1.00〜)
_db.checkValidity()
表示中画面の未入力不可項目(テキストボックス、セレクトボックス、チェックボックス、ラジオボタン、テキストエリア)の、チェックを行い、未入力項目があった場合にエラーメッセージを表示する。
button1のclick時
// エラー表示を解除
$("#canvas").find(".invalidComponent").removeClass("invalidComponent");
// エラーチェックを実行
if (_db.checkValidity()) {
// 正常処理
}
closePopup【モーダルウィンドウを閉じる】(Ver 1.00〜)
_db.closePopup(param)
ポップアップ(自分自身)を閉じる
param [Object](省略可能)・・・呼び出し元のフォームに渡すパラメータをJSON形式で指定(次画面にはcallbackParamというオブジェクトに引き継がれる)
button1のclick時
_db.closePopup({id:$('hidden1').val()});
initTable【表形式の入力、表示項目を初期化する】(Ver 1.00〜)
_db.initTable(tableId)
指定されたテーブルのIDを指定して、テーブル内に入っている項目の初期化を行う
tableId [String]・・・対象のテーブルID(エレメントID)
moveTo【画面を切り替え、指定されたフォームを表示する(送りアニメーション)】(Ver 1.00〜)
_db.moveTo(url, param, animation)
アニメーション後、指定されたGoogleファイルIDのフォームをを表示
url [String]・・・DriveBaseのフォームID(GoogleファイルID)
param [Object](省略可能)・・・次表示フォームに渡すパラメータをJSON形式で指定(次画面にはargumentObjectというオブジェクトに引き継がれる)
animation [String](省略可能)・・・現在画面のアニメーション(fadeIn、returnIn、forwordIn)
※ paramにはVer1.03以下は日本語は使えません。Ver 1.04以降で日本語対応しています。
button1のclick時
_db.moveTo("jcshhcukesjnjs86767cdncsjjs", {id:$('hidden1').val()});
parentMoveTo【ポップアップで開かれた小画面から、親画面を切り替え、指定されたフォームを表示する】(Ver 1.00〜)
_db.parentMoveTo(url, param)
親画面のフォームをスライドアウトアニメーション後、指定されたGoogleファイルIDのフォームをを表示
url [String]・・・DriveBaseのフォームID(GoogleファイルID)
param [Object](省略可能)・・・次表示フォームに渡すパラメータをJSON形式で指定(次画面にはargumentObjectというオブジェクトに引き継がれる)
※ paramにはVer1.03以下は日本語は使えません。Ver 1.04以降で日本語対応しています。
button1のclick時
_db.parentMoveTo("jcshhcukesjnjs86767cdncsjjs", {id:$('hidden1').val()});
_db.popupTo(url, size, param)
指定されたDriveBaseフォームをポップアップウィンドウ(モーダルウィンドウ)で表示
url [String]・・・DriveBaseのフォームID(GoogleファイルID)
size [Object](省略可能)・・・ポップアップのサイズ(width、height)をオブジェクト形式で指定する。デフォルトは640x480。
param [Object]・・・開かれるフォームに渡すパラメータ
※ paramにはVer1.03以下は日本語は使えません。Ver 1.04以降で日本語対応しています。
button1のclick時
_db.popupTo('cjsahdjkshdsjdhfkur8786ekfjds', {width:1024, height:768}, {id:$('#hidden1').val());
reloadiframe【iFrameで開いている別フォームを再読み込みする】(Ver 1.00〜)
_db.reloadiframe(iframeId)
指定されたiFrameのIDを指定して、リロードを行います。
iframeId [String]・・・対象のiFrameID(エレメントID)
_db.removeWYSIWYG(targetId)
指定されたテキストエリアのWYSIWYG化を削除します。
targetId [String or jQueryオブジェクト]・・・対象のテキストエリアID、対象敵テキストエリアのjQuryオブジェクト
_db.returnTo(url, param)
戻りアニメーション(現画面はフェードアウトしながら右へスライド、次画面はフェードインしながら左からスライド)後、指定されたGoogleファイルIDのフォームをを表示
url [String]・・・DriveBaseのフォームID(GoogleファイルID)
param [Object](省略可能)・・・次表示フォームに渡すパラメータをJSON形式で指定(次画面にはargumentObjectというオブジェクトに引き継がれる)
※ paramにはVer1.03以下は日本語は使えません。Ver 1.04以降で日本語対応しています。
button1のclick時
_db.returnTo("jcshhcukesjnjs86767cdncsjjs", {id:$('hidden1').val()});
setReadOnly【入力項目を読み取り専用モードに変更する】(Ver 1.00〜)
_db.setReadOnly(format)
表示中画面の入力可能項目(テキストボックス、セレクトボックス、チェックボックス、ラジオボタン、テキストエリア)を、入力不可状態にします。
format[boolean]・・・ 数値項目、日付項目をフォーマットするかどうかを指定(数値は3桁カンマ区切り、日付は"/"で区切られます)
setRewritable【読み取り専用モードになっている入力項目を通常の入力項目へ戻す】(Ver 1.00〜)
_db.setRewritable(exceptComponent)
表示中画面の入力可能項目(テキストボックス、セレクトボックス、チェックボックス、ラジオボタン、テキストエリア)の入力不可状態を、入力可能状態にします。
exceptComponent [Array]・・・入力可能状態にしないコンポーネントの対象エレメントID
setTDWidth【動的に広げたテーブルの項目幅の最適化】(Ver 1.02〜)
_db.setTDWidth(targetId)
テーブルのstyle属性(CSS)にて、width:100%;等でテーブル幅を動的に広げる設定をしている場合や、Actionエディターでテーブル幅を広げた場合に、テーブル内セルに追加されているラベルなどのコンポーネントの幅をセル幅に合わせて自動的に調整します。
targetId [String or jQueryオブジェクト]・・・対象のテーブルID、対象敵テーブルのjQuryオブジェクト
setWYSIWIG【テキストエリアのWYSIWYG化】(Ver 1.03〜)
_db.setWYSIWYG(targetId)
指定されたテキストエリアのWYSIWYG化を行います。
targetId [String or jQueryオブジェクト]・・・対象のテキストエリアID、対象敵テキストエリアのjQuryオブジェクト
useSession【読み込んだデータのローカル保存方法の設定】(Ver 1.03〜)
_db.useSession(useSessionFlg)
テーブルデータの保持先をセッションストレージにするか、インデックスDBにするかを指定します。
useSessionFlg [boolean]・・・true or null:sessionStorageへ保持、false:indexedDBへ保持
サーバーサイドスクリプト関数(A→Z順)
deleteBySQL(Sever関数版)【SQLにてデータベーステーブルからデータを削除する】(Ver 1.00〜)
_dbs.deleteBySQL(database, sql, param)
SQLにて、データベーステーブルにDELETE文を発行します。
database[String]・・・ データベース用ドメイン名、又は自メールアドレス(IPアドレスによるアクセス制限で許可されている場合)。DriveBaseトークン(IPアドレスによるアクセス許可で制限されている場合。{"token":"XXXXXXXXX"}のオブジェクトをシリアライズ(String)してセット)。
sql[String]・・・ 実行するSQL(JDBC形式のSQLに対応)※1
param[String]・・・ JDBC形式のSQLに渡すパラメータ配列をシリアライズ(String)
戻り値[String]・・・削除された行数
※1 JSONKeyName項目は、必ず"で括る。
例:delete from 社員マスタ where "社員名コード" = ?
データベーステーブルにDELETE SQLを発行します。レスポンスには削除した行数が帰ってきます
document>(ServerScript)内のスクリプト
function deleteData(databse, id) {
return _dbs.deleteBySQL(database, 'delete from 社員マスタ where id=?', JSON.stringify([id]));
}
button1のclick時
// 非表示コンポーネントのhidden1には、社員マスタのidに相当する値が入っているものとする。
_db.executeServerScript('deleteData(database, id)', {database: userInfo.email, id:$('#hidden1').val()}, function(response) {
swal('データ削除', '削除されました。削除件数は、' + response + '件です。', 'success'); // 削除された行数が文字列にて返却されます。
});
getJSONArrayBySQL【SQLにてデータベーステーブルからデータをJSONArray形式で取得する】(Ver 1.00〜)
dbs.getJSONArrayBySQL(database, sql, param)または、DriveBaseServerScript.getJSONArrayBySQL(database, sql, param)
SQLにて取得したデータを、JSONデータとしてレスポンスに返します。
database[String]・・・ データベース用ドメイン名、又は自メールアドレス(IPアドレスによるアクセス制限で許可されている場合)。DriveBaseトークン(IPアドレスによるアクセス許可で制限されている場合。{"token":"XXXXXXXXX"}のオブジェクトをシリアライズ(String)してセット)。
sql[String]・・・ 実行するSQL(JDBC形式のSQLに対応)※1
param[String]・・・ JDBC形式のSQLに渡すパラメータ配列(Array)を文字列化した値(※ServerScriptへは文字列しか渡せない為、配列(Array)から必ず文字列(String)化する)
戻り値[String]・・・列:Object/行:Arrayで表したオブジェクトが、シリアライズ(String)されて返却されます。
※1 JSONKeyName項目は、必ず"で括る。
例:select "部署マスタ.部署名", "社員マスタ.社員名" from 部署マスタ left outer join 社員マスタ on ("部署マスタ.部署コード" = "社員マスタ.部署コード" where "部署マスタ.部署コード" = ?
データベースからデータ取得します。
レスポンスには検索結果が配列で帰ってきます
document>(ServerScript)内のスクリプト
function getData(databse, id) {
return _dbs.getJSONArrayBySQL(database, 'select * from 社員マスタ where id=?', JSON.stringify([id]));
}
button1のclick時
// 非表示コンポーネントのhidden1には、社員マスタのidに相当する値が入っているものとする。
_db.executeServerScript('getData(database, id)', {database: userInfo.email, id:$('#hidden1').val()}, function(response) {
alert(response); // 自データベース、社員マスタへのSQL実行結果が、列:Object/行:Arrayで表したオブジェクトで、シリアライズ(String)されて返却されます。
});
insertBySQL(Sever関数版)【SQLにてデータベーステーブルにデータを登録する】(Ver 1.00〜)
_dbs.insertBySQL(database, sql, param)
SQLにて、データベーステーブルにINSERT文を発行します。
database[String]・・・ データベース用ドメイン名、又は自メールアドレス(IPアドレスによるアクセス制限で許可されている場合)。DriveBaseトークン(IPアドレスによるアクセス許可で制限されている場合。{"token":"XXXXXXXXX"}のオブジェクトをシリアライズ(String)してセット)。
sql[String]・・・ 実行するSQL(JDBC形式のSQLに対応)※1
param[String]・・・ JDBC形式のSQLに渡すパラメータ配列をシリアライズ(String)
戻り値[String]・・・削除された行数
※1 JSONKeyName項目は、必ず"で括る。
例:delete from 社員マスタ where "社員名コード" = ?
データベーステーブルにINSERT SQLを発行します。
レスポンスには登録したid列の値が帰ってきます
document>(ServerScript)内のスクリプト
function insertData(databse, name, sex) {
return _dbs.insertBySQL(database, 'insert into 社員マスタ("社員名","性別") values (?,?)', JSON.stringify([name,sex]));
}
button1のclick時
_db.executeServerScript('insertData(database, name, sex)', {database: userInfo.email, name:$('#text1').val(), sex:$('#text2').val()}, function(response) {
swal('データ登録', '登録されました。登録idは、' + response + 'です。', 'success'); // 登録された行のid列の値が文字列にて返却されます。
});
updateBySQL(Sever関数版)【SQLにてデータベーステーブルにデータを更新する】(Ver 1.00〜)
_dbs.updateBySQL(database, sql, param)
SQLにて、データベーステーブルにUPDATE文を発行します。
database[String]・・・ データベース用ドメイン名、又は自メールアドレス(IPアドレスによるアクセス制限で許可されている場合)。DriveBaseトークン(IPアドレスによるアクセス許可で制限されている場合。{"token":"XXXXXXXXX"}のオブジェクトをシリアライズ(String)してセット)。
sql[String]・・・ 実行するSQL(JDBC形式のSQLに対応)※1
param[String]・・・ JDBC形式のSQLに渡すパラメータ配列をシリアライズ(String)
戻り値[String]・・・削除された行数
※1 JSONKeyName項目は、必ず"で括る。
例:delete from 社員マスタ where "社員名コード" = ?
データベーステーブルにUPDATE SQLを発行します。
レスポンスには更新された行のid列の値が帰ってきます
document>(ServerScript)内のスクリプト
function updateData(databse, id, name, sex) {
return _dbs.updateBySQL(database, 'update 社員マスタ set "社員名"=?, "性別"=? where id=?', JSON.stringify([name,sex,id]));
}
button1のclick時
_db.executeServerScript('updateData(database, id, name, sex)', {database: userInfo.email, id:$('#hidden1').val(), name:$('#text1').val(), sex:$('#text2').val()}, function(response) {
swal('データ更新', '更新されました。', 'success');
});
wget【指定されたURLにGETメソッドでアクセスして、レスポンス結果を返却する】(Ver 1.00〜)
_dbs.wget(url, charset)
指定されたURLからレスポンスを取得し、結果を返します。
url[String]・・・ アクセスするURL
charset[String]・・・ 文字コード
document>(ServerScript)内のスクリプト
function getWebPage(url) {
return _dbs.wget(url);
}
button1のclick時
_db.executeServerScript('getWebPage(url)', {url: 'https://www.google.co.jp'}, function(response) {
alert(response); // GoogleトップページのHTMLが文字列として表示される
});
_dbs.wpost(url, param, contentType, charset)
指定されたURLからレスポンスを取得し、結果を返します。
url[String]・・・ アクセスするURL
param[String]・・・ アクセス先に渡すフォームパラメータ
contentType[String]・・・ ドキュメントタイプ
charset[String](省略可)・・・ 文字コード
document>(ServerScript)内のスクリプト
function getWebPage(url) {
return _dbs.wpost(url, "", "text/html");
}
button1のclick時
_db.executeServerScript('getWebPage(url)', {url: 'https://www.google.co.jp'}, function(response) {
alert(response); // GoogleトップページのHTMLが文字列として表示される
});
DriveBase関数(A→Z順)
formatDatetime【日付のフォーマットを行う】(Ver 1.00〜)
formatDatetime(value)
日付を、yyyy/MM/dd HH:mm:ss形式の文字列で返却する
value [Date]・・・変換する日付
戻り値:[String]フォーマットされた日付の文字列
formatHHMM【時刻のフォーマットを行う】(Ver 1.00〜)
formatHHMM(value)
時刻を、HH:mm形式の文字列で返却する
value [Date]・・・変換する日付
戻り値:[String]フォーマットされた時刻の文字列
formatYYYYMMDDHHMM(value)
日付を、yyyy/MM/dd HH:mm形式の文字列で返却する
value [Date]・・・変換する日付
戻り値:[String]フォーマットされた日付の文字列
getNumeric(value)
渡された値の数値型に変換して返却する。null、""は0として返却されます。undefinedは変換されません。
value [any]・・・変換する値
戻り値:[Number]数値型に変換された値
hasObject(arg1, arg2, arg3....)
渡された値がObject又はArrayとして存在するかチェックします。
arg [String or Number]・・・オブジェクト名又はオブジェクトキー、配列
戻り値:[boolean]存在している場合true。存在していなかったらfalse
if (hasObject(_go, "社員マスタ", i, "社員コード")) {
$("#label1").text(_go["社員マスタ"][i]["社員コード"]);
}
isNull(value)
Nullを判定。
value [any]・・・判定する値
戻り値:true/false(Null時はtrue、Nullでなければfalse)
if (isNull(_go["社員マスタ"][i]["社員名"])) {
swal("社員マスタ","社員名がありません","error");
}
isNumeric(value)
数値かどうかを判定。小数点、+ー符号付きの数値も数値と判定されます。
value [any]・・・判定する値
戻り値:true/false(数値時はtrue、数値以外はfalse)
if (isNumeric(_go["社員マスタ"][i]["年齢"])) {
...
}
separate【数値をカンマ区切りで返却】(Ver 1.00〜)
separate(value)
数値を、#,##0形式の文字列で返却します。
value [Number]・・・変換する値
戻り値:String
$("#label1").text(separate(response["売上テーブル"][i]["売上金額"]));
showLoader()
ローダーを遅延させ、表示します。
loader.show();
_db.getJsonBySQL({"sql":"select * from 社員テーブル"}, function(response) {
showLoader(); // getJsonBySQLが終わるとローダーが消えてしまうので、再表示する。
});