عضویت در سایت

ورود

فراموشی رمز عبور

رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید

ورود

عضویت در سایت

رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید

در بین 1171 آموزش و 2026 پرسش به دنبال چه هستید؟

ویندوز
نصب آنلاین ویندوز

ویندوز 7,8,10,11
مشاوره
مشاوره خرید لپ تاپ و کامپیوتر

مشاوره حرفه ای دریافت کن
بلاگ
مقالات آموزشی

1k+
پشتیبانی آنلاین

سخت افزار/نرم افزار

آموزش کار با مولتی پنل آنلاین در بیسیک فور اندروید

سلام

با یک آموزش دیگه از بیسیک فور اندروید در خدمتتون هستیم، تا الان هر چی با مولتی پنل کار کردیم برای این بوده که از دیتابیس آفلاین داده ها رو لود کنیم و نمایش بدیم؛ در این ویدئوی آموزشی قصد داریم تا اطلاعات را از سرور(دیتابیس آنلاین) لود کنیم و در مولتی پنل نمایش بدیم؛ در ادامه همراه بپرسم باشید.

مولتی پنل آنلاین b4a

مولتی پنل آنلاین b4a

در این آموزش ابتدا باید با سرور ارتباط برقرار کنیم و اطلاعات را از سرور دریافت کنیم؛ برای اینکار از PHP استفاده میکنیم کنیم و با دیتابیس MySql ارتباط برقرار میکنیم، سپس در سمت اندروید به سرور متصل میشیم و اطلاعات رو درمولتی پنل به نمایش میذاریم.

مطلب پیشنهادی:  ساخت مولتی پنل در بیسیک فور اندروید

در پایان نیز، سورس مربوط به آموزش را میتوانید دانلود کنید.

موفق باشید.


دانلود: سورس مولتی پنل آنلاین


پيش نمايش: کليک کنيد


حجم: 105 کیلوبایت


رمز فايل فشرده: www.beporsam.ir


در پوشه PHP فایل سمت سرور و در پوشه B4A سورس کد قرار دارد.


اگر در رابطه با مطلب بالا سوالي يا مشکلي داريد ميتوانيد سوال خود را در سايت بپرسيد، کاربران سايت پاسخگوي سوالات شما خواهند بود.


عضويت در سايت


پرسيدن سوال


درباره مرتضی صباغیهمکار سایت

💎 اپ های من در مایکت https://myket.ir/developer/dev-53936 گروه تلگرامی MR.B4A ( سورس کد و کتابخانه ) https://t.me/programmingwithb4a

دنبال کردن

دیدگاه ( 9 )

  1. سلام

    خسته نباشید

    بابت آموزش ها ممنونم خیلی به دردمون میخورن

    توی اموزش های مولتی پنل انلاین اموزش ویرایش (آپدیت)  و حذف رکورد ندیدم
    میشه اونارم اموزش بدید؟

  2. من دقیقا مراحل آموزشی که لینک دادید رو میرم اما وقتی روی گزینه ها کلیک میکنم به جای نشون دادن اطلاعات فرد مورد نظر، همه اطلاعات افراد جدول رو در فیلدهای مربوطه نشون میده!

    این اطلاعات صفحه اوله که وقتی روی لیبل مولتی پنل میزنم باید صفحه جدید باز بشه

    If job.Success=True Then
    		ProgressDialogHide
    		jp.Initialize(job.GetString)
    		Dim list As List= jp.NextArray
    		For i=0 To list.Size-1
    			
    			Dim p As Panel
    			p.Initialize("p")
    			slvaza.Panel.AddView(p,0%x,top,95%x,45%y)
    			p.LoadLayout("lkoleaza_mpinfo")
    '			pnlmain.Tag=i
    			p.Tag=i
    			top=top+7%y+0%x
    	
    			map_title =list.Get(i)
    			Dim plusname As String=map_title.Get("famili")&" "&map_title.Get("nam")
    			lblmp_id.Text=map_title.Get("id")
    			lblmp_nam.Text=plusname
    '			lblmp_id.Tag=i
    			lblmp_nam.Tag=i
    			
    			lblmp_id.Tag=map_title.Get("id")
    			lblmp_nam.Tag=plusname
    			
    		Next
    		slvaza.Panel.Height=top
    	Else
    		ProgressDialogHide
    		ToastMessageShow("خطا در برقراری ارتباط با سرور",False)
    	End If
    	Main.ht1.Release
    Sub lblmp_nam_Click
    
    	Dim btn_tag As Label
    	btn_tag=Sender
    '       ToastMessageShow(btn_tag.Tag,False)
    	StartActivity(lkoleaza_slvlbl)
    	lblmp_id.Tag=map_title.Get("id")
    
    End Sub

    اینم جاب دان صفحه دومه که ریز اطلاعات فرد رو دریافت کنه

    ProgressDialogHide
    	If Job.Success=True Then
    		jp.Initialize(Job.GetString)
    		Dim list As List=jp.NextArray
    		For i=0 To list.Size-1
    			Main.map_title=list.Get(i)
    			Dim p As Panel
    			p.Initialize("p")
    			slvaza.Panel.AddView(p,0%x,top,95%x,45%y)
    			p.LoadLayout("lkoleaza_lbldata")
    			p.Tag=i
    			top=top+15%y+0%x
    			Dim fn As String
    			fn=map1.Get("famili")&" "&map1.Get("nam")
    			lblid.Text=map1.Get("ID")
    			lblfamili.Text= map1.Get("famili")
    			lblfamili.Text= Main.map_title.Get("famili")
    			lblnam.Text= map1.Get("nam")
    			lblnam.Text= Main.map_title.Get("nam")
    			lblozvkod.Text= map1.Get("ozvkod")
    			lblozvkod.Text= Main.map_title.Get("ozvkod")
    			lblbirth.Text= map1.Get("birth")
    			lblbirth.Text= Main.map_title.Get("birth")
    			lblshenas.Text= map1.Get("shenas")
    			lblkodemeli.Text= map1.Get("kodemeli")
    			lblsadere.Text= map1.Get("sadere")
    			lblmob1.Text= map1.Get("mob1")
    			lblmob2.Text= map1.Get("mob2")
    			lbltel1.Text= map1.Get("tel1")
    			lbltel2.Text= map1.Get("tel2")
    			lblfax.Text= map1.Get("fax")
    			lblmail.Text= map1.Get("mail")
    			lblmanzel.Text= map1.Get("manzel")
    			lblkar.Text= map1.Get("kar")
    			lbltelegram.Text= map1.Get("telegram")
    			lblinsta.Text= map1.Get("insta")
    			lblbale.Text= map1.Get("bale")
    			lblsoroosh.Text= map1.Get("soroosh")
    			lblozviat.Text=map1.Get("ozviat")
    			lblvaziat.Text=map1.Get("vaziat")
    			lbltozih.Text=map1.Get("tozih")
    		Next
    		slvaza.Panel.Height=top
    	Else
    		ToastMessageShow("لطفا اتصال برنامه به اینترنت را بررسی کنید",False)
    	End If
    	Main.ht2.Release

     

     

     

     

     

    • داداش، من میگم یه متغیر تعریف کن و یک فیلد جدید برای دیتابیست

      حالا تگ اون فیلد جدید رو بریز داخل اون متغیری که تعریف کردی

      و حتما اون فیلد جدید یک مقدار منحصر به فردی برای هر سطر داشته باشه

      حالا با استفاده از کوئری جستجو در دیتابیس، اطلاعات هر سطر رو با استفاده از اون متغیر بکش بیرون و نشون بده

      اینم آموزش سرچ

      آموزش ساخت جستجوی زنده در بیسیک فور اندروید

  3. ممنونم بابت وقتی که میذارید

    قبلش باید این توضیحو بدم که من چند تا صفحه دارم و بخاطر اسکرول دادن به برنامه صفحاتم زیاد و تو هم تو هم شده

    من یه صفحه اصلی دارم به اسم اعضا که اسم و فامیل همه به همراه شماره‌گذاری هست (مولتی پنله)

    وقتی روی لیبل نام کلیک میشه یه صفحه باز میشه که در لیبل مشخصات اعضا درج شده (اسکرول شده هست)

    وقتی روی نام لانگ کلیک میشه صفحه ویرایش مشخصات باز میشه که ادیت تکست هست (اینم اسکرول شده هست)

    لذا برای تگ و سندرشون خیلی گیج شدم و نمیدونم چکار کنم

    صفحه اصلی اعضا

    #region slvaza
    	If job.Success=True Then
    		ProgressDialogHide
    		jp.Initialize(job.GetString)
    		Dim list As List= jp.NextArray
    		For i=0 To list.Size-1
    			map_title =list.Get(i)
    			Dim p As Panel
    			p.Initialize("p")
    			slvaza.Panel.AddView(p,0%x,top,95%x,45%y)
    			p.LoadLayout("lkoleaza_mpinfo")
    			pnlmain.Tag=i
    			top=top+7%y+0%x
    
    			Dim plusname As String=map_title.Get("famili")&" "&map_title.Get("nam")
    			lblmp_id.Text=map_title.Get("id")
    			lblmp_nam.Text=plusname
    			lblmp_nam.Tag=i
    			
    			lblmp_id.Tag=map_title.Get("id")
    			lblmp_nam.Tag=map_title.Get("famili")&" "&map_title.Get("nam")
    			
    		Next
    		slvaza.Panel.Height=top
    	Else
    		ProgressDialogHide
    		Msgbox("خطا در برقراری ارتباط با سرور. لطفا اتصال خود را با اینترنت چک کنید","خطا")
    	End If
    	Main.ht1.Release
    #end region

     

    صفحه نمایش اطلاعات

    Sub JobDone(Job As HttpJob)
    	
    	ProgressDialogHide
    	If Job.Success=True Then
    		jp.Initialize(Job.GetString)
    		Dim list As List=jp.NextArray
    		For i=0 To list.Size-1
    			Dim map1 As Map=list.Get(i)
    			Dim p As Panel
    			p.Initialize("p")
    			slvaza.Panel.AddView(p,0%x,top,95%x,45%y)
    			p.LoadLayout("lkoleaza_lbldata")
    			p.Tag=i
    			top=top+15%y+0%x
    '			Dim fn As String
    '			fn=map1.Get("famili")&" "&map1.Get("nam")
    '			lblid.Text=map1.Get("ID")
    			lblfamili.Text= map1.Get("famili")
    			lblnam.Text= map1.Get("nam")
    			lblozvkod.Text= map1.Get("ozvkod")
    			lblbirth.Text= map1.Get("birth")
    			lblshenas.Text= map1.Get("shenas")
    			lblkodemeli.Text= map1.Get("kodemeli")
    			lblsadere.Text= map1.Get("sadere")
    			lblmob1.Text= map1.Get("mob1")
    			lblmob2.Text= map1.Get("mob2")
    			lbltel1.Text= map1.Get("tel1")
    			lbltel2.Text= map1.Get("tel2")
    			lblfax.Text= map1.Get("fax")
    			lblmail.Text= map1.Get("mail")
    			lblmanzel.Text= map1.Get("manzel")
    			lblkar.Text= map1.Get("kar")
    			lbltelegram.Text= map1.Get("telegram")
    			lblinsta.Text= map1.Get("insta")
    			lblbale.Text= map1.Get("bale")
    			lblsoroosh.Text= map1.Get("soroosh")
    			lblozviat.Text=map1.Get("ozviat")
    			lblvaziat.Text=map1.Get("vaziat")
    			lbltozih.Text=map1.Get("tozih")
    		Next
    		slvaza.Panel.Height=top
    	Else
    		Msgbox("لطفا اتصال برنامه به اینترنت را بررسی کنید","خطا")
    	End If
    	Main.ht2.Release
    
    End Sub

    صفحه ویرایش اطلاعات

    Sub lblsave_Click
    
    	If txtfamili.Text="" Or txtnam.Text="" Or txtozvkod.Text="" Or txtmob1.Text="" Then
    		ToastMessageShow("لطفا همه گزینه‌های ضروری را تکمیل کنید",False)
    		txtfamili.HintColor=Colors.Red
    		txtnam.HintColor=Colors.Red
    		txtozvkod.HintColor=Colors.Red
    		txtmob1.HintColor=Colors.Red
    		Return
    	Else
    		
    		Dim info1 As String
    		info1="&famili=" &txtfamili.Text & "&nam=" &txtnam.Text & "&ozvkod=" &txtozvkod.text & "&birth=" & txtbirth.Text & "&shenas=" & txtshenas.text &"&kodemeli=" & txtkodemeli.text &"&sadere=" & txtsadere.text & "&tel1="& txttel1.Text & "&tel2=" & txttel2.text & "&mob1=" &txtmob1.Text & "&mob2=" & txtmob2.text & "&fax=" &txtfax.Text & "&mail=" & txtmail.text & "&manzel=" &txtmanzel.Text & "&kar=" & txtkar.text & "&telegram=" &txttelegram.Text & "&insta=" & txtinsta.text & "&bale=" &txtbale.Text & "&soroosh=" & txtsoroosh.text & "&ozviat=" &txtozviat.Text & "&vaziat=" & txtvaziat.text & "&tozih=" & txttozih.Text
    '	& "&nobat=" & txtnobat.Text & "&vasete=" & txtvasete.Text & "&vam=" & txtvam.Text & "&jari=" & txtjari.Text & "&estemhal=" & txtestemhal.Text & "&moavaq=" & txtmoavaq.Text & "&masdoodi=" & txtmasdoodi.Text & "&blacklist=" & txtblacklist.Text
    
    		Main.ht1.PostString("http://hamedafrough.ir/misaq/mainapp/tabels/insertdata.php",info1)
    		
    	End If
    	
    End Sub
    
    '------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Sub jobdone(job As HttpJob)
    	
    	If job.Success=True Then
    		ToastMessageShow("اطلاعات جدید وارد شد",False)
    			
    	End If
    End Sub
    
    '------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Sub lblcancel_Click
    	Activity.Finish
    	StartActivity(lkoleaza)
    End Sub
    

    .

     

     

     

     

     

     

  4. ببخشید

    من سر تگ و سندرش هم مشکل دارم

    برای من اعمال نمیشه و در اکتیویتی مربوطه اطلاعات فرد مورد نظر رو نشون نمیده

    • دستورات مربوط به تگ و سندرتو بذار ببینم.

      یه ذره سخته باید بیشتر کار بشه.

  5. این دیدگاه ویرایش شده است

    خط اضافه رو پاک کردم

    درست شد

    ممنون از دقت نظر شما

    <?php
    	//$conn->set_charset("utf8");
    	$db = new PDO ('mysql:host=localhost;dbname=***;charset=utf8','***','***');
    	//mysql_query('SET CHARACTER SET utf8');
    
    	$st = $db->query('SELECT id,famili,nam FROM tblusers1');
    	$a = array();
    	while ($row = $st->fetch()){
    		//echo $row['famili'].'<br>';
    					
    		
    		array_push($a,array('id'=>$row['id'],'famili'=>$row['famili'],'nam'=>$row['nam']));
    		
    	}
    	echo json_encode($a);
    	$db=null;
    
    ?>

     

  6. این دیدگاه ویرایش شده است

    سلام اقا مرتضی

    خداقوت

    بابت آموزشتون ممنونم
    متاسفانه من وقتی کدهارو پیاده میکنم بهم ارر جیسون میده

    	If job.Success=True Then
    		ProgressDialogHide
    		jp.Initialize(job.GetString)
    		Dim list As List= jp.NextArray
    		For i=0 To list.Size-1
    			map_title =list.Get(i)
    			Dim p As Panel
    			p.Initialize("p")
    			slvaza.Panel.AddView(p,0%x,top,95%x,45%y)
    			p.LoadLayout("lkoleaza_mpinfo")
    			p.Tag=i
    			top=top+7%y+0%x
    			
    			map_title=list.Get(i)
    			Dim plusname As String=map_title.Get("famili")&" "&map_title.Get("nam")
    			lblmp_id.Text=map_title.Get("id")
    			lblmp_nam.Text=plusname
    			lblmp_nam.Tag=i
    			
    			lblmp_id.Tag=map_title.Get("id")
    			lblmp_nam.Tag=map_title.Get("famili")&" "&map_title.Get("nam")
    			
    		Next
    		slvaza.Panel.Height=top
    	Else
    		ProgressDialogHide
    		Msgbox("خطا در برقراری ارتباط با سرور. لطفا اتصال خود را با اینترنت چک کنید","خطا")
    	End If
    	Main.ht1.Release

    به این خط گیر میده

    Dim list As List= jp.NextArray

    متن ارر اینه

    Error occurred on line: 130 (lkoleaza)
    java.lang.RuntimeException: JSON Array expected.
    	at anywheresoftware.b4a.objects.collections.JSONParser.NextArray(JSONParser.java:62)
    	at b4a.example.lkoleaza._jobdone(lkoleaza.java:659)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    	at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
    	at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
    	at anywheresoftware.b4a.BA$2.run(BA.java:370)
    	at android.os.Handler.handleCallback(Handler.java:739)
    	at android.os.Handler.dispatchMessage(Handler.java:95)
    	at android.os.Looper.loop(Looper.java:135)
    	at android.app.ActivityThread.main(ActivityThread.java:5293)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    
    

     

     

     

     

     

     

     

    • این دیدگاه ویرایش شده است

      سلام.

      من فکر کنم مشکل از فایل php ت باشه.

      اونم بذار ببینمش

      و این که این خطو چرا دوبار نوشتی؟!

      map_title=list.Get(i)

       

  7. سلام.

    به نظرم بهتره خاصیت visible اسکرول ویوت رو false کنی چون پنل داخل اسکرول ویوت نمایش داده میشه و یک اسکرول ویو جدید برای سرچت ظاهر کنی که نتیجه جستجو در آن نمایش داده شود.

     

    توی رویداد text_change جعبه متنت بنویس کداشو.

    یه تست کن

    • سلام اقای مرتضی

      خسته نباشید. توی این مدت آیا راه حلی برای سوال من پیدا کردید؟ یعنی اگر ما در یک ادیت تکست جستجو کردیم و اطلاعات یافت شده از دیتابیس در مولتی پنل نشان داده شد، برای جستجوی بعدی چطور باید رکوردهای قبلی را پا کنیم؟ همانطور که در بالا هم گفته ام در لیست ویوو ما یک فرمان کلیر لیست را اجرا می کنیم. هرچه قبلا نمایش داده شده پاک می شود. ایا ممکن است بفرمایید با چه دستوری می توانیم هنگامی که کاربر واژه جدیدی را در ادیت تکست نوشت و سرچ را شروع کرد، رکوردهای قبلی پاک شوند و در مولتی پنل ما رکوردهای جستجوی جدید ظاهر شوند؟”

      ممننوووووون و منتظر پاسخ شما

  8. یک سوال

    چرا دستور «list.clear» اجرا نمیشه. مگه مثل لیست ویوو نیست. توی فرمان کلیک جستجو «list.clear» نوشتم اما اجرا نمی شه. هر بار جستجوها رو در ادامه قبلی ها نشون می ده. در حالی که وقتی به جای مولتی پنل، از لیست ویو استفاده می کردم، «listview.clear» لیست رو پاک می کرد و جستجوی جدید رو نشون می داد

    ممنون میشم پاسخ بدید

    • سلام.

      دوست عزیز، لیست کلیر برای لیست ویو هست، اما ما که لیست ویو اینجا نداریم.

      • سلام. ممنون می شم اگه بفرمایید چطور می تونم که وقتی یک لیست اومد و نشون داده شد رو پاک بکنم.

        من از دستور های دیگه هم استفاده کردم اما هیچ کدوم نشد. مثلا دستورهای

        RemoveAllViews , …و …

        ممنون می شم راهنمایی کنید اقای مرتضی

        • شما دقیقا میخوای چی کار کنی؟

           

          • جلال کاربر تازه
            19/06/22 در 11:14

            ممنون از پیگیری شما

            ببینید. ما کمله ای را در ادیت تکست وارد می کنیم و در دیتابیس جستجو می کنیم و نتیجه انرا نمایش می دهیم. قبلا در لیست ویو نمایش می دادیم. اماالان به کمک شما در مولتی پنل نمایش می دهیم. حال اگر کسی دوباره کمله ای را در ادیت تکست وارد کند و جستجو را بزند، نمایش های قبلی پاک نمی شوند، و جستجوهای جدید ادامه جستجو های قبلی نمایش داده می شوند. من می خواهم این رکوردهایی که در جستجوی قبلی یافت شده و در مولتی پنل نمایش داده شده، در جستجوی بعدی پاک شوند. مثلا من یک بار محمد را سرچ کرده ام، ده رکورد نمایش داده شده. حال می خواهم دوباره در ادیت تکست علی را سرچ کنم نیاز است رکورهای محمد همه پاک شوند.

            من دقیقا به دنبال چیزی شبیه «کلیر لیست» می گردم که در لیست ویوو عمل می کند. لیست قبلی را پاک می کند و جستجووهای جدید در لیبست تازه نمایش داده می شود.

            ممنونم

  9. سلام بر اموزگاران بپرسم

    بسیار عالی دست مریزاد

ارسال نظر

رفتن به بالا

سامانه آموزشی و خدماتی بپرسم

اولین وب سایت آموزشی و پرسش و پاسخ در ایران

بپرسم را میتوان به عنوان مرجعی برای آموزش و حل مشکلات دانست، در بپرسم سعی کرده ایم آموزش های برنامه نویسی، طراحی سایت، کار با نرم افزارها ها و… را آموزش دهیم. همچنین محیطی فراهم کرده ایم تا کاربران بتوانند در این محیط سوالات خود را بپرسند و مشکل خود را حل کنند.