4DのSQLは,暗黙的なLEFT JOIN
をサポートしていません。これは仕様です。たとえば,下記のコードはOUTER JOIN
をWHERE
で暗黙的に示唆しているので,「実装されていない機能です」というエラーが返されます。
Begin SQL
SELECT Employees.name, Employees.depID, Departments.depID, Departments.depName
FROM Employees
LEFT OUTER JOIN Departments
ON Employees.DepID = Departments.DepID
WHERE Employees.KeyID = Departments.KeyID
INTO :Lbx2;
End SQL
初期のバージョン(v13)では,このようなSQLを実行してもエラーが返されませんでした。しかし,正しい結果が返されたわけでもありません。
ネットワーク上に複数の4D Serverが同一の名前で公開されており,一方はストラクチャ設定の公開名,他方はユーザー設定の公開名をプロードキャストしている場合,Alt
/option
キーを押しながらクライアントを起動して「サーバーに接続」ダイアログを使用すれば,後者のサーバーに接続することができ,ユーザー設定のlastServer.xml
も更新されますが,次回,Alt
/option
キーを押さずに起動すると,クライアントはlastServer.xml
に記録されているほうのサーバーではなく,本来の公開名でプロードキャストされているほうのサーバーに接続します。これは仕様です。
lastServer.xml
は,ビルドされたクライアントアプリケーションがビルドされたサーバーアプリケーションをブロードキャスト公開名(検索サービス)ではみつけることができなかった場合の復帰手段として用意されています。ネットワーク上に複数の4D Serverが同一の名前で公開されているような環境では,ビルド時にBuildIPAdress
キーを指定して,IPアドレスまたはDNS名でサーバーを指定するようにしてください。
4D ViewドキュメントをView Proに変換した場合,日付型の差を求める計算式が設定されたセルの値が変わってしまうことがあります。たとえば,A1
セルに2019-01-01
,A2
セルに2019-01-06
が代入されている場合,A2-A1
は5
(正)となりますが,A3/2
は2
(誤)となります。これは仕様です。
4Dランゲージで日付の減算を実行すれば,日数が整数で返されますが,4D Viewの計算エンジンは特殊であり,日付の除算や乗算であっても,計算値が整数で返されます。日数を整数ではなく,実数で計算したいのであれば,明示的に0
を加算してください。前述の例でいえば,(A3+0)/2
は2.5
となります。逆に,4D Viewと同じように整数で計算したいのであれば,INT(A3/2)
と記述することができます。
DOM Parse XML source
またはDOM Parse XML variable
でXML文書をインポートし,XML SET OPTION
でXML indentation
オプションをXML no indentation
に設定してからDOM EXPORT TO VAR
またはDOM EXPORT TO FILE
を使用した場合,依存のXMLノードに施されているプリティプリントは除去されません。これは仕様です。インデントは,DOM Create XML Ref
で作成したノードに適用されるオプションです。
###'###'##0.00;-###'###'##0.00;
のようにアポストロフィ記号が含まれるフォーマットが設定された4D ViewドキュメントをView Proに変換した場合,フォーマット文字列のアポストロフィがカンマ記号になります。これは仕様です。桁区切りにアポストロフィ記号を使用するSpreadJSのカルチャー設定を作成するか,View Proに変換してから### ##0.00;[Red]- ### ##0.00
のようなシンタックスで同等の条件フォーマットを設定してください。