Конференция "Базы" » Word в Делфи в чем ошибка? [D7, MSSQL]
 
  • kulinar © (29.04.12 12:18) [0]
    Все данные выводятся замещая другие  как это исправить???
    Код:
    procedure TClav.N10Click(Sender: TObject);
    var
    i:integer;
    k,b:OleVariant;
    begin
    WordApplication1.Visible:= true;
    WordApplication1.Connect;
    WordDocument1.Connect;
    //================================================================================ ====
    k:=23;
    b:=0;
    WordDocument1.Range(b).Text:='Отчет по подразделениям';
    WordDocument1.Range(b).Select;
    WordDocument1.Range.ParagraphFormat.LineSpacing:= 20;
    WordDocument1.Range.Font.Size:=16;
    WordDocument1.Range.ParagraphFormat.Alignment:=$00000001;
    //================================================================================ ====
    for i:=2 to ADOQuery1.RecordCount+1  do
    begin
     WordDocument1.Range(b).InsertBefore(ADOQuery1.FieldValues['podr']);
     WordDocument1.Range(b).Select;
     WordApplication1.Selection.Font.Size:=12;
     WordApplication1.Selection.ParagraphFormat.Alignment:=$00000000;
     WordApplication1.Selection.TypeParagraph;
     WordDocument1.Range(b).InsertAfter(ADOQuery1.FieldValues['sot_familiya']+' '+ADOQuery1.FieldValues['sot_imya']+' '+ADOQuery1.FieldValues['sot_otchestvo']);
     WordDocument1.Range(b).Select;
     WordApplication1.Selection.Font.Size:=12;
     WordApplication1.Selection.ParagraphFormat.Alignment:=$00000000;
     ADOQuery1.Next;
    end;

    И можете объяснить свойство Range ели вам не сложно, а то я не до конца понимаю?

  • makz (29.04.12 13:07) [1]
    Range(анг. -Диапазон) - ничего удивительного, что данные заменяются после
      WordDocument1.Range(b).Select;
    Если в word выделить текст и начать писать, то что произойдет?
  • kulinar © (29.04.12 13:41) [2]
    это я понимаю проста не понимаю как этим дипозом пользоватся.
  • makz (29.04.12 14:39) [3]
  • kulinar © (29.04.12 16:42) [4]
    К примеру я пишу вот так:
    procedure TForm2.Button5Click(Sender: TObject);
    var i,a:integer;
    k,b:OleVariant;
    begin
    WordDocument1.Range.Text:='Заголовок';
     WordDocument1.Range.Font.Size:=16;
      k:=0;b:=9;
     edit2.Text:=WordDocument1.Range(k,b).Text;
    //===================================================================
        k:=9;b:=9;{почему если я пишу тут 9 и 9 то выводется полностью название
     подразделение, а ели например 9 и 10 то выводится 3 буквы от подразделения,
     а если больше 9 и 11 то не работает? }

    WordDocument1.Range(k,b).Text:=Table1.FieldValues['pod'];
    WordDocument1.Range(k,b).Select;
    W.Selection.TypeParagraph;
    WordDocument1.Range(k,b).ParagraphFormat.LineSpacing:= 10;
    //===================================================================
        k:=15;b:=15;//
    WordDocument1.Range(k,b).InsertAfter(Table1.FieldValues['sot_familiya']+' '
    +Table1.FieldValues['sot_imya']+' '+Table1.FieldValues['sot_otchestvo']);
    {И как мне вывести эту страку на следушей строке а не как она выводится трядом с подразделением}
    W.Selection.TypeParagraph;
    Table1.Next;
    end;
    end;

  • kulinar © (29.04.12 18:01) [5]
    Вобщем сделал так:
    procedure TForm2.Button5Click(Sender: TObject);
    var i,a:integer;
    k,b:OleVariant;
    begin
    WordDocument1.Range.ParagraphFormat.Alignment:=$00000001;
    WordDocument1.Range.Font.Size:=16;
    WordDocument1.Range.Text:='Отчет по подразделениям';

    //===================================================================
    While  Table1.Eof=false do
    begin
    k:=23;b:=23;
    WordDocument1.Range(k,b).ParagraphFormat.LineSpacing:= 20;
    WordDocument1.Range(k,b).Text:=Table1.FieldValues['pod'];
    WordDocument1.Range(k,b).Select;
    WordDocument1.Range(k,b).Font.Size:=14;
    WordDocument1.Range(k,b).ParagraphFormat.Alignment:=$00000000;
    //w.Selection.Font.Size :=14;
    W.Selection.TypeParagraph;
    //w.Selection.ParagraphFormat.Alignment:= $00000000;
    W.Selection.ParagraphFormat.LineSpacing:= 10;
    //===================================================================
     k:=29;b:=29;
     WordDocument1.Range(k,b).Text:=Table1.FieldValues['sot_familiya']+
    ' '+Table1.FieldValues['sot_imya']+' '+Table1.FieldValues['sot_otchestvo'];
    WordDocument1.Range(k,b).Select;
    w.Selection.Font.Size :=12;
    W.Selection.TypeParagraph;
    W.Selection.ParagraphFormat.FirstLineIndent:=10;
    w.Selection.ParagraphFormat.Alignment:= $00000000;
    Table1.Next;
    end;
    end;



    Теперь шрифт прыгает  как это исправить???
  • Anatoly Podgoretsky © (29.04.12 19:49) [6]
    > kulinar  (29.04.2012 18:01:05)  [5]

    А как прыгает?
    Слева направо или вверх вниз?
  • kulinar © (29.04.12 23:55) [7]
    сверху с низу
  • sniknik © (30.04.12 11:53) [8]
    а зачем ты его (шрифт/да и текст) меняешь постоянно... в цикле. одно и то же, по тому же месту. естественно "прыгает", то побольше поставишь то поменьше.
 
Конференция "Базы" » Word в Делфи в чем ошибка? [D7, MSSQL]
Есть новые Нет новых   [134431   +9][b:0][p:0.002]