Страница 1 из 1

Трехуровневка ... временные локальные файлы

Добавлено: 03 дек 2008, 18:51
Masygreen
День добрый!
Не пойму где надо докрутить ....подскажите
Трабл:
Есть отчет который при работе создает текстовые файлы на диске С (c:\a1.txt)... формируются там макросы для excel.
Галактика 8.1 двухуровневая все работает отлично проблем нет...
Пробовал на трех уровневке файлы не найдены .. и не создаются .. я так понимаю что Галактика просто не знает где диск С или еще чего подобное???
Где искать подскажите!
Зарание спасибо :)

Добавлено: 03 дек 2008, 22:52
edward_K
она их создает, но где то в exe по умолчанию. При выходе из галактики вроде должна спрашивать скопировать или нет. Была функция для принудительной передачи на локал - ищите.

Добавлено: 04 дек 2008, 01:08
Masygreen
edward_K ... спасибо за внимание, а в каких разделах то искать ????

Добавлено: 04 дек 2008, 05:49
Алексей
а почему обязательно с:\ ? Я обычно путь вообще не указываю - все создается в рабочем каталоге. Можно в OUT положить наконец.
Вообще не люблю когда "мусорят" в корне :)

А чем создаете файл с макросом?

Добавлено: 04 дек 2008, 12:32
Masygreen
Файл создаю LogStrToFile
говорят надо потом PutFileToClient пользоваться .. попробую ....

Добавлено: 04 дек 2008, 12:49
Andrey
у меня временные файлы трехзвенки создаются в каталоге ЕХЕ старта галактики, причем в этом каталоге создается каталог с именем пользователя и вот, именно, в нем

Добавлено: 05 дек 2008, 12:20
Masygreen
Andrey писал(а):у меня временные файлы трехзвенки создаются в каталоге ЕХЕ старта галактики, причем в этом каталоге создается каталог с именем пользователя и вот, именно, в нем
можно кусочек кода... ??
пробовал несколько вариантов

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

 FBasName:='c:\SetAlbFormat.bas';
  PutFileToClient(FBasName, false);

  DeleteFile(FBasName);
  LogStrToFile(FBasName, 'Sub SetAlbFormat ()');
  LogStrToFile(FBasName,'With ActiveSheet.PageSetup');
  LogStrToFile(FBasName,    '    .PrintTitleRows = ""'    );
  LogStrToFile(FBasName,    '    .PrintTitleColumns = ""'   );
  LogStrToFile(FBasName,    'End With');
  LogStrToFile(FBasName, 'End Sub');
  xlImportModule(FBasName);
  xlRunMacro(' SetAlbFormat ');
  DeleteFile(FBasName);

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

 FBasName:='SetAlbFormat.bas';
  PutFileToClient(FBasName, false);

  DeleteFile(FBasName);
  LogStrToFile(FBasName, 'Sub SetAlbFormat ()');
  LogStrToFile(FBasName,'With ActiveSheet.PageSetup');
  LogStrToFile(FBasName,    '    .PrintTitleRows = ""'    );
  LogStrToFile(FBasName,    '    .PrintTitleColumns = ""'   );
  LogStrToFile(FBasName,    'End With');
  LogStrToFile(FBasName, 'End Sub');
  xlImportModule(FBasName);
  xlRunMacro(' SetAlbFormat ');
  DeleteFile(FBasName);

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

FBasName:='SetAlbFormat.bas';


  DeleteFile(FBasName);
  LogStrToFile(FBasName, 'Sub SetAlbFormat ()');
  LogStrToFile(FBasName,'With ActiveSheet.PageSetup');
  LogStrToFile(FBasName,    '    .PrintTitleRows = ""'    );
  LogStrToFile(FBasName,    '    .PrintTitleColumns = ""'   );
  LogStrToFile(FBasName,    'End With');
  LogStrToFile(FBasName, 'End Sub');
  xlImportModule(FBasName);
  xlRunMacro(' SetAlbFormat ');
  DeleteFile(FBasName);
Не помогло :(

Добавлено: 05 дек 2008, 23:52
edward_K
PutFileToClient(FBasName, false);
наверное нужно в конце. Да и права нужно проверить на каталоги

Добавлено: 07 дек 2008, 16:36
Ged
Эд как всегда прав.. :)

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

PutFileToClient - Передать файл на клиент

function PutFileToClient (
           const fName   : string;
                 aVisual : boolean) : longint;

Добавлено: 09 дек 2008, 14:46
Masygreen
Уважаемые местные жители ... наверно я что то с путями путаю ...

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

  FBasName:='SetAlbFormat.bas';
  DeleteFile(FBasName);
  LogStrToFile(FBasName, 'Sub SetAlbFormat ()');
  LogStrToFile(FBasName, 'End Sub');
  PutFileToClient(FBasName, false); 
  xlImportModule(FBasName);
  xlRunMacro(' SetAlbFormat ');
  DeleteFile(FBasName);

  FBasName:='c:\SetAlbFormat.bas';
  DeleteFile(FBasName);
  LogStrToFile(FBasName, 'Sub SetAlbFormat ()');
  LogStrToFile(FBasName, 'End Sub');
  PutFileToClient(FBasName, false); 
  xlImportModule(FBasName);
  xlRunMacro(' SetAlbFormat ');
  DeleteFile(FBasName);
Не работает .. ... что еще может быть не так??????????

Добавлено: 11 дек 2008, 02:38
edward_K
в правах наверное все таки - файл должен был создаться. Сделайте любой текстовый отчет. Надите его. Попробуйте свой лог прописать в тот же каталог. TranslatePath мож вам поможет. Еще могет быть тробла в самом logstrtofile.
по Ctrl+F4 вычислите
TranslatePath('%ClientRoot%') + '\OUT\'+UserName + '\')
GetStringParameter('Files','OutputFilesDirectory',0)
файл где то должон быть.
Да. попробуйете в кадрах в построителе отчета задать макрос, или в зарплате - общие ведомости - состав заработной платы - там принцип тот же. Не получиться - обратитесь в ТП. Потом о аналогии сделаете в своем коде.
у меня в 8_0 работал такой кусок
#ifdef ATL51
logfile :=TranslatePath('%ClientRoot%') + '\OUT\'+UserName + '\'+logfilenm;
#ELSE
logfile:=GetStringParameter('Files','OutputFilesDirectory',0)+logfilenm ;
#endif
logfilenm:=GetStringParameter('Files','OutputFilesDirectory',0)+logfilenm ;
//=====================
if kl3zvenka
{ // здесь наверное нужно чаго то сделать
#ifdef ATL51
PutFileToClient(logfile,false)
#ENDIF
}
else
logfile:=logfilenm ;
// message('1') ;
// GetFileFromClient(logfilenm,false) ;
message('В процесе формирования обнаружены ошибки'+chr(13)+
'смотрите "'+logfile+'"')
ProcessText(logfile,vfNewTitle+vfEscable+vfMacroSize+vfRunModal,
logfile+' Протокол ошибок');

но в 8_1 попробовать пока не довелось :)

Добавлено: 12 дек 2008, 12:14
Masygreen
СПАИБО!

Добавлено: 19 янв 2009, 13:21
Masygreen
проблема детализировалась ....
использование PutFileToClient(logfile,false)
привело к тому, что эти файлы при закрытии Галактики можно получить на клиент .. :( но это уже позно .. файлы необходимы в процессе работы...
может что то в настройках?

Добавлено: 19 янв 2009, 14:17
Masygreen

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

.form 'test01'
.ard
.nameinlist 'Test'
.var
PathMacros:string;
.endvar	
.create view a1 as select *
	from TmpGrn;
.begin

#ifdef ATL51
PathMacros :=TranslatePath('%ClientRoot%') + '\OUT\'+UserName + '\'+'MartMemoTest.txt';
#ELSE
PathMacros:=GetStringParameter('Files','OutputFilesDirectory',0)+'MartMemoTest.txt' ;
#endif 

  DeleteFile(PathMacros);	
  LogStrToFile(PathMacros, 'Sub SetAlbFormat ()');
  LogStrToFile(PathMacros,'With ActiveSheet.PageSetup');
  LogStrToFile(PathMacros,    '    .PrintTitleRows = ""'    );
  LogStrToFile(PathMacros,    '    .PrintTitleColumns = ""'   );
  LogStrToFile(PathMacros,    'End With');
  LogStrToFile(PathMacros,    'ActiveSheet.PageSetup.PrintArea = ""');
  LogStrToFile(PathMacros,    'With ActiveSheet.PageSetup');
  LogStrToFile(PathMacros,    '    .LeftHeader = ""');
  LogStrToFile(PathMacros,    '    .CenterHeader = ""');
  LogStrToFile(PathMacros,    '    .RightHeader = ""');
  LogStrToFile(PathMacros,    '    .LeftFooter = ""'   );
  LogStrToFile(PathMacros,    '    .CenterFooter = ""');
  LogStrToFile(PathMacros,    '    .RightFooter = ""');
  LogStrToFile(PathMacros,    '    .LeftMargin = APPLICATION.InchesToPoints(0.2)');
  LogStrToFile(PathMacros,    '    .RightMargin = APPLICATION.InchesToPoints(0.2)');
  LogStrToFile(PathMacros,    '    .TopMargin = APPLICATION.InchesToPoints(0.4)');
  LogStrToFile(PathMacros,    '    .BottomMargin = APPLICATION.InchesToPoints(0.4)');
  LogStrToFile(PathMacros,    '    .HeaderMargin = APPLICATION.InchesToPoints(0.0)');
  LogStrToFile(PathMacros,    '    .FooterMargin = APPLICATION.InchesToPoints(0.0)');
  LogStrToFile(PathMacros,    '    .PrintHeadings = False');
  LogStrToFile(PathMacros,    '    .PrintGridlines = False');
  LogStrToFile(PathMacros,    '    .PrintComments = xlPrintNoComments');
  LogStrToFile(PathMacros,    '    .CenterHorizontally = True');
  LogStrToFile(PathMacros,    '    .CenterVertically = False');
  LogStrToFile(PathMacros,    '    .Orientation = xlLandscape');
  LogStrToFile(PathMacros,    '    .Draft = False');
  LogStrToFile(PathMacros,    '    .PaperSize = xlPaperA3');
  LogStrToFile(PathMacros,    '    .FirstPageNumber = xlAutomatic');
  LogStrToFile(PathMacros,    '    .Order = xlDownThenOver');
  LogStrToFile(PathMacros,    '    .BlackAndWhite = False');
  LogStrToFile(PathMacros,    '    .Zoom = 70');
  LogStrToFile(PathMacros,    'End With');
  LogStrToFile(PathMacros, 'End Sub');

  PutFileToClient(PathMacros, false);
  
  xlCreateExcel('rep285.xls',true);
  xlCreateMatrix(100,10);
  xlWriteMatrixToExcel(1,1);
  xlFreeMatrix; 
  

  xlImportModule(PathMacros);
  xlRunMacro(' SetAlbFormat ');
  xlKillExcel;
  Test01.fexit;
end.
.endform