PDA

View Full Version : راهنمایی در مورد دستور باز کردن یک فایل word از پوشه bin با کلیک روی یک قسمت از دیتاگرید ویو



elvishman
جمعه 09 مرداد 1394, 22:42 عصر
سلام . برنامه ای نوشتم که اطلاعات رو از یه فایل اکسس میگیره و در دیتا گرید ویو نشون میده .
آیا امکان این هست که با کلیک بر روی یک سطر ( کولومن ) از اطلاعات اون فایل اکسس که در دیتاگرید ویو نشون داده میشه , یه فایل ورد رو فراخوانی کرد و اجرا کرد ؟ یعنی دستور اجرای یه فایل ورد رو برای کلیک روی یک سطر خاص از دیتابیس تعریف کنیم . مثلا با کلیک روی دفاتر کل
عکس محیط برنامه رو هم میذارم ..
لطفا راهنمایی کنید دوستان


133776

محمد رضا فاتحی
شنبه 10 مرداد 1394, 07:22 صبح
بستگی داره... اگه اسناد داخل دیتابیس دخیره می شن می تونی با کلیک بر روی سطر دیتاگرید آی دی فیلدت رو بدست بیاری و فایل وردت رو با توجه به فیلد از دیتابیس بخونی و نمایش بدی
اگه توی هارد قراره ذخیره بشن باید یه رابطه منطقی بین فایل ورد و داده های دیتابیست برقرار کنی... مثلا شماره سند ذخیره شده توی دیتابیست برابر نام فایل داخل پوشه اسنادت باشه

elvishman
شنبه 10 مرداد 1394, 07:37 صبح
ببینید این دیتابیس اصلا قابل ویرایش و حذف و اضافه نیست . یک سری اطلاعات ثابتی هست که صرفا روش سرچ انجام میشه . نمیدونم منظورتون از این که روی هارد ذخیره میشه دقیقا چیه .. این دیتابیس یه فایل هست که برنامه از پوشه ی bin میخونه و در دیتا گرید ویو نشون میده . حالا من میخام به فرض با کلیک روی فیلد " دفاتر کل " ، یه فایل ورد اجرا بشه .

elvishman
شنبه 10 مرداد 1394, 07:39 صبح
من آی دی فیلد رو دقیقا چطور باید به دست بیارم ؟ دیتا بیس بعد از اجرای برنامه نمایش داده میشه و تا وقتی که من توی محیط برنامه نویسی هستم ، دیتا بیسی هم نمایش داده نمیشه تا من آی دی فیلد یک فیلد خاص رو به دست بیارم . یعنی توی محیط برنامه نویسی محیط دیتا گرید ویو خالیه

elvishman
شنبه 10 مرداد 1394, 08:00 صبح
اینم سورس مربوط به دیتابیس برنامه

elvishman
شنبه 10 مرداد 1394, 08:10 صبح
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
}
String connect = @"provider=microsoft.jet.oledb.4.0;" + @"data source=" + Application.StartupPath + "/dbs.mdb";
OleDbConnection con;
OleDbCommand command;
OleDbDataAdapter adapter;
DataTable objDataTable;



private void load()
{
try
{
con = new OleDbConnection(connect);
con.Open();
string query = "select madde,family,name,ncode,emha from zirna";
command = new OleDbCommand();
command.CommandText = query;
command.Connection = con;
adapter = new OleDbDataAdapter();
adapter.SelectCommand = command;
objDataTable = new DataTable();
adapter.Fill(objDataTable);

con.Close();
dataGridView1.DataSource = objDataTable;
dataGridView1.Columns[0].HeaderText = "ماده";
dataGridView1.Columns[0].Width = 80;



dataGridView1.Columns[1].HeaderText = "ردیف";
dataGridView1.Columns[1].Width = 100;




dataGridView1.Columns[2].HeaderText = "بند";
dataGridView1.Columns[2].Width = 70;




dataGridView1.Columns[3].HeaderText = "شرح مواد آئین نامه";
dataGridView1.Columns[3].Width = 70;


dataGridView1.Columns[4].HeaderText = "وضعیت امحاء";
dataGridView1.Columns[4].Width = 70;
}
catch { MessageBox.Show("سیستم به بانک اطلاعاتی وصل نشده است"); this.Dispose(); }
}
private void Form1_Load(object sender, EventArgs e)
{
load();
}

elvishman
شنبه 10 مرداد 1394, 10:29 صبح
دوستان لطفا کسی راهنمایی کنه :ناراحت::افسرده:

ژیار رحیمی
شنبه 10 مرداد 1394, 11:04 صبح
دوست گرامی شما باید در جدول یه فیلد برای نام فایل Word به همراه پسوند(myDocword.doc)بزاری چون به ازای هر سطر یه فایل Word داری که داخل پوشه bin قرار میگره.به پیشنهاد من یه پوشه داخل پوشه bin بساز به نام Word که همه فایل های Word داخل قرار بده. حالا تو DateGrid ی که رو Form گذاشتی به ستون اضافه کن برای نام فایل (میتونی مخفیش کنی که کاربر ستون نام فایلو هم نبینه) .حالا تو رویداد cellClick گرید سلول نام فایل رو بریز تو یه متغییر از نوع استرینک بنام fileName و زمانیکه رو دکمه کلیک کردی .فایل Word رو فراخوانی کنی
تو رویداد کلیک دکمه با یه خط کد زیر میشه فایل ورد رو فراخوانی کرد


System.Diagnostics.Process.Start(Application.Start upPath+@"\Word\"+ fileName);