From 8df8558f37835a942d5a98466f3a3ecc522ca611 Mon Sep 17 00:00:00 2001 From: AngelSuarez03 Date: Wed, 24 Apr 2024 22:32:03 -0600 Subject: [PATCH] Funcionalidad descargar CSV (Actividad Consultar Pacientes) --- app/src/main/AndroidManifest.xml | 3 ++ .../ConsultarPacientesActivity.kt | 46 +++++++++++++++++-- .../layout/activity_consultar_pacientes.xml | 12 ++++- app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 60 insertions(+), 4 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 49b5e78..43354a3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,9 @@ + + +¿ private var pacienteSeleccionado: Paciente? = null - private lateinit var infoPaciente : Array + private val REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION = 1 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -36,6 +45,9 @@ class ConsultarPacientesActivity : AppCompatActivity() { startActivity(intent) finish() } + binding.btnDescargarCsv.setOnClickListener { + exportarCSV(this@ConsultarPacientesActivity, pacientesList) + } } private fun cargarListaPacientes() { @@ -64,8 +76,36 @@ class ConsultarPacientesActivity : AppCompatActivity() { return pacientes } - private fun guardarDatosPaciente(paciente : Paciente){ - infoPaciente = arrayOf(paciente.nombre.toString(), paciente.apellidoPaterno.toString(), paciente.apellidoMaterno.toString(), paciente.domicilio.toString(), paciente.edad.toString(), paciente.sexo.toString()) + fun exportarCSV(context : Context, pacientesList : MutableList) { + //Pedir Permisos + ActivityCompat.requestPermissions(this@ConsultarPacientesActivity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION) + // Verificar si se tienen permisos de escritura externa + if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + try { + // Crear el directorio donde se guardarĂ¡ el archivo CSV + val directorio = File(Environment.getExternalStorageDirectory(), "MiApp") + if (!directorio.exists()) { + directorio.mkdirs() + } + + // Crear el archivo CSV + val archivoCSV = File(directorio, "pacientes.csv") + archivoCSV.createNewFile() + + // Escribir los datos en el archivo CSV + val writer = FileWriter(archivoCSV) + for (paciente in pacientesList) { + writer.append("${paciente.nombre},${paciente.apellidoPaterno},${paciente.apellidoMaterno},${paciente.edad},${paciente.sexo}\n") + } + writer.flush() + writer.close() + Toast.makeText(this@ConsultarPacientesActivity,getString(R.string.res_csv),Toast.LENGTH_LONG).show() + } catch (e: Exception) { + e.printStackTrace() + } + }else{ + Toast.makeText(this@ConsultarPacientesActivity,getString(R.string.err_permisos_storage),Toast.LENGTH_LONG).show() + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_consultar_pacientes.xml b/app/src/main/res/layout/activity_consultar_pacientes.xml index 263e0e5..60679a0 100644 --- a/app/src/main/res/layout/activity_consultar_pacientes.xml +++ b/app/src/main/res/layout/activity_consultar_pacientes.xml @@ -21,10 +21,20 @@ +