Страница 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