Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2006, 11:06
monze
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 19 años, 2 meses
Puntos: 0
URGENTE!! Imprimir un arreglo

<%
//---------------------------------------------------------------------------------
//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