个人博客 用于记载日常收集的一些技术文章 ...
K3 BOS : 字段映射关系.自定义公式 K3 BOS : 字段映射关系.自定义公式 字段映射关系.自定义公式

FRPDiscountRate if FRPDiscountRate >0 else FDiscountRate

FBaseCanOutQty if (FBaseCanOutQty > 0 or FMaterialId.FErpClsID = '6') else 0
可出数量(销售基本) if (可出数量(销售基本) > 0 or 物料编码.物料属性 = '6') else 0


FStockID if FStockID >0 else 100100
仓库 if 仓库 >0 else 100100

FSOStockId if FSOStockId >0 else FMaterialId.FStockId

{"Id":100100
,"msterID":100100
,"Number":"CK001"
,"MultiLanguageText":[{"PkId":100001,"LocaleId":2052,"Name":"成品仓"}]
,"Name":[{"Key":2052,"Value":"成品仓"}]
}
源单值成品仓与目标字段(名称:出货仓库,key:FStockID)的类型不匹配,无法转换,请检查转换规则字段映射的配置。


FSOStockId if FSOStockId >0 else FMaterialId.FStockId.Id
仓库 if 仓库 >0 else 物料编码.仓库

表达式计算出错: FSOStockId if FSOStockId >0 else FMaterialId.FStockId.Id ( 'Int64' object has no attribute 'Id' )
郭少锋 编辑 2024-02-29 14:13:07 创建 2024-02-29 14:12:02 K3 BOS
K3 BOS : 值更新 公式 K3 BOS : 值更新 公式 ---------------------------------------------------------------------------------------------------------
非寄售,出货仓库为空时 且 非套件父项

FStockID =null AND FBussinessType <> 'CONSIGNMENT' AND FRowType <> 'Parent'
出货仓库 =null AND 业务类型 <> 'CONSIGNMENT' AND 产品类型 <> 'Parent'

FStockID = FMaterialID.FStockId
出货仓库 = 物料编码.仓库

---------------------------------------------------------------------------------------------------------
非寄售,出货仓库为空时(拣货未匹配时)且 出货仓位为空时 且非套件父项

FStockID = null AND FStockLocID =null AND FBussinessType <> 'CONSIGNMENT' AND FRowType <> 'Parent'
出货仓库 = null AND 出货仓位 =null AND 业务类型 <> 'CONSIGNMENT' AND 产品类型 <> 'Parent'

FStockLocID = FMaterialID.FStockPlaceId
出货仓位 = 物料编码.仓位
郭少锋 编辑 2024-02-29 14:12:54 创建 2024-02-29 14:12:35 K3 BOS
K3 BOS : 金蝶云 单据转换 K3 BOS : 金蝶云 单据转换 下推 自定义公式

FBaseCanOutQty if (FBaseCanOutQty > 0 or FMaterialId.FErpClsID = '6' ) else 0
可出数量(销售基本) if (可出数量(销售基本) > 0 or 物料编码.物料属性 = '6' ) else 0

"NORMAL" if FBusinessType = 'RETURNSO' else FBusinessType
"NORMAL" if 业务类型 = 'RETURNSO' else 业务类型

郭少锋 创建 2024-02-28 14:04:02 K3 BOS
SQL : MERGE INTO SQL : MERGE INTO
MERGE INTO TMP2ADB50F1D5DD11EEACB30050562 IT
USING(

SELECT T2.FID, SUM(ISNULL(TKE.FBASEQTY, 0)) fbaselockqty, SUM(ISNULL(TKE.FSECQTY, 0)) fseclockqty
FROM T_PLN_RESERVELINKENTRY TKE
RIGHT OUTER JOIN TMP2ADB50F1D5DD11EEACB30050562 T2 ON (( (TKE.FSUPPLYINTERID = T2.FID AND TKE.FSUPPLYFORMID = 'STK_Inventory') AND (TKE.FBASEQTY > 0)) AND TKE.FLINKTYPE = '4')

GROUP BY T2.FID

) IT2 ON (IT.FID = IT2.FID)

WHEN MATCHED THEN UPDATE SET IT.FBASELOCKQTY = IT2.FBASELOCKQTY, IT.FSECLOCKQTY = IT2.FSECLOCKQTY;

郭少锋 创建 2024-02-28 10:31:43 SQL
K3 BOS : K3Cloud 更改 计算机名 IP K3 BOS : K3Cloud 更改 计算机名 IP
-------------------------------------------------------------------------------------------------------------------------------------------------------
更改 计算机名 IP

  DB-762052 / 192.168.188.101
  MC-762052

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
重新注册 管理中心

 1、打开 C:\Program Files (x86)\Kingdee\K3Cloud\ManageSite\App_Data\Common.config,删除<mcdc></mcdc>中间的内容,保存;

  <mcdc>
   <managementCenter Enabled="true" DataCenterID="999" DataCenterNumber="000"
   DataCenterName="管理中心"
   
   DatabaseEntity="K3DBConfiger"
   DatabaseType="MS_SQL_Server"
   CreateTime="01/11/2019 21:38:23"
   DbServerInstance="MC-762052"
   DbUser="sa"
   DbPassword="Xjp6ElPrMHs="
   
   Id="000c2990-6549-96d4-11e9-15a629c60760"
   Encrypted="1" />
  </mcdc>

 2、重启IIS,打开管理中心:http://MC-762052:8000/ ( http://IP或机器名:8000/ )

  【提示】还没有管理中心,请选择数据库类型进行创建或者注册管理中心
  
  注册
  
   数据库服务器:192.168.188.101 新IP
   身份验证:SQL Server身份验证
   连接用户名: sa / sql2014
   数据库实体: K3DBConfiger


-------------------------------------------------------------------------------------------------------------------------------------------------------
 打开 C:\Program Files (x86)\Kingdee\K3Cloud\ManageSite\App_Data\Common.config,修改以下内容,保存;

  <!--管理中心Url-->
  <add key="managementSiteUrl" value="http://localhost:8000/" />


-------------------------------------------------------------------------------------------------------------------------------------------------------
 打开 C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\App_Data\Common.config,修改以下内容,保存;

<!--管理中心Url-->
<add key="managementSiteUrl" value="http://localhost:8000" />


-------------------------------------------------------------------------------------------------------------------------------------------------------
 打开 C:\Program Files (x86)\Kingdee\K3Cloud\FileService\App_Data\Common.config,修改以下内容,保存;

<add key="managementSiteUrl" value="http://localhost:8000" />


-------------------------------------------------------------------------------------------------------------------------------------------------------
 打开 C:\Program Files (x86)\Kingdee\K3Cloud\ManageSite\App_Data\KDEnvironment.xml,更改 计算机名,保存;

   HostName="MC-75" 改成新名称 HostName="localhost"


-------------------------------------------------------------------------------------------------------------------------------------------------------
 打开 C:\Program Files (x86)\Kingdee\K3Cloud\BBCMallSite\App_Data\SiteInfo.xml,更改 计算机名,保存;

  <MCUrl>http://MC-75:8000</MCUrl> 改成新名称 http://MC-762052:8000

  更改完后,重启 IIS
郭少锋 创建 2024-02-27 09:21:32 K3 BOS
K3 BOS : 单据 FID 递增 K3 BOS : 单据 FID 递增 declare @FInterID_Max int exec GetICMaxNum 'ICStockBill',@FInterID_Max output -- ICStockBill.FID 【每次递增 1】
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 递增:数据表 FID

declare @FID int select @FID = max(FInterID) from ICStockBill -- FID 最大值

update ICMaxNum set FMaxNum = @FID + 1 where FTableName = 'ICStockBill'
郭少锋 编辑 2024-02-03 23:07:12 创建 2024-02-03 21:13:57 K3 BOS
K3 BOS : 组合表头 显示的列太多(超过35列) K3 BOS : 组合表头 显示的列太多(超过35列)
#region - 简单账表 表单构建插件:销售出库跟踪分析表 - 取消限制 【组合表头 显示的列太多(超过35列)】 -
[Kingdee.BOS.Util.HotUpdate]
[Description("简单账表 表单构建插件:销售出库跟踪分析表")]
public class BuilderPlugIn : AbstractDynamicWebFormBuilderPlugIn
{
/* 使用方法:
用记事本打开 表单文件 C:\Users\Administrator\Desktop\销售出库跟踪表改进\DataModel_20\XSYFX_a4cfb1cf\PSFG_20200610.dym
找到以下位置
<SysReportForm action="edit" oid="BOS_SimpleSysReport" ElementType="900" ElementStyle="0">

在上面这一行文字下,添加以下内容, <ClassName> 表单构建插件的名称 </ClassName>

<WebFormBuilderPlugins>
<PlugIn ElementType="0" ElementStyle="0">
<ClassName>PSFG.Report.PSFG_200610.BuilderPlugIn, PSFG.K3.BusinessPlugIn</ClassName>
<OrderId>1</OrderId>
</PlugIn>
</WebFormBuilderPlugins>

下面这些 原有的 表单服务插件

<SysReportServicePlugins>
<PlugIn ElementType="0" ElementStyle="0">
<ClassName>PSFG.Report.SCM.Sale200610.ServicePlugIn.Show, PSFG.Report.SCM.Sale200610.ServicePlugIn</ClassName>
<OrderId>1</OrderId>
</PlugIn>
</SysReportServicePlugins>

<Id>PSFG_20200610</Id>
<FilterObject>PSFG_20200610F</FilterObject>
添加完后,保存,右击【简单账表】【销售出库跟踪分析表】,选择【同步业务对象】,就不会再有提示了。
*/
public override void CreateControl(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.CreateControlEventArgs e)
{
if (e.ControlAppearance.Key.EqualsIgnoreCase("FList"))
{
e.Control["enforcemerge"] = true;
}
base.CreateControl(e);
}
}
#endregion
郭少锋 创建 2024-01-26 10:34:53 K3 BOS
K3 BOS : xml 编辑 K3 BOS : xml 编辑 select * from T_Meta_ConvertRule where FID = 'SeOrder_PickMtrl';

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 查询:单据转换规则

SELECT
a.value('(Name)[1]','varchar(500)') AS FName
,a.value('(SourceEntryKey)[1]','varchar(500)') AS SourceEntryKey
,a.value('(SourceSubEntryKey)[1]','varchar(500)') AS SourceSubEntryKey
,a.value('(TargetEntryKey)[1]','varchar(500)') AS TargetEntryKey
,a.value('(TargetSubEntryKey)[1]','varchar(500)') AS TargetSubEntryKey

,a.value('(FieldMaps)[1]','varchar(max)') AS FieldMaps

from T_Meta_ConvertRule Cross Apply FKernelXml.nodes('/ConvertRuleMetaData/Rule/ConvertRule/Policies/DefaultConvertPolicy') as node(a)

where FID = 'SeOrder_PickMtrl'


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 修改:单据转换规则

update T_Meta_ConvertRule
set FKernelXml.modify('replace value of (/ConvertRuleMetaData/Rule/ConvertRule/Policies/DefaultConvertPolicy/SourceEntryKey/text())[1] with ("FEntity_CL")') -- 主单据体

where FID = 'SeOrder_PickMtrl'

update T_Meta_ConvertRule
set FKernelXml.modify('replace value of (/ConvertRuleMetaData/Rule/ConvertRule/Policies/DefaultConvertPolicy/SourceSubEntryKey/text())[1] with ("")') -- 子单据体

where FID = 'SeOrder_PickMtrl'

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通过XQuery中添加的insert、delete和update关键字提供了对XML DML的支持,使用 insert、delete和update关键字可以分别插入、删除和更新一个或多个节点。例如,在查询窗口中输入以下代码:

UPDATE books
SET xmlCol.modify('
insert
<section num="1">
<content>Background</content>
</section>

after
(/book/title)[1]

')
where id = 1

郭少锋 编辑 2024-01-15 15:32:05 创建 2024-01-15 15:29:29 K3 BOS
用友 : C# 常用函数 用友 : C# 常用函数 常用函数 Math.Abs()、Math.Sign()、Math.Floor()、Math.Ceiling()、Math.Round()

Math.Abs()函数可以返回一个指定数字的绝对值。它可以接受任何数字类型的参数,包括整型、浮点型、双精度型和数字类型。它返回的结果也是相应的数字类型。下面是一个使用Math.Abs()函数的示例:

int num1 = -10;
int num2 = Math.Abs(num1);
Console.WriteLine(num2); // 输出 10

Math.Sign()函数可以返回一个指定数字的符号。它可以接受任何数字类型的参数,包括整型、浮点型、双精度型和数字类型。它返回的结果是-1、0或1,其中-1表示负数,0表示0,1表示正数。下面是一个使用Math.Sign()函数的示例:

int num1 = -10;
int num2 = Math.Sign(num1);
Console.WriteLine(num2); // 输出 -1

Math.Floor()函数可以返回一个指定数字的最大整数,即取小于或等于指定数字的最大整数。它可以接受任何数字类型的参数,包括整型、浮点型、双精度型和数字类型。它返回的结果也是相应的数字类型。下面是一个使用Math.Floor()函数的示例:

double num1 = 10.5;
double num2 = Math.Floor(num1);
Console.WriteLine(num2); // 输出 10

Math.Ceiling()函数可以返回一个指定数字的最小整数,即取大于或等于指定数字的最小整数。它可以接受任何数字类型的参数,包括整型、浮点型、双精度型和数字类型。它返回的结果也是相应的数字类型。下面是一个使用Math.Ceiling()函数的示例:

double num1 = 10.5;
double num2 = Math.Ceiling(num1);
Console.WriteLine(num2); // 输出 11

Math.Round()函数可以返回一个指定数字的四舍五入结果。它可以接受任何数字类型的参数,包括整型、浮点型、双精度型和数字类型。它返回的结果也是相应的数字类型。下面是一个使用Math.Round()函数的示例:

double num1 = 10.5;
double num2 = Math.Round(num1);
Console.WriteLine(num2); // 输出 11

以上就是,通过这些函数可以方便地获取绝对值,从而更好地处理数据。
郭少锋 创建 2024-01-13 20:35:02 用友
K3 BOS : C# 数组:列表 K3 BOS : C# 数组:列表 C# 数组:列表

var list = new List<int>();

List 是个强类型,很安全。 它是 C#2.0 时加入的泛型(尖括号),所以并不存在像 ArrayList。

List 通过索引分配,索引从 0 开始。可以通过索引来读取值:


using System;
using static System.Console;
using System.Collections.Generic;

namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
var a = new List<int>();

a.Add(2); // 添加数据
a.Add(6);
a.Add(2);
a.Add(10);

Console.WriteLine($"第一个数为 {a[0]} "); // 读取数据

a.Remove(2); // 删除:第一个匹配此条件的项

a.Sort(); // 用系统默认的方式对项进行排序


foreach ( var a2 in a ) // 逐个读取数据
{
WriteLine(a2);
}

bool a3 = a.Contains(2); // 是否包含 2

WriteLine(a3);

a.Clear(); // 清空所有项

Console.ReadKey();
}
}
}
郭少锋 创建 2024-01-12 17:30:55 K3 BOS