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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2005, 16:45   #1  
dtsymbal is offline
dtsymbal
Участник
 
22 / 21 (1) +++
Регистрация: 17.08.2005
? Web разработка
Помогите пожалуйста!

Нужно дать возможность пользователю через Web интерфейс Axapta сохранять на какой либо доступный для Axapta ресурс, будь то memo поле таблицы или каталог диска, файл со своего локального диска (любого иного ресурса доступного пользователю). Т.е. это должно быть похоже на прикрепление файлов к письму в любой почтовой службе.

Если у кого есть какой либо опыт в этом поделитесь пожалуйста.

Спасибо.
Старый 17.08.2005, 17:09   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
посмотрите как реализован форум в корпоративном портале и прикрепление аттачментов к сообщениям.
__________________
полезное на axForum, github, vk, coub.
Старый 17.08.2005, 17:13   #3  
dtsymbal is offline
dtsymbal
Участник
 
22 / 21 (1) +++
Регистрация: 17.08.2005
? вопрос к MAZZY
Если вам не составит труда уважаемый MAZZY напишите пожалуйста где в корпоративном портале есть такой функционал. Я начал с того что пытался найти что то подобное там, но тщетно.

Спасибо.
Старый 17.08.2005, 18:30   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Еще один пример - документооборот в портале. Активизируется автоматически, если есть доступ к документообороту. Ключевые классы: EPDocumentWeblet, EPSendDocument. Ключевая форма: EPDocuInfoEdit.

При этом код может быть примерно такой:
PHP код:
public void setControl()
{
    
WebSession                      webSession WebSession();
    
COMVariant                      vars = new COMVariant();
    
BinData                         binData;
    
SysInetASPUploadIUploadedFile   fileitem null;
    
SysInetASPUploadUploadManager   um;

    
FileName                        filename;
    
FilePath                        filePath;

    
int                             i;
    
DocuRef                         docuRef;
    
DocuActionFile                  docuActionFile;

    
str endSlash(str _str)
    {
        return (
strScan(_str'\\',strLen(_str),-1)) ? _str _str '\\';
    }

    if (! 
webSession.getParm(webControlName))
        return;
    
um WebSession().aspUpload();
    if (! 
um)
        return;

    try
    {
        
ttsbegin;

        for (
1<= um.Files().Count(); i++)
        {
            
binData = new BinData();

            
vars.int(i);
            
fileitem um.Files().Itemvars );
            if (! 
fileitem)
                continue;

            
filename fileItem.FileName();

            if (! 
fileDocuType)
            {
                
fileDocuType DocuType::find(ProblemWebParameters::find().FieleDocuTypeId);
            }
            if (! 
fileDocuType)
                throw 
error("@SYS22620");

            if (! 
filePath)
            {
                
filePath fileDocuType.ArchivePath fileDocuType.ArchivePath DocuParameters::find().ArchivePath;
            }
            if (! 
filePath)
            {
                
filePath xInfo::directory(DirectoryType::Temp);
            }
            
filePath endSlash(filePath);

            
binData.setVariant(fileitem.binary());
            if (! 
WinAPI::fileExists(filePath fileName))
            {
                
filename filePath fileName;
            }
            else
            {
                do
                {
                    
filename WinAPI::getTempFilename(filePath"Att");
                    
filename subStr(filename1strFind(filename'.'strLen(filename), -255) - 1) + '.' +
                               
conpeek(Docu::splitFilename(fileitem.FileName()), 2);
                }
                while (
WinAPI::fileExists(filename));
            }
            if (! 
binData.saveFile(filename))
                throw 
error("@SYS69639" ": " WinAPI::formatMessage(WinAPI::getLastError()));

            
docuActionFile fileDocuType.docuAction();
            
docuRef.clear();
            
docuRef.initValue();
            
docuRef.Name            fileitem.FileName();
            
docuRef.TypeId          fileDocuType.TypeId;
            
docuRef.RefCompanyId    curExt();
            
docuRef.Restriction     DocuRestriction::Internal;
            
docuRef.insert();

            
docuActionFile.insertDocuValue(docuReffilename);
            if (
fileDocuType.filePlace == DocuFilePlace:://Database)
            
{
                
WinAPI::deleteFile(filename);
            }

            
docuRefList.ins(docuRef);
        }
        
ttscommit;
    }
    catch (
Exception::Error)
    {
        
this.abortSave();
    }

Старый 17.08.2005, 18:43   #5  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
А вот что пишут другие спецы:
Цитата:
...

I found this in axapta technet because I need to upload files in
Enterpriseportal for import to salestable,salesline...
We are working with axapta 3.0 Sp3
It woks fine....

* first of all set the SubmitMethod-property of the design of the
webform to Multipart
* add a WebUserDefined control to the webform
* overwrite the layout-Methode and add following code:

webSession().writeTxt( this.label() + ': ' + 'input name="' +
this.name() + '" type="file"');

* overwrite the setControl-Methode and use following code:

WebSession ws = WebSession();
COMVariant vars = New COMVariant();
BinData BinData = New BinData();
SysInetASPUploadIUploadedFile fileitem = NULL;
SysInetASPUploadUploadManager um;
FileName strUploadFileName;

strUploadFileName = '... filename on server ...';
if (ws.getParm(this.name()))
{
um = WebSession().aspUpload();
vars.int( 1 );
fileitem = um.Files().Item( vars );
if( fileitem ){
BinData.setVariant( fileitem.binary() );
BinData.saveFile( strUploadFileName );
}
}

* add a WebButton and set the Command-property to OK


andY
Старый 18.08.2005, 16:37   #6  
dtsymbal is offline
dtsymbal
Участник
 
22 / 21 (1) +++
Регистрация: 17.08.2005
? вопрос?
Спасибо за помощь.

А как вызвать диалог выбора файла в веб? Существуют ли в веб что то подобное Winapi::getOpenFileName?
Старый 18.08.2005, 17:38   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
HTML-код 'input name= xxx type="file"' делает все за вас.
Старый 30.08.2005, 09:44   #8  
dtsymbal is offline
dtsymbal
Участник
 
22 / 21 (1) +++
Регистрация: 17.08.2005
Thumbs up спасибо
Спасибо огромное!

Все получилось. Только в layout я написал так

webSession().writeTxt( '< input name="' + this.name() + '" type="file">');
Старый 30.08.2005, 09:46   #9  
dtsymbal is offline
dtsymbal
Участник
 
22 / 21 (1) +++
Регистрация: 17.08.2005
Thumbs up Спасибо
Ого.

В смысле input name="' + this.name() + '" type="file" находятся в <>
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Web-разработка в DAX 4.0 без Enterprise Portal alex55 DAX: Администрирование 19 11.09.2008 23:16
Inside Dynamics AX 4.0: The Web Framework Blog bot DAX Blogs 0 25.10.2007 03:04
Web-разработка, документация Tarrash DAX: Программирование 3 08.11.2006 08:13
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43
Web разработка Julietta DAX: Функционал 1 19.10.2004 12:56

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

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

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