2015-12-08 6 views
1

Мне было интересно, как я могу установить путь по умолчанию для диалога Open File в X ++. Ситуация такова: в Microsoft Dynamics AX есть форма InventTable, в которой показаны все данные, касающиеся нашего инвентаря.Настройка пути по умолчанию в getOpenFileName (X ++)

О свойствах каждого предмета является изображение. Все эти изображения хранятся в той же папке на нашем сервере. Поэтому, когда мы нажимаем кнопку, чтобы установить или изменить изображение, я бы хотел, чтобы диалоговое окно автоматически переходило в эту папку, поэтому пользователям не нужно туда идти.

Это код за Change Image -Кнопка до сих пор:

void clicked() 
{ 
    FilenameFilter filter = ['Image Files','*.bmp;*.jpg;*.gif;*.jpeg']; 
    BinData binData = new BinData(); 
    str extention, path, nameOfFile; 
    super(); 

    imageFilePathName = WinAPI::getOpenFileName(element.hWnd(),filter, '', "@SYS53008", '',''); 

    if (imageFilePathname && WinAPI::fileExists(imageFilePathName)) 
    { 
     [path, nameOfFile, extention] = fileNameSplit(imageFilePathName); 
     if (extention == '.bmp' || 
      extention == '.jpg' || 
      extention == '.gif' || 
      extention == '.jpeg') 
     { 
      binData.loadFile(imageFilePathName); 
      imageContainer = binData.getData(); 
      inventTableImage.ADUImage = imageFilePathName; 
      element.saveImage(); 
      element.showLogo(); 
     } 
     else 
     { 
      throw error("@SYS89176"); 
     } 
    } 
} 

Я прочитал, что я мог установить путь по умолчанию в getOpenFileName -метода, но это не похоже на работу.

Сама форма имеет метод, называемый filenameLookupInitialPath, который возвращает только пустую строку.

+0

параметр пути по умолчанию отлично подходит для меня в RTM версии 3.0. Вы уверены, что код выполняется на правильном уровне? WinAPI :: getOpenFileName (0, conNull(), @ 'C: \ users \', ''); – Reinard

+0

@Reinard: Я не добавлял '@' в начале адреса, который сделал это. Вы должны ответить на этот вопрос, спасибо! –

ответ

1

параметр пути по умолчанию отлично подходит для меня в RTM версии 3.0. Вы уверены, что код выполняется на правильном уровне, а путь правильный?

WinAPI::getOpenFileName(0, conNull(), @'C:\users\', ''); 

 Смежные вопросы

  • Нет связанных вопросов^_^