2017-10-17 1 views
0

Est-il possible de créer un lien hypertexte vers un fichier qui va ouvrir son contenu ou le télécharger à partir de la table à laquelle il appartient? (Dans un sens, faire exactement la même chose que AllowEdit mais ouvert/télécharger le fichier à la place.) Exemple: enter image description hereHyperlien pour ouvrir/télécharger un fichier (Acumatica)

Lorsque les fichiers de spécification par défaut sont des fichiers trouvés sur le client:

enter image description here

S'il vous plaît noter que ce qui affiche est le commentaire du fichier. Si quelqu'un a des suggestions sur la façon d'afficher le nom de fichier à la place, cela serait également apprécié.

Répondre

0

Vous pouvez obtenir le nom de fichier comme ceci:

foreach (Guid note in PXNoteAttribute.GetFileNotes(cache, dacRecord)) 
{ 
    FileInfo file = fileMaintenance.GetFileWithNoData(note); 
    PXTrace.WriteInformation(file.Name); 
} 

Pour télécharger le fichier, créer un champ DAC de type chaîne. Vous pouvez initialiser la chaîne au nom de fichier dans l'événement FieldDefaulting ou FieldSelecting. Déclarez une action et utilisez l'attribut LinkCommand dans le fichier ASPX pour que ce champ contrôle un lien.

Dans ce gestionnaire d'événements d'action, vous pouvez rediriger le navigateur vers le fichier afin de télécharger/ouvrir:

Guid[] notes = PXNoteAttribute.GetFileNotes(cache, dacRecord); 

if (notes != null && notes.Length > 0) 
{ 
    FileInfo downloadFile = fileMaint.GetFile(notes[0]); 

    if (downloadFile != null) 
    { 
     throw new PXRedirectToFileException(downloadFile.UID, true); 
    } 
} 
+0

Merci HB, je donnerai à ce essayer dans quelques jours et vous laisser savoir comment ça va. –

+0

Si vous avez besoin d'aide pour configurer le gestionnaire d'événements LinkCommand et Link, vous pouvez vous référer à cette réponse: https://stackoverflow.com/questions/26387291/how-to-create-a-hyperlink-user-field –

+0

HB, où est-ce que je placerais la déclaration de foreach et que consisterait dacRecord? Qu'est-ce que je veux dire par là est dacRecord être défini par UploadFileRevision ou une autre table, ou quelque chose d'autre tous ensemble? –