极致业务基础平台开发者_第1页
极致业务基础平台开发者_第2页
极致业务基础平台开发者_第3页
极致业务基础平台开发者_第4页
极致业务基础平台开发者_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FAQ也分为两部分:C/SB/S应用框架。windows2003sp1,因为工作流的visualstudio2005B/Svs2005sp1补订包。infragis6.3控件安装包。2、IIS中对应的虚 3、平台安 第一部分:C/S开发者在使用平台设计软件系统时,一般需要自己设计两个组件,一个部署在客户端,在EntityObjectFactoryeof=Jeez.Core.EntityObjectListdataEntityObjectList={foreach(EntityObjecteoin{intCustomerID=}}eof=EntityObjectFactory.GetInstance(objContext,EntityObjecteo=eof.FindFirst("HouseID={0}",HouseID);if(eo==null){eo=eof.CreateObject();eo.SetProperty("HouseID",HouseID);}eo2.SetProperty("ResidentID1);Jeez.Control.JeezUltraTextBox.JeezUltraTextBoxtxtCustomerbase.GetControlByName("txtCustomer")asJeez.Control.JeezUltraTextBox.JeezUltraTextBox;txtCustomer.PropertyPage.TexteoCustomer.ToString();publicoverridevoidResponseToolClickEvent(objectsender,Infragistics.Win.UltraWinToolbars.ToolClickEventArgse,object{Jeez.FormProperty.JeezTooltool=ToolasJeez.FormProperty.JeezTool;{casecase Batodify();//自定义菜单项目的实现方法case{}}}比如增加WhereOrderby排序。通过一个示例来说明操作方法:publicoverridevoidRefreshList(){//base.ReportListData调用自己实现的类。类名为:EmployeeSalaryDheckInputDatabase.ReportListData=newEmployeeSalaryDheckInputData();base.ReportListData.objContext=this.objContext;base.ReportListData.FormPropertyPage=this.FormPropertyPage;}publicclassEmployeeSalaryDheckInputData:{publicEmployeeSalaryD:{}publicoverridestring{stringstrsqlwhere=base.GetRptListSQLWhere();StringBuildersb=newStringBuilder();if(strsqlwhere.Length=={sb.Append("WHERE}{sb.Append("AND}

sb.Append("exists(selectc.IDfromsb.Append("(selecta.IDfromJzSalaryItemainnerjoinjzEmployeeSalaryCalcStandardsb.Append("ona.ID=b.SalaryItemIDandb.EmployeeID=[jzEmployee].[ID])c");sb.Append("wherec.ID=[jzSalaryItem].ID)");strsqlwhere=strsqlwhere+sb.ToString();returnstrsqlwhere;}//重新构造sql的orderpublicoverridestringGetRptListSqlOrderBy(refstring{stringstrSqlOrderBy=base.GetRptListSqlOrderBy(refstrSqlOrderBy=strSqlOrderBy.Rece("[jzSalaryItem].[Name]","[jzSalaryItem].[ID]");if(strSqlOrderBy.Length==0){strSqlOrderBy="ORDERBY}return}publicoverridestringGetRptListSQLSelect(outstringstaticSql,bool{}publicoverridestring{}//重新构造sql的GroupBypublicoverridestring{}}protectedoverridevoidJeezTree_AfterSelect(objectInfragistics.Win.UltraWinTree.SelectEventArgs{this.Cursor this.CurTreeNodee.NewSelections[0];Jeez.Runtime.Base.General.RunTimefilterDefinefd;Infragistics.Win.UltraWinTree.UltraTreeNodenode=e.NewSelections[0];EntityObjecteo=node.TagasEntityObject;StringBuildersb=newStringBuilder();if(eo!=null){if(eo.EntityMap.EntityID=={sb.AppendSelecto.IDFromjzOrganizationoleftjoinjzOrganization_Hiberarchyhono.ID=h.ChildIDWheresb.Append("oro.ID=");sb.Append(")");fd=newJeez.Runtime.Base.General.RunTimefilterDefine("[8216]",0, pare.In,Jeez.FormProperty.FilterDefineLogic.AND,}}this.Cursor }SQLSQL来获取某个特殊的值,Jeez.Core.INativeQueryquery= mandcmd= mandText=sql;System.Data.DataTabletable=query.GetDataTable(objContext.ConnectionString,query.ExecuteNonQuery(this.objContext.ConnectionString,cmd);RemoteObject=this.objContext.GetRemoteObject("组件名","类名返回值=(返回值数据类型 .Invoke("方法名",传递到的参数示,展示软件界面的友。示例说明如下:mon.UI.MainStatusBar.StatusBarMainTextmon.UI.MainStatusBar.ProgressBarVisible=true;//显示进度条mon.UI.MainStatusBar.ProgressBarValue=0;//进度条开始值mon.UI.MainStatusBar.ProgressBarMaxValueht.Count;//进度条最大值mon.UI.MainStatusBar.StatusBarMainText="正在计算滞纳金...";mon.UI.MainStatusBar.ProgressBarValue+=mon.UI.MainStatusBar.ProgressBarVisible=Jeez.FormProperty.JeezTooltool=ToolasJeez.FormProperty.JeezTool;if( boolbEdit 的记录,对应的单据ID,平台框架提供了快速获取的方法。intBillID=EntityObjecteo=this.lblInfo.Text缓存,保证和数据同步。如下:EntityIDEnum.SalaryCalcYearMonthPutNothis.OperateTypeJeez.Runtime.Base.General.BillOperateType可以枚举所有单据操作类型。if(this.OperateType==Jeez.Runtime.Base.General.BillOperateType.New){}{//this.ListReportForm表示父一览表窗体。foreach(ControlHelperctlinthis.ListReportForm.ControlList){e.Cell.Row.Cells["Format"].Appearance.BackColor=System.Drawing.Color.White;//背景为白色e.Cell.Row.Cells["Format"].ActivationInfragistics.Win.UltraWinGrid.Activation.AllowEdit;e.Cell.Row.Cells["Format"].ValueDBNull.Value;//表格赋空值e.Cell.Row.Cells["Format"].Appearance.BackColor=System.Drawing.SystemColors.Info;e.Cell.Row.Cells["Format"].ActivationInfragistics.Win.UltraWinGrid.Activation.NoEdit;的内容选项。平台运行时框架提供了完整接口,在实际编码的时候,只需要重载基类的FillValueListByGetEntityObjectListprotectedoverrideJeez.Core.EntityObjectListFillValueListByGetEntityObjectList(objectsender,Jeez.Core.EntityObjectFactoryEOF){if(sender==cboSettleType)//{returnEntityObjectFactory.GetInstance(this.objContext,EntityIDEnum.SettleType).Find("ID!={0}",}{returnbase.FillValueListByGetEntityObjectList(sender,}}如何获取某个单元格的实体对象对于父子实体性的单据界面,表格中的一行子实体记录,可能包含有多个型字段。比如,销售单明细,就会物料这个实体。那么具体到某个型单元格,如何获取指定单元格引ceSelectedItem.DataValueEntityObjecteo=//获取实体对象的职员对象,对应的组织机构实体对象EntityObjectorg=//通过GetChildEntityObjects方法获取,其中:EntityIDEnum.PrjJnlTollItem指子实体的实体ID 如何获取对象文本框所指定的对象实体如何获取文本框的实体对象ID呢?//通过文本框的tag属性记录的实体对象ID,txtHouse.TagEntityObjecteo=eof.FindObject(txtHouse.Tag)publicoverridevoidFillControlValueList(object{Jeez.Control.JeezGrid.JeezGridgrid=senderasJeez.Control.JeezGrid.JeezGrid;if(grid==null){}{Infragistics.Win.ValueListvl=newInfragistics.Win.ValueList();Infragistics.Win.ValueListItemvlItem;if(eolListStd!={foreach(EntityObjecteoListStdin{vlItem=newvlItem.DataValueeoListStd.PrimaryKeyValue;/vlItem.DisyText=eoListStd.GetProperty("Name").ToString();}}cell.ValueListvl;}}如何在关联对象的文本框或者表格单元格,通过代码来实现F8窗体调用protectedoverridevoidTextBox_EditorButtonClick(objectsender,Infragistics.Win.UltraWinEditors.EditorButtonEventArgse){Jeez.Control.JeezUltraTextBox.JeezUltraTextBoxtbsenderasif(tb.Name=="txtCustomer"){(((Jeez.Control.JeezUltraTextBox.JeezUltraTextBox)this.GetControlByName("txtRoom")).Tag!=null){intHouseID=if(HouseID>{ArrayListfdLst=newArrayList();Jeez.Runtime.Base.General.RunTimefilterDefinefd;fd=newJeez.Runtime.Base.General.RunTimefilterDefine("{[jzCustomer].[ID]}",0,0, pare.In,Jeez.FormProperty.FilterDefineLogic.NONE,String.Format("(selectCustomerIDfromjzCustomerMigrateRecordHouseID={0}andCustomerMigrateTypeID={1})",HouseID,1));//调用对象一览表,一览表中显示的数据根据fdLst包含的过滤条件过滤后ShowUISelectedForm(tb,EntityIDEnum.Customer,}}}{base.TextBox_EditorButtonClick(sender,}}

protectedoverrideArrayList{Jeez.Runtime.Base.General.RunTimefilterDefinerd;ArrayListar=newArrayList();RunTimefilterDefinerd=newJeez.Runtime.Base.General.RunTimefilterDefine(return }this.CurrentGrid,eolResultEntityObjectFactoryeof=EntityObjectFactory.GetInstance(objContext,FetchSpecificationfsnewFetchSpecification(eof.EntityMap);表示不等于,EqualsPredicate)。fs.Qualifier=newnewJeez.Core.Qualifiers.ColumnQualifier("HouseID",newnewJeez.Core.Qualifiers.ColumnQualifier("MoveOutDate",new,newJeez.Core.Qualifiers.ColumnQualifier("ID",newfs.FetchLimit=1;EntityObjectListeoleof.Find(fs);publicoverridevoid{base.this.CurrentGrid.ReadOnlyfalse;}VS中新建该界面(集成相关的基类VSVS拖入相关的控件,如果运行中看不到拖入的控件,检查该界面类的构造函数中是否包含this.grdTarget=base.AddControl(this.panel.Name,"grdTarget",Jeez.ControlManager.EnumControl.SelectControl.JeezGrid,0,0,10,10)asthis.grdTarget.Dock=panel有平台设计的控件都是添加到panel上,可以通过界面得到this.grdTarget.Height=this.panel.Height/publicoverridebool{boolbbase.LoadUI();cboServiceContent=base.GetControlByName("cboServiceContent")as //通过实体获取到待填充的EntityObjectListeol=EntityObjectFactory.GetInstance(this.objContext,cboServiceContent.Items.Add(foreach(EntityObjecteoineol){}return}protectedoverrideHashtable{Hashtableht=base.LoadControlDataToEntity();if(this.entityobject!=null){this.entityobject.SetProperty("Service",}return}APListbaselist= ,arrFilter)asif(baselist!={baselist.IsSelected=baselist.FormClosed+=newbaselist.CallerForm=}//和新建一个批查询List集合System.Collections.Generic.List<Jeez.Core.BatchFetchSpecfication>list=new//和新建一个批查询规BatchFetchSpecficationFetchSpecification//对象工EntityObjectFactoryfactory;if(gridGeneral!=null){factory=EntityObjectFactory.GetInstance(base.objContext,fs=newFetchSpecification(factory.EntityMap);fs.Qualifier=newnewJeez.Core.Qualifiers.ColumnQualifier("CustomerID",newnewJeez.Core.Qualifiers.ColumnQualifier("Received",newJeez.Core.Qualifiers.EqualsPredicate(false)),newJeez.Core.Qualifiers.ColumnQualifier("CheckID",newJeez.Core.Qualifiers.GreaterThanPredicate(0)));bfs=newBatchFetchSpecfication(fs, }if(gridMeter!={factory=EntityObjectFactory.GetInstance(base.objContext,fs=newFetchSpecification(factory.EntityMap);fs.Qualifier=newJeez.Core.Qualifiers.AndQualifier(newJeez.Core.Qualifiers.ColumnQualifier("CustomerID",newnewJeez.Core.Qualifiers.ColumnQualifier("Received",newJeez.Core.Qualifiers.EqualsPredicate(false)),newJeez.Core.Qualifiers.ColumnQualifier("CheckID",newbfs=newBatchFetchSpecfication(fs, }HashTableKeyEntityMap,ValueHashtableht=protectedoverrideboolDeleteValidate(Jeez.Core.EntityObjecteo,refstring{if(base.DeleteValidate(eo,ref{returntrue;}return}protectedoverrideboolCheckValidate(EntityObjecteo,boolbCheck,refstring{returnContractCheckValidate(eo,bCheck,ref}publicoverrideboolSaveValidate(EntityObjecteo,refstring{if(base.SaveValidate(eo,ref{if(AddAllRecievedAmount(eo,ref写好好服务端代码后通过在客户端的界面的代码的方法Se ame指定你这个界面要调用protectedoverridevoid ame(outstringServerDllName,outstring{ServerDllName="Jeez.PropertyManageMent.Data.dll";ServerClassName="Jeez.PropertyManageMent.Data.ReceiveServer";}SQLSQLSQLSQL,进行过滤,一般情况下,SQL等页签都应该只用主过滤进行过滤条件输入具体示例可以参考示例程序中的Jeez.PropertyManagement.Toll.TollItemReceivedSumFilter如何附加第界代码调用这个界面,然后平台中的新建空白通用表单界面指向这个新的.NET如何编写软件检查代系统允许采用软License和加密狗,但两者都必须实现接 publicclass {#regionICheckLicense mon.Enum.TrialTypeCheckLicense(stringconnInfo,stringuserName,refmon.LicenseMan.JeezLicenselicense,stringServerHarddiskNo,stringServerCpuNo,stringHarddiskNo,stringCpuNo,stringsysType,GuidoldID,outGuiduserExistActiveRecordId,refstringverifycode){stringprivateKey=’’//配置工具(Jeez.ReleaseTool.exe)工具生成的私钥,公钥在verifycode Convert.FromBase64String(verifycode),false);//用私钥平台登陆时加密动态生成userExistActiveRecordIdGuid.Empty mon.Enum.TrialType.LoginOk;//调用加密狗API获取加密狗是否存在(或者检查}publicvoidGetLicense(ref mon.LicenseMan.JeezLicenselicense,refstring{stringprivateKey=’’//配置工具(Jeez.ReleaseTool.exe)工具生成的私钥,公钥在verifycode= Convert.FromBase64String(verifycode),false);//用私钥平台登陆时加密动态生成的API或Lincese文件中的信息获取加密狗的信息填充到license}}第二部分:B/SB/s代码包括客户端的和服务端代码两部分,客户端通过3个js文件提供了大量方法供使用,并有详细的注释,请先仔细阅读这3个的注释:mon/Me mon.js、mon/JeezWebControl.js。VS2005VS2005 vartxtCustomer=GetControlByName('5',个性菜单项,都需要自己编码在客户端的Custom_ResponseToolClickEvent方法中来实现。//处理自定义菜单和工具条按钮,如果想自己处理菜单和某个按钮,则返回true,否则返回falsefalse///<paramname="item///<paramname="key"///<paramname="isOppositeOperation"functionCustom_Response{return}OrderbypublicoverridevoidRefreshList(){//base.ReportListData调用自己实现的类。类名为:EmployeeSalaryDheckInputDatabase.ReportListData=newEmployeeSalaryDheckInputData();base.ReportListData.objContext=this.ObjContext;base.ReportListData.FormPropertyPage=this.FormProperty;}SQL:Jeez.Web.Runtime.Data.ReportListpublicclassEmployeeSalaryDheckInputData:{publicEmployeeSalaryD:{}sqlWherepublicoverridestring{stringstrsqlwhere=base.GetRptListSQLWhere();StringBuildersb=newStringBuilder();if(strsqlwhere.Length=={}{}

sb.Append("WHEREsb.Append("ANDb}

sb.Append("exists(selectc.IDfromsb.Append("(selecta.IDfromJzSalaryItemainnerjoinsb.Append("ona.ID=b.SalaryItemIDandb.EmployeeID=[jzEmployee].[ID])c");sb.Append("wherec.ID=[jzSalaryItem].ID)");strsqlwhere=strsqlwhere+sb.ToString();returnstrsqlwhere;sqlorderpublicoverridestringGetRptListSqlOrderBy(refstring{stringstrSqlOrderBy=base.GetRptListSqlOrderBy(ref if(strSqlOrderBy.Length=={strSqlOrderBy="ORDERBY}return}publicoverridestringGetRptListSQLSelect(outstringstaticSql,bool{}sqlFrompublicoverridestring{}sqlGroupBypublicoverridestring{}}Jeez.Runtime.Base.General.RunTimefilterDefine条件。通过重载ConstructFilterSettingprotectedoverridevoid{RunTimefilterDefinerd=newRunTimefilterDefine("{essages.ReceiverID}",0,0,1,}SQL在实际开发过程中,可能在某种特殊业务处理情况下,需要通过一段SQLJeez.Core.INative

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论