propprint_supportcopies_propprint_supportcollate_example.htm
| Navigation: »No topics above this level«====== PROPPRINT:SupportCopies/ PROPPRINT:SupportCollate Example ====== | ![]() ![]() |
Using the PROPPRINT:SupportCopies and PROPPRINT:SupportCollate read-only properties you now have a chance to check for the necessity of simulating the output of multiple copies or their collation set using in the Printer Setup dialog invoked by PRINTERDIALOG, or using the PROPPRINT:Copies and PROPPRINT:Collate properties.
Example:
| FlushQueue QUEUE,THREAD |
| N LONG |
| END |
| FlushIdx UNSIGNED,THREAD |
| FlushPageNo PROCEDURE (LONG prev) |
| CODE |
| IF prev = 0 |
| FlushIdx = 1 |
| ELSE |
| FlushIdx += 1 |
| END |
| IF FlushIdx <;= RECORDS(FlushQueue) |
| GET(FlushQueue, FlushIdx) |
| RETURN FlushQueue.N |
| ELSE |
| RETURN -1 |
| END |
| DoPrintReport PROCEDURE() |
| I LONG,AUTO |
| Copies UNSIGNED,AUTO |
| Collate BYTE,AUTO |
| CanCopies BYTE,AUTO |
| CanCollate BYTE,AUTO |
| CODE |
| Copies = PRINTER {PROPPRINT:Copies} |
| Collate = PRINTER {PROPPRINT:Collate} |
| CanCopies = PRINTER {PROPPRINT:SupportCopies} |
| CanCollate = PRINTER {PROPPRINT:SupportCollate} |
| IF Copies = 1 |
| Collate = FALSE |
| ELSIF CanCopies AND (NOT Collate OR CanCollate) |
| Copies = 1 |
| Collate = FALSE |
| ELSIF NOT CanCopies |
| IF Collate AND CanCollate |
| PRINTER {PROPPRINT:Collate} = FALSE ! Collate copies manually |
| END |
| ELSIF NOT CanCollate |
| IF Copies <;> 1 |
| PRINTER {PROPPRINT:Copies} = 1 ! Output copies manually |
| END |
| END |
| FREE(FlushQueue) |
| IF Collate |
| LOOP Copies TIMES |
| LOOP i = 1 TO RECORDS (PreviewQueue) |
| FlushQueue.N = i |
| ADD(FlushQueue) |
| END |
| END |
| ELSE |
| LOOP i = 1 TO RECORDS (PreviewQueue) |
| LOOP Copies TIMES |
| FlushQueue.N = i |
| ADD (FlushQueue) |
| END |
| END |
| END |
| Report {PROP:FlushPageNumFunc} = ADDRESS (FlushPageNo) |
| Report {PROP:FlushPreview} = TRUE |
| Report {PROP:FlushPageNumFunc} = 0 |
| RETURN |
propprint_supportcopies_propprint_supportcollate_example.htm.txt · Last modified: by 127.0.0.1



