Hola de nuevo.
Gracias pos las respuestas que me habeis enviado. Basandome el la respuesta de Roman (Gracias, eres un crack
), he conseguido que me funcione, y ya me modifica las variables. Os dejo aqui el codigo.
Como veras, he quitado la funcion, pero me he quedado con el bucle y le he metido un case para distinguir las variables.
Código Delphi
[-]If FileExists (Fich) Then
begin
documento:=Word.Documents.Open(Fich);
for I := 1 to Documento.Variables.Count do
begin
NomVar:=Documento.Variables.Item(I).Name;
Case NomVar[1] of
'N': documento.Variables.Item(I).Value:= DM.ADODataSet4Nombre.AsString+
' '+ DM.ADODataSet4Apellido1.AsString+' '+
DM.ADODataSet4Apellido2.AsString;
'D': documento.Variables.Item(I).Value:= DM.ADODataSet4Direccion.AsString;
'L': documento.Variables.Item(I).Value:= DM.ADODataSet4Localidad.AsString;
'P': documento.Variables.Item(I).Value:= DM.ADODataSet4Provincia.AsString;
'T': documento.Variables.Item(I).Value:= DM.ADODataSet4Telefono.AsString+' '+
DM.ADODataSet4Movil.AsString;
end; end; end
Else
begin
Word.Documents.Add(Ruta+'Informes\Plantilla.dot');
Documento := Word.Documents.Item(1);
Documento.Variables.Add('Nombre', DM.ADODataSet4Nombre.AsString+' '+
DM.ADODataSet4Apellido1.AsString+' '+
DM.ADODataSet4Apellido2.AsString);
Documento.Variables.Add('Domicilio', DM.ADODataSet4Direccion.AsString);
Documento.Variables.Add('Localidad', DM.ADODataSet4Localidad.AsString);
Documento.Variables.Add('Provincia', DM.ADODataSet4Provincia.AsString);
Documento.Variables.Add('Telefono', DM.ADODataSet4Telefono.AsString+' '+
DM.ADODataSet4Movil.AsString);
end;
Documento.Fields.Update;
Word.ActiveDocument.SaveAs(Ruta+'Informes\'+
IntToStr(DM.ADODataSet4PACIENTESCodigo.Value+10000)+'.Doc');
Word.ActiveWindow.View.ShowFieldCodes := false;
Word.Visible := true;
end;
Segun el Case (ya que solo puede usar valores integer o char), no puedo tener dos variables que empiecen por el mismo caracter en mi plantilla word, pero a mi me sirve usando el primer caracter del nombre de mi variable. En el IF, primero esta el caso de que ya exista el fichero, y despues del else, el caso de que no exista el fichero y tenga que crearlo nuevo a partir de la plantilla.
Espero que este post le sirva a alguien que se encuentre en el mismo problema que yo.
Muchas gracias a Roman y a Neftali por haberme abierto el camino.