العودة إلى المدونة
نصائح AnyLogic

استخدام منتقي الملفات في PLE

منتقي الملفات متاح فقط في النسخة الاحترافية من AnyLogic. لكن وظيفته سهلة جدًا للتكرار مع القليل من سحر JAVA.

لتوضيح ذلك، سأنشئ هذا المثال باستخدام زر عادي في المحرر الرسومي للمحاكاة (قبل تشغيل المحاكاة) من أجل اختيار ملف Excel وجعله جاهزًا للاستخدام أثناء المحاكاة.

للقيام بذلك سنحتاج إلى بعض المكتبات التي يمكن إضافتها في خصائص تجربة المحاكاة تحت قسم Advanced Java/Imports (تُستخدم لاختيار ملف، وفتح ملف، واختيار امتداد واستخدام مربع حوار):

import javax.swing.JFileChooser;
import java.io.File;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.JDialog;

سيتم ملء المحرر الرسومي لتجربة المحاكاة بزر سيفتح الملف، ومتغير يُسمى fc من نوع JFileChooser وقيمة أولية new JFileChooser()، ومتغير يُسمى excelFile من نوع ExcelFile وقيمة أولية null وستضيف كائن ملف Excel من لوحة أدوات الاتصال ثم تتجاهله. ستحتاجه فقط لتتمكن من استخدام فئة ExcelFile في متغير مخصص.

في خصائص تجربة المحاكاة تحت Java Actions/Initial experiment setup سنجهز كل شيء لتتمكن من فتح ملف XLS من مجلد النموذج. بالطبع يمكنك اختيار أي تنسيق ملف آخر.

fc.setCurrentDirectory(new File("."));
fc.setDialogTitle("Choose File (.xls)");
fc.setFileSelectionMode(fc.FILES_ONLY);
FileNameExtensionFilter filter = new FileNameExtensionFilter("XLS files", "xls");
fc.setFileFilter(filter);

وأخيرًا، في زر Open File، ستضيف الكود التالي في الإجراء الذي سيسمح لـ AnyLogic بفتح مربع حوار اختيار الملف مع تفعيل ملفات .xls فقط للاختيار.

JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
if( fc.showOpenDialog(dialog.getComponent(0))==fc.APPROVE_OPTION){
    if(fc.getSelectedFile()!=null){
         excelFile=new ExcelFile( this, "/", fc.getSelectedFile().getPath(), false );
         excelFile.readFile();
    }
}

يمكن استخدام متغير excelFile الخاص بك لاحقًا كمعلمة في نموذج المحاكاة إذا أردت.

حمّل النموذج هنا.

#AnyLogic #Simulations