2011/04/22

レポートで2部印刷する

レポート機能のサンプルとして提供されている「GasReport」プロジェクトでは、文書を印刷するプログラムとして以下のように記述されています。

通常1部だけを印刷する場合
    
    g = OpenPrinterDialog(ps, nil)
    If g <> Nil Then
         If rpt.Run( ds, ps ) Then

            // 1部印刷する
            rpt.Document.Print(g)

         End If
     End If

   

納品書の印刷などで、同じ内容のレポートを2部印刷する場合には、このような方法で印刷することができます。

2部印刷する場合
    
    g = OpenPrinterDialog(ps, nil)
    If g <> Nil Then
        If rpt.Run( ds, ps ) Then


            // 1部印刷する
            rpt.Document.Print(g)

            // とりあえずここまでで、改行する
            g.NextPage( )

            // もう一度印刷する
           rpt.Document.Print(g)
 

        End If
    End If

2011/04/09

AppleEvent 2種類の実装方法

Real Studio で Apple Event を送出する場合、オブジェクトの作成方法には2種類あります。

旧方式( NewAppleEvent は1語)

Dim ae As AppleEvent

ae = NewAppleEvent( "????", "????", "????"  )


現方式( 2008r1 以降、AppleEvent オブジェクトを New する形 )

Dim ae As AppleEvent

ae = New AppleEvent( "????", "????", "???.???.????"  )


現方式では、第3引数は4文字コマンドではなく、Bundle ID になっていますので、この2つを混同してしまうと正常に動作しません。旧方式はサポート終了になっておりますので、旧ソースをそのまま持ってくる場合にはご注意ください。