Funcionalidad descargar CSV (Actividad Consultar Pacientes)
This commit is contained in:
parent
eada363366
commit
8df8558f37
|
@ -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"
|
||||||
|
|
|
@ -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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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>
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue