Pages

mercredi 3 septembre 2014

Print_Word_From_Template_Job : imprimer un document word à partir d'un modèle (pièce jointe)

static void Print_Word_From_Template_Job (Args _args)
{
TableId tableId;
COM word;
COM documents;
COM document;
COM bookmarks;
COM bookmark;
COM tables;
COM table;
COM rows;
COM row;
COM cells;
COM cell;
COM range;
COM template;
Query query;
QueryRun queryRun;
Common common;
TmpSysTableField fields;
DictField dictField;
int i;
void processBookmark(str _name, str _value)
{
if (!bookmarks.exists(_name))
{
return;
}
bookmark = bookmarks.item(_name);
range = bookmark.range();
range.insertAfter(_value);
}
//#define.Word(‘Word.Application’)
//#define.template(@’C:\temp\table.dotx’);
 template=new COM("Word.Template");

tableId = tableNum(LedgerParameters);
try
{
word = new COM("word.application");
}
catch (Exception::Internal)
{
if (word == null)
{
throw error("Microsoft Word is not installed");
}
}
documents = word.documents();
document = documents.add(@'c:\templates\T1.dotx');
bookmarks = document.bookmarks();
processBookmark('TableName',
tableId2pname(tableId));
tables = document.tables();
table = tables.Item(1);
rows = table.rows();
query = new Query();
query.addDataSource(tableId);
queryRun = new QueryRun(query);
queryRun.next();
common = queryRun.get(tableId);
fields = TmpSysTableField::findTableFields(
null, tableId);
while select fields
{
dictField = new DictField(
tableId,
fields.FieldId);
if (dictField.isSystem())
{
continue;
}
i++;
row = rows.item(i);
cells = row.cells();
cell = cells.item(1);
range = cell.range();
range.insertAfter(fields.FieldLabel);
cell = cells.item(2);
range = cell.range();
range.insertAfter(
strFmt('%1', common.(fields.FieldId)));
row = rows.add();
}
row.delete();
word.visible(true);
}

Aucun commentaire:

Enregistrer un commentaire