EasyExcel

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

EasyExcel

Сообщение Денис »

Вот такое имеет место быть:

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

 IF exl.Init(TRUE, FALSE, TRUE) = 0 THEN

    exl.SheetsInNewWorkbook(1)
    exl.AddWorkbook

    pCurMaster = ''
    pCurTime   = ''
    pCurRec    = 0

    LOOP i# = 1 TO RECORDS(QAllReport)
      GET(QAllReport, i#); IF ERRORCODE() THEN BREAK END

      IF CLIP(pCurMaster) <> CLIP(QAllReport.FIOMaster) THEN

        IF i# <> 1 THEN
          ! Рисование таблицы у предыдущих данных, простановка кол-ва заявок
          Do DrawPrevTable

          exl.SelectRange(1,1,1,1)
          exl.AddSheet(,xlLast)
        END

        ! настройки страницы
        exl.SetPageSetup(XlPageOrientation:Landscape, XlPaperSize:A4)
        exl.SetPageAlign(1,1,1,1,false,false,true)

        ! Основной шрифт в отчете
        exl.SelectRange(,1,,14); exl.SetFont('Courier New',10,-1, FONT:Regular)

        ! Выставляем ширину столбцов
        exl.SelectRange(,1); exl.ColumnWidth(30)
        exl.SelectRange(,2); exl.ColumnWidth(84)
        exl.SelectRange(,4); exl.ColumnWidth(16)

        Loc:CurRow = 1

        !--> Вывод шапки ---------------------------------------------------------<
        exl.Write(Loc:CurRow, 2, 'Задание на подключение'); exl.SetFont('Courier New',11,-1,FONT:Bold + FONT:Underline)
        exl.SetHorizAlign(CellAlign:Center)
        Loc:CurRow += 2

        exl.Write(Loc:CurRow, 1, 'Мастер: ' & CLIP(QAllReport.FIOMaster))
        Loc:CurRow += 1

        exl.Write(Loc:CurRow, 1, 'Дата: ' & FORMAT(QAllReport.DateRep, @D6.b))
        exl.SelectRange(Loc:CurRow-1, 1, Loc:CurRow, 1); exl.SetFont('Courier New',11,-1,FONT:Bold)
        Loc:CurRow += 1

        pCurMaster = CLIP(QAllReport.FIOMaster)

        Do MakeTabHeader
        pCurTime = CLIP(QAllReport.TimeName)
      END

      IF CLIP(pCurTime) <> CLIP(QAllReport.TimeName) THEN

        ! Рисование таблицы у предыдущих данных, простановка кол-ва заявок
        Do DrawPrevTable

        ! Рисование шапки для следующего времени
        Do MakeTabHeader

        pCurTime   = clip(QAllReport.TimeName)
      END

      ! Вывод самих данных
      exl.Write(Loc:CurRow, 1, CLIP(QAllReport.NameGoods)); exl.SetHorizAlign(CellAlign:Left)
      exl.Write(Loc:CurRow, 2, CLIP(QAllReport.CustAderss)); exl.SetHorizAlign(CellAlign:Left)
      exl.Write(Loc:CurRow, 3, CLIP(QAllReport.ThisRepeatConect)); exl.SetHorizAlign(CellAlign:Center)
      exl.Write(Loc:CurRow, 4, CLIP(QAllReport.CustFIO)); exl.SetHorizAlign(CellAlign:Left)

      exl.SelectRange(Loc:CurRow, 1,,4); exl.SetFont('Courier New',10,-1,FONT:Bold)
      exl.SetVertAlign(CellAlign:Center);  exl.SetTextWrap; exl.AutoFit(XlFit:Vert)

      Loc:CurRow += 1
      pCurRec += 1
    END ! EOF LOOP i# = 1 TO RECORDS(QAllReport)

    ! У последних данных рисуем таблицу и все дела
    IF RECORDS(QAllReport) <> 0 THEN
      Do DrawPrevTable
      exl.SelectRange(1,1,1,1)

      exl.SelectSheet(1)
    END
    
    exl.Kill
  ELSE
    MESSAGE('Не могу инициализировать приложение Excell!','Ошибка', ICON:Exclamation)
  END
На компах дод w98 этот код скомпиленный под c5.5 работает, а если скомпилять под 6.1 - пишет: Системе не хватает ресурсов. На такойже машине но под w2000 проблем нет. Офисс на машинах одинаковый
Аватара пользователя
Admin
Администратор
Сообщения: 3995
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

Сообщение Admin »

В который раз заявляю что EasyExcel использовать на машинах с Windows 98 полный отстой.
Мне всех клиентов исрользующих EasyExcel пришлось перевести на W2K? иначе имели место описанные тобой траблы.

И не думаю что разработчик будет разбираться с твоей проблемой. Он не знает что в недрах COM-процесса делается, он просто передает Excel`у твои команды...

P.S. Юзайте последние версии продуктов от долбаного MS.
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Сообщение Денис »

Так обна и таже версия библиотеки только одна для 5.5 другая для 6.1
Аватара пользователя
Admin
Администратор
Сообщения: 3995
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 46 раз
Поблагодарили: 26 раз
Контактная информация:

Сообщение Admin »

Одна и та же версия это 5.5 и 5.5 :)
А так - реально разные версии получаются из за того что разные компиляторы... Сильно разные :)

Попросил я босса Ингасофта передать разработчику пожелание видеть его на форуме. Но не знаю получится или нет. Желают по мылу общаться :)
Ответить