Ошибка формирования отчета

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

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

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

Ошибка формирования отчета

Сообщение korvanakorvana »

Добрый день ребята! Проблема такая , у юзера ни как не хочет запускаться отчет. На остальных машинках все хорошо), а вот эта вредная
Изображение система windows 7 может в этом дело?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Ошибка формирования отчета

Сообщение m0p3e »

Либо excel у вас не той системы, либо не зарегистрирован соответствующим способом.
SergZol
Постоянный обитатель
Сообщения: 155
Зарегистрирован: 03 сен 2007, 19:06
Откуда: Россия,Казань

Re: Ошибка формирования отчета

Сообщение SergZol »

korvanakorvana писал(а):Добрый день ребята! Проблема такая , у юзера ни как не хочет запускаться отчет. На остальных машинках все хорошо), а вот эта вредная
Изображение система windows 7 может в этом дело?
1. идем в реестр и грохаем указанный класс
2. пользователю даем права админа на машинку(раз 7-ка еще и права на реестр)
3. запускаем reg.bat из папки ..\EXE\OCX\

теперь у пользователя можно отобрать права админа на тачку.
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Re: Ошибка формирования отчета

Сообщение korvanakorvana »

SergZol писал(а):
korvanakorvana писал(а):Добрый день ребята! Проблема такая , у юзера ни как не хочет запускаться отчет. На остальных машинках все хорошо), а вот эта вредная
Изображение система windows 7 может в этом дело?
1. идем в реестр и грохаем указанный класс
2. пользователю даем права админа на машинку(раз 7-ка еще и права на реестр)
3. запускаем reg.bat из папки ..\EXE\OCX\

теперь у пользователя можно отобрать права админа на тачку.
в реестре этого класса нет(
дала права администратора
после запуска reg.bat
C:\Users\eremeeva>cd C:\GAL810\exe\ocx

C:\GAL810\exe\ocx>reg

C:\GAL810\exe\ocx>Regsvr32 /s AxBrwProj1.ocx

C:\GAL810\exe\ocx>Regsvr32 /s GalXHTMLProj1.ocx

C:\GAL810\exe\ocx>Regsvr32 /s JSGal.ocx

C:\GAL810\exe\ocx>Regsvr32 /s ..\GalXLSLib.dll

C:\GAL810\exe\ocx>Regsvr32 /s WPCom.dll

C:\GAL810\exe\ocx>Regsvr32 /s ..\AtlExtDB.dll

C:\GAL810\exe\ocx>Regsvr32 /s FpCubeViewProj1.ocx

C:\GAL810\exe\ocx>Regsvr32 /s FpCubeView02Proj1.ocx

C:\GAL810\exe\ocx>Regsvr32 /s ..\GalMailer.dll

C:\GAL810\exe\ocx>Regsvr32 /s ..\GalRTSLib.dll

C:\GAL810\exe\ocx>rem -----------------------------------------------

C:\GAL810\exe\ocx>rem Регистрация необходима для работы с WEB - сервисом

C:\GAL810\exe\ocx>rem необходимо убедиться в наличии Microsoft.NET

C:\GAL810\exe\ocx>rem обновления курсов валют

C:\GAL810\exe\ocx>set NET_ROOT=v2.0.50727

C:\GAL810\exe\ocx>set NET_DIR=C:\Windows\Microsoft.NET\Framework\v2.0.50727

C:\GAL810\exe\ocx>C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe ..\Da
ilyInfoCOM.dll /tlb
Microsoft (R) .NET Framework Assembly Registration Utility, версия 2.0.50727.542
0
(C) Корпорация Майкрософт, 1998-2004. Все права защищены.

RegAsm : error RA0000 : При записи регистрационной информации в реестр произошла
ошибка. Для выполнения этой задачи необходимо иметь привилегии администратора.
Обратитесь к системному администратору за помощью

C:\GAL810\exe\ocx>C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe ..\Da
ilyInfoCOM.dll /codebase
Microsoft (R) .NET Framework Assembly Registration Utility, версия 2.0.50727.542
0
(C) Корпорация Майкрософт, 1998-2004. Все права защищены.

RegAsm : warning RA0000 : Регистрация сборки без подписи с использованием параме
тра /codebase может вызвать конфликт данной сборки с другими приложениями, котор
ые могут быть установлены на том же компьютере. Параметр /codebase предназначен
только для сборок с подписями. Присвойте сборке строгое имя и повторите регистра
цию.
RegAsm : error RA0000 : При записи регистрационной информации в реестр произошла
ошибка. Для выполнения этой задачи необходимо иметь привилегии администратора.
Обратитесь к системному администратору за помощью

C:\GAL810\exe\ocx>rem -----------------------------------------------

C:\GAL810\exe\ocx>rem Регистрация должна проводиться на 3-х уровневой

C:\GAL810\exe\ocx>rem на клиенте

C:\GAL810\exe\ocx>rem Regsvr32 /s ..\PrShow.dll

C:\GAL810\exe\ocx>rem Regsvr32 /s ..\MsVShow.dll

C:\GAL810\exe\ocx>rem Regsvr32 /s ..\StMailSend.dll

C:\GAL810\exe\ocx>rem

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

Re: Ошибка формирования отчета

Сообщение korvanakorvana »

ВОТ САМ ОТЧЕТИК . НА ХП работает .

Const
xlColorBlack = 0;
End;

Interface _gt_listorg_podr 'Задолженность по менеджерам' escclose;
//show at(,,70,);
show at(,,33,20);

Table Struct UT
(
cUser : comp,
DesGr : string [5],
Descr : string [21],
FIO : string [80],
OwnName : string [40],
Visible : word
)
With index
(
UT01 = Descr,
UT02 = DesGr,
UT03 = OwnName,
UT04 = cUser
);

table struct tdolg
(
dat:date,
cbasedoc:comp,
total:double,
plat:double,
rekl:double)
with index (idx1=cbasedoc, idx2=dat);

create view
var
sum:double;
i,days,delta:longint;
date2,dat2:date;
XlRes: Boolean;
aFileName: String;
as
Select *
From
basedoc basedoc1,
katorg katorg1,
katcity katcity1,
basefin,
stepdoc,
katsopr,
tDolg,
ut usertune,
ut,
x$users,
x$users x$users1
Where
((
usertune.ownname/==x$users.xu$loginname(noindex)
and UserTune.Descr==basedoc.descr
and word(201)==basedoc.viddoc
and dat2>>=basedoc.ddoc
and 2==basedoc.status
and basedoc.nrec == stepdoc.cbasedoc
//and stepdoc.nrec /== katsopr.cstepdoc
and stepdoc.nrec == katsopr.cstepdoc
and basedoc.nrec == basefin.cbasedoc
//and 106 == katsopr.vidsopr //?

and tdolg.cbasedoc==basedoc1.nrec
and basedoc1.corg==katorg1.nrec
and katorg1.ccity==katcity1.nrec

));
//and isvalid(tnkatsopr);

//**********************************************************************


screen params
show at(,,,3);
//show at(,,,20);
fields date2:,noprotect;
buttons
cmOK, default;
cmCancel;
<<
Расчет долгово по .@@@@@@@@@@
<.Формировать.> <. Закрыть .>
>>
end;

panel P1
//show at(1,5,32,10);
show at(,4,,);
browse Bro1
table UserTune;
fields
UserTune.Descr 'Дескриптор':[5],protect;
UserTune.FIO 'Фамилия Имя Отчество':[30],protect;
end;
end;

//panel p02
//show at(2,11,20,);
//browse Base;
//table basedoc;
//fields
//basedoc.descr;
//basedoc.ddoc;
//basedoc.nodoc;
//end;
//end;
//
//panel p02
//show at(21,11,30,);
//browse step;
//table stepdoc;
//fields
//stepdoc.nrec;
//end;
//end;
//
//panel p02
//show at(31,11,40,);
//browse Kats;
//table katsopr;
//fields
//katsopr.nrec;
//end;
//end;
//
//panel p02
//show at(41,11,60,);
//browse tDolg;
//table tDolg;
//fields
//tDolg.total;
//end;
//end;


handleevent

cmInit:
{
date2:=Cur_Date;

// _loop UserTune { if (UserTune.descr = 'TRG') then message(UserTune.descr); }

delete all UT;

_LOOP x$users1
{
if (GetFirst UT where ((x$users1.Atl_NRec == Ut.cUser)) = tsOk)
continue;

ClearBuffer(#UT);
UT.OwnName := x$users1.XU$LoginName;
UT.cUser := x$users1.Atl_NRec;
UT.Descr := sGetTuneEx('USER.DESCR', UserOfficeFilial(x$users1.atl_nrec), x$users1.Atl_NRec);
if (Length(ut.Descr) = 0)
continue;

UT.DesGr := sGetTuneEx('USER.DESGR', UserOfficeFilial(x$users1.atl_nrec), x$users1.Atl_NRec);
UT.Fio := sGetTuneEx('USER.Fio', UserOfficeFilial(x$users1.atl_nrec), x$users1.Atl_NRec);
UT.Visible := wGetTuneEx('Doc.Visible', UserOfficeFilial(x$users1.atl_nrec), x$users1.atl_NRec);
insert current UT;
}

getfirst usertune;
}

cmOK:
{
dat2:=date2;

delete all tDolg;

StartNewVisual(vtRotateVisual, vfTimer+vfBreak+vfConfirm,'Расчет долгов...', RecordsInTable(#basedoc));
_loop basedoc
{

// if isvalid(tnkatsopr) then
// if getfirst spsopr=tsOk then
if getfirst katsopr=tsOk then
{

// if basedoc.ddoc=date(31,03,2003) then message(basedoc.nodoc);

if GetFirst tDolg where ((basedoc.nrec==tDolg.cbasedoc))<>tsOk
then
{
insert in tDolg set tDolg.cbasedoc:=basedoc.nrec,
tDolg.total:=basedoc.total,
tDolg.dat:=basedoc.ddoc,
tDolg.plat:=0,
tDolg.rekl:=0;
if basedoc.valcurse>0 then tDolg.total:=tDolg.total*basedoc.valcurse;
}
_loop basefin update current tDolg set tDolg.plat:=tDolg.plat+basefin.summa;
_loop katsopr if (katsopr.vidsopr=106) then update current tDolg set tDolg.rekl:=tDolg.rekl+katsopr.summa;
}
if (not nextvisual) break;
}

// message(recordsintable(#tDolg));

i:=4 ;

if getfirst tDolg(idx2)=tsOk then
{
XlRes := True;

aFileName := GetStringParameter('Files','OutputFilesDirectory',0) +'dolg'+trim(UserTune.Descr)+DateToStr(dat2,'DD-MM-YY')+'.xls';
DeleteFile(aFileName);
XlRes := xlCreateExcel((aFileName), True);
if (XlRes) XlRes := xlIsExcelValid;
If (not XlRes)
{
StopVisual('',0);
message('Ошибка создания EXEL файла');
Exit;
}

xlSetSheetName(1, 'Долги');


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

// 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,'Усл.');
xlSetCellFormula('Проср',3,11,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);
xlSetCellFormula('=ЕСЛИ(RC[-2]-RC[-1]-'+string(delta)+'>0;RC[-2]-RC[-1]-'+string(delta)+';0)',i,11,i,11);
i:=i+1;
}
}

i:=i+1;
// xlSetCellFormula('=СУММ(E4:E'+string(i-1)+')',i,5,i,5);
xlSetActiveSheetByName('Долги');
// if not xlImportModule('c:\GAL582\Modules\page.bas') then message ('Ошибка импорта макроса');
// xlRunMacro('SetPage');
xlWriteMatrixToExcel ( 1, 1 );
xlFreeMatrix;
xlSetCellFormula('=СУММ(E4:E'+string(i-1)+')',i,5,i,5);
xlSetCellFormula('=СУММ(F4:F'+string(i-1)+')',i,6,i,6);
xlSetCellFormula('=СУММ(G4:G'+string(i-1)+')',i,7,i,7);
xlSetCellFormula('=СУММ(H4:H'+string(i-1)+')',i,8,i,8);



xlSetNumberFormat ( '# ##0,00', 4, 5, i, 8 );

xlFrameCells ( xlBorderL, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );
xlFrameCells ( xlBorderR, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );
xlFrameCells ( xlBorderT, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );
xlFrameCells ( xlBorderB, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );
xlFrameCells ( xlInsideV, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );
xlFrameCells ( xlInsideH, xlThin, xlLineStyleNone, xlColorBlack, 3, 1, i, 11 );

XLSETBACKCOLOR (16370100, 3 , 1 , 3 , 11);//цвет

xlSetFontSize ( 8 , 1 , 1 , MaxExcelRow , MaxExcelCol ); // по всему файлу - шрифт "8"

// xlMergeCells(1,1,1,11);
xlAlignCells(xlCenter,3,1,3,11);
xlSetFontSize ( 11 , 1 , 1 , 1 , 11);
xlSetFontStyle ( xlBold, 1 , 1 , 3 , 11);
xlSetFontStyle ( xlBold, i , 1 , i , 11);
xlFreeze(4,1);

// xlAutoFit(4,1,MaxExcelRow , MaxExcelCol);

xlSetColumnWidth(20,1,3,MaxExcelRow,3); // ширина колонки организация


xlKillExcel;

// t2:=cur_time;
}
else message ('Долги отсутствуют');
StopVisual('',0);
// message(timetostr(sub_time(t2,t1),'HH:MM:SS:SSSS'));

}
cmCancel:
{
closeinterface(cmDone);
mtChangeRefCount( #tDolg, -1 );
}
end;

end.
SergZol
Постоянный обитатель
Сообщения: 155
Зарегистрирован: 03 сен 2007, 19:06
Откуда: Россия,Казань

Re: Ошибка формирования отчета

Сообщение SergZol »

korvanakorvana писал(а):
в реестре этого класса нет(
он есть нада внимательно смотреть, эта {хххх.....} инфа именно из реестра берется, значит он там есть
korvanakorvana писал(а): дала права администратора
не додала, в логе-же написано "Для выполнения этой задачи необходимо иметь привилегии администратора.
Обратитесь к системному администратору за помощью
"
korvanakorvana писал(а): RegAsm : error RA0000 : При записи регистрационной информации в реестр произошла
ошибка. Для выполнения этой задачи необходимо иметь привилегии администратора.
Обратитесь к системному администратору за помощью
Валится твой отчет будет здесь: XlRes := xlCreateExcel((aFileName), True);
пока нормально не пронишется библиотечка GalXLSLib.dll
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Ошибка формирования отчета

Сообщение Алексей »

плюсану!
стопроцентов не зарегистрирован GalXLSLib.dll в системе! У нас как ОС у юзеров обновят, ярлыки скопируют а зарегистрировать забывают, одмины забывчивые. Приходится самим.
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Re: Ошибка формирования отчета

Сообщение korvanakorvana »

Все получилось:) спасибо вам ребята.. надо было под Администратором зайти. хотя юзеру давала права админа :?
Ответить