4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
Epicor系统二次开发_lin240052472的博客-CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-25

一、获取或修改界面EpiDataView的字段数据 Get EpiDataView data
C#
EpiDataView edv (EpiDataView)oTrans.EpiDataViews[ ViewName

if(edv.dataView.Count 0)
{
string someValue (string)edv.dataView[edv.Row][ FieldName
edv.dataView[edv.Row][ FieldName ] someValue;
}

------------------------------------------------------------------------------------------------------------------------------------------------------

VB
Dim edv As EpiDataView CType(oTrans.EpiDataViews( ViewName ), EpiDataView)
if edv.DataView.Count 0 then
dim someValue as string [edv].dataView([edv].Row)( FieldName )
[edv].dataView([edv].Row)( FieldName ) someValue
end if

如果EpiDataView中有多行数据 例如incoming po suggestion或purchase suggestion 可以通过以下格式指定行号取得值
统计行数 edv.DataView.Count
取第100行的值 [edv].dataView(99)( FieldName )


二、获取Session字段数据 Get Session data 
C#
add reference Epicor.Mfg.Core.Session.dll
using Epicor.Mfg.Core;
string UserID ((Epicor.Mfg.Core.Session)this.oTrans.Session).UserID;
string CompanyID ((Epicor.Mfg.Core.Session)this.oTrans.Session).CompanyID;

E10
Ice.Core.Session.dll
using Ice.Core;
string UserID ((Ice.Core.Session)this.oTrans.Session).UserID;


三、call adapter 调用adapter的GetByID方法 获取adapter中的数据或更新数据 使用前必须先引用相应Adapter
C#
注意E10加Adapter需要在开始增加 using Erp.Adapters;

PartAdapter adpPart new PartAdapter(this.oTrans);
adpPart.BOConnect();
adpPart.GetByID( PART0001

string PartDescription adpPart.PartData.Tables[ Part ].Rows[0][ PartDescription

adpPart.PartData.Tables[ Part ].Rows[0][ PartDescription ] PART0001 xxxxxx
adpPart.Update();

adpPart.Dispose();


VB
Dim adpPart As PartAdapter New PartAdapter(oTrans) 
adpPart.BOConnect()
adpPart.GetByID( PART0001 )

string PartDescription adpPart.PartData.Tables( Part ).Rows(0)( PartDescription )

adpPart.PartData.Tables( Part ).Rows(0)( PartDescription ) PART0001 xxxxxx
adpPart.Update()

adpPart.Dispose()


四、Search Data by Adapter 使用adapter查询数据 使用前必须先引用相应Adapter
C#
PartAdapter adpPart new PartAdapter(this.oTrans);
adpPart.BOConnect();
bool MorePages;
String whereClause PartNum PART0001
SearchOptions opts new SearchOptions(SearchMode.AutoSearch);
opts.NamedSearch.WhereClauses.Add( Part , whereClause);
DataSet dsPart adpPart.GetRows(opts, out MorePages);


注意E10加Adapter需要在开始增加 using Erp.Adapters;

VB
Dim adpPart As PartAdapter New PartAdapter(oTrans)
adpPart.BOConnect()
Dim MorePages As Boolean
Dim whereClause As String PartNum PART0001
Dim opts As SearchOptions New SearchOptions(SearchMode.AutoSearch)
opts.NamedSearch.WhereClauses.Add( Part , whereClause)
Dim dsPart As Data.DataSet adpPart.GetRows(opts, MorePages)


五、Search Data by Epicor.Mfg.UI.FormFunctions.SearchFunctions 使用界面查询功能查询数据并返回值到当前界面EpiDataView 但数据列只有部分 类似于标准界面上的查询功能 适用于快速查询基本数据。
--使用Simple Search向导产生以下代码
C#
bool recSelected;
string whereClause string.Empty;
// StartDate ApplyDate.ToString( MM/dd/yyyy ) 如果是日期值转换月日年格式后 两边要加单引号
System.Data.DataSet dsCurrencyAdapter Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(this.oTrans, CurrencyAdapter , out recSelected, true, whereClause);
if (recSelected)
{
// Map Search Fields to Application Fields
System.Data.DataRow adapterRow dsCurrencyAdapter.Tables[0].Rows[0];

EpiDataView edvPODetail ((EpiDataView)(this.oTrans.EpiDataViews[ PODetail ]));
System.Data.DataRow edvPODetailRow edvPODetail.CurrentDataRow;
if ((edvPODetailRow ! null))
{
edvPODetailRow.BeginEdit();
edvPODetailRow[ ShortChar10 ] Convert.ToString(adapterRow[ CurrencyCode
edvPODetailRow.EndEdit();
}
}

E10: Ice.UI.FormFunctions.SearchFunctions
发现这种方法不能取得ud field的值。


VB
Dim recSelected As Boolean
Dim whereClause As String String.Empty
Dim dsResourceGroupAdapter As System.Data.DataSet Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(Me.oTrans, ResourceGroupAdapter , recSelected, False, whereClause)
If recSelected Then
Dim adapterRow As System.Data.DataRow dsResourceGroupAdapter.Tables(0).Rows(0)

Map Search Fields to Application Fields
Dim edvJobOpDtl As EpiDataView CType(Script.oTrans.EpiDataViews( JobOpDtl ),EpiDataView)
Dim edvJobOpDtlRow As System.Data.DataRow edvJobOpDtl.CurrentDataRow
If (Not (edvJobOpDtlRow) Is Nothing) Then
edvJobOpDtlRow.BeginEdit
edvJobOpDtlRow( Character01 ) adapterRow( ResourceGrpID )
edvJobOpDtlRow.EndEdit
End If
End If

六、InvokeSearch 查詢數據 類似GetRows()
System.Collections.Hashtable myHash new System.Collections.Hashtable();
string wClause “Key1 ‘“ key1 “‘“;
myHash.Add(“UD100A”, wClause);
SearchOptions opts Epicor.Mfg.UI.Searches.SearchOptions.CreateRuntimeSearch(myHash,DataSetMode.RowsDataSet);
ud100Adapter.InvokeSearch(opts);
ucbCarrierSize.DataSource ud100Adapter.UD100Data.UD100A; 


七、 EpiViewNotification 窗体事件 例如不允许访问某供应商的PO
--选择窗体事件向导产生以下代码
C#
private void edvPOHeader_EpiViewNotification(EpiDataView view, EpiNotifyArgs args)
{
// ** Argument Properties and Uses **
// view.dataView[args.Row][ FieldName ]
// args.Row, args.Column, args.Sender, args.NotifyType
// NotifyType.Initialize, NotifyType.AddRow, NotifyType.DeleteRow, NotifyType.InitLastView, NotifyType.InitAndResetTreeNodes

if ((args.NotifyType EpiTransaction.NotifyType.Initialize)) //选择记录的时候
{
if ((args.Row -1))
{
//MessageBox.Show((string)view.dataView[args.Row][ VendorVendorID
if((string)view.dataView[args.Row][ VendorVendorID ] S0000022 )
{
oTrans.ClearDataSets();
//throw new UIException( 不能访问此供应商
throw new Exception( 不能访问此供应商  
//MessageBox.Show( 不能访问此供应商
}

}
}

if ((args.NotifyType EpiTransaction.NotifyType.AddRow)) //新加记录的时候
{
if ((args.Row -1))
{
//MessageBox.Show( EpiTransaction.NotifyType.AddRow
}
}
}


八、Before Form change FormEvent args.ProposedValue及args.Row[ UOMCode ]的区别 args.ProposedValue是操作时选择的内容但args.Row[ UOMCode ]是没有值的。
private void PriceLstParts_BeforeFieldChange(object sender, DataColumnChangeEventArgs args)
{
switch (args.Column.ColumnName)
{
case PartNum :

break;
case UOMCode :
//MessageBox.Show(args.Row[ UOMCode ].ToString().Length.ToString() / args.ProposedValue.ToString());
if(args.ProposedValue.ToString().Length 0)
{
bool ChkDupPart CheckDupPartByListCode(args.Row[ ListCode ].ToString(),args.Row[ PartNum ].ToString());
if(ChkDupPart)
{
//MessageBox.Show( Duplicate Part: args.Row[ PartNum ].ToString());
throw new Exception( Duplicate Part Not Allow. PartNum: args.Row[ PartNum ].ToString());

}

break;
}

}

 

throw new EpiUIException(); which library?

[Table/ViewName]_BeforeFieldChange() Handles DataTable.ColumnChanging event
This event handler is called before users can shift focus away from a field with changed data bound to a DataSource
and DataField. It performs the following events:
? This event handler can validate the entered value of a field.
? If the value is not valid, then you can prevent the user from leaving the field until a correct value is entered.
To prevent users from leaving a field that is not validated, you can use this C# code:
throw new EpiUIException();

 

epiUltraGrid 控件

----Hidden UltraGrid Column 隐藏epiUltraGrid某列
C#
epiUltraGridC1.DisplayLayout.Bands[0].Columns[0].Hidden true;

VB
epiUltraGridC1.DisplayLayout.Bands(0).Columns(0).Hidden true

----Edit UltraGrid display ColumnName 修改epiUltraGrid列显示名称
C#
epiUltraGridReqSummary.DisplayLayout.Bands[0].Columns[ Net_Req_Lots ].Header.Caption Net Req Shot [D/E]

VB
epiUltraGridReqSummary.DisplayLayout.Bands(0).Columns( Net_Req_Lots ).Header.Caption Net Req Shot [D/E]

----select epiUltraGrid row 代码选择epiUltraGrid某一行并赋值
C#
epiUltraGridShipInfo.ActiveRow epiUltraGridOnhandLotInfo.Rows[3];
epiUltraGridShipInfo.ActiveRow.Cells[ ShipQty ].Value 999;
将鼠标选中当前行
epiUltraGridShipInfo.ActiveRow.Selected true

VB
epiUltraGridShipInfo.ActiveRow epiUltraGridOnhandLotInfo.Rows(3)
epiUltraGridShipInfo.ActiveRow.Cells( ShipQty ).Value 999
将鼠标选中当前行
epiUltraGridShipInfo.ActiveRow.Selected true

-----epiUltraGrid ActiveCell epiUltraGrid某单元格值发生改变之后
VB
Private Sub epiUltraGridC1_AfterCellUpdate(ByVal sender As Object, ByVal args As Infragistics.Win.UltraWinGrid.CellEventArgs)
Select Case args.Cell.Column.Key
Case Character01
......
End Select
End Sub

----Format epiUltraGrid Amount Column
C#
epiUltraGridC1.DataSource adapterDynamicQuery.QueryResults;
epiUltraGridC1.DisplayLayout.Bands[0].Columns[ EmpExpense.DocTotalExpenseAmt ].Format #,##0.00
epiUltraGridC1.DisplayLayout.Bands[0].Columns[ EmpExpense.DocTotalExpenseAmt ].CellAppearance.TextHAlign Infragistics.Win.HAlign.Right;


----设置epiUltraCombo下拉显示列宽

this.epiUltraComboLOB.DropDownWidth 200;


----时间选择
在系统中一般日期与时间是分开存储 时间部分是使用数值字段存储 例如自订义字段Number01 例如客制化加入epiTimeEditor控件 绑定Number01 选择时间是 10:15 AM 在系统保存此数据时 Number01的值自动是36900 计算方法 epiTimeEditor 10:15 AM 10*3600 15*60 store Database Integer 36900

----关闭窗体 窗体名.Close()
PartForm.Close()

 

----You can also create code that casts to a specific control type:
VB Code:
Dim eucSales As EpiUltraCombo CType(csm.GetNativeControlReference( 5483cdef-3049-4705-b597-28ae93bc7fdf ), EpiUltraCombo)
C# Code:
EpiUltraCombo eucSales (EpiUltraCombo )csm.GetNativeControlReference( 5483cdef-3049-4705-b597-28ae93bc7fdf

Control.Combos is EpiCombo

 

---隐藏下拉菜单功能

private static void baseToolbarsManager_BeforeToolDropdown(object sender, Infragistics.Win.UltraWinToolbars.BeforeToolDropdownEventArgs args)
{
baseToolbarsManager.Tools[ RemovePOLinkTool ].SharedProps.Visible false;
baseToolbarsManager.Tools[ IncomingICPOSugTool ].SharedProps.Visible false;
baseToolbarsManager.Tools[ SendICPOSugTool ].SharedProps.Visible false;

}


---Set EpiUltraCombo Properties

this.epiUltraComboShipTo.ValueMember CustNum
this.epiUltraComboShipTo.DataSource dsCustomerAdapter;
this.epiUltraComboShipTo.DisplayMember Name
string[] fields new string[] {
Name
this.epiUltraComboShipTo.SetColumnFilter(fields);


--fill epiUltraCombo

private void FillepiUltraComboFamily()
{
DataTable TB new DataTable();
DataRow DR;

TB.Columns.Add( Family , typeof(String));

DR TB.NewRow();
DR[ Family ] FG
TB.Rows.Add(DR);
DR TB.NewRow();
DR[ Family ] RM
TB.Rows.Add(DR);

// Set EpiUltraCombo Properties
this.epiUltraComboFamily.ValueMember Family
this.epiUltraComboFamily.DataSource TB;
this.epiUltraComboFamily.DisplayMember Family
string[] fields new string[] {
Family
this.epiUltraComboFamily.SetColumnFilter(fields);
}

\"\" \"\" \"\" 点赞 \"\" \"\" 评论

本文链接: http://epiui.immuno-online.com/view-764109.html

发布于 : 2021-03-25 阅读(0)