v18:PAGE SETUPが廃止になっている

コソッとPAGE SETUP廃止になっていますね。
プロパティの印刷の設定も廃止でしょうか。

アップグレードしたストラクチャでなんかPAGE SETUPがうまく動作していない様になっていたので
調べてたら見つけました。 :frowning:

v18のプロジェクトモードでは,ページ設定も4DFormファイル(JSON)の内部に記述されるようになりました。

“pageFormat”: {
“paperName”: “A4”,
“paperWidth”: “842pt”,
“paperHeight”: “595pt”,
“orientation”: “landscape”,
“scale”: 50
}

省略した場合,paperName, paperWidth, paperHeightはカレントの設定を継承します。
orientationは,“portrait”, scaleは100がデフォルト値です。

フォームエディターでページ設定を編集すれば,上記のプロパティが更新され,
外部エディターで上記のプロパティを編集すれば,フォームエディターで表示されるプロパティに反映されます。

ページ設定は,オブジェクト記法/OBコマンドなどで読み書きすることができるので,
専用のコマンド_o_PAGE SETUPは不要になりました(プロジェクトモードの場合)。

代替コマンドは(JSONプロパティに対するアクセスと)SET PRINT OPTIONになります。

https://livedoc.4d.com/--18/Deprecated-Commands/o-PAGE-SETUP.301-4505822.ja.html

プロジェクトモードの場合、フォームの設定がJSON化されているのはわかりましたが、
これをメソッドから参照する場合にはどうするのでしょうか?

通常は、FORM SET INPUTなどでフォーム名を指定しているだけのはずですが。 :frowning:
FORM Convert to dynamicでJSON形式を取得するということでしょうか。

下記のコマンドは,

フォーム名
ファイルシステムパス(/RESOURCES/)
オブジェクト

をサポートしています。

Open form window
DIALOG
FORM SET INPUT
FORM SET OUTPUT
OBJECT SET SUBFORM
OBJECT GET SUBFORM
FORM LOAD

プロジェクトモードの場合

(モードは,Get database parameter(Is current database a project) で調べることができます)

パスは

$formFile:=File("/PROJECT/Sources/Forms/"+$formName+"/form.4DForm")

です。

なお,プロジェクトモードでFORM Convert to dynamicを使用することはできません。

ご説明ありがとうございます。

PAGE SETUP1行で済んでいたところを

v18以降では同じことをさせるために

Get database parameter(Is current database a project)
でプロジェクトモードなのかバイナリーモードかをチェックして

プロジェクトモードの場合、
$formFile:=File("/PROJECT/Sources/Forms/"+$formName+"/form.4DForm")
からjsonデータを取得

バイナリーモードの場合、
FORM Convert to dynamicからjsonデータを取得

jsonデータの用紙設定をつかってSET PRINT OPTIONで設定する流れなんですね。

おそらくこの様なメソッドをデベロッパー側で個別に作れという意向なのだと判断いたいました。
ご対応ありがとうございました。 :pray:

: Keisuke MIYAKO

“pageFormat”: {
“paperName”: “A4”,
“paperWidth”: “842pt”,
“paperHeight”: “595pt”,
“orientation”: “landscape”,
“scale”: 50
}

よく見たらここからできるSET PRINT OPTIONの設定って、用紙サイズと用紙向きだけだと思うのですが
これだけならフォームエディタのプロパティリストから印刷設定で印刷ダイアログを出す必要がない様に思います。 :mrgreen:
直接用紙サイズと用紙向きを表示/変更できた方が助かります。