Office 2007

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Сообщение korvanakorvana »

Vik Каким образом?
На предыдущем примере подскажите. Могу ли я использовать эту функцию? и как правильно ее использовать?

Код: Выделить всё



xlCreateMatrix ( recordsintable(#tDolg)+10, 11 );

// message(recordsintable(#tDolg));

   xlSTWriteToMatrix(1,1, 'Задолженность по оплате счетов на '+DateToStr(dat2,'DD.MM.YYг.')+' - '+usertune.fio);

   xlSTWriteToMatrix(3,1,'Дата сч.');
   xlSTWriteToMatrix(3,2,'№ сч.');
   xlSTWriteToMatrix(3,3,'Организация');
   xlSTWriteToMatrix(3,4,'Город');
   xlSTWriteToMatrix(3,5,'Сумма');
   xlSTWriteToMatrix(3,6,'Оплачено');
   xlSTWriteToMatrix(3,7,'Возврат');
   xlSTWriteToMatrix(3,8,'Остаток');
   xlSTWriteToMatrix(3,9,'Дни');
   xlSTWriteToMatrix(3,10,'Усл.');
   xlSTWriteToMatrix(3,11,'Проср');





///В данном месте я могу использовать эту функцию????





  _loop tDolg
 {
    sum:=tdolg.total-tdolg.plat-tdolg.rekl;
    if sum<0 then sum:=0;
    if sum>0.1 then
    {
    delta:=0;
   case longint(substr(katcity1.tel,length(katcity1.tel),1)) of
      1:delta:=6;
      2:delta:=8;
      3:delta:=4;
      4:delta:=9;
      5:delta:=3;
      6:delta:=1;
   end;

    days:=to_days(dat2)-to_days(basedoc1.ddoc);
    if days<0 then days:=0;
   xlSTWriteToMatrix(i,1,DateToStr(basedoc1.ddoc,'DD.MM.YY'));
   xlSTWriteToMatrix(i,2,basedoc1.nodoc);
   xlSTWriteToMatrix(i,3,katorg1.name);
   xlSTWriteToMatrix(i,4,katcity1.name);
   xlDOWriteToMatrix(i,5,tdolg.total);
   xlDOWriteToMatrix(i,6,tdolg.plat);
   xlDOWriteToMatrix(i,7,tdolg.rekl);
   xlSTWriteToMatrix(i,8,'=RC[-3]-RC[-2]-RC[-1]');
   xlDOWriteToMatrix(i,9,days);
   xlDOWriteToMatrix(i,10,basedoc1.koldn);
xlSTWriteToMatrix(i,11,'=ЕСЛИ(RC[-2]-RC[-1]-'+string(delta)+'>0;RC[-2]-RC[-1]-'+string(delta)+';0)');
        i:=i+1;
   }
 }

 i:=i+1;
 xlSTWriteToMatrix(i,5,'=СУММ(E4:E'+string(i-1)+')');
 xlSTWriteToMatrix(i,6,'=СУММ(F4:F'+string(i-1)+')');
 xlSTWriteToMatrix(i,7,'=СУММ(G4:G'+string(i-1)+')');
 xlSTWriteToMatrix(i,8,'=СУММ(H4:H'+string(i-1)+')');
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

korvanakorvana писал(а):Vik Каким образом?
На предыдущем примере подскажите. Могу ли я использовать эту функцию? и как правильно ее использовать?

Код: Выделить всё

...

   xlSTWriteToMatrix(3,10,'Усл.');
   xlSTWriteToMatrix(3,11,'Проср');

///В данном месте я могу использовать эту функцию????

  _loop tDolg
 {
 .... 
Ну использовать можете, никто вам не запретит. Только вы же потом поверх записанной формулы матрицу запишете, и никакой формулы у вас не будет. Вы, например, в этом месте запомните координаты, куда необходимо вывести формулу, а ПОСЛЕ вызова xlWriteMatrixToExcel и освобождения матрицы выведите формулы функцией xlSetCellFormula в запомненные ранее координаты.
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

Что касается правильной работы xls-шаблонов для PAT-ов в MS Excel 2007, то их достаточно просто открыть и сохранить как "Книга с поддержкой макросов (*.xlsm)" и соответственно перевыбрать шаблон в Гал-ке.
Ответить