日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

氚云学习1——表单

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 氚云学习1——表单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,當打開一個氚云應用的表單,其地址如下。
其中,id為appcode,標示應用名,每一個氚云的應用都有唯一的id
code為schmecode,標示一個表單名,相當于整個表單的實體類,而code用于標示這個表單的唯一標示。
https://www.h3yun.com/home.html#/app?id=czl93lpxl24nxaawwywe5ct66&code=A6714cc7929324c618f4a0382cf9fbf44&BizObjectId=
此外,還有如下的數據名:
BizObject:為每個表單的其中一行數據
BizObjectId:為每個表單的其中一行數據的唯一標識
ActionName:表單提交的標識字段,即表單上按鈕等的活動,在后端代碼中,有一個OnSubmit方法,所有提交的活動,都會在這個方法呈現。如:當ActionName==Submit,那么就表示活動類型為提交數據

ActivityCode:標識當前流程進行到了哪一步,(這是由于在不同流程的節點上,ActionName提交的請求可能相同,如都是Submit類型的活動。但所處節點不同,此時就需要再次使用ActivityCode==“xxx”來判斷節點)

Engine對象

用于管理、調用、操作與企業應用相關聯的表單、流程、組織、權限、消息、提醒、數據字典等

表單

前端

事件函數名功能
加載事件OnLoad對控件初始化,當新增一個表單數據,為其做初始賦值,是最先觸發的事件
按鈕事件OnLoadActions點擊按鈕后觸發的事件,觸發在OnLoad之后
提交校驗OnValidate填好數據后提交時觸發,用于校驗表單中所填數據是否合法
提交前事件BeforeSubmit觸發在OnValidate之后,在將數據提交到后端之前還需要做的事情
提交后事件AfterSubmit觸發在BeforeSubmit之后,數據已經在后端處理完畢后還要做的事情

關于控件的接口

GetValue() :讀取控件值
GetText():讀取控件文本內容

在獲取當前表單控件時,getvalue和gettext獲取到的一樣,但獲取關聯表單時會發現,gettext獲取到的就是顯示的文本,而getvalue獲取到的是一長串數字符號,這是因為關聯表單的數據在數據庫中存放的本來就是一串數字,getvalue只會取到這個值,而不會翻譯出其內容

SetValue():設置控件的值
BindChange(key,function()):綁定控件值變化事件,key是定義的唯一的方法名
UnBindChange(key):解除綁定控件值變化事件,key是定義的唯一的方法名
SetReadonly(true/false):設置頁面是否只讀
SetVisible(true/false):設置可見屬性
此外,獲取人員/部門控件用GetUnitIDs(),而不能用getvalue;下拉框、單選框、多選框清空選項用ClearItems(),添加選項用AddItem(“value”);字表的GetCellManager以后,不能使用GetText和AddItem

用法: this.控件編碼.方法();
例如:

OnLoad:function(){//獲取控件的值,并在點擊控件時彈框var data=this.F000001.GetValue();alert(data);this.F000001.BindChange('key',function()){//當控件F00001的數據發生改變,在光標移出去時觸發alert('數據已改變');//alert:彈框提示(類似于警告)方法} }

一些公共接口

ajax:異步請求接口,比如輸入數據請求后臺處理后返回結果到頁面上,經常和BindChange一起使用
$.SmartForm.PostForm(“actionName”,data,callBack,errorBack,async);
callBack:成功后的回調函數
errorBack:錯誤回調函數
async:是否異步,true或false

彈框提示方法 $.IShowWarn(Info);
Info:顯示的消息

打開窗口方法:
在當前表單的基礎上打開另一個表單,即打開一個表單的同時打開另一個表單
$.IShowForm(SchemaCode,objectId,checkIsChange);
SchemaCode:表單編碼,在本文剛開始時說了表單編碼怎么找,即schmecode。
objectId:表單數據ID
checkIsChange:關閉時是否感知變化

快捷鍵:f12 進行調試 f9打斷點 ,或者在想要斷點的地方加一行debugger,然后右鍵檢查進入調試

后端

其實就是表單的一個類,包含3個方法,

方法功能
構造方法
OnLoad方法表單在加載的時候同時觸發前后端代碼,為控件賦初始值
OnSubmit方法表單提交時會進入OnSubmit
this.request.BizObject["F0000001"]="張三";//初始化控件內容 this.request.BizObject["F0000001"]="A;B;C";//初始化復選框,部門多選,人員多選,各值用分號間隔 base.OnLoad(respond);//方法自帶 response.ReturnData(["F0000001"]).Editable=false;//后端方式設置可讀權限 response.ReturnData(["F0000001"]).Visible=false;//后端方式設置可見權限 //注意設置初始值要放在base.OnLoad前面。設置可見可讀權限要放在后面

1.獲取表單提交過來的數據

方法1:
string value=this.Request.BizObject[“F000001”]+string.empty;
方法2:
string value2=PostValue.Data[“F000001”]+string.empty;
因為PostValue.Data中數據是Object類型,因此要進行數據的類型轉換。

2.獲取表單中的對象

可以獲取到其他表單中的對象,實現在本表單的操作影響另一個表單。

獲取BizObject對象
H3.DataModel.BizObject.Load(This.Request.UserId, //操作對象的人this.Engine, //引擎對象"schemaCode" //schmecode"BizObjectId" //對象IDfalse); //固定值false

先創建一個分組,添加倆個表單,一個表單是產品,BizObject包括產品名稱和數量,另一個表單是入庫,BizObject包括產品名稱和入庫數量,并將倆個表單關聯
在入庫表單的Onsubmit方法中添加如下代碼

H3.DataModel.BizObject biz=H3.DataModel.BizObject.Load(this.Request.UserContext.UserId,this.Engine,"表單ID",this.Request.BizObject["product"]+string.Empty,//此處的product就是控件編碼,如F000001false); biz["productNumb"]=double.parse(["productNumb"]+string.Empty)+double.parse(this.Request.BizObject["numb"]+string.Empty);biz.update();

案例

不同角色看到不同內容

在權限管理中新建角色:金額查看,并添加允許的人

//獲取用戶所有角色 H3.Organization.OrgRole[] roles = this.Request.Engine.Organization.GetUserRoles(this.Request.UserContext.UserId,true() ; //尋找相應角色 bool flag=false; foreach(H3.Organization.OrgRole item in roles) {if(item.Name=="金額查看"){flag=true;}response.ReturnData["menoy"].visible=flag;//設置可讀權限 }
不同角色看到不同的下拉框選項

同樣,需要權限管理,如添加權限:男性愛好,并加入相應人員
如果,有這個權限,多選框選項就是 打游戲,吃飯,睡覺
如果沒有這個權限,選項就是化妝,逛街,自拍
默認復選框數據為有權限時的情況,如果沒有權限,則在打開時修改復選框內容

//獲取用戶所有角色 H3.Organization.OrgRole[] roles = this.Request.Engine.Organization.GetUserRoles(this.Request.UserContext.UserId,true() ; //尋找相應角色 bool flag=false; foreach(H3.Organization.OrgRole item in roles) {if(item.Name=="男性愛好"){flag=true;}response.Massage=flag+string.Empty;//Massage為環境參數里面的“返回的其他信息”,同時返回到前端的數據不能是bool類型,需要轉換為string }

后端部分,在OnLoad中

var flag=$.SmartForm.ResponseContext.Massage; if(flag=="Flase"){//如果沒有權限,修改復選框選項this.F0000001.ClearItems();//修改之前先將復選框清除this.F0000001.AddItem("化妝");this.F0000001.AddItem("逛街");this.F0000001.AddItem("自拍"); }

若控件權限為不可寫,但實際上卻用代碼setvalue為控件賦初始值,這個值雖然會在表單詳情界面上顯示,但實際上卻進入不了數據庫,在表單條目上顯示不出來
如果真的想要賦初始值,想要在后端代碼中OnSubmit方法使用:
this.Request.BizObject[“F000001”]=postValue.Data[“F000001”]+string.Empty;//放在base方法前面
此時,雖然仍然不能寫,但是初始值卻可以被上傳至數據庫顯示在表單條目中

總結

以上是生活随笔為你收集整理的氚云学习1——表单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。