7⽉21⽇のセッション 1 14:00 メールトランスポーター 2 14:10 Write Pro 3 14:20 Compare strings, Position 4 14:30 データブラウザ 5 14:35 モバイル 6 14:40 4D Server 7 14:55 オブジェクト指向プログラミング part 2 8 15:05 オ・ル・ダ part 2 9 15:15 ORDA Class API part 2
Compare strings, Position sk strict sk char codes sk case insensitive sk diacritic insensitive sk kana insensitive $result:=Compare strings(string1; string2; option) new! option
Compare strings, Position sk strict sk char codes sk case insensitive sk diacritic insensitive sk kana insensitive $find:=Position(stringToFind; text; start; lengthFound; option | *) new! $result:=Compare strings(string1; string2; option) new! option
Compare strings, Position モード sk strict ⽇本語コレーションʢICUʣ オプション sk char codes ⽂字コードを評価 sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ sk diacritic insensitive 清⾳と濁⾳を۠ผ͠ͳ͍ (照合順序)
Compare strings, Position モード sk strict ⽇本語コレーションʢICUʣ オプション sk char codes ⽂字コードを評価 sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ sk diacritic insensitive 清⾳と濁⾳を۠ผ͠ͳ͍ sk kana insensitive 全⾓と半⾓/平仮名と⽚仮名を区別͠ͳ͍ (照合順序)
Compare strings, Position モード sk strict ⽇本語コレーションʢICUʣ オプション sk char codes ⽂字コードを評価 sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ sk diacritic insensitive 清⾳と濁⾳を۠ผ͠ͳ͍ sk kana insensitive 全⾓と半⾓/平仮名と⽚仮名を区別͠ͳ͍ sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ (照合順序)
Compare strings, Position モード sk strict ⽇本語コレーションʢICUʣ オプション sk char codes ⽂字コードを評価 デフォルト sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ sk diacritic insensitive 清⾳と濁⾳を۠ผ͠ͳ͍ sk kana insensitive 全⾓と半⾓/平仮名と⽚仮名を区別͠ͳ͍ sk case insensitive ⼤⽂字と⼩⽂字を区別͠ͳ͍ sk strict + sk case insensitive + sk kana insensitive ⽇本語コレーション・清⾳と濁⾳を区別する・他は区別しない (照合順序)
エンティティセレクション、コレクション、オブジェクト に対して使⽤可能 C_OBJECT($entity) For each ($entity; ds.Students.all()) $entity.lastname:=Uppercase($entity.lastname) $entity.save() End for each For each…End for eachループ
新しいシンタックス 新しいシンタックス var $text1; $text2 : Text var $num : Integer var $pict : Picture 従来のシンタックス C_TEXT($text1;$text2) C_LONGINT($num) C_PICTURE($pict) 宣⾔コマンド
新しいシンタックス 新しいシンタックス var $text1; $text2 : Text var $num : Integer var $pict : Picture クラス 従来のシンタックス C_TEXT($text1;$text2) C_LONGINT($num) C_PICTURE($pict) 宣⾔コマンド 両シンタックスの併⽤ OK ローカル/プロセス変数 OK インタープロセス変数 NG 配列 NG
新しいシンタックス ⼿本にしたのはTypeScriptのシンタックス var $var : cs.MyClass // ϢʔβʔΫϥε var $var : 4D.File // ϏϧτΠϯΫϥε var $var : 4D.Object // ΦϒδΣΫτ var $var : Object // 4D.Objectͷॖܥ var $var : Collection // 4D.CollectionͰͳ͍ var $var : Text͋ var $var : Picture͋ var $var : Variant͋ var $var // লུ࣌όϦΞϯτܕ var $var : Date // ໊ؔͱಉ͡ var $var : Time // ໊ؔͱಉ͡ var $var : Boolean͋ var $var : Real͋ var $var : Integer // ഒ var $var : Pointer͋ var $var : Blob͋
新しいシンタックス Compiler_Variables var text1; text2 : Text var number : Integer var pict : Picture C_LONGINT(number) C_PICTURE(pict) C_TEXT(text1) C_TEXT(text2) ܕએݴΛੜ プリプロセッサは従来の変数宣⾔を⽣成する 新しいシンタックスのメリットはオブジェクト型変数をクラスで宣⾔できること クラスで宣⾔するメリットはコード補完で的確な⼊⼒候補が表⽰されること
新しいシンタックス Function getFullname -> $fullname : Text $fullname:=This.firstname+" "+Uppercase(This.lastname) Function sendMessage($text : Text) -> $message : Text $message:="@"+This.firstname+": "+$text
ORDA Class API • 簡単にサービスを公開 • 実装を隠蔽して抽象化レイヤーを提供 • シンプルなREST APIで他のアプリケーションと連携 Student ID 232 firstname A lastname A englishLevel 216 finalExam A rank 216 schoolID 232 StudentSelection StudentEntity Student /rest/Student/registerStudent /rest/Student(1)/getFirstAhead /rest/Student/setFinalExam /$entityset/{entitySetNumber} Class extends DataClass Function registerStudent Class extends Entity Function getFirstAhead Class extends EntitySelection Function setFinalExam 拡張クラス REST API テーブル データクラス