Ver Mensaje Individual
  #6  
Antiguo 12-07-2006
Wdo.Net Wdo.Net is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Reputación: 0
Wdo.Net Va por buen camino
Hola, Neftalí, hoy probé el código que me sugeriste y funcionó correctamente, pero aún tengo incoveniente con lo que realmente quiero hacer, por eso a continuación voy a colocar el codigo que estoy utilizando para tratar de exportar: Los datos contenidos en un StringGrid y a continuacion de estos, dejando por ejemplo dos espacios , insertar un grafico correspondiente a dichos datos. Te aclaro que la parte de introducir los datos del StringGrid en un documento de Word funciona correctamente, pero el inconveniente precisamente es que el cursor queda posicionado en la celda (1,1) de la tabla en Word, y debido a esto no puedo colocar la imagen de un Chart en una posicion diferente de la hoja o documento de Word.

Codigo:

Código Delphi [-]
procedure TMDIChildMAD.SBEWordClick(Sender: TObject);
var
  WordTable: Table;
  i, j, RowCount, ColCount: Integer;
  W, S, Nombre, Formato: OleVariant;
begin
  if High(MMAD) <> -1 then
    begin
      if SDMAD.Execute then
        begin
          WDMAD.Connect;
          try
            RowCount := Actores;
            ColCount := Actores;
            WordTable := WDMAD.Tables.Add(WDMAD.Range,RowCount + 1,ColCount + 1,W,S);
            for i := 1 to ColCount do
              begin
                WordTable.Cell(1, i + 1).Range.Font.Bold := 1;
                WordTable.Cell(1, i + 1).Range.Text := MActores[i - 1][0];
                WordTable.Cell(1, i + 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
                WordTable.Cell(1, i + 1).Range.Cells.Shading.BackgroundPatternColor:= clSilver;
              end;
            for i := 1 to RowCount do
              begin
                WordTable.Cell(i + 1, 1).Range.Font.Bold := 1;
                WordTable.Cell(i + 1, 1).Range.Text := MActores[i - 1][0];
                WordTable.Cell(i + 1, 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
                WordTable.Cell(i + 1, 1).Range.Cells.Shading.BackgroundPatternColor:= clSilver;
              end;
            for i:= 1 to RowCount do
              for j:= 1 to ColCount do
                begin
                  WordTable.Cell(i + 1, j + 1).Range.Text:=IntToStr(MMAD[i - 1][j - 1]);
                  WordTable.Cell(i + 1, j + 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
                  if i = j then WordTable.Cell(i + 1, j + 1).Range.Cells.Shading.BackgroundPatternColor:= clCream;
                end;
            WordTable.Borders.Enable:= 1;
          finally
            Nombre:= SDMAD.FileName;
            WDMAD.SaveAs(Nombre,Formato);
            WDMAD.Application.Visible := true;
            WDMAD.Disconnect;
          end;
        end;
    end
  else ShowMessage('La Matriz MAD no ha sido guardadada');
end;

WDMAD: TWordDocument.
SDMAD: TSaveDialog.

Última edición por Wdo.Net fecha: 13-07-2006 a las 18:13:52.
Responder Con Cita