17r5では,OpenSSLライブラリのバージョンが1.1.1b
に引き上げられ,最新のセキュリティレベルであるTLS 1.3に対応する予定です。OpenSSLは,HTTP Request
HTTP Get
ENCRYPT BLOB
DECRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
,Webサーバー,ネットワークレイヤー(クライアントサーバーおよびSQL),LDAP,Internet Commandsプラグイン,ODBC,32ビット版の統合Webエリア(WebKit)で使用されています。
ライブラリがアップデートされたことに伴い,アプリケーションにインストールされた証明書のセキュリティレベルが十分ではない場合,HTTPSで接続ができなくなりました。具体的には,RC4ハッシュアルゴリズムの暗号スイートを使用した証明書では,サーバーをTLS公開することができません。そのような証明書がインストールされたサーバーに対してブラウザからアクセスした場合,空のページが表示されます。これは仕様です。
Write Proに幅が120pxの列5個で構成されるテーブルを挿入した場合,テーブル全体の幅は600pxを超えることになります。これは仕様です。
wk width
およびwk height
はHTMLやCSSと同じ仕方で要素のサイズを定義します。つまり,セルのサイズには,パディングやボーダーが含まれません。テーブルの正確な幅は,セル・ボーダー・パディングの幅を合計した値になります。行の中間に位置するセルのサイズは,下記の計算式で求めることができます。
wk width+(wk border width left+wk border width right)*0.5+wk padding left+wk padding right
セルとセルの間にあるボーダーは,幅が半分にカットされる点に留意してください。左端のセルはwk border width left*0.5
,右端のセルはwk border width right*0.5
をこれに加える必要があります。両端のセルだけは,ボーダーがカットされないためです。なお,ボーダー幅の計算には,複雑なレンダリングルールが関係しており,ボーダーの幅とスタイルが揃っていない場合,この計算式だけでは多少の誤差が生じるかもしれません。
例題:
C_REAL($widthFull)
$widthFull:=0
For ($i;1;$NbCol)
$Col:=WP Table get columns($Tableau;$i;1)
WP SET ATTRIBUTES($Col;wk width;120)
$cells:=WP Table get cells($Tableau;$i;1;1;1)
C_REAL($width)
C_REAL($borderWidth;$padding)
WP GET ATTRIBUTES($cells;wk border width;$borderWidth;wk padding;$padding)
//full cell width = wk width+(wk border width*2)/2+wk padding*2 (only if all cells have same padding and border widths)
//for interior cells borders are collapsed
$width:=120+($borderWidth*2/2)+($padding*2)
$widthFull:=$widthFull+$width
If (($i=1) | ($i=$NbCol))
//for row first and last cell, exterior borders are not collapsed
$widthFull:=$widthFull+($borderWidth*0.5)
End if
End for
ALERT("full table width in px="+String($widthFull))
ORDAのエンティティセレクションには,ordered(順序あり)とunordered(順序なし)が存在します。前者は従来の命名セレクションに,後者は従来のセットに似ています。
デスクトップ版,あるいはサーバー側でORDAのquery()
を使用した場合,データストアds
はローカルなので,デフォルトでunordered(順序なし)のエンティティセレクションが返されます。ordered(順序あり)のエンティティセレクションが必要であれば,newSelection()
にdk keep ordered
オプションを渡すことができます。
クライアント側でORDAのquery()
を使用した場合,データストアds
はリモートなので,常にordered(順序あり)のエンティティセレクションが返されます。つまり,クライアント側でORDAを実行した場合,entitySelection.isOrdered()
は常にTrue
を返しますが,同じコードをデスクトップ版で実行した場合,False
が返されるかもしれません。これは仕様です。
タブコントロールオブジェクトは,フォームページの切り替えに適しているため,標準アクションの「ページ移動」がデフォルトで設定されています。フォームオブジェクトには,標準アクションとオブジェクトメソッドの両方が設定できますが,「ページ移動」アクションが設定されているタブコントロールの場合,On Clicked
でFORM GOTO PAGE
コマンドで指定したベージに移動することはできません。標準アクションは,オブジェクトメソッドの後に実行されるためです。
v16まで,一部のアクションはオブジェクトメソッドの前に実行され,他のアクションはオブジェクトメソッドの後に実行されるといった具合に振る舞いが一貫していませんでした。v17では,標準アクションは常にオブジェクトメソッドの後に実行されるよう,仕様が統一されています。