AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2010, 12:27   #1  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
winApi::getTempFilename
Здраствуйте ,

Столькнулься с такой проблемой . Етот winApi::getTempFilename я использую для создания временного файла ( дбф ) . В рапортах , в которых оно есть выглядить так -
X++:
 // переменные 

   #WinAPI
   Filename               cFil;
   WinAPICreateDBF        wDbf;
   ..

      cFil  = winApi::getTempFilename( "c:\\darb\\", "LG");
      cFil  = strrem( cFil, "." );
      cFil  = cFil + ".dbf";

      wDbf = new WinAPICreateDBF();
      wDbf.StartCreateHeader( cFil );
      wdbf.AddString( "modelis",        50 );
      wdbf.AddString( "pavadinim",     140 );
      wDbf.AddNomeric( "apsk_kaina", 12, 3 );
      if ( invParm.ConfigIdFlag )
         wdbf.AddString( "konfig",       60 );
      if ( invParm.InventBatchIdFlag )
         wdbf.AddString( "paket_nr",     20 );
      if ( invParm.InventLocationIdFlag )
         wdbf.AddString( "sandelis",     60 );
      if ( !lNelikv )
      {
         wDbf.AddNomeric( "lik1",       9, 0 );
         wDbf.AddNomeric( "lik1_s",    14, 3 );
         wDbf.AddNomeric( "pajm",       9, 0 );
         wDbf.AddNomeric( "pajm_s",    14, 3 );
         wDbf.AddNomeric( "gamb",       9, 0 );
         wDbf.AddNomeric( "gamb_s",    14, 3 );
         wDbf.AddNomeric( "isld",       9, 0 );
         wDbf.AddNomeric( "isld_s",    14, 3 );
         wDbf.AddNomeric( "pard",       9, 0 );
         wDbf.AddNomeric( "pard_s",    14, 3 );
         wDbf.AddNomeric( "pard_a",    14, 3 );
      }
      wDbf.AddNomeric( "lik2",       9, 0 );
      wDbf.AddNomeric( "lik2_s",    14, 3 );
      wdbf.AddString( "uzsakov",       60 );
      wdbf.AddString( "uzsk_grp",      60 );
      wdbf.AddString( "mod_pgr",       60 );
      wdbf.AddString( "inter_id",      25 );
      wdbf.AddString( "mod_kolekc",    30 );
      if ( lDetail )
      {
         wdbf.AddString( "medz_var",   10 );
         wdbf.AddString( "spalva",     10 );
         wdbf.AddString( "dydis",      15 );
      }
      wDbf.AddNomeric( "mod_min",    10, 2 );
      wDbf.EndCreateHeader();

      while select tmp2 order by ItemId, InventLocId, InventBatchId
      {
         InventTable = InventTable::find( tmp2.ItemId );
         aDbfV = connull();
         aDbfV += tmp2.ItemId;
         aDbfV += InventTable.ItemName;
         aDbfV += num2str( tmp2.Price, 12, 3, 1, 0 );
         if ( invParm.ConfigIdFlag )
            aDbfV += tmp2.ConfigId;
         if ( invParm.InventBatchIdFlag )
            aDbfV += tmp2.InventBatchId;
         if ( invParm.InventLocationIdFlag )
            aDbfV += tmp2.InventLocId;
         if ( !lNelikv )
         {
            aDbfV += num2str( tmp2.Lik1, 9, 0, 1, 0 );
            aDbfV += num2str( tmp2.LikSum1, 14, 3, 1, 0 );
            aDbfV += num2str( tmp2.Paj, 9, 0, 1, 0 );
            aDbfV += num2str( tmp2.PajSum, 14, 3, 1, 0 );
            aDbfV += num2str( tmp2.PajG, 9, 0, 1, 0 );
            aDbfV += num2str( tmp2.PajGSum, 14, 3, 1, 0 );
            aDbfV += num2str( tmp2.Isl, 9, 0, 1, 0 );
            aDbfV += num2str( tmp2.IslSum, 14, 3, 1, 0 );
            aDbfV += num2str( tmp2.Prd, 9, 0, 1, 0 );
            aDbfV += num2str( tmp2.PrdSum, 14, 3, 1, 0 );
            aDbfV += num2str( tmp2.PrdAps, 14, 3, 1, 0 );
         }
         aDbfV += num2str( tmp2.Lik2, 9, 0, 1, 0 );
         aDbfV += num2str( tmp2.LikSum2, 14, 3, 1, 0 );
         aDbfV += tmp2.SalesName;
         aDbfV += tmp2.CustGroup;
         aDbfV += InventTable.ALNInventGroupSubGroupDescription;
         aDbfV += tmp2.UTInterId;
         aDbfV += tmp2.UTModCollectId;
         if ( lDetail )
         {
            aDbfV += tmp2.Medziag;
            aDbfV += tmp2.Spalva;
            aDbfV += tmp2.Dydis;
         }
         aDbfV += num2str( tmp2.ModMinut, 10, 2, 1, 0 );
         wDbf.AddStringToTable( aDbfV );

      }
      wDbf.CloseDbf();
Во всех рапортах ето работает ( ето использую в 5-7 рап. ) . Но вот в одном - неработает . cFil = winApi::getTempFilename( "c:\\darb\\", "LG"); Если исползую указанную директорию "c:\\darb\\" - возвращает пустую строку . Если ето поменяю на winApi::getTempPath() ( оно возвращает "c:\windows\temp\" ) , то тогда создание дбф-а бросает ошибку ... Никак немогу достичь что то же самое работало в новом рапорте . Может быть заведёте на дорогу в чём беда здесь ?

С уважением , Римантас

П.С. Ахапта - 3,0

Последний раз редактировалось Rimantas; 14.05.2010 в 12:29.
Старый 14.05.2010, 12:34   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Каталог "darb" существует?
Старый 14.05.2010, 12:43   #3  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Каталог "darb" существует?
Ну конечно существует . Повтораюсь - вот если я запусчю один какой то рапорт из етих 5-7 , то всё работает хорошо . Мне никак неясно почему cFil = inApi::getTempFilename( "c:\\darb\\", "LG" ); в етих рапоратх работает и выдает нпр. LGACtmp ( точнее вернет LGAC.tmp , но я выбрасываю "." и добавляю '.dbf' ) , а в етом одном рапорте возвращает пустую строку ...
Старый 14.05.2010, 12:47   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Уточню вопрос.
Каталог "darb" существует на клиенте или на сервере?
Код выполняется на клиенте или на сервере?
Понимаете про что я
Старый 14.05.2010, 12:52   #5  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Уточню вопрос.
Каталог "darb" существует на клиенте или на сервере?
Код выполняется на клиенте или на сервере?
Понимаете про что я
Теперь понял - етот каталог на клиенте ... Значит мой рапорт стараеться ето сделать на сервере ... Скоро проверю ...
Старый 14.05.2010, 12:57   #6  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от Rimantas Посмотреть сообщение
Теперь понял - етот каталог на клиенте ... Значит мой рапорт стараеться ето сделать на сервере ... Скоро проверю ...
Так оно и есть ! Спасибо что завели на правильную дорогу !!! Поменал на меню итем из Сервер на клиент - всё работает !

Ещё раз спасибо !
Теги
создание файла, файл

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 1 08.10.2009 17:36
Axapta WinAPI::SewWindow... кто знает как? UNRW DAX: Программирование 2 26.09.2008 15:28
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 0 28.10.2006 16:40
WinAPI. Ссылка (POINT) третьего уровня вложенности Владимир Максимов DAX: Программирование 2 06.02.2006 16:28
WinApi. Удаление файлов глючит. NJD DAX: Программирование 10 05.12.2003 13:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:40.