DriveBase API(v2系)
DriveBaseは、DriveBaseが提供しているAPIと関数を組み合わせてアプリケーションを作成していきます。
目的に沿ったAPIを利用してください。
DriveBase2 制約・注意事項
DriveBase API/関数は、v2よりES8対応となっています(但し、DriveBase内部で利用しているjQueryコールバック関数がアロー関数と相性が悪い為、アロー関数は非推奨。アロー関数を利用して想定通りの動作をしない場合は、旧来のfunction定義で関数を実行してください)。
async対応関数をawaitで呼び出す事により、promiseによる同期処理となります。
ActionScriptクライアントクラス内にて、classを定義する事により、テンプレート関数となります。
各イベント内にて、自身のコンポーネントを示すthisは利用できません。代わりに"_me"を利用してください。但し、イベント処理内にて、thisが変更されるような処理を行った場合、"_me"は利用できなくなります。"_me"をスクリプト内で定義した変数に入れて利用してください。
例)1行目: _me.dbVal("初期値"); // 自身のコンポーネントに"初期値"という値が設定される
2行目: let me = _me; // 予め_meをローカル変数に保持
3行目: let response = await _db.getJsonBySQL(...); // Promise処理にてthisが変更される
4行目: _me.dbVal(response["xxx"][0]["値"]); // エラー
5行目: me.dbVal(response["xxx"][0]["値"]); // 成功
DriveBase API/関数は、ActionScriptの中で、先頭に_db.を付与して呼び出すことができます。
例)_db.insertDBData('tbl_test');
Utility関数は、ActionScriptの中で、先頭にUtility.を付与して呼び出すことができます。
例)if (Utility.isNull(_f.社員コード.dbVal())) {・・・}
作成されたクライアント共通関数は、先頭に_gf.を付与して呼び出すことができます。
例)_gf.cfunc1();
作成されたサーバー共通関数は、先頭に_sf.を付与して呼び出すことができます。
例)_sf.sfunc1();
ユーザー記述のクライアント共通関数/サーバー共通関数は、必ずアロー関数ではなく、functionで記述して下さい(DriveBase制約)。
例)❌:var func1 = async () => {・・・} ⭕️:async function func1() {・・・}
SQLオブジェクトのJSON記述方法は全て共通です。
{"sql":'実行するDriveBaseSQL', "param":[実行するDriveBaseSQLにて"?"で指定されたパラメータ値]}
DriveBaseSQLで列を指定する場合は、{}で括ります(v1でのダブルコーテーションで括る方法も利用可能。v2からは{}を推奨)。
例){"sql":'select {社員コード}, {社員名}, {部署コード} from table_社員マスタ where {社員名} like ?', "param":['山田%']}
複数のテーブル列を取得する場合、"select *"で2つのテーブル全ての列は取得出来ません(最後に指定したテーブルの列が取得されます)。以下のように個別に列を指定して下さい(DriveBaseSQL制約)。
例1){"sql":'select {table_社員マスタ.社員コード}, {table_社員マスタ.社員名}, {table_社員マスタ.部署コード}, {table_部署マスタ.部署名} from table_社員マスタ inner join table_部署マスタ on ({table_社員マスタ.部署コード} = {table_部署マスタ.部署コード}) where {table_社員マスタ.社員名} like ?', "param":['山田%']}
例2){"sql":'select table_社員マスタ.*, {table_部署マスタ.部署名} from table_社員マスタ inner join table_部署マスタ on ({table_社員マスタ.部署コード} = {table_部署マスタ.部署コード}) where {table_社員マスタ.社員名} like ?', "param":['山田%']}
DriveBaseオブジェクト
DriveBaseフィールドオブジェクト
_f.fieldName(v1のfieldNameオブジェクトは廃止)
項目のプロパティ、fieldNameに、_f.を先頭につけてアクセスする(jQueryエレメントセレクタのエイリアス)。DriveBase用に拡張されたプロパティ、メソッドが利用できる。
_f.fieldName.dbVal()
フィールドに設定された値を取得する。コンポーネントのタイプに合わせて自動的に型が設定される。
例) let v = _f.売上金額.dbVal(); // vは数値型となる。
let v = _f.メモ.dbVal(); // メモはdivエレメント。divのinnerText値が入る
_f.fieldName.dbVal(value : any)
フィールドに値を設定する。コンポーネントのタイプに合わせて自動的に型が設定される。
例) _f.売上金額.dbVal('30,000'); // input type="number"で設定されている売上金額フィールドには数値型で30000が設定されている。
_f.メモ.dbVal('この欄は\n自由記述です'); // divエレメントのメモには\nが<br />に変換されて設定されている。
_f.fieldName.isNull()
Null(又は、DriveBase上でNullに該当するundefined、長さ0の文字列)をtrue/false判定する。
_f.fieldName.isNumeric()
数値かどうかをtrue/false判定する。
DriveBaseコンポーネントイベントでの自オブジェクト参照
_me(v1の$(this)オブジェクトは利用不可)
DriveBaseイベントコード内にて、jQueryを利用して$(this)と記述すれば自オブジェクトを参照可能であったが、DriveBase制約(v2)によりイベント内では、thisが自関数自体の参照となる。これにより、$(this)で自オブジェクトを参照している場合は_meを利用する。ただし、DriveBaseイベント内でユーザーが、jQueryのonや、addEventListenerで定義したイベントは通常通り、$(this)又はthisを利用する。
v1フォームをDriveBase2にて変換する時は、$(this)が自動的に_meに置き換えられるので、イベント内on、addEventListener内の_meを$(this)、thisに置き換える処理を行う必要がある。
DriveBaseAPI/関数オブジェクト
_db.API/関数名(v1のDriveBaseオブジェクトは廃止)
DriveBaseで提供している関数、APIをActionScriptで呼び出す時に利用
DriveBaseクライアント関数オブジェクト
_gf.ユーザー定義の関数名(v1のglobalFunctionオブジェクトは廃止)
ユーザーがActionScript内のクライアント共通関数で作成した関数を呼び出す時に利用
DriveBaseサーバー関数オブジェクト
_sf.ユーザー定義の関数名
ユーザーがActionScript内のサーバー共通関数で作成した関数を呼び出す時に利用
端末タイプ判定オブジェクト
_ua.isMobile or _ua.isTablet
window.navigator.userAgentから端末タイプを判定
コールバック値オブジェクト
_co.コールバック変数名(v1のcallbackParamオブジェクトは廃止)
iframeで呼び出した子ウィンドウが_db.closePopupを行った時にコールバック関数に渡された値オブジェクト
画面遷移時のパラメータ値オブジェクト
_ao.パラメータ名(v1のargumentObjectオブジェクトは廃止)
_db.moveTo、_db.returnToで画面遷移した時に渡されるパラメータ値オブジェクト
ユーザー設定オブジェクト
_go.変数名(v1のglobalObjectオブジェクトは廃止)
ユーザーがActionScript内で自由に設定できるオブジェクト。フォーム内のActionScriptどこでも利用可能。
アップロードファイル情報
uploadFiles
アップロードコンポーネントを利用して、Googleドライブにアップロードしたファイルの情報がアップロードファイル数分Arrayで入り、ActionScript内のファイルアップロードにて利用可能。
※ 一つのアクション毎に入れ替わる(追加はされない)。2回アップロードしたときは2回目の情報のみ入る。
ログインユーザー情報
userInfo(v1の_uiオブジェクトは廃止)
DriveBaseにログインしているユーザーの情報が入る。
{
email: ユーザーアカウント名
name: 氏名
hd: ドメイン名
picture: ユーザーアイコン
}
初期ロードファイル情報
iniFile(v1のloadedFileObjectオブジェクトは廃止)
canvasにloadFileプロパティを設定している時に、読み込まれるファイルの情報
{
iconImg: ファイルのアイコン,
title: タイトル,
description: 説明,
id: GoogleファイルID,
mimeType: mimeType,
shared: 共有情報,
owner: ファイルオーナー,
modifiedDate: 修正日,
size: ファイルサイズ,
contents: ファイル内容
}
DriveBase API
フォームデータをDBテーブルへ登録する
return insertDBData(target : String, ...fn : Function)
async対応関数。DBTableNameに該当するテーブルが存在しない場合、自動で作成される。
target :String
フォームの各コンポーネントに設定されている、登録を行うターゲットのDBTableNameを指定。指定されなかった場合は、全てのDBTableNameが対象。
fn :Function
登録後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "登録されたDBTableName": '登録されたid'}のJSONが設定されている。
DBテーブルへINSERT SQL文を発行する
return insertBySQL(SQLObject : Array or Object, ...fn : Function)
async対応関数。
SQLObject :Array or Object
実行するDriveBase INSERT SQL。複数指定する場合はArrayでSQLオブジェクトを指定する。
fn :Function
登録後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "登録されたDBTableName": '登録されたid'}のJSONが設定されている。
フォームデータをDBテーブルへ更新する
return updateDBData(target : String, ...fn : Function)
async対応関数。
target :String
フォームの各コンポーネントに設定されている、更新を行うターゲットのDBTableNameを指定。指定されなかった場合は、全てのDBTableNameが対象。
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "更新されたDBTableName": '更新された行数'}のJSONが設定されている。
DBテーブルへUPDATE SQL文を発行する
return updateBySQL(SQLObject : Array or Object, ...fn : Function)
async対応関数。
SQLObject :Array or Object
実行するDriveBase UPDATE SQL。複数指定する場合はArrayでSQLオブジェクトを指定する。
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "更新されたDBTableName": '更新された行数'}のJSONが設定されている。
表示されているフォームデータをDBテーブルから削除する
return deleteDBData(target : String, ...fn : Function)
async対応関数。
target :String
フォームの各コンポーネントに設定されている、更新を行うターゲットのDBTableNameを指定。指定されなかった場合は、全てのDBTableNameが対象。
fn :Function
削除後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "削除されたDBTableName": '削除された行数'}のJSONが設定されている。
DBテーブルへDELETE SQL文を発行する
return deleteBySQL(SQLObject : Array or Object, ...fn : Function)
async対応関数。
SQLObject :Array or Object
実行するDriveBase DELETE SQL。複数指定する場合はArrayでSQLオブジェクトを指定する。
fn :Function
削除後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:'エラー発生時のメッセージ', "削除されたDBTableName": '削除された行数'}のJSONが設定されている。
指定された条件(JSON)にてDBテーブルを検索し、取得したデータをフォームへ展開する
return getFormDataFromDBData(condition : Object, ...fn : Function)
async対応関数。
condition :Object
検索する条件。指定していない場合は、項目のプロパティ(DBTableNames、DBColumnName、DBKeyField、fieldType)とその値から自動構築。
キー名:検索対象のDBテーブル名
値:検索条件オブジェクト または 'auto'
キー名:条件を発行するDBカラム名(またはソート指定の"SYS_SORT"、取得する列を絞る"SYS_COLUMN")
値:"String" or {Object} or [Array]・・・比較する値
"String"
イコール検索する値
{Object}
キー名:"compare"
値:'='、'Like'など、SQL Where句の比較演算子
キー名:"value"
値:比較する値(String, Number)
[Array]
条件を発行するDBカラム名に対して、IN句の値になる値/検索条件オブジェクト(同じDBカラム名でのor結合)。または、ソート項目の指定
{Object}
キー名:"compare"
値:'='、'Like'など、SQL Where句の比較演算子
キー名:"value"
値:比較する値(String, Number)
"String"(条件を発行するDBカラム名が"SYS_SORT"、"SYS_COLUMN"以外)
WHERE時のIN句の値の列挙
"String"(条件を発行するDBカラム名が"SYS_SORT")
並び替えるDBカラム名+空白+"DESC or ASC"
"String"(条件を発行するDBカラム名が"SYS_COLUMN")
取得するDBカラム名
fn :Function
削除後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, "テーブル名":[レコード値]}のJSONが設定されている。
指定された条件(JSON)にてDBテーブルを検索し、データをJSONで返却する
return getJsonFromDBData(condition : Object, ...fn : Function)
async対応関数。
condition :Object
検索する条件。指定していない場合は、項目のプロパティ(DBTableNames、DBColumnName、DBKeyField、fieldType)とその値から自動構築。
キー名:検索対象のDBテーブル名
値:検索条件オブジェクト または 'auto'
キー名:条件を発行するDBカラム名(またはソート指定の"SYS_SORT"、取得する列を絞る"SYS_COLUMN")
値:"String" or {Object} or [Array]・・・比較する値
"String"
イコール検索する値
{Object}
キー名:"compare"
値:'='、'Like'など、SQL Where句の比較演算子
キー名:"value"
値:比較する値(String, Number)
[Array]
条件を発行するDBカラム名に対して、IN句の値になる値/検索条件オブジェクト(同じDBカラム名でのor結合)。または、ソート項目の指定
{Object}
キー名:"compare"
値:'='、'Like'など、SQL Where句の比較演算子
キー名:"value"
値:比較する値(String, Number)
"String"(条件を発行するDBカラム名が"SYS_SORT"、"SYS_COLUMN"以外)
WHERE時のIN句の値の列挙
"String"(条件を発行するDBカラム名が"SYS_SORT")
並び替えるDBカラム名+空白+"DESC or ASC"
"String"(条件を発行するDBカラム名が"SYS_COLUMN")
取得するDBカラム名
fn :Function
削除後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, "テーブル名":[レコード値]}のJSONが設定されている。
指定されたSQLオブジェクトでDBテーブルを検索し、取得したデータをフォームへ展開する
return getFormDataBySQL(SQLObject : Array or Object, ...fn : Function)
async対応関数。
SQLObject :Array or Object
実行するDriveBaseSQL。複数指定する場合はArrayでSQLオブジェクトを指定する。
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, "テーブル名":[レコード値]}のJSONが設定されている。
指定されたSQLオブジェクトでDBテーブルを検索し、データをJSONで返却する
return getJsonBySQL(SQLObject : Array or Object, ...fn : Function)
async対応関数。
SQLObject :Array or Object
実行するDriveBaseSQL。複数指定する場合はArrayでSQLオブジェクトを指定する。
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, "テーブル名":[レコード値]}のJSONが設定されている。
DBテーブルへSQLを発行する(サーバー共通関数内でも利用可能)
return query(SQL : String, param : Array, ...fn : Function)
async対応関数。
SQL :String
実行するDriveBaseSQL。
param :Array
SQLで指定された?に対するパラメータ。
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:[レコード値] or '登録されたID' or '更新された行数' or '削除された行数' ※1}のJSONが設定されている。
※1 resultは発行されるSQLタイプによって値が変わる。
Googleドライブ操作コマンドを実行する
return executeDriveCommand(command : String, param : Object, ...fn : Function)
async対応関数。
command :String
"copy"、"move"、"remove"、"put"、"post"、"change"、"get"、"list"、"getCommentReplies"、"postCommentReply"、"putCommentReply"のいずれかを指定
param :Object
commandが"copy"
{
id:コピー元ファイルID,
title:コピー先ファイル名,
description:コピー先ファイル説明,
targetParent:コピー先フォルダ
}
commandが"move"
{
id: 移動元ファイルID,
targetParent: 異動先フォルダID,
}
commandが"remove"
{
id: 削除ファイルID
}
commandが"put"
{
id: 更新するファイルID,
title: [任意]更新ファイルタイトル,
mimeType: [任意]更新ファイルMimeType,
description: [任意]更新ファイル説明,
targetParent: [任意]更新先フォルダID,
role: [任意][type,"user or domain", role:"writer or reader etc...", emailAddress:"権限を付与するユーザー" or domain:"権限を付与するドメイン"]
comment: [任意]{content:"書き込みコメント",commentId:"更新するコメントid",delete:true or false}} ※ commentIdがある場合はupdateもしくはdelete、ない場合はinsert。
data: [任意]書込文字データ
}
commandが"post"
{
title: 作成ファイルタイトル,
mimeType: 作成ファイルMimeType,
description: [任意]作成ファイル説明,
parent: [任意]作成先フォルダID
data: 書込文字データ
}
commandが"get"
{
id: 取得ファイルID,
revisionId: [任意]リビジョンID
}
commandが"list"
{
q: [任意]取得条件
}
commandが"getCommentReplies"
{
id: 対象ファイルID,
commentId: 対象コメントID
}
commandが"postCommentReply"
{
id: 対象ファイルID,
commentId: 対象コメントID,
content: コメント
}
commandが"putCommentReply"
{
id: 対象ファイルID,
commentId: 対象コメントID,
replyId: 対象リプライID,
content: コメント
}
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:{contents:'ファイル内容'}}のJSONが設定されている。
Googleカレンダー操作コマンドを実行する
return executeCalendarCommand(command : String, param : Object, ...fn : Function)
async対応関数。
command :String
"delete"、"put"、"post"、"get"、"list"のいずれかを指定
param :Object
commandが"delete"
{
calendarId: カレンダーID,
eventId: イベントID
}
commandが"put"
{
calendarId: カレンダーID,
eventId: イベントID,
contents: イベントオブジェクト(カレンダーイベントリソース)
}
commandが"post"
{
calendarId: カレンダーID,
contents: イベントオブジェクト(カレンダーイベントリソース)
}
commandが"get"
{
calendarId: カレンダーID(デフォルトはアカウント名),
eventId: イベントID
}
commandが"list"
{
calendarId: カレンダーID(デフォルトはアカウント名),
minTime: 開始日時(1970-01-01 00.00.00.000,
maxTime: 終了日時
}
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:{contents:'ファイル内容'}}のJSONが設定されている。
Googleコンタクト操作コマンドを実行する
return executeContactsCommand(command : String, param : Object, ...fn : Function)
async対応関数。
command :String
"list"を指定
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:コンタクト}のJSONが設定されている。
ロギングを行う(サーバー共通関数内でも利用可能)
createLog(logData : Object)
data : Object
method: "記録するメソッド名"
name:"記録する処理名"
status:"実行状態" ※HTTPステータスと同じコードを推奨
message: "記録するメッセージ"
指定されたSQLオブジェクトでDBテーブルを検索し、CSVを作成後、ダウンロードする
createCSVBySQL(SQLObject : Object, columnOrder : Array, fileName : String, encording : String)
SQLObject :Object
実行するDriveBaseSQL
columnOrder :Array
列の並び順をArrayで指定する
fileName :String
ファイル名を指定する
encording :String
ダウンロード時のエンコーディングを指定する。未指定の場合はUTF-8
Gmailアカウントを利用してメールを送信する
return sendGmail(mailInfo : Object, ...fn : Function)
async対応関数。
mailInfo :Object
送信するメール情報。以下の形式で指定する
{
"to": Array(送信先メールアドレス文字列を配列で指定),
"cc": Array(送信先ccアドレス文字列を配列で指定),
"bcc": Array(送信先ccアドレス文字列を配列で指定),
"subject": '件名',
"content": 'メール本文',
"attFiles": Array(添付するGoogleドライブのファイルIDを配列で指定)
}
fn :Function
更新後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ}のJSONが設定されている。
CSVよりDBテーブルへデータをインポートする
return importFromCSV(CSVInfo : Object, jobName : String, ...fn : Function)
async対応関数。
CSVInfo :Object
CSVを取り込む情報。以下の形式で指定する
{
fileId: "GoogleファイルID",
encode: "CSVファイルのエンコード",
delimiter: ",", // 区切り文字(タブ区切りは\t)
header: true or false(省略可能),
table: {
target: "取り込み先のテーブル名",
keyColumns: [
{
type:"String" or "Number",
JSONKeyName:"キー項目のカラム名(JSONKeyName)",
TableColumnName:"実カラム名(存在するときのみ)"
},
...
],
duplicateAction: "delete&insert" or "update|insert" or "nothing",
columns: [ <- CSV列の並び順通りに記述
{
type:"String" or "Number" or "Date",
JSONKeyName:"取り込み先のカラム名"
},
{
JSONKeyName: "none" // <- このCSV列は無視される
},
...
],
rowFunction: "CSVデータ取得後(CSVレコード値はオブジェクトJSONRecordを参照)に実行するJavaScriptを文字列形式で記述する。戻り値としてfalseが返されるとその行は取り込まない。"
},
finishSQL: [
"update XXXX set XXXX='YYYY' where XXXX = 'ZZZZ'",
"update XXXX set XXXX='YYYY' where XXXX = 'ZZZZ'",
...
],
beforeDeleteAll: true or false
}
jobName :String
ログファイルに記録する処理名を記述する
fn :Function
CSV取り込み処理を受け付けた後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ}のJSONが設定されている。
データベースをバックアップする
return DBBackup(backupFolderId : String, backupTableName : Array, ...fn : Function)
backupFolderId :String
バックアップファイルを保存するGoogleドライブフォルダID
backupTableName :Array
データベース内のテーブルを選択してバックアップする場合、テーブル名をArrayで指定する
fn :Function
バックアップ処理を受け付けた時に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ}のJSONが設定されている。
データベースをリストアする
return DBRestore(backupFileId : String, ...fn : Function)
backupFileId :String
DBBackupで保存されたGoogleドライブ上のファイルID
fn :Function
リストア処理を受け付けた後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ}のJSONが設定されている。
DriveBaseトークン(DBアクセスをトークンで行う)を設定する
return setDriveBaseToken(tokenName : String, type : String, update : String, ...fn : Function)
async対応関数。
tokenName :String
トークンの名称
type :String
トークンの有効期限
-1:発行中トークンの削除
0:有効期限設定なし
1:5分間有効
2:1時間有効
3:1日間有効
4:1週間有効
5:1ヶ月間有効
6:1年間有効
7:1回のみ有効
update :String
更新方法(tokenNameが既に存在しているトークンの更新。未指定の場合は、0)
0:有効期限とトークンを更新
1:有効期限のみ更新
fn :Function
トークン発行後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:{token:発行されたDriveBaseトークン値, limittime:有効期限日付}}のJSONが設定されている。
ドメイン内で設定されているDriveBaseトークンリストを取得する
return getDriveBaseTokens(...fn : Function)
async対応関数。
fn :Function
トークン発行後に実行する関数(最大2つ。一番目は成功時、二番目は失敗時に実行)。引数として、{status:HTTPレスポンスステータス, message:エラー発生時のメッセージ, result:[{
title:'DriveBaseトークン名',
token:'DriveBaseトークン',
limittime:'有効期限時間(1970-01-01 00:00:00.000からのミリ秒)',
email:'トークンを発行したアカウント名'
}]}のJSONが設定されている。
DriveBase関数
JSONデータをフォームへ展開する
jsonToFormData(data : Array or Object, targetElement : String or jQueryElement or HTMLElement, saveSession : boolean, fieldType : String)
async対応関数。
data :Array or Object
展開するJSONオブジェクトまたはArrayデータ。JSONオブジェクトの場合、{"table" : 'ターゲットとなるDBTabbleName', "record" : [展開するデータ]}、または{'ターゲットとなるDBTableName' : [展開するデータ]}
targetElement :String or jQueryElement or HTMLElement
展開先となるHTMLエレメントのID、またはjQueryエレメント、HTMLエレメント。
sessionSave :boolean
データをセッションに保持するかをtrue、falseで指定。テーブルデータを保持すると、HTMLテーブルへのページ制御が可能になる。
fieldType :String
未指定の場合はDBFieldを設定しているエレメントが対象となる。
HTMLテーブル最終行に1行追加する
appendTableRow(targetElement : String or jQueryElement or HTMLElement, fieldType : String, fn : Function)
targetElement :String or jQueryElement or HTMLElement
展開先となる<table>のHTMLエレメントのID、またはjQueryエレメント、HTMLエレメント。
fieldType :String
未指定の場合はDBFieldを設定しているエレメントが対象となる。
fn :Function
追加後に実行する関数。
データ退避先を指定する
useSession(saveSession : boolean)
saveSession :boolean
trueまたはundefined、nullの場合、ブラウザセッションに保持。falseの場合は、indexedDBに保持される。
indexedDBに保持した場合、大容量のデータも保持できるが、jsonToFormData関数は、awaitで同期させないと非同期実行となる。
フォームを入力不可状態にする
setReadOnly(format : boolean, DBTableName : String)
format :boolean
trueの場合、Date型、Number型入力を、"/"や","で区切られた文字列にする。
DBTableName :String
指定したDBTableNameを持つフィールドに対して入力不可にする。
フォームを入力可能状態にする
setRewritable(exceptElement : Array, DBTableName : String)
exceptElement :Array
除外するエレメントのID(String)をArrayで設定する。未指定の場合は、nullまたは[]で設定する。
DBTableName :String
指定したDBTableNameを持つフィールドに対して入力可能にする。
画面遷移を行う(次画面遷移)
moveTo(url : String, param : Object, animation : String, direct : boolean)
url :String
遷移先フォームのURLを指定する。GoogleドライブのファイルID、又は完全なURLで指定する。
param :Object
遷移先フォームに渡す値を設定する。遷移先では、_aoオブジェクトでアクセス可能
例)db.moveTo('XXXX', {'code':'abc001'}); → console.log(_ao['code']); // abc001
animation :String
遷移先フォームの表示方法(アニメーション)を指定する
slide:左に現フォームが流れて、右から遷移先フォームを表示
fadeIn : 現フォームをフェードアウトし、遷移先フォームをフェードインで表示
direct :boolean
Googleドライブから読み込まない場合、trueを指定し、Googleドライブアクセス可能かどうかの認証を行わない。
画面遷移を行う(前画面遷移)
returnTo(url : String, param : Object, animation : String, direct : boolean)
url :String
遷移先フォームのURLを指定する。GoogleドライブのファイルID、又は完全なURLで指定する。
param :Object
遷移先フォームに渡す値を設定する。遷移先では、_aoオブジェクトでアクセス可能
例)db.returnTo('XXXX', {'code':'abc001'}); → console.log(_ao['code']); // abc001
animation :String
遷移先フォームの表示方法(アニメーション)を指定する
slide:右に現フォームが流れて、左から遷移先フォームを表示
fadeIn : 現フォームをフェードアウトし、遷移先フォームをフェードインで表示
direct :boolean
Googleドライブから読み込まない場合、trueを指定し、Googleドライブアクセス可能かどうかの認証を行わない。
呼び出した親フォームの画面遷移を行う(iframeで呼び出されたフォームでなければ無効)
parentMoveTo(url : String, param : Object, animation : String, direct : boolean)
url :String
呼び出し元の親フォームの遷移先URLを指定する。GoogleドライブのファイルID、又は完全なURLで指定する。
param :Object
遷移先フォームに渡す値を設定する。遷移先では、_aoオブジェクトでアクセス可能
例)db.parentMoveTo('XXXX', {'code':'abc001'}); → console.log(_ao['code']); // abc001
animation :String
遷移先フォームの表示方法(アニメーション)を指定する
slide:左に現フォームが流れて、右から遷移先フォームを表示
fadeIn : 現フォームをフェードアウトし、遷移先フォームをフェードインで表示
direct :boolean
Googleドライブから読み込まない場合、trueを指定し、Googleドライブアクセス可能かどうかの認証を行わない。
ポップアップウィンドウにて新しいフォームを開く
popupTo(url : String, size : Object, param : Object, animation : String, direct : boolean)
url :String
ポップアップで開く遷移先フォームのURLを指定する。GoogleドライブのファイルID、又は完全なURLで指定する。
size :Object
ポップアップで開くウィンドウサイズを{"width":"指定値(px)", "height": "指定値(px)"}で指定する。指定がなかった場合、640x480pxとなる。
param :Object
遷移先フォームに渡す値を設定する。遷移先では、_aoオブジェクトでアクセス可能
例)db.popupTo('XXXX', {'code':'abc001'}); → console.log(_ao['code']); // abc001
animation :String
遷移先フォームの表示方法(アニメーション)を指定する
slide:左に現フォームが流れて、右から遷移先フォームを表示
fadeIn : 現フォームをフェードアウトし、遷移先フォームをフェードインで表示
direct :boolean
Googleドライブから読み込まない場合、trueを指定し、Googleドライブアクセス可能かどうかの認証を行わない。
ポップアップで開かれたウィンドウで、自ウィンドウを閉じてから呼び出し元フォームのコールバック関数を呼び出す
closePopup(param : Object)
param :Object
呼び出し元フォームに渡す値を設定する。遷移先では、_coオブジェクトでアクセス可能
例)db.closePopup({'code':'abc001'}); → console.log(_co['code']); // abc001
入力フィールドの整合性チェックを行う
checkValidity()
requiredプロパティ値にtrueが設定されているフィールドが対象。その他は、typeにDateやNumberなどを設定しているフィールド。
HTMLテーブルの初期化を行う
initiTable(tableId : String or jQueryElement or HTMLElement)
tableId :String or jQueryElement or HTMLElement
初期化するHTMLテーブルのエレメントID、又はjQueryエレメント、HTMLエレメント。
フォームタイトルを編集する
setHeader(headerObject : Object)
headerObject : Object
headerStyle: "ヘッダー領域全体のスタイル"
titleText: "タイトル文字"
titleStyle:"タイトルのスタイル" ※ jQueryのスタイル指定形式
descriptionText:"説明欄文字"
descriptionStyle: "説明欄のスタイル" ※ jQueryのスタイル指定形式
imageSrc: "タイトルイメージのURL"
imageStyle: "タイトルイメージのスタイル" ※ jQueryのスタイル指定形式
accountText: "アカウント文字"
accoutStyle: "アカウントのスタイル" ※ jQueryのスタイル指定形式
accountPictureSrc: "アカウントイメージのURL"
accountPictureStyle: "アカウントイメージのスタイル"
accountPictureTitle: "アカウントイメージのポップアップ文字"
leftButtonText: "ヘッダー左ボタンのテキスト" ※モバイル時のみ
leftButtonStyle: "ヘッダー左ボタンのスタイル" ※モバイル時のみ。jQueryのスタイル指定形式
rightButtonText: "ヘッダー右ボタンのテキスト" ※モバイル時のみ
rightButtonStyle: "ヘッダー右ボタンのスタイル" ※モバイル時のみ。jQueryのスタイル指定形式
iframeをリロードする
reloadiframe(iframeId : String or jQueryElement or HTMLElement)
iframeId :String or jQueryElement or HTMLElement
リロードするiframeのエレメントID、又はjQueryエレメント、HTMLエレメント。
テーブルリサイズ時、各セル幅を設計時のセル幅割合に応じて広げる
setTDWidth(tableId : String or jQueryElement or HTMLElement)
tableId :String or jQueryElement or HTMLElement
リロードするtableIdのエレメントID、又はjQueryエレメント、HTMLエレメント。
渡されたJSONをカラム情報で解析し、CSVを作成後、ダウンロードする
createCSVFromJson(columnOrder : Array, jsonData : Array, fileName : String)
columnOrder :Array
列の並び順を{"title":'ヘッダー見出し","JSONKeyName": '出力するJSONキー項目'}というObjectでArray指定する
jsonData :Array
出力するJSONデータ
fileName :String
ダウンロード時のファイル名
SweetAlert2メッセージボックスを表示する
Swal(title : String, message : String, icon : String, toast : boolean, timer : Number)
title :String
メッセージボックスタイトル
message :String
メッセージボックス本文
icon :String
SweetAlert2のアイコン設定
toast :boolean
トースト表示(右上で固定となります)する場合、trueに設定
timer :Number
トースト表示(右上で固定となります)を行っている時間(ミリ秒)。timerが設定されていると、ボタンは非表示
Utility関数
ローダーを表示する
showLoader(delay : Number)
delay :Number
表示遅延時間を指定(遅延させない場合は指定なし)
ローダーを消去する
hideLoader(delay : Number)
delay :Number
消去遅延時間を指定(遅延させない場合は指定なし)
DriveBaseサーバーとの接続を確認する
return ping()
Promise型。エラー時はrejectされる。
DriveBaseで、nullと同様の意味合い(null、undefined、{}、[]、'"")を持つ値の判定を行う
return isNull(value : any)
value :any
Null判定を行う変数を指定。trueでNullと同様の意味合い、falseで値あり。
数値判定を行う
return isNumeric(value : any)
value :any
数値判定を行う変数を指定。trueで数値、falseで数値以外。
日付変換を行う
return formatDateTime(date : Date)
date :Date
yyyy/MM/dd HH:mm:ss形式で返却する
数値型の値を返す
return getNumeric(value : any)
value :any
変数(文字列、jQueryオブジェクト)に入っている数値のみを抜き出して返却する
文字列から数値型の値を返す
return toNum(value :String)
value :String
数値を抜き出す文字列。
数値を3桁区切り型の文字列にする
return separate(value : Number)
value :Number
3桁区切りにする数値。
階層オブジェクトが存在するか判定する
return hasObject(object : Object, ...keyName : String)
指定したオブジェクトが存在していたらtrue、なければfalseを返却
object :Object
チェックするオブジェクト
keyName :String
チェックするキー名
文字タイプを判定する
return checkCharType(value : any, type : String)
value :any
判定する値
type :String
以下の値を指定する
"zenkaku" ・・・全角文字(ひらがな・カタカナ・漢字 etc.)
"hiragana" ・・・全角ひらがな
"katakana" ・・・全角カタカナ
"alphanumeric" ・・・半角英数字(大文字・小文字)
"numeric" ・・・半角数字
"alphabetic" ・・・半角英字(大文字・小文字)
"upper-alphabetic" ・・・半角英字(大文字のみ)
"lower-alphabetic" ・・・半角英字(小文字のみ)
文字列の改行を<br />に変換する
return nl2br(value : String)
value :String
改行が入った文字列
<br />を文字列改行に変換する
return br2nl(value : String)
value :String
<br />が入った文字列
スネークケース文字列をキャメルケース文字列に変換する
return snake2camel(value : String, upper : boolean)
value :String
スネークケース文字列
※ アンダースコア、ハイフン、半角スペースを変換
※ 先頭の区切り文字は削除
※ 変換前にある文字列中の大文字は変換されないので注意
upper :boolean
アッパーキャメルケースにする場合はtrue(デフォルトはfalse)
キャメルケース文字列をスネークケース文字列に変換する
return camel2snake(value : String, separator : String)
value :String
キャメルケース文字列
先頭の連続した大文字は大文字の最後尾とそれ以外に分解される。また、最後尾の連続した大文字はひとつのまとまりとして変換する。
※ ABCDEF → abcdef
※ abcDef → abc-def
※ AbcDef → abc-def
※ DEFClass → def-class(先頭の連続した大文字は分解)
※ classID → class-id(最後尾の連続した大文字はひとつのまとまりとして変換)
separator :String
区切り文字(デフォルトはハイフン)
ひらがなを全角カタカナに変換する
return hira2kana(value : String, opt : boolean)
value :String
変換するひらがな
以下の文字は結合してカタカナに変換
※ 「う゛」→「ヴ」
※ 「わ゛」→「ヷ」
※ 「ゐ゛」→「ヸ」
※ 「ゑ゛」→「ヹ」
※ 「を゛」→「ヺ」
※ 「ゝ゛」→「ヾ」
opt :boolean
小文字の「ゕ」「ゖ」を変換するかどうか。falseを指定した場合は変換なし
全角カタカナをひらがなに変換する
return kana2hira(value : String, opt : boolean)
value :String
変換するカタカナ
以下の文字を結合・展開
※ 「ウ゛」→「ゔ」
※ 「ヷ」→「わ゛」
※ 「ヸ」→「ゐ゛」
※ 「ヹ」→「ゑ゛」
※ 「ヺ」→「を゛」
※ 「ヽ゛」→「ゞ」
※ ひらがなに無いカタカナは変換しない
「ㇰ」「ㇱ」「ㇲ」「ㇳ」「ㇴ」「ㇵ」「ㇶ」「ㇷ」
「ㇸ」「ㇹ」「ㇺ」「ㇻ」「ㇼ」「ㇽ」「ㇾ」「ㇿ」
opt :boolean
小文字の「ヵ」「ヶ」を変換するかどうか。falseを指定した場合は変換なし
半角カタカナを全角カタカナに変換する
return hankana2zenkana(value : String)
value :String
変換する半角カタカナ
全角を半角に変換する
return han2zen(value : String, tilde : boolean, mark : boolean, hankana : boolean, space : boolean, alpha : boolean, num : boolean)
value :String
変換する文字列
tilde :boolean
チルダ falseを指定した場合は変換なし
mark :boolean
記号 falseを指定した場合は変換なし
hankana :boolean
半角カナ記号 trueを指定した場合のみ変換
space :boolean
スペース falseを指定した場合は変換なし
alpha :boolean
英字 falseを指定した場合は変換なし
num :boolean
数字 falseを指定した場合は変換なし
半角を全角に変換する
return han2zen(value : String, tilde : boolean, mark : boolean, hankana : boolean, space : boolean, alpha : boolean, num : boolean)
value :String
変換する文字列
tilde :boolean
チルダ falseを指定した場合は変換なし
mark :boolean
記号 falseを指定した場合は変換なし
hankana :boolean
半角カナ記号 trueを指定した場合のみ変換
space :boolean
スペース falseを指定した場合は変換なし
alpha :boolean
英字 falseを指定した場合は変換なし
num :boolean
数字 falseを指定した場合は変換なし
一文字表現の"㍿"を"株式会社"の複数文字に展開する
return one2multi(value : String)
value :String
変換する文字列。現在は以下の文字のみ対応。
㈱→(株)
㈲→(有)
㈳→(社)
㈵→(特)
㈶→(財)
㈻→(学)
㈼→(監)
㍿→株式会社