4D View Proエリアの行をコピーして,別の4D View Proエリアにペーストできないことがあります。これは仕様です。SpreadJSの行をコピーした場合,ペーストボードには,行ヘッダも情報も含まれるため,ターゲット側の列数がソース側の列数を下回っている場合,ペースト操作を完了することができません。この振る舞いを変更するには,「Spread 設定 / クリップボード / ヘッダーオプション / ヘッダーなし」を有効にしてください。
Sweetwater社の4Dデベロッパー、ジョエル・レヴィーによるブログ
4DはSweetwater Sound社のハートビートです。我々のアプリケーションは700以上の同時接続ユーザーの多様なニーズに対して、お互いに調和した形で繋がっています。順調に成長する会社のニーズに応えるために、我々は常により多くの開発者を探しています。これからご紹介するのは、Sweetwater社が4Dプラットフォームに新しい開発者を取り込むのに使っている戦略です。
4Dコミュニティーは、アプリケーション分野の多様なフィールドにまたがった才能が豊富ですが、開発者コミュニティーが急速に拡大しているわけではありません。さらに、開発者コミュニティーは高齢化し、米国の東西海岸に集中する傾向にあります。このことが、コミュニティーに根を下ろして定着している開発者を中西部に移動させるのを難しくしています。
こうした理由から、我々は通常フォートウェイン・コミュニティーからプロのソフトウェア開発者を雇っています。大学を出たばかりのコンピューター科学者も、キャリアを変えようとしている経験のある開発者も同等に見ています。4Dのプログラミング言語は、ORDAや言語の全体的な近代化、そして4D開発者コミュニティーの拡大のおかげで、全ての世代の開発者が簡単に理解することができます。フレッシュな才能が革新的なアイデアと創造的なアプローチをもたらし、我々全員に利点があります。
我々のメインのコードベースは30年使っているので、4Dの歴史について経緯を含めた知識が必要です。これをカバーするために、プラットフォームとプログラム言語の学習は「読む」ことから始めます。David AdamsとDan Beckettによる”Programming the 4th Dimension”(90年代後半に出版)は総合的に4Dデータベース・エンジンのコンセプトを説明しています。4Dドキュメントのセルフ・トレーニング部分は、プログラム言語の学習プロセスに最も重要です。ビデオは、他の開発者や管理者の時間を奪うことなく、新しい開発者を育て、学習するための完璧なツールです。ビデオを補完する素晴らしいツールは、”STYLE, STANDARDS, PROCEDURE, and POLICY”と呼ばれる社内ドキュメントです。これはSweetwaterの4Dアプリケーションのマネージャーと開発者、そして4Dコミュニティーの有名なメンバーであるJeff Kainによって書かれています。このドキュメントでは、4Dの設定、マクロのインストール、命名規則、コメントとヘッダーの使用方法、UI基準などについて説明しています。
チュートリアルが完了したら、開発者に新規のデータベースを始めてもらい、基本的な”Contact Manager”アプリケーションを作成します。このプロジェクトは通常、2-3営業日を費やします。要求に含まれるのは:
*リストボックス は様々なソースのデータによってコントロールされ、アプリの全体に様々な形とサイズで表示されます。新しい開発者が、セレクション、配列、コレクション制御のリストボックスに確実にアクセスできるようにすることは、本番アプリケーションを強化するプロセスにとって重要です。新しい開発者は、Contact Managerアプリの中でしばしばコレクション/オブジェクトベースのリストボックスを使う傾向があることが分かりました。
**Webサービスの部分はプロセスの最も魅力的なパートであることは明らかです。過去には、住所確認や郵便番号検索などのサービスを提案してきました。最近は、インターンが4DウェブエリアにGoogleマップAPIを実装しました。プロセスはシームレスで、そのプロジェクトをさらにプロフェッショナルなものにしました。特にContact Managerアプリのこの部分を実装するときには、開発者それぞれが創造的であるように工夫しています。数多くの役に立つ、RESTフルなAPIがあります。わずかな努力で大きなインパクトを持ち、簡単に4Dに実装できます。
ビデオ・チュートリアルに沿ったプログラミングは、現在のビデオ・チュートリアルではカバーしていない新しい4Dの機能(コレクション、オブジェクト、ORDA)を提案するよい機会です。ドキュメントのストラクチャーは、我々のStyle Guideに記載されているテクニックや標準的なデモに役立つ非公式なコードレビューを実行するよい機会を提供してくれます。これにより、新しい開発者は優れたコードを開発するだけでなく、優れたプログラミング手法を使うことができます。
4Dのドキュメントは、新しい開発者が文字通り数分で4Dアプリケーションを作れるほどの、豊富なドキュメント、ビデオ、チュートリアルを提供します。これらのツールは、社内ドキュメント、重点を置いたプラクティス・プロジェクト、他の開発者との非公式なコードレビューと組み合わせることで、通常、新しい開発者が本番アプリケーションに取り掛かるのに勤務初日から1週間以内で可能です。
多くの若い専門家を4Dプラットフォームに紹介できるポジションになれたことを喜んでいると、Sweetwaterの全員に話そうと思います。我々のアプリケーションを助けるだけでなく、4Dコミュニティー全体を支援することになるのです。
ジョエルは、Sweetwater Sound社の4Dアプリケーションを2年間専門に担当している4Dデベロッパーです。彼のホームタウンであり、Sweetwaterのホームでもあるインディアナ州フォートウェインで勤務しています。 Sweetwaterの4Dアプリケーションは12人のチームで管理しています。
Macでは,ディスクイメージを展開して非表示ボリュームとしてマウントすることができます。
hdiutil attach {file.dmg} -nobrowse
v15およびv16では,そのようなボリュームをSET UPDATE FOLDER
のパスに指定することができました。v17では,非表示ボリュームのパスを自動アップデートに使用することはできません。これは仕様です。v17のファイルシステムAPIは,Appleが推奨するPOSIX APIに書き換えられ,アクセス速度が飛躍的に向上しています。一方,MacOSファイルシステムAPI独自の仕組みは,サポートされないケースがあります。非表示ボリュームに対するアクセスは,その一例です。
4D v18より、プロジェクト・データベースを使った変換と開発の方法についてブログのシリーズを掲載してきました。コンポーネントについてはどうでしょう?このブログで疑問に答えていきます。
とても簡単で、開発とコンポーネントのインストールは変わりません。以前と同じ技術を使い続けることができます。
忘れてはいけないのは、プロジェクト・データベースのアーキテクチャーのブログで説明したように、ストラクチャファイル (.4db)に相当するのは”Project”フォルダーであるということです。あなたのコンポーネントを、Projectフォルダーと同層にある”Component”フォルダーに追加するだけです。
もしもバイナリー・データベースをプロジェクトに変換したら、コンポーネントの全てもプロジェクトに変換する必要はありません。バイナリー・データベース (.4db)のように、プロジェクト・データベースはプロジェクトとバイナリー・コンポーネントの両方をロードできます。
そのため、データベースとコンポーネントを、一つずつ簡単に変換できます。
二つの新しいデータベース・パラメータを自由に使用できます:
もしホストデータベースがプロジェクトの場合
$isProject:=Get database parameter(Is host database a project)
もしカレントデータベースがプロジェクトの場合
$isProject:=Get database parameter(Is current database a project)
アプリケーションの運用を次のステップへ進めましょう。4D v18を使えば:
プロジェクトデータベースを使えば、最終的なアプリケーションのビルドを両方のプラットフォームでビルドすることもできます。プロジェクトデータベースは、バイナリーデータベースとして同じコンフィギュレーションファイルを使います。
バイナリーデータベース (.4db)と同じ方法でプロジェクトデータベースをコンパイルすることができます。二つのデータベース間の違いはわずかです。インターフェイスは同じで、プロダクトマシンコードは同じです。
唯一の違いは、コンパイルされた結果が、バイナリーデータベースではバイナリーファイル (.4db)に保存されるのに対して、プロジェクトデータベースでは”Project/DerivedData/CompliedCode”フォルダに保存されることです。
コードをコンパイルするのと同じ方法で、アプリケーションを作成するのに変えることはありません。
変換されたプロジェクトデータベースと同じコンフィギュレーションファイルを使うことができます。
プロジェクトデータベースを使うときは常に、違いは生成されたファイル中にあります。作成されたアプリケーションのコンテンツを見れば、”4dc”ファイルの替わりに”.4dz”拡張子のファイルがあります。
以下のビデオでは、バイナリーデータベースからコンパイルされたデータベースを生成しています。そのあと、同じことをプロジェクトデータベースで行なっています。プロジェクトデータベースはバイナリーデータベースの変換の結果です。
ビデオの最後に、得られたファイルのサイズを比較しています。.4dzは.4dcに比較して5倍小さくなっています。
"
Open form window
で指定できるウィンドウタイプの中にToolbar form window
というものがあります。ツールバーは,常時,スクリーンの前面上部に表示される特殊なウィンドウで,メインメニューのような役割を果たしますが,Windows版のSDIモードでは正式にサポートされていません。特に,複数のモニターが接続されており,それぞれの解像度や形が違っている状況でツールバーを表示すると,ウィンドウの幅が足りなかったり,ウィンドウが間違ったスクリーンに表示されたりします。これは仕様です。SDIモードでは,ツールバーに依存せず,それぞれのウィンドウが独立して機能するようなデザインにする必要があります。
クイックレポートのHTML出力には,カスタムテンプレートを使用することができます。テンプレートは,特殊な「タグ」(PRCESS 4D TAGS
とは違うタグ)がコメント文で挿入されたHTMLテキストであり,整形されたレポートを出力するために使用されるものです。
タグを使用してテキストを挿入した場合,テンプレート内の改行コード(0x10
)は,すべて<br />
タグに変換されます。Document to text
コマンドでテンプレートをロードした場合,改行コードの数が違うために,HTML出力の体裁が変わってしまうことがあります。これは仕様です。クロスプラットフォームで改行の数を揃えるためには,Document to text
コマンドで同じ改行オプションを指定するようにしてください。
プロジェクトモードでは,フォームオブジェクトの「標準アクション」にオブジェクト毎のデフォルト値は特に設定されていません。たとえば,新しく作成したタブコントロールは,デベロッパが明示的に設定しない限り,「ページ移動」のボタンにはなりません。これは仕様です。
ビルドしたアプリケーションをアップデートするたびに,データファイルの場所を尋ねるダイアログが表示される場合,「アプリケーション配付の新しいアーキテクチャ」が有効にされているかどうか,確認することが勧められています。
以前の「アーキテクチャ」は,データファイルの場所をストラクチャファイルに記録する,というものでした。そのため,.4DC
ファイルを入れ替えるたびに,パスを再指定する必要があります。新しいアーキテクチャでは,データファイルのパスがlastDataPath.xml
という外部ファイルに記録されるので,アプリケーションをアップデートした後もデータファイルのパスを引き継ぐことができます。詳細は,ドキュメントをご覧ください。