Jalar campo Signature de una tabla de colaboradores a un registro diario

Hola a todos, estoy tratando de hacer una app de un tareo diario que es para el control de asistencia, almuerzos, y horas extras.

Tengo una base de colaboradores llamada "TarColaboradores", y tengo un registro diario de sus horas de ingreso/salida, labores llamada TarRegDiario, se vinculan por medio del DNI del colaborador.

En la tabla de Colaboradores he incluido el campo de firma (SIgnature) mediante Gsheet formula para poder ver las firmas dentro de una celda.

Mi intenciรณn es que en el registro diario se jale la firma de la tabla Colaboradores en caso exista firma, y que si no exista firma permita firmar desde el formulario de tareo diario y la firma se guarde en la tabla de Colaboradores., habrรก alguna forma de lograr ello?

Formulario de Tareo Diario -> Data de TarRegDiario

firma02.JPG

Tabla TarColaboradores:

firma03.JPG

Tabla TarRegDiario:

firma04.JPG

Campo de firma en la tabla TarRegDiario

firma05.JPG

Initial Value formula for column COLAB_FIRMA (Signature)

ANY(SELECT(TarColaboradores[COLAB_FIRMA], ([ID_DNI] = [_THISROW].[ID_DNI]), TRUE))

 

0 9 288
9 REPLIES 9

Deberรญas tener dos columnas diferentes, p.e: firmaManualTemp y firmaRegistrada

  1. firmaRegistrada:
    •  App Formula :
        IF( ISBLANK([ID_DNI].[COLAB_FIRMA]),
          [firmaManualTemp],
          [ID_DNI].[COLAB_FIRMA]
        ) 
    • Show If 
        OR(
          ISNOTBLANK([ID_DNI].[COLAB_FIRMA]),
          NOT("Form" = CONTEXT("ViewType"))
        )

           
  2. firmaManualTemp:
    • Show If 
        AND(
          ISBLANK([ID_DNI].[COLAB_FIRMA]),
          "Form" = CONTEXT("ViewType") 
        )
    • Require IfISBLANK([ID_DNI].[COLAB_FIRMA])

Luego a travรฉs de una Form Saved Action o un Bot, deberรญas copiar el valor de la columna firmaRegistrada en COLAB_FIRMA, si ISBLANK([COLAB_FIRMA])

Hola Joseph_Seddik, muchas gracias por el apoyo, el cรณdigo me daba algunos errores,  tuve que hacerle algunos cambios teniendo en cuentra el cรณdigo que publicaste y ponerle los ANY() porque me daba error de tipo List.

En la Tabla TarRegDiario, tengo 2 columnas: "FIRMA_REGISTRADA" y "FIRMA_MANUAL", ambas de tipo Signature, dejo el cรณdigo:

1) "FIRMA REGISTRADA"

Show_If expression for column FIRMA_REGISTRADA (Yes/No)

OR(
ISNOTBLANK(ANY(SELECT(
TarColaboradores[COLAB_FIRMA], ([ID_DNI] = [_THISROW].[ID_DNI]), TRUE)
)),
NOT("Form" = CONTEXT("ViewType"))
)

App Formula for column FIRMA_REGISTRADA (Signature)

IF(
ISBLANK(
ANY(SELECT(
TarColaboradores[COLAB_FIRMA], ([ID_DNI] = [_THISROW].[ID_DNI]), TRUE)
)
),
[_THISROW].[FIRMA_MANUAL],
ANY(SELECT(TarColaboradores[COLAB_FIRMA], ([ID_DNI] = [_THISROW].[ID_DNI]), TRUE))
)

2) FIRMA_MANUAL

Show_If expression for column FIRMA_MANUAL (Yes/No)

AND(
ISBLANK(
ANY(
SELECT(
TarColaboradores[COLAB_FIRMA],
([ID_DNI] = [_THISROW].[ID_DNI]),
TRUE
)
)
),
"Form" = CONTEXT("ViewType")
)

Required_If expression for column FIRMA_MANUAL (Yes/No)

ISBLANK(
ANY(
SELECT(
TarColaboradores[COLAB_FIRMA],
([ID_DNI] = [_THISROW].[ID_DNI]),
TRUE
)
)
)

Con esos cambios, el usuario al momento de registrar el tareo del personal, le permite jalar la firma si es que estuviera registrada de la Tabla TarColaboradores y mostrarla en FIRMA_REGISTRADA y si no estรก registrada la firma permite registrar una firma en el campo FIRMA_MANUAL.

Donde tengo muchos problemas es en tratar de automatizar que, si en caso no hay firma registrada y el usuario hace una "FIRMA MANUAL", se copie el texto(Ejm: img/firmas_colab/70480227.COLAB_FIRMA.170037.png) del campo "FIRMA MANUAL"  de tipo Signature de la tabla TarRegDiario y lo actualize en el campo "COLAB_FIRMA"  de tipo Signature de la Tabla TarColaboradores.

Creando Actions:

Screenshot_77.png

New value for column COLAB_FIRMA (Signature):

LOOKUP(
MAXROW(
"TarRegDiario",
"_RowNumber",
[ID_DNI] = [_THISROW].[ID_DNI]
),
"TarRegDiario",
"_RowNumber",
"FIRMA_MANUAL"
)

Screenshot_78.png

List of row references for action 'TarColaboradoresFirmaUpdate' (List)

SELECT(
TarColaboradores[COLAB_FIRMA],
[ID_DNI] = [_THISROW].[ID_DNI]
)

Pero me da el siguiente error:

The value '=SELECT( TarColaboradores[COLAB_FIRMA], [ID_DNI] = [_THISROW].[ID_DNI] )' of data action 'TarColaboradoresFirmaUpdate' does not match the expected type List or its expected type details

Alguna ayuda de como poder solventar el error, quรฉ tendrรญa que corregir o si debo usar otro mรฉtodo? ๐Ÿ˜ช.


@renzogutierrez wrote:

se vinculan por medio del DNI del colaborador


ยฟSe vinculan cรณmo? La columna [ID_DNI] en la tabla TarColaboradores debe ser de tipo Ref apuntando a la tabla Colaboradores. Si tienes esta referencia establecida correctamente bastarรก utilizar el cรณdigo que te he enviado y no vas a necesitar todas esas SELECT()s y LOOKUP()s . 

Te aconsejo primero establecer la referencia correctamente y leer tambiรฉn estos dos guรญas que te beneficiarรกn mucho. 

References between tables - AppSheet Help
Dereference expressions - AppSheet Help

Hola Joseph, sรญ se vinculan vรญa el campo ID_DNI, este campo lo tengo como clave Primaria en la tabla "TarColaboradores" y en la tabla TarRegDiario, lo tengo como de tipo Ref para que el usuario pueda seleccionar o buscar el DNI y jalar la data de la tabla en automรกtico. En la tabla TarRegDiario pueden haber varios DNIs dado que es un registro diario, osea su relaciรณn es de 1 a Varios.

Screenshot_79..png

 

 

 

TarRegDiario? Esta es nueva. 

Por favor muestra las columnas de las tres tablas y cรณmo se relacionan. Tambiรฉn serรญa conveniente decirme los errores que saltaron utilizando el cรณdigo original. Gracias.

Solo son 2 tablas:

1) TarColaboradores: Tiene la info personal de los trabajadores, su documento de identidad que es el ID_DNI y que lo tengo como Unique y clave primaria, y la firma del colaborador

2) TarRegDiario: esta tabla es como el control de labores/actividades del personal de forma diaria, yo tengo un slice para mostrarme la data solamente generada del dรญa en los formularios, lo primero era ver como si en caso no estรฉ registrada la firma del colaborador, de la opciรณn de registrarla por medio de un form que interactura con esta base y luego mediante una acciรณn actualize en la base colaboradores la firma.

En el cรณdigo original hasta donde recuerdo tenรญa errores de Mismatch list con el tipo Signature o con tipo Text, entendรญa que no podรญa comparar una lista de valores con un campo de tipo texto, tratรฉ de usar la funciรณn IN para buscar un valor dentro de una lista, pero al final sobrepasรฉ los errores usando ANY con los Select e indicando la tabla de origen.

1) TarColaboradores

TarColaboradores.png

2) TarRegDiario

TarRegDiario1.pngTarRegDiario2.png

Disculpa, son los columnas en la app que necesito ver. 

Hola, te copio la captura de las tablas:

Screenshot_1.pngScreenshot_2.pngScreenshot_3.png

Screenshot_4.png

 

 

Hola a todos, ยฟhabrรก alguna forma de poder copiar la firma manual de TarRegDiario de tipo Signature para que se actualice de forma automรกtica en la tabla Tar Colaboradores?

Top Labels in this Space