Funcionalidad descargar CSV (Actividad Consultar Pacientes)

This commit is contained in:
AngelSuarez03 2024-04-24 22:32:03 -06:00
parent eada363366
commit 8df8558f37
4 changed files with 60 additions and 4 deletions

View File

@ -2,6 +2,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
¿
<application <application
android:allowBackup="true" android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules" android:dataExtractionRules="@xml/data_extraction_rules"

View File

@ -1,10 +1,19 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding
import java.io.File
import java.io.FileWriter
class ConsultarPacientesActivity : AppCompatActivity() { class ConsultarPacientesActivity : AppCompatActivity() {
@ -12,7 +21,7 @@ class ConsultarPacientesActivity : AppCompatActivity() {
private lateinit var db: DoctorDataBaseHelper private lateinit var db: DoctorDataBaseHelper
private lateinit var pacientesList: MutableList<Paciente> private lateinit var pacientesList: MutableList<Paciente>
private var pacienteSeleccionado: Paciente? = null private var pacienteSeleccionado: Paciente? = null
private lateinit var infoPaciente : Array<String> private val REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION = 1
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -36,6 +45,9 @@ class ConsultarPacientesActivity : AppCompatActivity() {
startActivity(intent) startActivity(intent)
finish() finish()
} }
binding.btnDescargarCsv.setOnClickListener {
exportarCSV(this@ConsultarPacientesActivity, pacientesList)
}
} }
private fun cargarListaPacientes() { private fun cargarListaPacientes() {
@ -64,8 +76,36 @@ class ConsultarPacientesActivity : AppCompatActivity() {
return pacientes return pacientes
} }
private fun guardarDatosPaciente(paciente : Paciente){ fun exportarCSV(context : Context, pacientesList : MutableList<Paciente>) {
infoPaciente = arrayOf(paciente.nombre.toString(), paciente.apellidoPaterno.toString(), paciente.apellidoMaterno.toString(), paciente.domicilio.toString(), paciente.edad.toString(), paciente.sexo.toString()) //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()
}
} }
} }

View File

@ -21,10 +21,20 @@
<ListView <ListView
android:id="@+id/lista_pacientes" android:id="@+id/lista_pacientes"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="550dp"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:listSelector="@drawable/list_item_selected_background"/> android:listSelector="@drawable/list_item_selected_background"/>
<Button
android:id="@+id/btn_descargar_csv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_csv"
android:layout_marginTop="35sp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:background="@drawable/radius_btn"/>
</LinearLayout> </LinearLayout>

View File

@ -24,6 +24,9 @@
<!-- Consultar Pacientes Activity --> <!-- Consultar Pacientes Activity -->
<string name="tv_titulo_consultar">Pacientes</string> <string name="tv_titulo_consultar">Pacientes</string>
<string name="btn_csv">Descargar</string>
<string name="res_csv">Descarga completa</string>
<string name="err_permisos_storage">Permisos denegados</string>
<!--Registrar Doctor activity--> <!--Registrar Doctor activity-->
<string name="et_activity_registrar_titulo">Registrar</string> <string name="et_activity_registrar_titulo">Registrar</string>
<string name="et_nombre_registrar">Nombre</string> <string name="et_nombre_registrar">Nombre</string>