• Sales Portal遇到问题及解决


    1, 拼接sql时, exec sp_executesql @sql报错“Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.”
    这是因为@sql类型应该为nvarchar()
    ==========================================

    2, 存储过程中用到事务,return别忘了提交事务
    =========================================

    3,EXECUTE sp_executesql @SQLString,N'@PageIndex int,@PageSize int',@PageIndex,@PageSize
    sp_executesql批处理是支持参数的,如上()
    ==========================================
    4, update join 从一个结果集更新一张表 (On上是条件)
    update table1
    set t.aaa=b.aa
    from talbe1 t left join
    table2 a on a.ddd=t.ddd

    ----------Demon begin--------------------
    set nocount on;
    declare @T1 table
    (
    ID int identity(0,1),
    FirstName nvarchar(30),
    CWID varchar(10)
    )
    declare @T2 table
    (
    ID int identity(0,1),
    FirstName nvarchar(30),
    CWID varchar(10)
    )

    insert into @T1 (FirstName,CWID) values('Lee','CHXHI')
    insert into @T1 (FirstName,CWID) values('ROCK','EWERB')
    insert into @T1 (FirstName,CWID) values('LINKIN','CHXXX')
    insert into @T1 (FirstName,CWID) values('JIANG','CHQAA')
    insert into @T1 (FirstName,CWID) values('TAYLEN','CHPEE')

    insert into @T2 (CWID) values('CHXHI')
    insert into @T2 (CWID) values('EWERB')
    insert into @T2 (CWID) values('CHXXX')
    insert into @T2 (CWID) values('CHQAA')
    insert into @T2 (CWID) values('CHPEE')
    insert into @T2 (FirstName,CWID) values('1111','aaa')


    -- 当关联条件的字段为同一个名字时,这种写法不能重命名(变量表的话,也不能用表名)
    --update @T2 set FirstName=b.firstname
    --from @T1 b where b.ID=ID


    select * From @T2
    -- 下面这种写法解决了上面的问题

    --没有匹配的不更新
    update t2
    set FirstName=t1.FirstName
    from @T2 t2
    inner join
    @T1 t1 on t1.ID=t2.ID

    --没有匹配的设为null
    --update t2
    --set FirstName=t1.FirstName
    --from @T2 t2
    --left join
    --@T1 t1 on t1.ID=t2.ID
    --
    select *from @T2

    set nocount off;
    -------------Demon end--------------------

    4.5 delete join
    delete from t1 from t1 inner join t2
    on t1.id = t2.tid
    =======================================

    5,SSRS做报表中,最后某些单元格中加url,链接到新的
    ①在报表设计视图中,右键单击要添加链接的文本框、图像或图表,然后单击“属性”。
    ②在“属性”对话框中,单击“操作”。
    ③选择“转到 URL”。 其他部分将显示在此选项的对话框中。
    ④在“选择 URL”中,键入或选择某一 URL 或者计算结果为某一 URL 的表达式,或者单击下拉箭头并单击包含 URL 的字段的名称。
    ⑤单击“确定”。
    ⑥(可选)文本的格式不会自动设置为链接。 对于文本,很有必要更改文本的颜色和效果以指示该文本是一个链接。 例如,在功能区的“主页”选项卡中的“字体”部分中,将颜色更改为蓝色,并将效果更改为下划线。
    ⑦若要测试该链接,请单击“运行”以预览报表,然后单击对其设置此链接的报表项。
    ======================================

    6,SSRS加URL,url中传参
    文本框属性--操作--选择‘转到URL’,在选择URL中输入自己的
    =Parameters!URL.Value & "AdjustID=21" & "&CAT=" & Fields!CAT.Value & "&BD="&Fields!BD.Value & "&PU=" &Fields!PU.Value

    如果想在新页面打开
    ="javascript:void(window.open('" &
    Parameters!URL.Value & "AdjustID=21" & "&CAT=" & Fields!CAT.Value & "&BD="&Fields!BD.Value & "&PU=" &Fields!PU.Value
    & "','_blank'))"

    ======================================

    6.1 SSRS 中tooltip中换行
    例子: “aaa” & vbcrlf & "bbb"

    7, SSRS 安全除零
    ①自定义函数
    Public Function SafeDivide(ByVal top, ByVal bottom) As Decimal
    If IsNothing(top) Or IsNothing(bottom) Then
    Return 0
    End If

    If bottom = 0 Or top = 0 Then
    Return 0
    End If

    Return top / bottom
    End Function
    ②调用=Code.SafeDivide(top,bottom)

    7.1 ,SSRS文本框两位小数,为0显示'-'之类的
    【】设置format属性 0.00;-0.00;'-'


    7.2 tablix 组 (暂不是通用,只是个别体验)
    --列组
    ① 添加列父组,选过分组依据后,勾选“组头”
    ② 删除自动生成的多余列、行
    ③ 在列组中【插入行】--【组内侧】
    --行组
    插入行组,不勾“组头”

    7.3 隔行变色
    backgroundColor属性 =Iif(RowNumber(Nothing) Mod 2, "#F2F2F2", "White")
    ===========================================

    8, sql 语句优化

    select distinct contractno,productLine
    from(
    select ContractNo,ProductLine from SAP_SalesOrder_M where ContractNo='AH100259T-0000'
    ) a

    效率远远高于
    select distinct ContractNo,ProductLine from SAP_SalesOrder_M where ContractNo='AH100259T-0000'
    ==============================================

    9, Jquery UI

    function Loading() { $.blockUI({ css: { border: 'none', padding: '15px', backgroundColor: '#000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: 0.5, color: '#fff'} }); }


    10,

    /*
    -- 问题
    -- 描述:salesPortal中根据合同号到一张表T里找PU,但是T中一个合同号有可能有多个PU,逻辑是:关联到的
    -- 那个结果集中Amount最大留下,别的都不要,即取金额最大的那个PU
    --

    */

    declare @t table (
    id int identity(1,1),
    contractNo varchar(200),
    pu varchar(100),
    amount int
    )
    insert into @t (contractNo,pu,amount)
    values('CV0001','AA',1000)
    insert into @t (contractNo,pu,amount)
    values('CV0001','BB',10)
    insert into @t (contractNo,pu,amount)
    values('CV0001','CC',1)
    insert into @t (contractNo,pu,amount)
    values('CV0002','AA',1)
    insert into @t (contractNo,pu,amount)
    values('CV0002','BB',1000)
    insert into @t (contractNo,pu,amount)
    values('CV0002','CC',1000)

    select * from @t

    select contractNo,amount from @t group by contractNo,amount


    --
    select distinct p.contractno,max(p.amount) over(partition by p.contractno) as amount
    from @t as p


    --- 分组后再根据 contractNo amount 关联原表
    --问题是金额相同有两条
    ;with aa as(select contractno ,max(amount) as amount from @t t group by t.contractno)
    select distinct tt.contractNo,tt.pu from
    @t tt join aa on tt.contractNo=aa.contractNo and aa.amount=tt.amount


    11,
    IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。


    12

    --Jquery: 在不同机器上ID不一定一样
    报表隐藏 除了Excel 其他导出方式 脚本
    $("#ctl00_MainContent_ReportViewer1_ctl05_ctl04_ctl00_Menu div:not(:eq(4))").hide()


    ---反射将其他项的m_isVisible设为false
    reportint service报表导出只显示EXCEL格式
    前端: onprerender="ReportViewer_PreRender"
    cs端: protected void ReportViewer_PreRender(object sender, EventArgs e)
    {
    foreach (RenderingExtension extension in ReportViewer1.ServerReport.ListRenderingExtensions())
    {
    if (extension.Name != "EXCEL")
    {
    FieldInfo fi = extension.GetType().GetField("m_isVisible", BindingFlags.Instance | BindingFlags.NonPublic);
    fi.SetValue(extension, false);
    }
    }

    }

  • 相关阅读:
    Flash 全局安全性设置面板
    响应式布局的一个例子mark
    移动平台WEB前端开发技巧汇总
    自定义事件机制——观察者模式
    学习之响应式Web设计:Media Queries和Viewports
    常用栅格布局方案
    观察者模式的一个例子
    二进制文件转换为文本工具
    C#面向对象名词比较(二)
    MSN消息提示类
  • 原文地址:https://www.cnblogs.com/liutianyu/p/4064053.html
Copyright © 2020-2023  润新知