DelphiXE(DLL)

○RDFドキュメントデータ設定後、フィールドの値を変更する例(帳票にページ番号を入れる)
 
type
  TByteArray = Array of byte;
var
  iDocSize:   Longint;
  oDocData:   OleVariant;
  vDocData:   Variant;
  baDocData : TByteArray;
begin
 
  //印刷を終了します。
  ret := jvEndDoc(pid);
 
  //RDFドキュメントデータのサイズを取得します。
  iDocSize := jvGetLong(pid, JV_DOCUMENT_SIZE);
  if iDocSize > 0 then
  begin
    // RDFドキュメントデータを取得します。
    SetLength(baDocData, iDocSize);
    jvGetDocument(pid,baDocData[0]);
    // Variant型に変換します。
    DynArrayToVariant(vDocData,baDocData, TypeInfo(TByteArray));
    // さらにOleVariant型に変換します。
    oDocData := vDocData;
  end;
 
  //終了処理を実行します。
  jvClose(pid);
 
  //プレビューコントロールに描画します。
  if iDocSize > 0 then
  begin
    //プレビューコントロールにRDFドキュメントデータを設定します。
    JiveView.ControlInterface.Set_DocumentData(oDocData);
 
    //ページ番号と総ページ数を全ページに入れます。
    for i:=1 to lPageNo do
    begin
      JiveView.Page := i;
      JiveView.ControlInterface.Set_FieldData('ページ番号',PAnsiChar(AnsiString(IntToStr(i))));
      JiveView.ControlInterface.Set_FieldData('総ページ数',PAnsiChar(AnsiString(IntToStr(lPageNo))));
    end;
 
    JiveView.Page := 1;
    JiveView.Show;
  end;