Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
public class MyRoutines {
private static final java.util.Map<String, String> seq_Hash = new java.util.HashMap<String, String>();
public static String sequence(String seqName) {
String currentValue = "0000";
if (seq_Hash.containsKey(seqName)) {
currentValue = seq_Hash.get(seqName);
}
char[] valueArray = currentValue.toCharArray();
for (int position=3; position>=0; position--) {
if (valueArray < 'Z') {
if (valueArray == '9') {
valueArray = 'A';
} else {
valueArray++;
}
break;
} else {
valueArray = '0';
}
}
seq_Hash.put(seqName,String.valueOf(valueArray));
return String.valueOf(valueArray);
}
}
Var.sMod = null;
int iNumSeq = 0;
int iN1 = 0;
int iN2 = 0;
int iN3 = 0;
int iN4 = 0;
String s1;
char sL1;
char sL2;
char sL3;
char sL4;
//Nell'assegnazione converto il valore string in char
iNumSeq = Numeric.sequence(context.sTipProd,0,1);
if (iNumSeq < 10000) {
Var.sMod = StringHandling.RIGHT("0000" + iNumSeq, 4);
} else if (iNumSeq > 9999 && iNumSeq < 36000) {
//Prelevo i caratteri in posizione 12
s1 = StringHandling.LEFT("" + iNumSeq, 2);
//Li converto nella lettera che andrò a sostituire
sL1 = (char) (Integer.parseInt(s1) + 55);
//Compongo la stringa alfa-numerica
Var.sMod = "" + sL1 + StringHandling.RIGHT("000" + iNumSeq, 3);
} else if (iNumSeq > 35999 && iNumSeq < 103600) {
//Definisco l'incremento del primo carattere
iN1 = (iNumSeq - 36000) / 2600;
sL1 = (char) (iN1 + 65);
//Definisco l'incremento del secondo carattere
iN2 = ((iNumSeq - 36000) / 100) - iN1 * 26;
sL2 = (char) (iN2 + 65);
//Compongo la stringa alfa-numerica
Var.sMod = "" + sL1 + sL2 + StringHandling.RIGHT("00" + iNumSeq, 2);
} else if (iNumSeq > 103599 && iNumSeq < 279360) {
//Definisco l'incremento del primo carattere
iN1 = (iNumSeq - 103600) / 6760;
sL1 = (char) (iN1 + 65);
//Definisco l'incremento del secondo carattere
iN2 = ((iNumSeq - 103600) / 260) - iN1 * 26;
sL2 = (char) (iN2 + 65);
//Definisco l'incremento del terzo carattere
iN3 = ((iNumSeq - 103600) / 10) - iN2 * 26 - iN1 * 676;
sL3 = (char) (iN3 + 65);
//Compongo la stringa alfa-numerica
Var.sMod = "" + sL1 + sL2 + sL3 + StringHandling.RIGHT("" + iNumSeq, 1);
} else if (iNumSeq > 279359 && iNumSeq < 736336) {
//Definisco l'incremento del primo carattere
iN1 = (iNumSeq - 279360) / 17576;
sL1 = (char) (iN1 + 65);
//Definisco l'incremento del secondo carattere
iN2 = ((iNumSeq - 279360) / 676) - iN1 * 26;
sL2 = (char) (iN2 + 65);
//Definisco l'incremento del terzo carattere
iN3 = ((iNumSeq - 279360) / 26) - iN1 * 676 - iN2 * 26;
sL3 = (char) (iN3 + 65);
//Definisco l'incremento del quarto carattere
iN4 = ((iNumSeq - 279360)) - iN1 * 17576 - iN2 * 676 - iN3 * 26;
sL4 = (char) (iN4 + 65);
//Compongo la stringa alfa-numerica
Var.sMod = "" + sL1 + sL2 + sL3 + sL4;
} else {
Var.sMod = "#out";
}