既存のテンプレートからレポートやスプレッドシートを作成することで、開発のスピードアップを図ることができます。4D v19 R4から、コピー&ペーストの操作を、別の場所(他の領域を含む)からセル範囲をコピーするコードを使用して実行できるようになりました。
セルのブロックを移動またはコピーする。
この機能については、ドキュメントセンターをご覧ください。 VP MOVE CELLSコマンドを使用すると、セル範囲をコピー/カットして、2つの領域間でも別の場所に貼り付けることができます。
// Starting range
$rangeFrom:=VP Cells("ViewProArea1"; 0; 0; 2; 7)
// First cell of the destination range
$rangeTo :=VP Cell("ViewProArea2"; 2; 0)
VP MOVE CELLS ($rangeFrom;$rangeTo;New object("copy";True) )
オブジェクトの上にコピーペーストする
範囲をコピーするもう一つの方法は、オブジェクトにコピーすることです。 VP Copy to objectコマンドを使用して、データベースに保存することです。
$template:=ds.Templates.new()
$template .VP:=VP Copy to object($rangeFrom)
$template .
save()
で、オブジェクトに保存された内容、スタイル、数式を必要なときに貼り付けることができます。 VP PASTE FROM OBJECTコマンドを使用します。
$template:=ds.Templates.get($id)
VP PASTE FROM OBJECT ($rangeTo;$template.VP)
数式を移動したりコピーしたりすると、相対セル参照が変更される可能性があります。この機能については、ドキュメントセンターで詳しく説明しています。