一、EditForm為新建時設定DataCard欄位的默認值
1、文本
If(DetailEditForm.Mode=FormMode.New,myself.FullName,ThisItem.Applicant申請人)
2、時間
If(DetailEditForm.Mode=FormMode.New,Now(),ThisItem.收料日期)
3、人員
在表單的OnVisible中設定:
Set(myself, User())
然后使用
If(DetailEditForm.Mode=FormMode.New,{
DisplayName: myself.FullName,
Claims: "i:0#.f|membership|" & myself.Email
},ThisItem.Applicant申請用戶)
還可以設定經理
Set(myself, Office365Users.MyProfileV2()); Set(manager, Office365Users.Manager(myself.id))
4、選項
If(DetailEditForm.Mode=FormMode.New,{Value:"待審批"},ThisItem.'Order Status狀態')
二、給DataCard通過PowerFx設定值并提交審批

DataCard的Default增加If(IsBlank(varTriggerApproval),ThisItem.是否審批,varTriggerApproval)
同時審批按鈕的OnSelect增加Set(varTriggerApproval,true);Set(varNewRecord,SubmitForm(Form5));
三、通過Url中的引數指定打開App時的Sceen及gallery選項
1、App的OnStart中設定
If(
Param("Screen") = "DetailScreen",
Navigate(DetailScreen)
)
2、Gallery的Default中設定
If(IsBlank(Param("ID")),{},LookUp(ShowColumns('Scrap Parts Application Order', "Title","ID"), ID = Int(Param("ID"))))
3、可以通過url訪問
https://apps.powerapps.com/play/e/XXXXXXXX&Screen=Screen2&ID=2
四、App.OnStart中使用Navigate方法

在App的設定中選擇 即將推出的功能——已停用——在App.OnStart中啟用Navigate函式
但是這樣會對性能產生很大的影響,不建議使用這種方法,建議使用App.StartScreen代替,If(Param("Screen")="Screen1",Screen1,Screen2)
五、創建可滾動的Screen
創建Screen的時候可以選擇“可滾動的Screen”,但是對于已經創建好的Screen,是無法直接改為可滾動的,另外可滾動的Screen中的Canvas目前也無法插入Form和Gallery,所以可以通過另外的方式創建滾動條
1、在Screen中插入一個垂直容器,并將垂直視窗的垂直溢位設為滾動

2、將其他控制元件添加到視窗中
六、通過Gallery實作可編輯的子表
默認的顯示子表的控制元件有“資料表”,但是這個只能查看不能直接編輯,不是很方便,所以考慮通過Gallery來實作一個可編輯的子表

1、 先放入一個水平容器,用來存放創建、保存按鈕
2、再放入一個垂直容器TableContainer,用來存放 工具列、表格表頭以及Gallery表格
3、在TableContainer容器中加入TableHeaderContainer,將此容器的靈活高度設為false,并插入文本控制顯示表頭
4、在TableContainer容器中加入垂直空白庫,在里面加入各種輸入控制元件,設定控制元件的Default為ThisItem.XXX,設定控制元件的Width等于上面文本顯示控制元件的Width,設定設定控制元件的X等于上面文本顯示控制元件的X
5、給按鈕增加方法
添加按鈕:
Patch('Scrap Parts Application Orderline',Defaults('Scrap Parts Application Orderline'),{Title:"不良品入庫單"+Text(OrderListGallery.Selected.ID)+"明細",Classes班次:ddlClassed.Selected,MainListId:OrderListGallery.Selected.ID});
Refresh('Scrap Parts Application Orderline');
Reset(OrderLinesGallery);
保存按鈕:
ForAll(OrderLinesGallery.AllItems,Patch('Scrap Parts Application Orderline',{ID:ThisRecord.ID},{Classes班次:ddlClassed.Selected,Model型號:tbModel.Text,成品工位號:tbProductStation.Text,半成品工位號:tbSemiFinished.Text,不良描述:tbFault.Text,CR04:tbCR04.Text,Equipment設備:tbEquidment.Text,Operation操作:tbOperation.Text,質量分析:tbQualityAnaly.Text,CR01:tbCR01.Text,料費處理:ddlMaterial.Selected,扣款情況:ddlDeduction.Selected,Description備注:tbDesc.Text,Quantity數量:Int(tbQuantity.Text),Logistics物流:tbExpress.Text,Design設計:tbDesign.Text}));
Refresh('Scrap Parts Application Orderline');
Reset(OrderLinesGallery);
七、Form里面通過選項集的值設定其他資料卡的可見性
在要設定的資料卡中找到Visible屬性,設定為DataCardValue8.Selected.Value="https://www.cnblogs.com/liaochifei/archive/2022/09/30/外部使用收費External Have to pay"
注意選項的值是要找對應的選項控制元件的Selected.Vaue,而不是選項欄位的資料卡的Default
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511968.html
標籤:其他
下一篇:帶你認識什么是“回流重繪”
