الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف أعمل copy من خلال الفورم؟

Featured Replies

بتاريخ:

السلام عليكم و رحمة الله و بركاته

أسأل عن طريقة عمل فورم تقوم بعملcope لملف معين
من مكان معين يعنى مثلا هختاره ب browse
و احدد للفورم المسار اللى هتقوم بعمل past داخله

هل ممكن المساعدة

نرجو الافاده

بتاريخ:

السلام عليكم...
1) make abutton called browse and put this code in when-button-pressed:

DECLARE
V_FILE_PATH   VARCHAR2(200);

BEGIN
V_FILE_PATH := GET_FILE_NAME(FILE_FILTER =>'ALL_FILES (*.*)|*.*|');

COPY_SELECTED_FILE(V_FILE_PATH,:TARGET);

--WHERE TARGET IS THE FIELD ON THE FORM WHERE YOU 
HAVE DEFINED WHERE TO PASTE THE FILE(FULL PATH PLEASE)

NOW..MAKE A PROCEDURE IN THE FORM AND CALL IT
COPY_SELECTED_FILE.

PROCEDURE COPY_SELECTED_FILE(P_FILE_PATH VARCHAR2,
                            P_TARGET VARCHAR2)
IS 
Batch_File_Name VARCHAR2(1024) := 'C:\AMMAR.BAT';
File_ID TEXT_IO.FILE_TYPE;
BEGIN
FILE_ID := TEXT_IO.FOPEN(BATCH_FILE_NAME,'W');
TEXT_IO.PUT_LINE(FILE_ID,'CD "'||P_TARGET||'" '||CHR(10)||
                'copy "'||P_FILE_PATH||'" ' ||P_TARGET||' /y');

TEXT_IO.FCLOSE(File_ID);
HOST(Batch_File_Name); 

END;


GOOD LUCK !  

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا اخى

ساجربها ان شاء الله ..
و لكن هناك سؤال اخر متعلق بنفس الموضوع و لكن بطريقه اخرى
انا عندى كود بيعمل copy لفيل معين و محدد ال path فى الكود


Host( 'cmd /c copy c:\file d:\file' );



و هذا الكود يعمل عندى على form6i
و لكن انا اريد ان اعمل copy لل folder بأكمله الى مكان أخر

بعنى اننى اريد كود ينسخ folder من مكان الى مكان و مشرط ال browse

مجرد كود مثل الذى موجود لل file

بتاريخ:

الأخ / ammar_kh1982

شكرا لردودك المتميزه ومشاركاتك القيمه بالمنتدى

لي سؤال اخر

كيف يمكن طباعة ملف من نوع tif من داخل الفورم

هذا الملف عبارة عن صورة للمستند ماخوذ بالسكانر

شكرا لك ولجميع الزملاء

بتاريخ:

السلام عليكم...
If you want to copy the folder (not the file) and without browse button,then you can use this host code instead of yours:

Host( 'CMD /C XCOPY C:\MY_FOLDER  D:\MY_FOLDER   /s /Y' );

تم تعديل بواسطة ammar_kh1982

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا أخى على ردك المفيد

و لكن اخى فى الطريقه الاولى ما اشتغلت معى..
و بيظهر هذا الخطأ الذى فى الصوره؟؟؟

post-21110-1145778571_thumb.jpg

بتاريخ:

السلام عليكم...
You have to put the path of the target location you want to copy the file to like this :
COPY_SELECTED_FILE(V_FILE_PATH,'D:\');
this will copy the file to the d: drive .
you can put any path you want ! 
you can make it static or let the user put the path .

Note : don't put the code i wrote before as it is !
it containts some comments like (now make anew procedure in the form ...etc)..you have to comment them .
put /* comments  */  to do acomment .

بتاريخ:
  • كاتب الموضوع

اخى انا فعلا عاجز عن الشكر للمساعده و قمة الافاده اللى حصلت عليها

جزاك الله عنى خير الجزاء .. و نفع الله بك
و لكن اخى هناك استفسار بسيط لو افدتنى فيه اكون فعلا منون جدا ليك و هى

دلوقت الكود دا بيعمل copy من مكان بطريقة ال browse و يضعه فى folder فهل يمكن ان يقوم الكود بعمل create ل another folder داخل الfolder الأساسى؟؟

بتاريخ:
  • كاتب الموضوع

استطعت انى اعملها مثلا بالطريقة دى


Host( 'cmd /c md d:\file' );

DECLARE
V_FILE_PATH   VARCHAR2(200);

BEGIN
V_FILE_PATH := GET_FILE_NAME(FILE_FILTER =>'ALL_FILES (*.*)|*.*|');

COPY_SELECTED_FILE(V_FILE_PATH,'d:\file');



END;



و لكن اريده مثلا يعمل random folder باى حاجه loop مثلا و بعد ما يعمل الفولدر العشوائى يقزم بنسخ الملف فيه؟؟؟؟؟؟؟؟؟؟؟؟؟

بجد انا فى حاجه ماسه لهذه المساعده و جزا الله خيرا كل من افادنى

بتاريخ:

السلام عليكم...
You have just to modify the procedure like this:
PROCEDURE COPY_SELECTED_FILE(P_FILE_PATH VARCHAR2,
                           P_TARGET VARCHAR2,
                           P_SUB_FOLDER VARCHAR2)
IS 
Batch_File_Name VARCHAR2(1024) := 'C:\AMMAR.BAT';
File_ID TEXT_IO.FILE_TYPE;
BEGIN
FILE_ID := TEXT_IO.FOPEN(BATCH_FILE_NAME,'W');
TEXT_IO.PUT_LINE(FILE_ID,'CD "'||TARGET||'" '||CHR(10)||
                        'MD "'||TARGET||'\'||SUB_FOLDER||'"'||CHR(10)||
                        'COPY "'||FILE_NAME  ||'" '||TARGET||'\'||SUB_FOLDER||' /y');

TEXT_IO.FCLOSE(File_ID);
HOST(Batch_File_Name); 
END;


--This will copy your file to the new sub_folder which will be created 
--automatically !
--Note : You can do this more professionally by making the sub_folder name equals to the (id) of the data block record of your form.

so...when you call the procedure from when-button-pressed you call it like this :
COPY_SELECTED_FILE(V_FILE_PATH,:TARGET,:id);

example :
the id of your record  is 123 .
then all your files that you have selected will be in afolder named 
123 !

good luck !

بتاريخ:
  • كاتب الموضوع

اخى جزاك الله خيرا

و لكن كله يتم تما و لكت ال file لا يتنسخ يتم انشاء ال sub_flderو لكن دون نسخ ال file بداخله

بتاريخ:

Hi..i'm sorry...replace this peice of code by this one 
TEXT_IO.PUT_LINE(FILE_ID,'CD "'||TARGET||'" '||CHR(10)||
                       'MD "'||TARGET||'\'||SUB_FOLDER||'"'||CHR(10)||
                       'COPY "'||FILE_NAME ||'" '||'"'||TARGET||'\'||SUB_FOLDER||'" /y');

:D

بتاريخ:
  • كاتب الموضوع

اخى المشكله لازالت زى ما هى؟.... ال file لا ينسخ

أرجو الافاده بسرعه

بتاريخ:

السلام عليكم.....
This code works properly !! i've tried it for you !
listen...take this form and test it by yourself .
good luck :D

Copy_to_sub_folder

بتاريخ:
  • كاتب الموضوع

جميل اخى اشتغلن ان شاء الله كويس يبدوا انى كنت عامل حاجه غلط

جزاك الله خيرا ..

و لكن هيا بتعمل folder اسمه final و دا انت معرفه فى الكود
المطلوب ان هذا ال folder (final)1 يكون متغير مش ثابت يعنى اسم عشوائى randome name
و كمان رساله تطلع بعد العمليه دى كلها باسم الfolder العشوائى دا و هذا كل المطلوب

انا عارف انى تعبتك معايا اخى
و جزاك الله خيرا على كل الافاده

بتاريخ:

السلام عليكم.....
It's ok aiman..i put this fmb as an example on the code to make a sample 
folder named final..so you will not put it's default value..as i said before,,
you will send the folder name(which is the id of the record) as an argument when you call the procedure
COPY_SELECTED_FILE(V_FILE_PATH,:TARGET,:id);
then you will put the procedure code as i wrote before :

procedure copy_selected_file(p_file_path varchar2,
                             p_target  varchar2,
                             p_sub_foder varchar2)
is 
Batch_File_Name VARCHAR2(1024) := 'C:\AMMAR.BAT';
File_ID TEXT_IO.FILE_TYPE;
BEGIN
file_name:= GET_FILE_NAME(FILE_FILTER=>   'ALL_FILES (*.*)|*.*|');   
                  
FILE_ID := TEXT_IO.FOPEN(BATCH_FILE_NAME,'W');
TEXT_IO.PUT_LINE(FILE_ID,'CD "'||P_TARGET||'" '||CHR(10)||
                       'MD "'||P_TARGET||'\'||P_SUB_FOLDER||'"'||CHR(10)||
                       'COPY "'||P_FILE_PATH||'" '||'"'||TARGET||'\'||P_SUB_FOLDER||'" /y');

TEXT_IO.FCLOSE(File_ID);
HOST(Batch_File_Name); 
END;


GOOD LUCK  : 

بتاريخ:
  • كاتب الموضوع

اخى جزاك الله خيرا ..

اعجز عن شكرك لما استفدته من خبرتك

انا عملتها و اشتغلت معايا كويس و لكن عند بقية الشبكة.. لم تشتغل عند بعض الناس

و لما اجى اطبق patch بس بيقولى access is denied و مش عارف ايه العمل

بتاريخ:

السلام عليكم....
[code]
السلام عليكم....
The problem arises because our code will run the batch file(ammar.bat) on your own pc. so ,any attempt from any user on the network to use your own drive will show him the message('Access Denied !').
So,,,we will solve the problem by this way inshalla:
1) Choose a server you want the files to be stored in.
2) Choose a folder on this server and let the network administrator of your company to grant privilages on this folder to all of the users you want them to access and copy files to this folder.
For example :  server name = backup-server
                         folder name  = aiman_files
so,we now know the target where the files will be stored ,which is 
\\backup-server\aiman_files
3) we will do some changes to the code like this:
 a) In our procedure the code will be like this :
   
PROCEDURE COPY_SELECTED_FILE(P_FILE_PATH   VARCHAR2,
                             P_FOLDER_NAME VARCHAR2) IS
--**********RUN A BATCH FILE ON THE SERVER WHICH WILL COPY 
--**********THE FILE FROM CLIENT'S PC TO THE FOLDER (aiman_FILES) ON THE SERVER
--**********BY ADDING THE FILE TO A NEW FORLER(:FOLDER_NAME) IN (aiman_files FOLDER) 
--**********BY A NAME OF (ID) TO UNIQLY IDENTIFY EVERY MASTER RECORD'S FILES

 Batch_File_Name VARCHAR2(1024) := '\\BACKUP-SERVER\AIMAN_FILES\AMMAR.BAT';
 File_ID TEXT_IO.FILE_TYPE;
BEGIN
 File_ID := TEXT_IO.FOPEN(Batch_File_Name,'W');
TEXT_IO.PUT_LINE(File_ID,
'net use r: \\BACKUP-SERVER\AIMAN_files '||CHR(10)||
'R:'||CHR(10)||
 ' MD "'||P_FOLDER_NAME||'"'||CHR(10)||
' CD "'||P_FOLDER_NAME||'"'||CHR(10)||
' copy "'||P_FILE_PATH||'" r: /y'||CHR(10)||
'C:'||CHR(10)||
'net use r: /delete');

 --CHR(10) ACTS LIKE ENTER (NEW LINE) 
 TEXT_IO.FCLOSE(File_ID);
  HOST(Batch_File_Name); 

END;

/*Mr aiman : This will create a network connection on the client pc to map the network drive
 \\backup-server\aiman_file   
 and then closes the connection without the user notices anything:)
*/

  From your browse button ,call the procedure like this:
    COPY_SELECTED_FILE(V_FILE_PATH,:ID); -- ID IS THE FOLDER NAME

Note : Please make sure step 1,step 2 are done before you do anything else

good luck !


[/code]

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا اخى
و الله استفدت منك كتير ..
و الحمد لله اتعلمت منك كتير جزاك الله خير و بالنسبه لاسم الsub_folder قدرت اعمله random عن طيرق تعريفه بالطريق الأتيه



declare

P_FOLDER_NAME1 VARCHAR2(200):= :u_name ||to_char( sysdate, 'ddssmihh24');



و كمان فيه function بتعمل random بس هيا مش معايا دلوقت ان شاء ابعتها بكره

المهم انى عملت جدول تانى فيه الcolumns دى

uname ,date, file_name_folder_name
دا علشان اخزن فيهم بيانات اى عملية هتم فى الفورم
فياريت لو هتقل عليك فى المعلومة دى
مش عارف اعمل جملة ال insert و كمان مش عارف اعملها فين و امتى؟؟

فارجو الافاده و جزاك الله خيرا على ما استفدته و تعلمته منك

بتاريخ:
  • كاتب الموضوع

استطعت انى اعملها بالطريقة دى و لكن اسم ال path كله بيأتى فى الجدو و انا عاوز اسم ال file فقط




 if P_FOLDER_NAME1 is not null
     then       
INSERT INTO ftp_history_table(UNAME,FTP_DATE,FILE_NAME,FOLDER_NAME) values(:u_name,  sysdate ,P_FILE_PATH ,P_FOLDER_NAME);
FORMS_DDL('COMMIT');
     message('..... Data  Transferred.....');  
 else
 	message('..... Error .....');

end if;



؟؟؟؟

بتاريخ:

السلام عليكم.....
أخي أيمن ...لا شكر على واجب..و إن شاء الله تبقى الإفادة قائمة على الدوام.

To get the file name do this :

DECLARE
X                         NUMBER(3);
V_FILE_NAME  VARCHAR2(250);
begin
X :=  INSTR(V_FILE_PATH,'\',-1,1);       --SEARCH THE POSITION OF THE LAST (\)

V_FILE_NAME  := SUBSTR(V_FILE_PATH,X+1); --FILE NAME WITH EXTENTION

END;

good luck !    

  • بعد 11 سنة...
بتاريخ:

السلام عليكم اخي الاخ العزيز عمار

عندي اشكالية ، هي اني اريد نسخ الملف من على جهاز المستخد الى فولدر موجود على سيرفر 

وهل يمكن يكون الفولدر ده غير مشارك او مشارك بصلاحية القراءة فقط ولما اجي انسخ عليه انسخ بصلاحية تمكني من النسخ؟

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.