Wp fixer attribut

Bonjour,
il semble que j’utilise mal la fonction WP FIXER ATTRIBUT, car le code ci-dessous ne “fixe” pas les attributs choisis…
Dans ma table [IMPRIME], j’ai un champ objet [IMPRIME]Write_Pro et je voudrais mettre à jour quelques attributs de la zone Write Pro :

<code 4D>
LECTURE ÉCRITURE([IMPRIME])
TOUT SÉLECTIONNER([IMPRIME])
TRIER([IMPRIME]Nom_Imprime;>)
DÉBUT SELECTION([IMPRIME])
Tant que (Non(Fin de sélection([IMPRIME])))
$titre_t:=[IMPRIME]Nom_Imprime
WP FIXER ATTRIBUTS([IMPRIME]Write_Pro;wk title;$titre_t;wk author;“Marc Dahlet”;wk date modified;Date du jour;wk subject;$titre_t)
STOCKER ENREGISTREMENT([IMPRIME])
LIBÉRER ENREGISTREMENT([IMPRIME])
ENREGISTREMENT SUIVANT([IMPRIME])
Fin tant que
LECTURE SEULEMENT([IMPRIME])
</code 4D>

lorsque je rouvre les zones Write Pro, les attributs restent inchangés (ceux par défaut)

Est-ce que j’oublie quelque-chose ?

Merci

Marc

Cela ne fonctionne_t_il que si la dite zone Write Pro est à l’écran ?

Je ne réponds pas à ta question mais je reformule ta boucle :

<code 4D>
LECTURE ÉCRITURE([IMPRIME])
TOUT SÉLECTIONNER([IMPRIME])
TRIER([IMPRIME]Nom_Imprime;>)
// DÉBUT SELECTION([IMPRIME])

$D_Current:=Date du jour

Tant que(Non(Fin de sélection([IMPRIME])))
$titre_t:=[IMPRIME]Nom_Imprime
WP FIXER ATTRIBUTS([IMPRIME]Write_Pro;wk title;$titre_t;wk author;“Marc Dahlet”;wk date modified;$D_Current;wk subject;$titre_t)
STOCKER ENREGISTREMENT([IMPRIME])
// LIBÉRER ENREGISTREMENT([IMPRIME])
ENREGISTREMENT SUIVANT([IMPRIME])

Fin tant que
LECTURE SEULEMENT([IMPRIME])
</code 4D>

Bon, c’est mieux quand la zone est à lécran…
Mais ça ne “fixe” pas wk author ni wk subject…

Chez moi ça marche très bien :

<code 4D>
WP SET ATTRIBUTES([IMPRIME]Write_Pro;wk title;“montitre”;wk author;“Marc Dahlet”;wk date modified;Current date;wk subject;“titre à moi”)

</code 4D>

merci
moi, je tourne en v17 R4 32 bits

ça peut expliquer ?

Testé en 17.3 32 bits sans soucis

tu te créé une base de test avec ce code :

<code 4D>
$O_WP:=WP New
WP SET ATTRIBUTES($O_WP;wk title;“montitre”;wk author;“Marc Dahlet”;wk date modified;Current date;wk subject;“titre à moi”)

</code 4D>

Tu testes dans toutes les versions possibles

bizarre,

j’ai commencé à tester avec ta proposition
en trace, quand je passais sur $O_WP, je pouvais lire que dans la série des attributs, il y avait (enfin !) l’attribut auteur
Du coup, j’ai poursuivi, plein d’espoirs
Mais…mystère, après, en recommençant la manip, je n’ai plus jamais vu l’attribut auteur
De la diablerie je vous dis (Les Visiteurs,/2/7/…)

Bon, je fatigue…
demain est un autre jour
en attendant, je télécharge les R3, R5 et R6…

Bonne nuit

voici le code testé :
<code 4D>
LECTURE ÉCRITURE([IMPRIME])
TOUT SÉLECTIONNER([IMPRIME])
TRIER([IMPRIME]Nom_Imprime;>)
Tant que (Non(Fin de sélection([IMPRIME])))
$titre_t:=[IMPRIME]Nom_Imprime
$auteur_t:=“Marc Dahlet”
$subject_t:=“titre à moi”
$dateModifiee_d:=Date du jour

$O_Temp:=[IMPRIME]Write_Pro
WP FIXER ATTRIBUTS($O_Temp;wk title;$titre_t;wk author;$auteur_t;wk date modified;$dateModifiee_d;wk subject;$subject_t)
WP LIRE ATTRIBUTS($O_Temp;wk title;$monTitre;wk author;$monAuteur;wk date modified;$maDateModifiee;wk subject;$monSujet)

$message_1:="paramètre wk author Passé="+$auteur_t+"; Paramètre wk author Lu="+$monAuteur
$message_2:="paramètre wk date modified Passé="+Chaîne($dateModifiee_d)+"; Paramètre wk date modified Lu="+Chaîne($maDateModifiee)
$message_3:="paramètre wk subject Passé="+$subject_t+"; Paramètre wk subject Lu="+$monSujet
$message:=$message_1+"\r"+$message_2+"\r"+$message_3
  //$message:=$message_1+Caractère(13)+$message_2+Caractère(13)+$message_3
ALERTE($message)

[IMPRIME]Write_Pro:=$O_Temp
STOCKER ENREGISTREMENT([IMPRIME])
ENREGISTREMENT SUIVANT([IMPRIME])

Fin tant que
LECTURE SEULEMENT([IMPRIME])
</code 4D>

[]34103461;“avec v 17 R3. Idem avec R4”[/]

On voit que author et subject restent désespérément vides…

NB : je ne peux pas ouvrir avec la R5 (qui reconstruit les index au lancement), ni la R6 (idem), ni la 17.4 : il faut que j’aille regarder dans mon dossier Licenses…

essaie comme ça:

<code 4D>
WP SET ATTRIBUTES([IMPRIME]Write_Pro;wk title;“montitre”;wk author;“Marc Dahlet”;wk date modified;Current date;wk subject;“titre à moi”)

$T_Message_dot_notation:=[IMPRIME]Write_Pro.author
$T_Message_oldstyle:=OB Get([IMPRIME]Write_Pro;“author”;Is text)

</code 4D>

Ma précédente réponse me fait ajouter ça.

Au lieu d’utiliser WP SET ATTRIBUTES, tu peux faire :
<code 4D>
// old style ou dot notation si compatible
[IMPRIME]Write_Pro.author:="Marc Dahlet "+String(Random)
OB SET([IMPRIME]Write_Pro;wk author;"Marc Dahlet "+String(Random))

</code 4D>

Merci beaucoup !

eh bien la syntaxe :
[IMPRIME]Write_Pro.author:="Marc Dahlet " ne donne rien de même que
WP FIXER ATTRIBUTS([IMPRIME]Write_Pro;wk author;"Marc Dahlet ") ne donne rien non plus

en revanche la syntaxe OB SET([IMPRIME]Write_Pro;wk author;"Marc Dahlet ") fonctionne à 100 %

(pour info : en v17 R4 sur Mac)

donc :
1/ Bravo+++ et merci !
2/ WR FIXER ATTRIBUT a un problème ?

Bon dimanche
Marc

Juste quelques réflexions supplémentaires :
1/la v17 R3 a effacé tout le contenu de mes zones Write Pro (mais j’avais une sauvegarde…)
2/la v17 R4 a rouvert tout (la sauvegarde) et le code de Bertrand Soubeyrand fonctionne à 100% (merci à lui) sans effet collatéral
3/ma table IMPRIMES date de plusieurs années. J’avais initialement rajouté un champ Objet dans la table, pour y stocker un objet construit par WP Nouveau à partir du blob de stockage de l’imprimé 4D Write dans la même table. Mais, je n’avais pas, à ce stade là, essayé de stocker d’autres infos (auteur, date de modif, sujet, etc…). Cela serait-il une piste d’explication au fait que WP FIXER ATTRIBUTS n’a pas fonctionné après ?

bonjour
j’au testé avec une v17.3

J’obtiens le même résultat que j’écrive ça :

[doc]wp.title:=“zap_”+String(Milliseconds)
ou ça :
WP SET ATTRIBUTES([doc]wp;wk title;“zap_”+String(Milliseconds))

En revanche si j’affiche doc]wp.title dans un champ à part, sa valeur n’est affichée correctement qu’après avoir rechargé l’enregistrement. Ce bug a été fixé depuis (en v18 je pense)


ATTENTION, la propriété “wk date modified” est en lecture SEULE. Elle est mise à jour automatiquement quand le document est modifié, mais reste indépendante de la mise à jour éventuelle de l’enregistrement qui contient ce document (si vous modifiez uniquement des champs de la table sans toucher au doc, sa date de modification ne changera PAS)

Voir la doc ici :

https://doc.4d.com/4Dv17/4D/17/4D-Write-Pro-Attributes.300-3726323.en.html

Cordialement,
Roland Lannuzel

Bonjour
Merci

je constatais la non prise en compte par WP FIXER ATTRIBUTS (v17 R4 32 bit Mac) des items wk author et wk subject en regardant dans le widget (j’utilise le widget 4D des objets fournis). Les items wk title et wk date modified se “fixaient” toujours correctement.
Je confirme que l’écriture à point ([doc]wp title) échouait aussi pour author et subject.
Par rapport à ça, seule l’utilisation de OBJET FIXER a abouti.

Tant mieux si c’est règlé en v18.

Cordialement
Marc