Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

Office

Démarré par bbedis à 09-13-2007 13:27. Le sujet a 1 réponse(s).

Print Search
Sort Posts:    
   09-13-2007, 13:27
bbedis n'est pas en ligne. Dernière activité : 13/09/2007 10:09:52 bbedis

Non Noté
Rejoint : 09-13-2007
Messages : 1
Manipuler les contrôles de word 2003
Reply Quote
Bonjour,

je suis sur un projet qui nécéssite la manipulation des controles de formulaire dans microsoft word 2003: comme changer le libellet d'un CheckBox par exemple.

Pour cela, j'ai fais de la recherche dans le SDK et j'ai trouvé que le manipulation est tres simple avec Microsoft.Office.Tools.Word.Controls.

le problaime que j'ai rencontré est la conversion de Microsoft.Office.Tools.Word.Document vers Microsoft.Office.Interop.Word.Document.

Application.Documents.Open(ref oFileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
=> retourne un Microsoft.Office.Interop.Word.Document
alors que Controls provient de Microsoft.Office.Tools.Word.Controls

voici un exemple de manipulation d'un controle checbox :
((Microsoft.Office.Tools.Word.Controls.CheckBox)this.Controls["checkBox1"]).Text = "Nouveau Text";
sachant que this represente Microsoft.Office.Tools.Word.Document.

Merci de votre aide.
Adresse IP : Connecté   Rapport 
   09-26-2007, 10:26
becem253 n'est pas en ligne. Dernière activité : 26/09/2007 07:05:40 becem253

Non Noté
Rejoint : 09-26-2007
Messages : 1
Re : Manipuler les contrôles de word 2003
Reply Quote
Salut !

on peut manipuler les controles de word par la classe FormField :

exemple :

foreach (FormField ff in objApp.ActiveDocument.FormFields)
{
switch (ff.Type)
{
case WdFieldType.wdFieldFormCheckBox:
{
ff.CheckBox.Value = Convert.ToBoolean(newValue);
}break;
default:
break;
}// switch
}// foreach

avec objApp est une instance de Microsoft.Office.Interop.Word.Application et newValue est 0 pour false, 1 pour true

c facile à faire en utilisant la dll Microsoft.Office.Interop.Word
j'ai une autres question par contre, si on utilise le wordML !!!!

j'ai créer un document word et ajouté un controle de type WdFieldType.wdFieldFormTextInput (TextBox) et j'ai enregistré le document sous format xml pour avoir un wordML.


le code source que j'ai eu est :

<aml:annotation aml:id="0" w:type="Word.Bookmark.Start" w:name="Text2" />
<w:p>
<w:r>
<w:fldChar w:fldCharType="begin">
<w:fldData>/////wAAAAAAAAUAVABlAHgAdAAyAAAADgBoAGUAbABsAG8AIAB0AGUAeAB0ACAAYgBvAHgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA==
</w:fldData>
</w:fldChar>
</w:r>
<w:r>
<w:instrText> FORMTEXT </w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="separate" />
</w:r>
<w:r>
<w:rPr>
<w:noProof />
</w:rPr>
<w:t>hello text box</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end" />
</w:r>
<aml:annotation aml:id="0" w:type="Word.Bookmark.End" />
</w:p>
ce qui m'inquiete est le w:fldData, meme si j'utilise un checkbox ou dropdown il y a toujours w:fldData. je sais pas si son contenue est un cryptage de données ou autre !??

la manipulation des documents word en wordML est tres interessante on aura plus besoin d'utiliser les dll de offices.

si quelqu'un sais comment ajouter des controles tels que checkbox ou dropdown ou text box et le type de données à metre dans w:fldData, ça me facilitera la vie.

merci de votre aide
Bon Code
Adresse IP : Connecté   Rapport 
Labo-dotnet » Programmation .... » Office » Re : Manipuler les contrôles de word 2003

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée