Fa شناسایی خط انتخاب شده در ListView

MVGM_Soft

Active Member
سلام خسته نباشید
سوالم به پلاگین Sqllite و ListView مربوط میشه
من یک دیتایس sql ایجاد کردم و با استفاده از پلاگین sqllite به برنامه متصلش کردم بعدش هم با کد زیر یکسری از محتویات دیتابیس رو در پلاگین ListView به نمایش در آوردم یعنی تمام رکورد های فیلد های mablagh, code_n و sh_barge بصورت زیر:
با این مقادیر رو دریافت کردم:
کد:
SQL$ = 'SELECT sh_barge, code_n, mablagh FROM Barge;'
PluginSet("SQL_Plugin","SQL$")
PluginRun("SQL_Plugin","Query")
PluginGet("SQL_Plugin","Results$")
PluginGet("SQL_Plugin","Rows")
PluginRun("SQL_Plugin","DBError")
PluginGet("SQL_Plugin","DBError$")
If (DBError$='') Then
  Delimiter$ = '#'
  For i=1 To Rows
    Rows$[i] = GetArrayItem(Results$,Delimiter$,i)
    Rows$[i] = Rows$[i] + '|'
    NumberOfFields = GetArrayNum(Rows$[i],|)
  Next i
  For j=1 To 3
    sh_barge$[j] = GetArrayItem(Rows$[j],|,1)
    code_n$[j]  = GetArrayItem(Rows$[j],|,2)
    mablagh$[j]     = GetArrayItem(Rows$[j],|,3)
  Next j
  ScriptTimer("ShowInListView","100")
Else
  Message("Error occured.","DBError$")
End
و با این در ListView نمایش دادمشون:
کد:
Param$='510, 288, 240, 250,  GRIDLINES'
PluginSet("ListViewPlugIn","Param$")
PluginRun("ListViewPlugIn","CreateListView")
**********************************************
Column$='قيمت, 60, 1'
PluginSet("ListViewPlugIn","Column$")
PluginRun("ListViewPlugIn","ListViewCreateColumn")
Column$='کد نمايندگي, 90, 2'
PluginSet("ListViewPlugIn","Column$")
PluginRun("ListViewPlugIn","ListViewCreateColumn")
Column$='شماره سريال, 90, 3'
PluginSet("ListViewPlugIn","Column$")
PluginRun("ListViewPlugIn","ListViewCreateColumn")
***********************************************
For i=1 To Rows
  Item$=CHAR(i-1)+','+mablagh$[i]+','+code_n$[i]+','+sh_barge$[i]
  PluginSet("ListViewPlugIn","Item$")
  PluginRun("ListViewPlugIn","ListViewCreateItem")
Next i
RunScript("lv_event_handler")
خوب همونطور که میدونید الان تمام رکورد های موجود در این 3 فیلد در ListView نمایش داده میشه
و سوال من اینجاست که چطور می تونم وقتی رکورد دوم (خط دوم) ListView کلیک شد من مقادیر رکورد دوم چند فیلد دیگه مثل a1 و a2 و a3 رو در یک Text Box به نمایش در بیارم

ببخشید اگر طولانی شد سرتون رو درد آوردم
 
  • Like
Reactions: pcj

evil_gates

اين نيز بگذرد ...
دوست عزيز
پيشنهاد ميكنم از پلاگين uo استفاده كنيد. اين مثال رو قبلا براي يكي از دوستان ساخته بودم اگه جستجو مي‌كرديد مبحث رو پيدا ميكرديد.
 

پیوست ها

  • UO.zip
    310.7 کیلوبایت · بازدیدها: 92

MVGM_Soft

Active Member
خیلی ممنون از راهنماییتون
یک سوال دیگه اینکه الان مقادیر پلاگین UO دستی وارد شده با کد زیر:
کد:
** add column
PluginSet("PlugIn","100")
For i=1 To 3
  set$ = 'Col' + CHAR(i)
  PluginSet("PlugIn","set$")
  PluginRun("PlugIn","LVAddCol")
Next i
** add field
Text$[1] = 'a,b,c'
Text$[2] = '1,2,3'
Text$[3] = 'A,B,C'
delimiter$ = ','
For i=1 To 3
  PluginSet("PlugIn","Text$[i]")
  PluginSet("PlugIn","delimiter$")
  PluginRun("PlugIn","LVAddVal")
Next i
با چه تغییری در کد بالا می تونم بگم که تمام رکورد های فیلد mablagh و code_n و sh_barge رو از دیتابیس sql در UO نمایش بده؟
 
  • Like
Reactions: pcj

MVGM_Soft

Active Member
من تونستم با کد زیر از دیتابیس مقادیر رو لود کنم اما یک مشکلی هست
فقط دو ستون نمایش داده میشه
و ستون سوم که sh_barge هست نمایش داده نمیشه
خودم نتونستم تعداد ستون رو اضافه کنم ممنون میشم راهنمایی بفرمایید
با این کد مقادیر از دیتابیس لود و در UO نمایش داده شده اند:
کد:
** add column
PluginSet("UOListViewPlugIn","100")
For i=1 To Rows
  set$ = 'Col' + CHAR(i)
  PluginSet("UOListViewPlugIn","set$")
  PluginRun("UOListViewPlugIn","LVAddCol")
Next i
** add field
delimiter$ = ','
For i=1 To Rows
  Text$ = mablagh$[i]+','+code_n$[i]+','+sh_barge$[i]
  PluginSet("UOListViewPlugIn","Text$")
  PluginSet("UOListViewPlugIn","delimiter$")
  PluginRun("UOListViewPlugIn","LVAddVal")
Next i
 
  • Like
Reactions: pcj

MVGM_Soft

Active Member
خوب این مشکل بالا هم حل شد :)
ولی الان مشکل اینجاست که چون محتویات لیست از دیتابیس لود شده با کد مثالی که قرار دادید مقدارشون گرفته نمیشه نمایش هم داده نمیشه
من به اینصورت عمل کردم:
با این کد مقادیر رو از پایگاه داده فراخوانی کردم:
کد:
SQL$ = 'SELECT sh_barge, code_n, mablagh FROM Barge;'
PluginSet("SQL_Plugin","SQL$")
PluginRun("SQL_Plugin","Query")
PluginGet("SQL_Plugin","Results$")
PluginGet("SQL_Plugin","Rows")
PluginRun("SQL_Plugin","DBError")
PluginGet("SQL_Plugin","DBError$")
If (DBError$='') Then
  Delimiter$ = '#'
  For i=1 To Rows
    Rows$[i] = GetArrayItem(Results$,Delimiter$,i)
    Rows$[i] = Rows$[i] + '|'
    NumberOfFields = GetArrayNum(Rows$[i],|)
  Next i
  For j=1 To 3
    sh_barge$[j] = GetArrayItem(Rows$[j],|,1)
    code_n$[j]  = GetArrayItem(Rows$[j],|,2)
    mablagh$[j]     = GetArrayItem(Rows$[j],|,3)
  Next j
  ScriptTimer("ShowInListView","100")
Else
  Message("Error occured.","DBError$")
End
با این کد مقادیر رو در لیست به نمایش در آوردم:
کد:
** add column
PluginSet("UOListViewPlugIn","100")
For i=1 To 3
  set$ = 'Col' + CHAR(i)
  PluginSet("UOListViewPlugIn","set$")
  PluginRun("UOListViewPlugIn","LVAddCol")
Next i
** add field
delimiter$ = ','
For i=1 To Rows
  Text$ = mablagh$[i]+','+code_n$[i]+','+sh_barge$[i]
  PluginSet("UOListViewPlugIn","Text$")
  PluginSet("UOListViewPlugIn","delimiter$")
  PluginRun("UOListViewPlugIn","LVAddVal")
Next i
و با این کد سعی دارم که خطی که در لیست کلیک شده رو شناسایی و به نمایش در بیارم که تا اینجا نتونستم:
کد:
** get items
str$ = ''
PluginRun("UOListViewPlugIn","LVGetSelIndex")
PluginGet("UOListViewPlugIn","sel")
For i=0 To 2
  PluginSet("UOListViewPlugIn","sel")
  PluginSet("UOListViewPlugIn","i")
  PluginRun("UOListViewPlugIn","LVGetCell")
  PluginGet("UOListViewPlugIn","get$")
  str$ = str$ + get$ + '#'
Next i
** Load items in texts
temp$ = GetArrayItem(str$,'#',1)
LoadText("T1","temp$")
temp$ = GetArrayItem(str$,'#',2)
LoadText("T2","temp$")
temp$ = GetArrayItem(str$,'#',3)
LoadText("T3","temp$")
ScriptTimer("show","100")
منتظر پاسختون هستم ممنون
 
  • Like
Reactions: pcj

evil_gates

اين نيز بگذرد ...
دوست عزیز
کدهاتون رو ظاهرا بر اساس مثالی که براتون پیوست کرده بودم نوشتید و ظاهرا درسته. لطفا فایلتون رو پیوست کنید تا بیشتر بررسی کنیم.
 

MVGM_Soft

Active Member
خوب تا اینجا همه مشکل ها حل شد
من خط انتخاب در لیست ویو رو تونستم شناسایی کنم
مقدار شماره برگه رو هم تونستم بگیرم
حالا در دیتابیس چطور می تونم مقادیر a1 و a2 رو که در ردیف همین شماره برگه قرار دارن رو بگیرم؟
واقعا خیلی عجله دارم لطفا دریغ نفرمایید ممنون
 

evil_gates

اين نيز بگذرد ...
در دیتابیس چطور می تونم مقادیر a1 و a2 رو که در ردیف همین شماره برگه قرار دارن رو بگیرم
ببخشيد اين a1 و a2 چي هستن؟

تو پستهاي بالا هيچ حرفي از اينا نبوده. لطفا منظورتون رو واضح تر بگيد.
 

MVGM_Soft

Active Member
2تا از فیلد های دیتابیس هستند
که باهمون select* from... قابل دریافت بودند و مشکلم حل شد ممنون از راهنماییتون
 

جدیدترین ارسال ها

بالا