首页
喃喃低语
Search
1
【061】U9系统报表输出
155 阅读
2
【064】使用脚本查询所有实体扩展字段信息
138 阅读
3
平台领域应用合集 - U9HUB
126 阅读
4
【038】U9私有扩展字段枚举的多语言表的SQL更新
126 阅读
5
【067】U9C获取生产环境数据库连接串
118 阅读
用友U9
登录
Search
竹秋廿九
累计撰写
72
篇文章
累计收到
1
条评论
首页
栏目
用友U9
页面
喃喃低语
搜索到
72
篇与
竹秋廿九
的结果
2025-04-07
【011】获取多语言表对应的扩展字段的显示名称
if(OBJECT_ID('fn_CombineDisplayName') is not null) drop function fn_CombineDisplayName go CREATE FUNCTION fn_CombineDisplayName ( @CombineName nvarchar(max), -- 多语言表的CombineName @Num int -- 第几个扩展字段,私有扩展段+50 ) RETURNS nvarchar(max) AS BEGIN declare @Result nvarchar(max)='' declare @sep varchar(6),@sepLen int,@indexS int set @sep='#@#' set @sepLen=Len(@sep) set @indexS=CHARINDEX(@sep, @CombineName) if(@Num=1) begin set @Result = substring(@CombineName, 1, @indexS - 1) end else begin declare @i int set @i=2 while(@i<@Num) begin set @indexS=CHARINDEX(@sep, @CombineName, @indexS + @sepLen) set @i+=1 end set @indexS = @indexS + @sepLen set @Result = substring(@CombineName, @indexS, CHARINDEX(@sep, @CombineName, @indexS) - @indexS) end return @Result END -- 示例 -- declare @str nvarchar(max)='裁板#@#电建地产-云立方#@#研发类#@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@#1231314#@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@##@#' -- select dbo.fn_CombineDisplayName(@str, 3) GO
2025年04月07日
17 阅读
0 评论
0 点赞
2025-04-07
【010】打印_报表自定义字段拉取扩展字段自定义值集的名称
ZDY023 是自定义值集的值集编码select B.Name from UFIDA::U9::Base::FlexField::ValueSet::DefineValue B where B.ValueSetDef.Code='ZDY023' and B.Code in ( ...查询扩展字段Code的语句... )例如:帝欧系统-成品入库单-扩展字段 2(入库部门)select B.Name from UFIDA::U9::Base::FlexField::ValueSet::DefineValue B where B.ValueSetDef.Code='ZDY023' and B.Code in ( select UFIDA::U9::Complete::RCVRpt::RcvRptDocLine.RcvRptDoc.DescFlexField.PrivateDescSeg2 as 实体扩展字段_私有段2 from UFIDA::U9::Complete::RCVRpt::RcvRptDocLine where UFIDA::U9::Complete::RCVRpt::RcvRptDocLine.RcvRptDoc.DocNo='Co-2202094285')成品入库单操作示例.mp4您的浏览器不支持 HTML5 视频,请下载Chrome或者Edge浏览器。
2025年04月07日
43 阅读
0 评论
0 点赞
2025-04-07
【009】出货单事务外连续提交审核(清空U9Finder的查询缓存)
UFSoft.UBF.PL.Engine.Cache.PLCacheManager.DataCache.FlushCache(); UFSoft.UBF.PL.Engine.Cache.PLCacheManager.ObjectCache.FlushCache(); Ship shipdoc = Ship.Finder.FindByID(shipID); // 出货单 // 提交 ShipmentSubmitProxy submitpx = new ShipmentSubmitProxy(); submitpx.ShipmentKey = shipID; submitpx.SysVersion = shipdoc.SysVersion; submitpx.Do(); UFSoft.UBF.PL.Engine.Cache.PLCacheManager.DataCache.FlushCache(); UFSoft.UBF.PL.Engine.Cache.PLCacheManager.ObjectCache.FlushCache(); shipdoc = Ship.Finder.FindByID(shipID); // 出货单 // 审核 ShipmentApproveProxy apppx = new ShipmentApproveProxy(); apppx.ShipmentKey = shipdoc.ID; apppx.SysVersion = shipdoc.SysVersion; apppx.Do();
2025年04月07日
9 阅读
0 评论
0 点赞
2025-04-07
【008】参照显示查询方案按钮
在参照ref的Extend上加上这行代码public override bool UseQueryCase { get { return true; } }
2025年04月07日
25 阅读
0 评论
0 点赞
2025-04-07
【007】补丁工具需要的存储过程
/****** Object: StoredProcedure [dbo].[AllocBuildSerials] Script Date: 2021/11/1 10:13:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE OR ALTER PROCEDURE [dbo].[AllocBuildSerials] @AllocCount INT OUTPUT, @StartSN BIGINT OUTPUT AS BEGIN DECLARE @ReturnValue INT; DECLARE @InstanceName NVARCHAR(256); DECLARE @DatabaseName NVARCHAR(256); SET @InstanceName=CONVERT(NVARCHAR(256), SERVERPROPERTY('servername')); SET @DatabaseName=DB_NAME(); EXEC [dbo].[CLR_AllocSerials] @AllocCount,@InstanceName,@DatabaseName,@StartSN OUTPUT,@ReturnValue OUTPUT RETURN @ReturnValue END GO
2025年04月07日
32 阅读
0 评论
0 点赞
2025-04-07
【006】报表与策略关系绑定
查询报表模板IDselect ID as '策略中使用的ID',* from dbo.UBF_MD_ASRPT_Category where cname like '%管理库龄分析报表%'--报表模板容器名称模板与策略绑定ReportID:报表容器ID。Type:策略类。Assembly:策略所在DLL<UserReportStrategy ReportID="238BE065-8197-49AB-ABD6-DBEB3B9009B1" Type="UFIDA.U9.UserDefine.CA.RptProcessStrategy.ManuPlanStrategy" Assembly="UFIDA.U9.UserDefine.CA.RptProcessStrategy" />策略文件部署策略文件位置把策略文件部署到文件夹:U9\Portal\UILib找到配置文件U9\Portal\UserReportStrategyConfig.xml若没有则新建 格式为: <UserReportStrategyConfig> …配置节… </UserReportStrategyConfig>添加配置节ReportID:报表容器ID。Type:策略类。Assembly:策略所在DLL<UserReportStrategy ReportID="4652225b-8b46-4bd4-a347-d5751c05acc7" Type="UFIDA.U9.UserDefine.CA.RptProcessStrategy.ManuPlanStrategy" Assembly="UFIDA.U9.UserDefine.CA.RptProcessStrategy" />报表属性模板描述:在Portal导航栏显示的名称策略类型全称:报表策略类命名空间+类名策略程序集:策略类所在的程序集dll名称,不需要写程序集后缀.dll
2025年04月07日
22 阅读
0 评论
0 点赞
2025-04-07
【005】报表参数-枚举ID查询
报表参数,为枚举类型即下拉选择:根据枚举全名(数据字段查找实体下枚举全名)查找出枚举ID,在报表参数中,选择参照类型为Enumerator,枚举ID输入以下查询出的枚举ID,输入UBF中的枚举ID输入框中,点击加载即可declare @FN varchar(550), @ClsID bigint, @UID varchar(50) select @FN='UFIDA.U9.CBO.Enums.DemandCodeEnum' -- 此处只需填入需要查询的枚举FullName,示例为标准产品的需求分类枚举 select @ClsID=Local_ID,@UID=ID from UBF_MD_Class where FullName=@FN and ClassType=3 select @UID
2025年04月07日
30 阅读
0 评论
0 点赞
2025-04-07
【004】客开参照多选
将参照设置为多选参照在ConfirmButton_Click_Extend函数中判断并实现多选返回private void ConfirmButton_Click_Extend(object sender, EventArgs e) { //调用模版提供的默认实现.--默认实现可能会调用相应的Action. string script = ""; string returnXml = GetReturnXML(); if (string.IsNullOrEmpty(returnXml)) { script = "<script language=\"javascript\">window.close();</script>"; AtlasHelper.RegisterAtlasStartupScript((Control)TopLevelContainer, this.GetType(), "ReferenceReturn", script, false); return; } string xml = UFIDA.U9.UI.Commands.CommandHelper.EscapeHTML(returnXml); // 编码 script = string.Format("<script language=\"javascript\">window.returnValue=\"{0}\"; window.close(); </script>", xml); AtlasHelper.RegisterAtlasStartupScript((Control)TopLevelContainer, this.GetType(), "ReferenceReturn", script, false); ConfirmButton_Click_DefaultImpl(sender,e); } private string GetReturnXML() { IUIView view = this.Model.cRef; StringBuilder returnXml = new StringBuilder("<ReferenceReturns>"); List<string> ids = new List<string>(); List<string> codes = new List<string>(); List<string> names = new List<string>(); //从缓存中读取选中的记录 IList<IUIRecord> selRecordList = view.Cache.GetSelectRecord(); if (selRecordList != null && selRecordList.Count > 0) { foreach (cRefRecord record in selRecordList) { ids.Add(record["ID"].ToString()); codes.Add(record["Code"].ToString()); names.Add(record["Name"].ToString()); } } else { foreach (cRefRecord record in view.SelectRecords) { ids.Add(record["ID"].ToString()); codes.Add(record["Code"].ToString()); names.Add(record["Name"].ToString()); } } returnXml.Append("<ReferenceReturn>"); returnXml.AppendFormat("<ReturnField name=\"ID\" value=\"{0}\"/>", string.Join(",", ids));// returnXml.AppendFormat("<ReturnField name=\"Code\" value=\"{0}\"/>", string.Join(",", codes));//Code集合 returnXml.AppendFormat("<ReturnField name=\"Name\" value=\"{0}\"/>", string.Join(",", names));//name集合 //G类档案,多组织ID转换======= returnXml.AppendFormat("<ReturnField name=\"{0}\" value=\"Code\"/>", UFIDA.U9.UI.PDHelper.Commands.ReferenceMultiOrgInitComplete.MultiRefIDFlag); //=======end=========== returnXml.Append("</ReferenceReturn>"); returnXml.Append("</ReferenceReturns>"); return returnXml.ToString(); }启用U9系统参照的多选【017】启用U9系统参照的多选
2025年04月07日
14 阅读
0 评论
0 点赞
2025-04-07
【003】U9状态按钮水印效果
private void SetWaterMark() { RtnProfitOrderRecord headRecord = this.Model.RtnProfitOrder.FocusedRecord; if (headRecord == null) return; if (headRecord.DocStatus == 0L) { UFWaterMark mark_Opened = new UFWaterMark(); mark_Opened.TargetControl = this.DocStatus139; mark_Opened.WaterMarkType = enuMarkType.Open; } if (headRecord.DocStatus == 1L) { UFWaterMark mark_Approving = new UFWaterMark(); mark_Approving.TargetControl = this.DocStatus139; mark_Approving.WaterMarkType = enuMarkType.Approving; } if (headRecord.DocStatus == 2L) { UFWaterMark mark_Approved = new UFWaterMark(); mark_Approved.TargetControl = this.DocStatus139; mark_Approved.WaterMarkType = enuMarkType.Approved; } if (headRecord.DocStatus == 3L) { UFWaterMark mark_Approved = new UFWaterMark(); mark_Approved.TargetControl = this.DocStatus139; mark_Approved.WaterMarkType = enuMarkType.Colse; } }
2025年04月07日
23 阅读
0 评论
0 点赞
2025-04-07
【002】把客开的可扩展的枚举下拉前面的Code显示去掉
UBF上正常设置可扩展=True数据库使用SQL把可扩展更改为False做完这一步界面上的下拉框就不包含Code了,但是自定义代码那边无法编辑-- Code为枚举全称 update UBF_Sys_ExtEnumType set [IsExtend]=0 where Code in ('UFIDA.U9.XX.XXX1Enum','UFIDA.U9.XX.XXX2Enum','UFIDA.U9.XX.XXX3Enum')开发UI插件新建UDCUUIPlugIn.cs需要引入自定义代码的DLL:~/Portal/UILib/UFIDA.U9.Base.UDCUI.WebPart.dllusing System; using UFIDA.U9.Base.UDC.UDCUI; using UFSoft.UBF.UI.ControlModel; using UFSoft.UBF.UI.IView; namespace UFIDA.U9.SH.UIPlugIn { // UFIDA.U9.Base.UDC.UDCUI.UDCUIWebPart public class UDCUUIPlugIn : UFSoft.UBF.UI.Custom.ExtendedPartBase { private readonly string[] canEditCodes = new string[] { "UFIDA.U9.XX.XXX1Enum","UFIDA.U9.XX.XXX2Enum","UFIDA.U9.XX.XXX3Enum" }; public override void BeforeDataBinding(IPart Part, out bool executeDefault) { base.BeforeDataBinding(Part, out executeDefault); if (Part is UDCUIWebPart) { // Code486中存储的就是选择的实体的全称 IUFFldTextBox code = Part.GetUFControlByName(Part.TopLevelContainer, "Code486") as IUFFldTextBox; if (code == null || Array.IndexOf(canEditCodes, code.Text) == -1) return; IUFDataGrid dataGrid = Part.GetUFControlByName(Part.TopLevelContainer, "DataGrid1") as IUFDataGrid; if (dataGrid == null || dataGrid.EditStatus == EditStatus.Edit) return; dataGrid.EditStatus = EditStatus.Edit; } } } }UI配置文件参考不在WebPartExtend.config中追加新建UI插件配置文件名称:WebPartExtend_UDCUIPlugin.config可直接单独部署到Portal目录下,重启IIS即可,配置内容如下<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="WebPartExtend" type="UFSoft.UBF.UI.Custom.ExtendedPartSection, UFSoft.UBF.UI.FormProcess" /> </configSections> <WebPartExtend> <!--自定义代码插件--> <ExtendedPart parentPartFullName="UFIDA.U9.Base.UDC.UDCUI.UDCUIWebPart" extendedPartFullName="UFIDA.U9.SH.UIPlugIn.UDCUUIPlugIn" extendedPartAssemblyName="UFIDA.U9.SH.UIPlugIn.dll" /> </WebPartExtend> </configuration>
2025年04月07日
23 阅读
0 评论
0 点赞
1
...
6
7
8