首页 > 其他分享 >采购订单打开单据时表格行设置颜色

采购订单打开单据时表格行设置颜色

时间:2024-08-06 14:08:24浏览次数:7  
标签:表格 BOS System Kingdee 订单 单据 grid var import

 列表根据条件设置背景色

import clr 
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('System.Drawing')
clr.AddReference('System.Collections')

from System import *
from System.Collections import *
from System.Collections.Generic import *
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import FormatCondition
from System.Drawing import *

def OnFormatRowConditions(args):
  if(args.DataRow.ColumnContains('F_Krystal_PriceStatus') and args.DataRow['F_Krystal_PriceStatus'] is not None):
    if(args.DataRow['F_Krystal_PriceStatus']!='B'):
      fc = FormatCondition()
      fc.ApplayRow = True
      fc.BackColor = "#FF0000"
      args.FormatConditions.Add(fc)
View Code

 

 Python实现

import clr 
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('System.Drawing')
clr.AddReference('System.Collections')

from System import *
from System.Collections import *
from System.Collections.Generic import *
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import FormatCondition
from System.Drawing import *

def OnFormatRowConditions(args):
  if(args.DataRow.ColumnContains('F_Krystal_PriceStatus') and args.DataRow['F_Krystal_PriceStatus'] is not None):
    if(args.DataRow['F_Krystal_PriceStatus']!='B'):
      fc = FormatCondition()
      fc.ApplayRow = True
      fc.BackColor = "#FF0000"
      args.FormatConditions.Add(fc)
View Code

 

  插件实现

 

 

 

 

 

 

 

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;


namespace Krystal.K3.SCM.Business.PlugIn.PUR
{
    /// <summary>
    /// 功能描述    :PurchaseOrderEdit  
    /// 创 建 者    :Administrator
    /// 创建日期    :2024/7/11 10:01:51 
    /// 最后修改者  :Krystal
    /// 最后修改日期:2024/7/11 10:01:51 
    /// </summary>
    [Description("采购订单-表单插件")]
    [HotUpdate]
    public class PurchaseOrderEdit: AbstractBillPlugIn
    {
        #region <常量>
        #endregion <常量>

        #region <变量>
        #endregion <变量>

        #region <属性>
        #endregion <属性>

        #region <构造方法和析构方法>
        #endregion <构造方法和析构方法>

        #region <方法>
        #endregion <方法>

        #region <事件>
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
            var entityKey = "FPOOrderEntry";

            var backColor = "#FF0000";

            var backColor0 =  "#cfe2f3";

            var backColor1 = "#ead1dc";
          


            var rowCount = this.View.Model.GetEntryRowCount(entityKey);


            // 常规操作是直接使用grid.SetRowBackcolor函数,已过时,目前只有客户端生效

            #region 设置某一行整行背景色 客户端生效 已过时 
            //var grid = this.View.GetControl<EntryGrid>(entityKey);


            ////价格状态不等于最低价,唯一价,标红
            //for (var x = 0; x < rowCount; ++x)
            //{
            //    var ps = this.View.Model.GetValue("F_Krystal_PriceStatus", x) + "";
            //    if (ps != "A" && ps != "B")
            //    {
            //        grid.SetRowBackcolor(backColor, x);//第x+1行
            //        //grid.SetBackcolor(backColor, 1);//第二行
            //    }
            //}
            #endregion


            #region  批量设置某一行整行背景色  客户端网页都生效
            var grid = this.View.GetControl<EntryGrid>(entityKey);
            var colors = new List<KeyValuePair<int, string>>();

            for (var x = 0; x < rowCount; ++x)
            {
                var ps = this.View.Model.GetValue("F_Krystal_PriceStatus", x) + "";
                if (ps != "A" && ps != "B")
                {
                    //var backColor3 = x % 2 == 0 ? backColor0 : backColor1;
                    colors.Add(new KeyValuePair<int, string>(x, backColor));
                }

            }

            grid.SetRowBackcolor(colors);


            #endregion


            #region 客户端网页都生效 设置价格状态字段的某一行的背景色
            //var grid = this.View.GetControl<EntryGrid>(entityKey);

            ////grid.SetBackcolor("FPrice", backColor, 1);
            //////价格状态不等于最低价,唯一价,标红
            //for (var x = 0; x < rowCount; ++x)
            //{
            //    var ps = this.View.Model.GetValue("F_Krystal_PriceStatus", x) + "";
            //    if (ps != "A" && ps != "B")
            //    {
            //        grid.SetBackcolor("F_Krystal_PriceStatus", backColor, x);//第x+1行
            //        //grid.SetBackcolor(backColor, 1);//第二行
            //    }
            //}

            #endregion


            #region 批量设置价格状态字段的某一行的背景色 客户端网页都生效




            //var grid = this.View.GetControl<EntryGrid>(entityKey);
            //var colors = new List<KeyValuePair<int, string>>();

            //for (var x = 0; x < rowCount; ++x)
            //{
            //    var ps = this.View.Model.GetValue("F_Krystal_PriceStatus", x) + "";
            //    if (ps != "A" && ps != "B")
            //    {
            //        colors.Add(new KeyValuePair<int, string>(x, backColor));
            //    }
            //    //var backColor3 = x % 2 == 0 ? backColor0 : backColor1;

            //}
            //grid.SetCellsBackcolor("F_Krystal_PriceStatus", colors);


            #endregion




            #region 客户端生效,网页端不生效
            //GridSetRowBackcolor(this.View, entityKey, backColor, 1);
            #endregion


        }

        private void GridSetRowBackcolor(IDynamicFormView view, string entityKey, string color, int rowIndex)
        {
            var value = new JSONObject();

            value[rowIndex.ToString()] = color;

            var jo = new JSONObject();

            jo["backcolor"] = value;

            var grid = view.GetControl<EntryGrid>(entityKey);

            var formState = view.GetService<IDynamicFormState>();

            formState.AftInvokeControlMethod(grid.ControlAppearance, "UpdateFieldStates", jo);
 

        }
        #endregion <事件>
    }
}
完整代码

 

 

 

 

 

 

标签:表格,BOS,System,Kingdee,订单,单据,grid,var,import
From: https://www.cnblogs.com/lanrenka/p/18295491

相关文章

  • 五、.Net Core Web Api连接MongoDB自动创建表格并实现CRUD功能
    五、.NetCoreWebApi连接MongoDB自动创建表格并实现CRUD功能1.注册MongoDB账号,并获取ConnectionString;MongoDB官网:MongoDB:TheDeveloperDataPlatform|MongoDB获取ConnectionString教程:ConnectionString获取在VSCodeforMac按下shift+command+p搜索Nuget......
  • Element-plus UI框架获取表格中某一行的对象数据
    在Vue3中,#default="scope"是用于指定一个具名插槽(namedslot)的默认插槽,并且向该插槽传递作用域属性(scopedprops)。这个语法是在Vue3的模板编译器中引入的,它取代了Vue2中使用的slot-scope。使用Element-plusUI框架获取表格中某一行的数据,如下面的示例代码:<template>......
  • 使用python对Excel表格某个区域保存为图片
    实际工作中,我们经常会把表格某个区域(如:A1:F5)或某个图形保存为图片,如何用python自动做到这一点?不知屏幕前的小伙伴有没有遇到过类似的需求,此刻脑海里有木有一丢丢思路。python操作excel的第三方库有很多,个个都有各自的绝招和擅长的应用场景,简单罗列一下:pyexcel:pyexcel是......
  • 如何修改Excel表格而不丢失扩展名?
    我正在尝试修改Excel文件,其中包含许多VBA操作(不是我创建的)。我温和地尝试修改单个组合框项目。fromopenpyxlimportload_workbook#Loadtheworkbookworkbook=load_workbook('input.xlsx')#Selecttheworksheetworksheet=workbook['Monthly']#Changethe......
  • 人工智能-AI处理表格制作技巧:ExcelWPS三秒做表,大神到小白
    在数字化时代,数据处理和分析能力已成为职场人必备的技能之一。而表格处理软件,如Excel和WPS,更是日常工作中不可或缺的工具。但面对海量的数据和复杂的表格制作要求,很多人可能会感到手足无措。不过别担心,今天我将向大家揭示一个秘密武器——利用人工智能-AI处理表格制作技巧,只需......
  • SAP 生产订单状态简介
    SAP生产订单状态简介SAP生产订单状态的简介:生产订单状态取值在SAP中,生产订单的状态是关键的管理工具,用于跟踪和控制生产过程。每个生产订单都会经历一系列状态,这些状态提供了有关生产订单当前进展和完成情况的重要信息。SAP生产订单状态的简介:CRTD(创建)......
  • 更改element-ul的表格底部滚动条
    /*确保表格容器有足够的高度*/::v-deep.el-table.el-table__fixed{overflow:hidden;height:auto!important;bottom:20px!important;}/*普通列的滚动条样式*/::v-deep.el-table__body-wrapper{padding-bottom:10px;/*调整底部padding*/}::v-d......
  • Vue Hook 封装通用型表格
    一、创建通用型表格的需求实现一个通用型表格组件,具备以下功能:动态列配置。分页功能。排序功能。可扩展的行操作功能。二、设计通用型表格组件首先,需要设计一个基础的表格组件,它接受列配置、数据和分页信息等参数。1.创建useTableHook在src/hooks目录下创建useTa......
  • Smartforms在同一页中打印多份模板,打印动态表格
    要求:一:需要在一份A4纸中打印上下两个表格,每个表格行只有5行,不够的需要补齐,超出的需要打印到第二个表格中.二:表格不是固定的,需要根据某个字段,确定使用的表格格式 解决方法,我们只需要创建一个模板高度的数据模板,通过循环来打印我们的模板,相当于每次印半页,印两次就......
  • 前端如何设置表格边框样式和单元格间距?
    前端如何设置表格边框样式和单元格间距?引言表格的基本概念基本结构示例一:基本表格样式CSS说明示例二:交替行颜色CSS说明示例三:固定表头CSS说明示例四:设置单元格间距HTMLCSS说明示例五:响应式表格CSSHTML说明实际工作中的使用技巧技巧一:优化单元格内的内容CSS技巧二:使......