* probe_s9_4_parameters.prg * READ-ONLY, fara Oracle: PARAMETERS() vs PCOUNT() vs VARTYPE() intr-o functie cu parametri * optionali, dupa ce s-a executat un apel imbricat. Decide garda din hunk C (S9-4). SET SAFETY OFF SET TALK OFF PUBLIC gcErrLog gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\probe_s9_4_parameters_log.txt' STRTOFILE('start ' + TRANSFORM(DATETIME()) + CHR(13) + CHR(10), gcErrLog) LOCAL lnOut, llR lnOut = 0 *!* cazul 1: apelant care TRANSMITE al 6-lea parametru prin referinta llR = Tinta(1, 2, 3, 4, 5, @lnOut) STRTOFILE('CU al 6-lea param: lnOut dupa apel = ' + TRANSFORM(lnOut) + CHR(13) + CHR(10), gcErrLog, 1) *!* cazul 2: apelant care NU il transmite llR = Tinta(1, 2, 3, 4, 5) STRTOFILE('end' + CHR(13) + CHR(10), gcErrLog, 1) QUIT FUNCTION Tinta LPARAMETERS t1, t2, t3, t4, t5, t6 LOCAL lnDummy STRTOFILE('--- apel Tinta ---' + CHR(13) + CHR(10), gcErrLog, 1) STRTOFILE(' INAINTE de apel imbricat: PARAMETERS()=' + TRANSFORM(PARAMETERS()) + ; ' PCOUNT()=' + TRANSFORM(PCOUNT()) + ' VARTYPE(m.t6)=' + VARTYPE(m.t6) + CHR(13) + CHR(10), gcErrLog, 1) *!* apel imbricat cu 2 parametri - exact situatia din StergeDocumentFacturare (goExecutor, OSCRIE_IN_FISIERE) lnDummy = Imbricat(10, 20) STRTOFILE(' DUPA apel imbricat cu 2 param: PARAMETERS()=' + TRANSFORM(PARAMETERS()) + ; ' PCOUNT()=' + TRANSFORM(PCOUNT()) + ' VARTYPE(m.t6)=' + VARTYPE(m.t6) + CHR(13) + CHR(10), gcErrLog, 1) IF VARTYPE(m.t6) = 'N' t6 = 4242 STRTOFILE(' garda VARTYPE: a scris in t6' + CHR(13) + CHR(10), gcErrLog, 1) ELSE STRTOFILE(' garda VARTYPE: NU a scris in t6' + CHR(13) + CHR(10), gcErrLog, 1) ENDIF RETURN .T. ENDFUNC FUNCTION Imbricat LPARAMETERS a, b RETURN a + b ENDFUNC