آموزش

All posts tagged آموزش

نحوه خواندن مقدار یک LOV در زمان Runtime

اگر روی یک فیلد LOV داشته باشید و در لایه View Controller بخواهید به رکورد متناظر دسترسی داشته باشید مثلاً بخواهید بدانید رکوردی که کاربر انتخاب کرده است چه مقداری دارد باید از کد یر استاده کنید در کد زیر مقدار CmemSetupPost برابر نام binding فیلدی است که LOV میباشد.
مقدار ValueField برابر نام فیلدی از ViewObject مربوط به LOV است که میخواهیم مقدار آن را بدست آوریم.
بر روی فیلدی که LOV دارد یک ValueChangeListener بنویسید با شرایط زیر:

public void post_changed(ValueChangeEvent valueChangeEvent) {</p>
<p>BindingContainer bindings =<br />
BindingContext.getCurrent().getCurrentBindingsEntry();<br />
JUCtrlListBinding listBinding =<br />
(JUCtrlListBinding)bindings.get("CmemSetupPost");<br />
int index=(Integer)valueChangeEvent.getNewValue();</p>
<p>Number newValue=(Number)((ViewRowImpl)listBinding.getValueFromList(index)).getAttribute("ValueField");<br />
}
خواندن بیشتر
royal visionنحوه خواندن مقدار یک LOV در زمان Runtime

نحوه فراخواني يك stored procedure

ابتدا بايد کلاسهاي Application Module خود را ايجاد کرده و در کلاس AppModImpl.java متدي تعريف کرده و کد هاي زير رو به متد اضافه کنيد

public void fun(long fileNo, long servNo) {</p>
<p>CallableStatement plsqlBlock = null;<br />
String statement =<br />
"BEGIN PackageName.ProcedureName(:1,:2,:3,:4,:5); END;";</p>
<p>plsqlBlock = getDBTransaction().createCallableStatement(statement, 0);</p>
<p>// 1 and 2 : input parameter<br />
// 3, 4, 5 : output parameter<br />
// first should define type of output parameter</p>
<p>plsqlBlock.registerOutParameter(3, OracleTypes.NUMBER);<br />
plsqlBlock.registerOutParameter(4, OracleTypes.VARCHAR);<br />
plsqlBlock.registerOutParameter(5, OracleTypes.NUMBER);</p>
<p>// set value for input parameter<br />
plsqlBlock.setLong(1, fileNo);<br />
plsqlBlock.setString(2, Long.toString(servNo));</p>
<p>plsqlBlock.executeUpdate();</p>
<p>// get the value of output parameter<br />
int r = plsqlBlock.getInt(3);<br />
String s1=plsqlBlock.getString(4));<br />
int r2 s2=plsqlBlock.getInt(5));</p>
<p>/*<br />
for call function<br />
String statement =<br />
"" + "BEGIN :1 := PackageName.FunctionName(:2,:3,:4,:5); END;";<br />
1: function output<br />
2,3,.. : function input<br />
continue like above<br />
*/<br />
}

مي توانيد يک View obj خالي ايجاد کرده و مقادير بدست امده را در View Obj ذخيره کنيد و در لايه View از View Obj استفاده کنيد (البته قبلش بايد متد موجود در Application Module رو در صفحه خود فراخواني کنيد)

یا در داخل EO یا AppModule که دسترسی به متد getDBTransaction دارید میتوانید فراخوانی را انجام دهید.

برای فراخوانی procedure:

 url2 =<br />
"{call package_name.Procedure_name(?,?,?)}";<br />
try {<br />
cs = getDBTransaction().createCallableStatement(url2, 1);<br />
cs.setString(1, dept);<br />
cs.setString(2, pose);<br />
//register the out parameter<br />
cs.registerOutParameter(3, Types.INTEGER);<br />
cs.execute();<br />
//store the value on the a variabe in the Temp class<br />
t.a = new Integer(cs.getInt(3));<br />
} catch (SQLException e) {<br />
System.out.println("error in get last year in getcartableinformation" +<br />
e.getMessage());<br />
} finally {<br />
try {<br />
if (cs != null)<br />
cs.close();<br />
} catch (SQLException e) {<br />
System.out.println("error in closing get last year in getcartableinformation" +<br />
e.getMessage());<br />
}<br />
cs = null;<br />
}
خواندن بیشتر
royal visionنحوه فراخواني يك stored procedure

برنامه خواندن lable فیلد ها از پایگاه داده

در بسیاری از موارد label مربوط به فیلد ها در داخل پایگاه داده وجود دارد بصورت نوشته فارسی در داخل comment مربوط به فیلد ها در داخل پایگاه داده برای این منظور من برنامه نوشتم که کار های زیر را انجام میدهد.

[ol]
[li]مسیر پروژه را میگیرد[/li]
[li]تمام Entity Object ها را شناسایی مینماید [/li]
[li]برای هر eo تمام attribute ها را شناسایی میکند[/li]
[li]برای هر attribute نام ستون جدول را شناسایی منکند[/li]
[li]از روی نام جدول به سراغ comment آن در داخل پایگاه داده میرود[/li]
[li]برنامه یک app Module دارد که باید connection آن ست گردد.[/li]
[li]connection برنامه باید به کاربری تنظیم گردد که دسترسی خواندن comment جداول را دارد.[/li]
[li]شما فقط کافیست connection را تنظیم نمایید و مسیر برناه را مشخص نمایید.[/li]
[/ol]

دانلود برنامه
خواندن بیشتر
royal visionبرنامه خواندن lable فیلد ها از پایگاه داده

تفاوت و استفاده از این ویژگی های مطرح شده

partialSubmit
partialTriggers
immediate
autoSubmit

مورد اول برای زمانی است که شنا نی خواهید بخشی از صفحه برای سرور ارسال شود و از ارسال تمام صفحه جلوگیری کنید دقیقا کار AJAX
مورد دوم برای زمانی است که شما می خواهید یک کامپوننت بعد از تغییر یک کامپوننت دیگر خود را refresh کند در این حالت id کامپوننت هدف را برای partialTriggers کامپوننت مقصد تعیین می کنید
مورد سوم برای حالتیست که شما در صفحه تان مثلا یک input text دارید و مقدار آن نیز اجباری می باشد ولی می خواهید بدون پر کردن با زدن یک دکمه مثلا به صفحه دیگری بروید ولی فیلد اجباری این اجازه نمی دهد true کردن immediate دکمه این امکان را به شما می دهد که بدون پر کردن به صفحه بعدی بروید
مورد چهارم برای این منظور است که شما به محض وارد کردن اطلاعات مثلا یک inputtext انها برای سرور ارسال شود بدون اینکه نیازی به زدن دکمه تایید باشد.

خواندن بیشتر
royal visionتفاوت و استفاده از این ویژگی های مطرح شده