<%
//---------------------------------------------------------------------------------
//Direcciona a la Base de Datos de db_structure_payroll
String urlBDN = "jdbc:postgresql:db_structure_payroll";
//Toma los parámetros del formulario de Alta de Parámetros
String Tnomina = request.getParameter("Tnomina");
//Conexión con la Base de Datos de Nómina
Class.forName(JDBCDriver);
Connection con = DriverManager.getConnection(urlBDN,usrBD,pwdBD);
Statement stmt_1 = con.createStatement();
Statement stmt_2 = con.createStatement();
//Define Variables de datos del maestro de nómina bdcat_employe
String Employe ="";
String Apatern ="";
String Amatern ="";
String Nombre ="";
String Fechalta ="";
String Cvedp = "";
int Unimed = 0;
double Ceros = 0.00;
double Importe = 0.00;
double Sueldo_Diario = 0.00;
double Sueldo_Diario_int = 0.00;
double Cont_Percepciones = 0.00;
double Cont_Deducciones = 0.00;
double Neto1 = 0.00;
int Neto = 0;
int Indice_Rp = 0;
int Indice_Rd = 0;
int Indice_Dm = 0;
//Define Arreglo
String Renglon[] = new String[50];
for (int i=0;i<Renglon.length;i++){
Renglon[i] = " ";
}
//Define Arreglo para el desgloce monetario
int[] Desgloce= {1000,500,200,100,50,20,10,5,1};
int[] Resultado= {0,0,0,0,0,0,0,0,0};
//Obtieni Empleados del tipo de nómina a procesar
String querySel= "SELECT * \n"+
"FROM \n"+
"bdcat_employe \n"+
"WHERE \n"+
"bdcat_tipo_nomina = "+Tnomina+"";
ResultSet rsSel = stmt_1.executeQuery(querySel);
while (rsSel.next()){
Employe = rsSel.getString("bdcat_empleado");
Apatern = rsSel.getString("bdcat_apatern");
Amatern = rsSel.getString("bdcat_amatern");
Nombre = rsSel.getString("bdcat_nombre");
Sueldo_Diario = rsSel.getDouble("bdcat_sueldo");
Sueldo_Diario_int = rsSel.getDouble("bdcat_sueldo_integrado");
Fechalta = rsSel.getString("bdcat_fechalta");
String CDescripcion ="";
String Concepto ="";
//Arma los Datos Generales
Renglon[2] = rsSel.getString("bdcat_fechalta");
Renglon[5] = rsSel.getString("bdcat_nombre") + " " + rsSel.getString("bdcat_apatern") + " " + rsSel.getString("bdcat_amatern");
//Obtiene el detalle del sobre a Imprimir por Empleado
//---------------------------------------------------------------------------------
Indice_Rp = 10;
Indice_Rd = 10;
Indice_Dm = 29;
String querySob = "SELECT \n"+
"bdsn_cvedp, \n"+
"bdsn_concepto, \n"+
"(SELECT RHINTDESCR FROM RHRINSAGRU WHERE RHINTINSAG = bdsn_concepto) as \"CDescripcion\", \n"+
"bdsn_importe \n"+
"FROM \n"+
"bdsn_sobre \n"+
"WHERE \n"+
"bdsn_employe = '"+Employe+"' AND \n"+
"bdsn_tnomina = "+Tnomina+" order by bdsn_cvedp desc";
ResultSet rsSob = stmt_2.executeQuery(querySob);
while (rsSob.next()){
Cvedp = rsSob.getString("bdsn_cvedp");
Concepto = rsSob.getString("bdsn_concepto");
CDescripcion = rsSob.getString("CDescripcion");
Importe = rsSob.getDouble("bdsn_importe");
//Arma los Datos del Sobre
if (Cvedp.equals("P")) {
Indice_Rp = Indice_Rp + 1;
Renglon[Indice_Rp] = Cvedp + " " + Concepto + " " + CDescripcion + " " + Importe;
Cont_Percepciones = Cont_Percepciones + (Double.parseDouble(rsSob.getString("bdsn_importe" )
}else {
//Deducciones
Indice_Rd = Indice_Rd + 1;
Renglon[Indice_Rd] = Renglon[Indice_Rd] + " " + Cvedp + " " + Concepto + " " + CDescripcion + " " + Importe;
Cont_Deducciones = Cont_Deducciones + (Double.parseDouble(rsSob.getString("bdsn_importe" )));
}
}
//Arma los datos del Desgloce Monetario
Neto = Cont_Percepciones - Cont_Deducciones;
//Función Cálculo de Desgloce
for (int i=0;i<Desgloce.length;i++){
Resultado[i] = (Neto / Desgloce[i]);
Neto = (Neto - (Resultado[i] * Desgloce[i]));
}
Indice_Dm = Indice_Dm + 1;
Renglon[Indice_Dm] = Resultado[0] + " " + Resultado[1] + " " + Resultado[2] + " " + Resultado[3] + " " + Resultado[4] + " " + Resultado[5] + " " + Resultado[6] + " " + Resultado[7] + " " + Resultado[8] + " " + Cont_Percepciones + " " + Cont_Deducciones + " " + Neto;
rsSob.close();
}
rsSel.close();
//cierra conexion
stmt_1.close();
stmt_2.close();
con.close();
%>
Hola espero puedan ayudarme, este programa se diseño para una nómina y debe de imprimir unos sobres con los datos de los empleados de acuerdo al tipo de nomina en el que se encuentren. Yo tengo un formulario.jsp en el cual viene una opcion que se llama Imprimir sobre, al seleccionarla me abre un combo con los tipos de nomina que hay. Al seleccionar uno, por ejemplo Semanal y darle clic en aceptar, necesito que me mande a imprimir todos los empleados que se encuentren bajo este tipo de nomina, uno tras otro. Mi problema es que no se como generar un loop para que me haga esto y como lo mando imprimir. Porfavor si alguien sabe como hacerlo agradeceria mucho su ayuda. Gracias