1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| PROCEDURE CHARGER_SPEC_RECETTES IS
LConn_conn_id EXEC_SQL.CONNTYPE;
LCu_spec EXEC_SQL.CURSTYPE;
LC_sql_stmt VARCHAR2(500);
LI_nIgn PLS_INTEGER;
LC_t37_code B2821.T37_CODE%TYPE;
LC_ta_lib B0300.TA_LIB%TYPE;
LC_spec_min B2821.SPEC_MIN%TYPE;
LC_spec_cible B2821.SPEC_CIBLE%TYPE;
LC_spec_max B2821.SPEC_MAX%TYPE;
BEGIN
-- il faut effacer le contenu du bloc avant de le recharger
CLEAR_BLOCK;
IF :B2.TRA_ST_LEX IS NOT NULL THEN
BEGIN
LConn_conn_id := EXEC_SQL.DEFAULT_CONNECTION;
LCu_spec := EXEC_SQL.OPEN_CURSOR(LConn_conn_id);
LC_sql_stmt := ' SELECT B2821.T37_CODE, ' ||
' TA_LIB, ' ||
' SPEC_MIN, ' ||
' SPEC_CIBLE, ' ||
' SPEC_MAX ' ||
' FROM B2820, ' ||
' B2821, ' ||
' B0300, ' ||
' B0337 ' ||
' WHERE B2820.SPEC_CODE = B2821.SPEC_CODE ' ||
' AND B2821.T37_CODE = TA_CODE ' ||
' AND TA_TABLE = ''37'' ' ||
' AND TA_ACTI = ''0'' ' ||
' AND B0337.T37_CODE = TA_CODE ' ||
' AND ST_CODE = ''' || :B2.TRA_ST_LEX || ''' ';
IF :B2.TRA_LEX_CL_CODE IS NOT NULL THEN
LC_sql_stmt := LC_sql_stmt ||
' AND CL_CODE = ''' || :B2.TRA_LEX_CL_CODE || ''' ';
ELSE
LC_sql_stmt := LC_sql_stmt ||
' AND CL_CODE IS NULL ';
END IF;
LC_sql_stmt := LC_sql_stmt ||
' ORDER BY T37_ORDRE';
EXEC_SQL.PARSE(LConn_conn_id, LCu_spec, LC_sql_stmt);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_spec, 1, LC_t37_code, 5);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_spec, 2, LC_ta_lib, 30);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_spec, 3, LC_spec_min);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_spec, 4, LC_spec_cible);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_spec, 5, LC_spec_max);
LI_nIgn := EXEC_SQL.EXECUTE(LConn_conn_id, LCu_spec);
FIRST_RECORD;
WHILE ( EXEC_SQL.FETCH_ROWS(LConn_conn_id, LCu_spec) > 0 ) LOOP
CREATE_RECORD;
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_spec, 1, :B4.T37_CODE);
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_spec, 2, :B4.TA_LIB);
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_spec, 3, :B4.SPEC_MIN);
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_spec, 4, :B4.SPEC_CIBLE);
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_spec, 5, :B4.SPEC_MAX);
DESACTIVER_ITEM('B4.TA_LIB');
DESACTIVER_ITEM('B4.SPEC_MIN');
DESACTIVER_ITEM('B4.SPEC_CIBLE');
DESACTIVER_ITEM('B4.TRA_VAL_SIM');
DESACTIVER_ITEM('B4.SPEC_MAX');
END LOOP;
EXEC_SQL.CLOSE_CURSOR(LConn_conn_id, LCu_spec);
EXEC_SQL.CLOSE_CONNECTION(LConn_conn_id);
EXCEPTION WHEN EXEC_SQL.PACKAGE_ERROR THEN
MSG_BOX('Code : ' || EXEC_SQL.LAST_ERROR_CODE || CHR(10) ||
'Message : ' || EXEC_SQL.LAST_ERROR_MESG || CHR(10) ||
'Position : ' || EXEC_SQL.LAST_ERROR_POSITION);
EXEC_SQL.CLOSE_CURSOR(LConn_conn_id, LCu_spec);
EXEC_SQL.CLOSE_CONNECTION(LConn_conn_id);
END;
END IF;
END; |
Partager