云星空 : 套打:表尾字段 取得 数据表第一行的 字段值
云星空 : 套打:表尾字段 取得 数据表第一行的 字段值
firstRowData = ""; def OutputElement(e): global pageNumber; global firstRowData; if e.ControlInfo.ControlID == "cell4": if firstRowData =="": # 第一行 firstRowData = e.ControlInfo.Text; elif e.ControlInfo.ControlID == "cell12": e.ControlInfo.Text = firstRowData; # 每一行 elif e.ControlInfo.ControlID == "cell10": if firstRowData !="": # 第一行 e.ControlInfo.Text = "物料编码:" + firstRowData; firstRowData = "";
郭少锋
创建 2024-08-02 10:33:04
云星空
SQL : sql 关联查询 1:查询两个表 相同值的数据
SQL : sql 关联查询 1:查询两个表 相同值的数据
/* sql 关联查询 1:查询两个表 相同值的数据 join 关联的两个表 都存在 相同的字段 并且 字段的值 都一致,才会显示 */ select a11.FID -- 表头内码 ,a12.FEntryId -- 表体内码 ,a11.FDate -- 表头.日期 ,a11.FBillNo -- 表头.单据编号 ,a12.FSeq -- 表体.行号 ,a11.FCustId -- 表头.客户 ,a12.FMaterialId -- 表体.物料编码 ,a12.FUnitId -- 表体.销售单位 ,a12.FQty -- 表体.销售数量 from T_SAL_Order a11 -- 销售订单.表头 join T_SAL_OrderEntry a12 on a12.FID = a11.FID -- 销售订单.表体.订单明细
郭少锋
创建 2024-07-31 10:36:48
SQL
云星空 : sql 关联查询 2:以表1为主,查询表2的值
云星空 : sql 关联查询 2:以表1为主,查询表2的值
/* sql 关联查询 2:以表1为主,查询表2的值 left join 以 a11 为主,关联查询 b21 的字段值 两个数据表 T_SAL_Order 临时名称 a11 t_Sec_User 临时名称 b21 通过不同的字段 a11.FApproverId 和 b21.FUserId 关联在一起 当 a11.FApproverId 和 b21.FUserId 存在相同的值时,就显示 b21.FName 的值;如果值不相同,就显示为 NULL */ select a11.FID -- 表头内码 ,a11.FDate -- 表头.日期 ,a11.FBillNo -- 表头.单据编号 ,a11.FApproveDate -- 表头.审核日期 ,a11.FApproverId -- 表头.审核人 ,b21.FName FApprover -- 审核人.名称 from T_SAL_Order a11 -- 销售订单.表头 left join t_Sec_User b21 on b21.FUserId = a11.FApproverId -- 用户 where a11.FBillNo like '%XRYP240522%'
郭少锋
创建 2024-07-31 10:35:01
云星空
SQL : sql 关联查询 3:销售订单 查询 销售出库数量,计算 未出库数量
SQL : sql 关联查询 3:销售订单 查询 销售出库数量,计算 未出库数量
/* sql 关联查询 3:销售订单 查询 销售出库数量,计算 未出库数量 以销售订单为主 from T_SAL_Order a11 -- 销售订单.表头 join T_SAL_OrderEntry a12 on a12.FID = a11.FID -- 销售订单.表体.订单明细 关联查询 销售出库 left join T_SAL_OutStockEntry_LK b23 on b23.FsId = a12.FEntryId and b23.FsTableName = 'T_SAL_ORDERENTRY' -- 销售出库.源单信息 join T_SAL_OutStockEntry b22 on b22.FEntryId = b23.FEntryId -- 销售出库.明细信息 join T_SAL_OutStock b21 on b22.FID = b21.FID -- 销售出库.基本信息 排序 order by a11.FDate -- 表头.日期 ,a11.FBillNo -- 表头.单据编号 ,a12.FSeq -- 表体.行号 */ select a11.FID -- 表头内码 ,a12.FEntryId -- 表体内码 ,a11.FDate -- 表头.日期 ,a11.FBillNo -- 表头.单据编号 ,a12.FSeq -- 表体.行号 ,a11.FCustId -- 表头.客户 ,a12.FMaterialId -- 表体.物料编码 ,a12.FUnitId -- 表体.销售单位 ,a12.FQty -- 表体.销售数量 ,b21.FDate -- 销售出库.基本信息.日期 ,b21.FBillNo -- 销售出库.基本信息.单据编号 ,b22.FSeq -- 销售出库.明细信息.行号 ,b22.FUnitId -- 销售出库.明细信息.库存单位 ,b22.FRealQty -- 销售出库.明细信息.实发数量 ,a12.FQty - isnull(b22.FRealQty,0) FQtyRemain -- 未出库数量 from T_SAL_Order a11 -- 销售订单.表头 join T_SAL_OrderEntry a12 on a12.FID = a11.FID -- 销售订单.表体.订单明细 left join T_SAL_OutStockEntry_LK b23 on b23.FsId = a12.FEntryId and b23.FsTableName = 'T_SAL_ORDERENTRY' -- 销售出库.源单信息 join T_SAL_OutStockEntry b22 on b22.FEntryId = b23.FEntryId -- 销售出库.明细信息 join T_SAL_OutStock b21 on b22.FID = b21.FID -- 销售出库.基本信息 order by a11.FDate -- 表头.日期 ,a11.FBillNo -- 表头.单据编号 ,a12.FSeq -- 表体.行号
郭少锋
创建 2024-07-31 10:32:33
SQL
云星空 : C# 表格变量
云星空 : C# 表格变量
在C#中,表格变量通常指的是DataTable对象,它是System.Data命名空间的一部分,用于存储和操作表格形式的数据。 以下是创建和使用DataTable的一个简单示例: using System; using System.Data; namespace DataTableExample { class Program { static void Main(string[] args) { // 创建一个名为"Employees"的DataTable实例 DataTable table = new DataTable("Employees"); // 添加列 table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Age", typeof(int)); // 添加行 table.Rows.Add(1, "John Doe", 30); table.Rows.Add(2, "Jane Smith", 25); // 遍历表格并打印数据 foreach (DataRow row in table.Rows) { Console.WriteLine($"ID: {row["ID"]}, Name: {row["Name"]}, Age: {row["Age"]}"); } } } }
郭少锋
创建 2024-07-30 11:21:56
云星空
SQL : sql 日期计算
SQL : sql 日期计算
,convert(nvarchar(20) ,a11.FDate ,23) FDate -- 2004-10-15 日期格式 ,left(convert(nvarchar(20) ,a11.FDate ,23) ,7) FMonth -- 2004-10 月份格式 1. 当前系统日期、时间 select getdate() 2. 日期加上2天 select dateadd(day ,2 ,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回 10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select convert(varchar(10),getdate(),120) 当前日期 ,convert(varchar(8),getdate(),114) 当前时间 select datename(dw,'2004-10-15') select datename(week,'2004-10-15') 本年第几周 ,datename(weekday,'2004-10-15') 周几 -------------------------------------------------------------------------------------------------------------- 1. 本月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2. 本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 3.上个月的第一天 select dateadd(m ,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 4.上个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 本周的周一 select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 本周的周一 select dateadd(d ,+0 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) ) 本周的周日 select dateadd(d ,+6 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) ) 上周的周一 select dateadd(d ,-7 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) ) 上周的周日 select dateadd(d ,-1 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) ) 9. 本年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 13. 本年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。 11. 去年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 10. 季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 12. 本月的第一个周一 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate)),getdate))),0)
郭少锋
创建 2024-07-29 14:05:37
SQL
K3 BOS : sql 日期计算
K3 BOS : sql 日期计算
一.日期處理函數 1.日期增減函數 dateadd(datepart,number,dtae) datepart:是規定應向日期的哪一部分返回新值的參數。下列是sql server支持的日期部分\縮寫及含義。 日 期部分 縮 寫 含義 year yy,yyyy 年份 quarter qq,q 季度 month mm,m 月份 dayofyear dy,y 日 day dd,d week wk,ww 星期 hour hh 小時 minute mi,n 分鐘 second ss,s 秒 millisecond ms 毫秒 number:是用來增加datepart的值。正數表示增加,負數表示減少,如果指定的是非整數值,則忽略此值的小 數部分,不做四舍五入處理,例如,dateadd(day,1.7,date),表示date增加1天。 date:是返回datetime或smalldatetime值或日期格式字符串的表達式。 2.日期差值計算函數 datediff(datepart,startdate,enddate) datepart:規定了應在日期的哪一部分計算差值。 startdate:計算的開始日期。 enddate:計算的終止日期。 set datefirst函數是設置一周的第一天是星期幾。 二.日期推算處理 1.指定日期該年的第一天或最後一天 對於年的第一天或最後一天,它們的月日信息(第一天為1月1日、最後一天為12月31日)都是固定的,反以只需取 出指定日期的年份,再加上月份和天(字符串相加)就可以了。 年的第一天: select convert(char(5),<date>,+"1-1" 年的最後一天: select convert(char(5),<date>,+12-31" 2.指定日期所在季度的第一天或最後一天 首 先分析月份,可以用Datepart(quarter,date)函數取得指定日期所在的季度,一個季度有3個月份,所以 datepart(quarter,date)*3就是該季度的最後一個月的月份,再減去2就是該季度最早一個月的月份。接下來要把指定日期的月份轉換到 這個推算出的月份,可以把指定日期減去指定日期的月份數,得到指定日期所在年的上一年的最後一個月,然後再加上由季度推算出來的月份數。 再 分析天的處理,對於第一天,可以直接取得換算後的年月信息字符串,再用字符串相加上天的信息,轉換回日期型就是指定日期所在季度的第一天;對於最後一天, 由於一年就4個季度,對就的每季度的最後一個月份分別是3、6、9、12這4個月,它們的最後一天是確定的,分別是31、30、30、31,所以完全可以 用CASE來判斷處理。另一種方法用所在季度最後一個月的下一個月的第一天減1天。 季度的第一天: select conver(datetime,convert(char(8),dateadd(month,datepart(quarter,<date>)*3-2,dateadd(month,-month(<date>),<date>)),120)+"1") 季 度的最後一天(CASE判斷 法):select convert(datetime,convert(char(8),dateadd(month,datepart(quarter,)*3,dateadd(month,- month(<date>),<date>)),120)+case when datepart(quarter,<date>) in(1,4) then '31' else'30' end) 季度的最後一天直接推算法: dateadd(day,-1,convert(char(8),dateadd(month,datepart(quarter,<date>)*3+1,dateadd(month,-month(<date>),<date>)),120)+'1') 3.指定日期所在月份的第一天或最後一天 所 在月份的第一天固定為1,只需要取出指定日期的年月部份再加上1就行了。對於月份的最後一天,它隨月份不同而不同,而且還會受平年與閏年的影響,不過當前 月份的最後一天肯定是它下個月的1號減去1天,而下個月的1號很容易確定,所以只需要取得指定日期的下個月的1號的日期,然後減1天就行了。 在推算日期所在月份最後一天的處理中,一個容易犯的錯誤是:將指定日期減去當前日期的天數,得到指定日期的上一個月的最後一天。如使用這種處理方法,當指定日期上個月的天數比指定日期把在月份的天數多時,不會出現問題。否則就會少計算天數。 月的第一天: select convert(datetime,convert(char(8),<date>,120)+'1') 月的最後一天: select dateadd(day,-1,convert(char(8),dateadd(month,1,<date>),<date>),120)+'1') 月的最後一天(容易使用的錯誤方法): select dateadd(month,1,dateadd(day,-day(<date>,<date>)) 4.計算年齡 要 計算准確的年齡,可以這樣考慮,將出生日期的月日部分與當前的日期的月日部分做比較,如果是大於的情況,則表明今年的生日還沒有到,應該將當前日期減去出 生日期的結果再減1年,否則直接是現兩個日期年份相減。但這做忽略了一個特殊的日期:閏年的2月29號,這個日期出的人,在平年的時候,應該是2月28號 生日,按上面的處理方法恰好是錯過了一天,所以完善的解決方法是,將出生日期的年份增加到與當前日期相同,然後再與當前日期比較,如果大於,則年齡為當前 日期減去出生日期的結果再減1年,否則是兩個日期直接相減。 處理代碼如下(其中,<birthday>是出生日期,<current_date>是當前日期)。 select datediff(year,<birthday>,<current_date>)-case when dateadd(year,datediff(year,<birthday>,<current_date>,<birthday>)><current_date> then 1 else 0 end 日期处理方法 1)去掉时分秒 declare @ datetime set @ = getdate() --'2003-7-1 10:00:00' SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0) 2)显示星期几 select datename(weekday,getdate()) 3)如何取得某个月的天数 declare @m int set @m=2 --月份 select datediff(day,'2003-'+cast(@m as varchar)+'-15' ,'2003-'+cast(@m+1 as varchar)+'-15') 另外,取得本月天数 select datediff(day,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate()) as varchar)+'-15' ,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate())+1 as varchar)+'-15') 或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天 SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))) 4)判断是否闰年: SELECT case day(dateadd(mm, 2, dateadd(ms,- 3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then ' 平年' else '闰年' end 或者 select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01')) when 28 then '平年' else '闰年' end 5)一个季度多少天 declare @m tinyint,@time smalldatetime select @m=month(getdate()) select @m=case when @m between 1 and 3 then 1 when @m between 4 and 6 then 4 when @m between 7 and 9 then 7 else 10 end select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' select datediff(day,@time,dateadd(mm,3,@time))
郭少锋
编辑 2024-07-29 14:03:50
创建 2023-05-13 09:11:48
K3 BOS
SQL : sql:流水号 前 补零
SQL : sql:流水号 前 补零
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --【函数】【删除】 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.aNum') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION dbo.aNum GO -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --【函数】 select dbo.aNum( 35 ,5 ,'0' ) 【流水号】【序号】【补零】 create function dbo.aNum ( @Int int ,@Count int ,@Txt varchar(10) ) returns varchar(200) as begin --------------------------------------------------------------------------------------------------------------------------------------------- declare @Txt1 varchar(50) ; set @Txt1 = '' ; while len(@Txt1) < @Count - len(@Int) begin set @Txt1 = @Txt1 + @Txt ; end return @Txt1 + convert( varchar(50) ,@Int ) ; end -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /* 调用: select dbo.aNum( 35 ,5 ,'0' ) -- 流水号 35 / 5位数 / 前面 + 0 / 结果 00035 select dbo.aNum( 35 ,5 ,'x' ) -- 流水号 35 / 5位数 / 前面 + x / 结果 xxx35 select dbo.aNum( 123456 ,5 ,'0' ) -- 流水号 123456 / 5位数 / 前面 + 0 / 结果 123456 */ go
郭少锋
创建 2024-07-18 08:43:49
SQL
windows : Excel 查找替换
windows : Excel 查找替换
=SUBSTITUTE(I22,"_"&J22,"") 查找字段 I22 :产成品_糖果产成品_橡皮糖系列_盒装系列_179gDIY披萨午餐橡皮糖混装2 要被替换的文本 "_"&J22 :179gDIY披萨午餐橡皮糖混装2 被替换成新的文本 "" 替换后: 产成品_糖果产成品_橡皮糖系列_盒装系列
郭少锋
编辑 2024-07-11 15:03:17
创建 2024-07-11 15:01:48
windows
云星空 : 调整 库存更新方式
云星空 : 调整 库存更新方式
select * from T_ORG_ORGANIZATIONS_L select * from T_BAS_SYSPARAMETER where FPARAMETEROBJID = 'STK_StockParameter' and FORGID = 0 /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ update T_BAS_SYSPARAMETER set FPARAMETERS = ' <STKStockParameter> <UpdateStockPoint>1</UpdateStockPoint> <ClearAtSameTime>True</ClearAtSameTime> <BatchNumPickRegulation>2</BatchNumPickRegulation> <QGPPickRegulation>1</QGPPickRegulation> <LotManageLevel>2</LotManageLevel> </STKStockParameter> ' where FPARAMETEROBJID = 'STK_StockParameter' and FORGID = 0 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 如何调整 库存更新方式 ? 原文链接:https://vip.kingdee.com/questions/7808/answers/11306?productLineId=1&isKnowledge=2&lang=zh-CN 更新于 2024-06-03 19:20 企业在进行物料入库时,会有需求当入库单建立时就更新现有的即时库存信息,还会有需求要走完入库单的审批流后才允许去更新即时库存信息,所以库存更新方式有两种:审核时与保存时 系统默认更新方式为“审核时”,即入库单审核后才会更新即时库存 此参数在开启库存组织就需要明确,后续就不能进行调整。但因初期考虑不规范,就会涉及到后续变更 [操作步骤] 以下需要SQL精通的用户进行处理调整 举例:将库存更新方式由“审核时”调整为“保存时” 将所有出入库单据全部审核完毕 到管理中心下进行备份数据 打开SQL,查询select * from T_ORG_ORGANIZATIONS_L的FORGID值,就是组织的内码 查询SELECT * FROM T_BAS_SYSPARAMETER T WHERE FPARAMETEROBJID='STK_StockParameter' and FORGID='上一步查询到的'内码(如无对应的FORGID数据,需要前端点下保存“库存管理系统参数”生成后台记录) 打开T_BAS_SYSPARAMETER的XML字段FPARAMETERS 查看并复制其中的XML内容,其中行UpdateStockPoint值为1为保存时,2为审核时更新 执行更新语句,更新XML内容 更新完毕后,前端就会显示为“保存时”,还需要进行“清理零库存记录”,“库存校对”操作 后续再录入出入库单时,保存单据时就会更新库存 [说明] 保存时 调整为 审核时,也需要所有单据全部进行审核 建议调整完毕后重启下IIS 调整此参数,最好是在月结后,下一个期间开始前处理 此调整操作不能做为常规处理,不到万不得已不要进行处理 */
郭少锋
创建 2024-06-21 23:03:20
云星空