找回密码
 立即注册

QQ登录

只需一步,快速开始

zhangliklmyt

注册会员

2

主题

6

帖子

52

积分

注册会员

积分
52
最新发帖
zhangliklmyt
注册会员   /  发表于:2020-7-1 09:28  /   查看:3531  /  回复:6
1金币
本帖最后由 zhangliklmyt 于 2020-7-1 09:40 编辑


问题:因为是个升级项目,所以逻辑处理上没动,他的整体数据实在明细format的时候在取的,ActiveReportV2.0中,GH_Type能正常分组,但在ActiveReportV11.0中GH_Type的format只能走一次,没法正常分组。GH_Type有一个RepeatStyle属性,每一个值也试了还是只走一次。所以我有点怀疑,是不是因为在reportstart的时候没绑定数据,而是在明细里取数据,账票没法正常去判断分组了。很疑惑,求各位大神帮助
附代码:[VB.NETマイグレーション対応]注释的地方是本次升级的。
---------------------------------------------------------------------------------------
    '2020/06/17 VB.NETマイグレーション対応 UPDATE START
    'Private Sub Detail_Format()
    Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        On Error GoTo CERROR
        '' レポートが開始してはじめての Detail_Format イベントのとき、
        If mbPrim = False Then
            '' 明細書の印字データを取得する。
            giRet = ReadSeikyuMeisai()
            If giRet = -1 Then
                Call CPutMessage(goOraDB, "CDB010E", vbOKOnly, "")
                '2020/06/17 VB.NETマイグレーション対応 DELETE START
                'Unload Me
                '2020/06/17 VB.NETマイグレーション対応 DELETE END
            End If
            mbPrim = True
            '' データが存在しなかった場合、フラグをON。
            If mrRecset Is Nothing Then
                '' 空白行を印字。
                '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                'Detail.PrintSection
                LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                miCntRow = miCntRow + 1
                Exit Sub
            End If
        Else
            '' 印字データが取得できなかった場合、
            If mrRecset Is Nothing Then
                '' 出力区分を全て(00 ~ 03 まで)印字し終えたら、次の販売店の印字データを抽出する。
                If miOutKBN = 4 Then
                    '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                    'GH_Type.GroupValue = 5
                    GH_Type.DataField = "5"
                    '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                    miCntNum = 5
                    If miCntRow < 40 Then
                        fldSyubetu.Text = ""
                        fldTani.Text = ""
                        Field1.Text = ""
                        fldTanka.Text = ""
                        fldKingaku.Text = ""
                        fldBikou.Text = ""
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                        'Detail.PrintSection
                        LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                        miCntRow = miCntRow + 1
                        Exit Sub
                    Else
                        miCntNum = 6
                        '' 全ての販売店を印字が終了していたら、処理を抜ける。
                        If miHanbaiCD_cntidx = miHanbaiCD_maxidx Then
                            miHanbaiCD_cntidx = miHanbaiCD_cntidx + 1
                            Exit Sub
                        End If
                        miHanbaiCD_cntidx = miHanbaiCD_cntidx + 1   '' カウントアップ
                        miOutKBN = 0                                '' 出力区分を0に戻す。
                        '' 明細書の印字データを取得する。
                        giRet = ReadSeikyuMeisai()
                        If giRet = -1 Then
                            Call CPutMessage(goOraDB, "CDB010E", vbOKOnly, "")
                            '2020/06/17 VB.NETマイグレーション対応 DELETE START
                            'Unload Me
                            '2020/06/17 VB.NETマイグレーション対応 DELETE END
                        End If
                        '' グループプロパティを更新
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                        'GH_Hanbai.GroupValue = miHanbaiCD_cntidx
                        GH_Hanbai.DataField = miHanbaiCD_cntidx.ToString()
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                        '' データが存在しなかった場合、テキストをクリアして空白行を印字。
                        If mrRecset Is Nothing Then
                            fldSyubetu.Text = ""
                            fldTani.Text = ""
                            Field1.Text = ""
                            fldTanka.Text = ""
                            fldKingaku.Text = ""
                            fldBikou.Text = ""
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                            'Detail.PrintSection
                            LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                            miCntRow = miCntRow + 1
                            Exit Sub
                        End If
                    End If
                Else
                    '' 出力区分(SQLの条件にて使用)のカウント。
                    miOutKBN = miOutKBN + 1
                    '' 明細書の印字データを取得する。
                    giRet = ReadSeikyuMeisai()
                    If giRet = -1 Then
                        Call CPutMessage(goOraDB, "CDB010E", vbOKOnly, "")
                        '2020/06/17 VB.NETマイグレーション対応 DELETE START
                        'Unload Me
                        '2020/06/17 VB.NETマイグレーション対応 DELETE END
                    End If
                    miCntNum = miCntNum + 1
                    '' グループプロパティを更新(出力区分グループセクション)
                    '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                    'GH_Type.GroupValue = miCntNum
                    GH_Type.DataField = miCntNum.ToString()
                    '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                    '' データが存在しなかった場合、テキストをクリアして空白行を印字。
                    If mrRecset Is Nothing Then
                        fldSyubetu.Text = ""
                        fldTani.Text = ""
                        Field1.Text = ""
                        fldTanka.Text = ""
                        fldKingaku.Text = ""
                        fldBikou.Text = ""
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                        'Detail.PrintSection
                        LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                        miCntRow = miCntRow + 1
                        Exit Sub
                    End If
                End If
            Else
                '' レコードセットがEOFに達していたら、
                If mrRecset.EOF Then
                    '' 出力区分を全て(00 ~ 03 まで)印字し終えたら、次の販売店の印字データを抽出する。
                    If miOutKBN = 4 Then
                        If miCntRow < 40 Then
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                            'GH_Type.GroupValue = 5
                            GH_Type.DataField = "5"
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                            miCntNum = 5
                            fldSyubetu.Text = ""
                            fldTani.Text = ""
                            Field1.Text = ""
                            fldTanka.Text = ""
                            fldKingaku.Text = ""
                            fldBikou.Text = ""
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                            'Detail.PrintSection
                            LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                            miCntRow = miCntRow + 1
                            Exit Sub
                        Else
                            miCntNum = 6
                            '' 全ての販売店を印字が終了していたら、処理を抜ける。
                            If miHanbaiCD_cntidx = miHanbaiCD_maxidx Then
                                miHanbaiCD_cntidx = miHanbaiCD_cntidx + 1
                                Exit Sub
                            End If
                            miHanbaiCD_cntidx = miHanbaiCD_cntidx + 1   '' カウントアップ(販売店コード)
                            miOutKBN = 0                                '' 出力区分を0に戻す。

                            '' 明細書の印字データを取得する。
                            giRet = ReadSeikyuMeisai()
                            If giRet = -1 Then
                                Call CPutMessage(goOraDB, "CDB010E", vbOKOnly, "")
                                '2020/06/17 VB.NETマイグレーション対応 DELETE START
                                'Unload Me
                                '2020/06/17 VB.NETマイグレーション対応 DELETE END
                            End If
                            '' グループプロパティを更新(販売店コードグループセクション)
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                            'GH_Hanbai.GroupValue = miHanbaiCD_cntidx
                            GH_Hanbai.DataField = miHanbaiCD_cntidx.ToString()
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                            '' データが存在しなかった場合、テキストをクリアして空白行を印字。
                            If mrRecset Is Nothing Then
                                fldSyubetu.Text = ""
                                fldTani.Text = ""
                                Field1.Text = ""
                                fldTanka.Text = ""
                                fldKingaku.Text = ""
                                fldBikou.Text = ""
                                '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                                'Detail.PrintSection
                                LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                                '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                                miCntRow = miCntRow + 1
                                Exit Sub
                            End If
                        End If
                    Else
                        '' 出力区分(SQLの条件にて使用)のカウント。
                        miOutKBN = miOutKBN + 1
                        '' 明細書の印字データを取得する。
                        giRet = ReadSeikyuMeisai()
                        If giRet = -1 Then
                            Call CPutMessage(goOraDB, "CDB010E", vbOKOnly, "")
                            '2020/06/17 VB.NETマイグレーション対応 DELETE START
                            'Unload Me
                            '2020/06/17 VB.NETマイグレーション対応 DELETE END
                        End If
                        miCntNum = miCntNum + 1
                        '' グループプロパティを更新(出力区分グループセクション)
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                        'GH_Type.GroupValue = miCntNum
                        GH_Type.DataField = miCntNum.ToString()
                        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                        '' データが存在しなかった場合、テキストをクリアして空白行を印字。
                        If mrRecset Is Nothing Then
                            fldSyubetu.Text = ""
                            fldTani.Text = ""
                            Field1.Text = ""
                            fldTanka.Text = ""
                            fldKingaku.Text = ""
                            fldBikou.Text = ""
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
                            'Detail.PrintSection
                            LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
                            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                            miCntRow = miCntRow + 1
                            Exit Sub
                        End If
                    End If
                End If
            End If
        End If
        '' データの印字
        '' レコードセットのフィールドをワーク変数へセット。
        lsOutKBN = mrRecset.Fields("出力区分").Value
        lsTensyuCD = mrRecset.Fields("店主コード").Value
        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
        'lsKasiCD = IIf(IsNull(mrRecset.Fields("貸付コード").Value), "", mrRecset.Fields("貸付コード").Value)
        lsKasiCD = IIf(IsDBNull(mrRecset.Fields("貸付コード").Value), "", mrRecset.Fields("貸付コード").Value)
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
        'lsSeikyutuki = Format(mrRecset.Fields("請求月").Value, "YYYY/MM/DD")
        lsSeikyutuki = VB6Format(CDate(mrRecset.Fields("請求月").Value), "YYYY/MM/DD")
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        lsKomokName = mrRecset.Fields("請求項目名").Value
        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
        'lsKasiFlag = IIf(IsNull(mrRecset.Fields("貸付フラグ").Value), "", mrRecset.Fields("貸付フラグ").Value)
        lsKasiFlag = IIf(IsDBNull(mrRecset.Fields("貸付フラグ").Value), "", mrRecset.Fields("貸付フラグ").Value)
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        lsSuryo = mrRecset.Fields("数量").Value
        lsTani = mrRecset.Fields("単位").Value
        lcTankagaku = mrRecset.Fields("単価額").Value
        lcKingaku = mrRecset.Fields("金額").Value
        mrRecset.MoveNext()
        miCntRow = miCntRow + 1
        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
        'Detail.PrintSection
        LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        GF_Type_Format()
        Exit Sub
CERROR:
        '' エラーログ出力
        gsMsg = "ERROR : Detail_Format( " & Err.Number & " " & Err.Description & " )"
        Call CLogPut(giFileNum, gsMsg)
    End Sub
    '-----------------------------------------------------------------------------
    ' @(f)
    '
    ' 関数名 : ReadSeikyuMeisai
    '
    ' 機能 : 印字データの取得
    '
    ' 機能説明 : 請求管理(明細)データよりデータを取得する。
    '
    ' 備考 : ただし、1販売店の1出力区分分に対するデータを抽出する。
    '-----------------------------------------------------------------------------
    '2020/06/17 VB.NETマイグレーション対応 UPDATE START
    'Private Function ReadSeikyuMeisai()
    Private Function ReadSeikyuMeisai() As Short
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        On Error GoTo CERROR
        '' ログファイル書き込み
        gbRet = CLogPut(giFileNum, "FUNCTION:ReadSeikyuMeisai")
        ReadSeikyuMeisai = 0

        With frmSMsaiL09
            gsSQL = "SELECT  KANRI.販売店コード, "
            gsSQL = gsSQL & "KANRI.店主コード, "
            gsSQL = gsSQL & "MEISAI.請求項目コード, "
            gsSQL = gsSQL & "KANRI.請求月, "
            gsSQL = gsSQL & "KANRI.賦課金, "
            gsSQL = gsSQL & "KANRI.関係費, "
            gsSQL = gsSQL & "KANRI.請求合計額, "
            gsSQL = gsSQL & "HANBAI.入金予定日, "
            gsSQL = gsSQL & "HANBAI.販売店名, "
            gsSQL = gsSQL & "TENSYU.店主名, "
            gsSQL = gsSQL & "MEISAI.出力区分, "
            gsSQL = gsSQL & "KOMOKU.請求項目名, "
            gsSQL = gsSQL & "KOMOKU.単位, "
            gsSQL = gsSQL & "MEISAI.数量, "
            gsSQL = gsSQL & "MEISAI.単価額, "
            gsSQL = gsSQL & "MEISAI.金額, "
            gsSQL = gsSQL & "MEISAI.貸付フラグ, "
            gsSQL = gsSQL & "MEISAI.貸付コード,"
            gsSQL = gsSQL & "MEISAI.請求区分 "
            gsSQL = gsSQL & "FROM 請求管理データ KANRI, "
            gsSQL = gsSQL & "販売店マスタ HANBAI, "
            gsSQL = gsSQL & "店主マスタ TENSYU, "
            gsSQL = gsSQL & "請求明細データ MEISAI,"
            gsSQL = gsSQL & "請求項目マスタ KOMOKU "
            '        gsSQL = gsSQL & "WHERE TO_CHAR(KANRI.請求月,'YYYY/MM') = '" & Format(.txtInput(0).Text & "01日", "YYYY/MM") & "'  "
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'gsSQL = gsSQL & "WHERE CONVERT(varchar,KANRI.請求月,111) = '" & Format(.txtInput(0).Text, "YYYY/MM") & "/01'  "
            gsSQL = gsSQL & "WHERE CONVERT(varchar,KANRI.請求月,111) = '" & VB6Format(CDate(.txtInput(0).Text), "YYYY/MM") & "/01'  "
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            gsSQL = gsSQL & "AND KANRI.販売店コード = '" & msHanbaiCD(miHanbaiCD_cntidx) & "' "
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'gsSQL = gsSQL & "AND HANBAI.入金予定日 BETWEEN '" & CInt(.txtInput(1).ClipText) & "' AND '" & CInt(.txtInput(2).ClipText) & "' "
            gsSQL = gsSQL & "AND HANBAI.入金予定日 BETWEEN '" & CInt(.txtInput(1).Text) & "' AND '" & CInt(.txtInput(2).Text) & "' "
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            '2000/7/17
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'gsSQL = gsSQL & "AND MEISAI.出力区分 = '" & Format(miOutKBN, "00") & "' "
            gsSQL = gsSQL & "AND MEISAI.出力区分 = '" & VB6Format(miOutKBN, "00") & "' "
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            '        If miOutKBN <> 3 Then
            '            gsSQL = gsSQL & "AND MEISAI.出力区分 = '" & Format(miOutKBN, "00") & "' "
            '        Else
            '            gsSQL = gsSQL & "AND MEISAI.出力区分 >= '" & Format(miOutKBN, "00") & "' "
            '        End If
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'If .Combo1.ListIndex = 0 Then
            If .Combo1.SelectedIndex = 0 Then
                '2020/06/17 VB.NETマイグレーション対応 UPDATE END
                gsSQL = gsSQL & "AND KANRI.関係費 <> 0 "
            End If
            gsSQL = gsSQL & "AND HANBAI.販売店コード = KANRI.販売店コード "
            gsSQL = gsSQL & "AND TENSYU.店主コード = KANRI.店主コード "
            gsSQL = gsSQL & "AND MEISAI.販売店コード = KANRI.販売店コード "
            gsSQL = gsSQL & "AND MEISAI.店主コード = KANRI.店主コード "
            gsSQL = gsSQL & "AND MEISAI.請求月 = KANRI.請求月 "
            gsSQL = gsSQL & "AND KOMOKU.請求項目コード = MEISAI.請求項目コード "
            '2000/8/9
            'gsSQL = gsSQL & "ORDER BY KOMOKU.単位 DESC,MEISAI.請求項目コード ASC"
            gsSQL = gsSQL & "ORDER BY KOMOKU.出力順番,MEISAI.請求項目コード"
            '' ログファイル書き込み
            gbRet = CLogPut(giFileNum, "SQL:" & gsSQL)
        End With
        '2020/06/17 VB.NETマイグレーション対応 UPDATE START
        'Set mrRecset = COraSelect(goOraDB, gsSQL)
        mrRecset = COraSelect(goOraDB, gsSQL)
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        Exit Function
CERROR:
        ReadSeikyuMeisai = -1
        '' エラーログ出力
        gsMsg = "ERROR : ReadSeikyuMeisai( " & Err.Number & " " & Err.Description & " )"
        Call CLogPut(giFileNum, gsMsg)
    End Function
  '-----------------------------------------------------------------------------
    ' @(f)
    '
    ' 関数名    : GF_Type_Format
    '
    ' 機能      : グループフッターの設定
    '
    ' 機能説明  : 小計印字
    '
    ' 備考      :
    '-----------------------------------------------------------------------------
    '2020/06/17 VB.NETマイグレーション対応 UPDATE START
    Private Sub GF_Type_Format()
        'Private Sub GF_Type_Format(sender As Object, e As EventArgs) Handles GF_Type.Format
        '2020/06/17 VB.NETマイグレーション対応 UPDATE END
        On Error GoTo CERROR
        '' ログファイル書き込み
        gbRet = CLogPut(giFileNum, "EVENT : GF_Type_Format")
        miCntRow = miCntRow + 1
        If miCntNum = 6 Then
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'Label3.Caption = "   関 係 費 合 計( ②+③+④+⑤ )"
            Label3.Text = "   関 係 費 合 計( ②+③+④+⑤ )"
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            mcSubTotal = GetSubTotal()
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'Field2.Text = Format(mcSubTotal, "#,##0")
            Field2.Text = VB6Format(mcSubTotal, "#,##0")
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            miCntNum = 0
        Else
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'Label3.Caption = GetSequenceNum(miCntNum)
            Label3.Text = GetSequenceNum(miCntNum)
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            mcSubTotal = GetSubTotal()
            '2020/06/17 VB.NETマイグレーション対応 UPDATE START
            'Field2.Text = Format(mcSubTotal, "#,##0")
            Field2.Text = VB6Format(mcSubTotal, "#,##0")
            '2020/06/17 VB.NETマイグレーション対応 UPDATE END
            mcTotal = mcTotal + mcSubTotal
        End If
        LayoutAction = GrapeCity.ActiveReports.LayoutAction.PrintSection Or GrapeCity.ActiveReports.LayoutAction.MoveLayout
        Exit Sub
CERROR:
        '' エラーログ出力
        gsMsg = "ERROR : GF_Type_Format( " & Err.Number & " " & Err.Description & " )"
        Call CLogPut(giFileNum, gsMsg)
    End Sub

6 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-7-1 09:34:28
沙发
您好,从AR2直接升级到AR12由于升级跨度太大,可能会存在一些小问题。你具体报表展示需要实现什么需要,你把报表模板发过来看看,我们研究下具体如何进行一个分组的设置
回复 使用道具 举报
zhangliklmyt
注册会员   /  发表于:2020-7-1 10:02:30
板凳
KearneyKang 发表于 2020-7-1 09:34
您好,从AR2直接升级到AR12由于升级跨度太大,可能会存在一些小问题。你具体报表展示需要实现什么需要,你 ...

做了一些都是reportstart的时候,用datasource绑定的,这种的分组没问题,但是这一本非常特殊,数据都是detailformat的时候一组一组的取的,本身分组没什么,可比如附件的账票样式,detailformat的时候按照一个【出力区分】去检索数据,group里按照出力区分去分组,但现在的groupfooter的format只走一次,感觉时是明细取数据的同时,group那边判断不了是不是datafield变化了?
是不是这种明细取数据是不符合他的设计思想的啊?有点疑惑了,数据逻辑取得那块还不想大改动,上面有部分source,请帮忙看一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
zhangliklmyt
注册会员   /  发表于:2020-7-1 13:34:39
地板
有没有知道的大神,帮忙看一下啊
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-7-1 18:33:57
5#
你好,这个问题目前么有你对应的AR2的环境和版本升级跨度大,我在现有的版本上很难找到问题所在,建议对报表本身设计方面进行一个修改。我
回复 使用道具 举报
zhangliklmyt
注册会员   /  发表于:2020-7-2 09:28:59
6#
KearneyKang 发表于 2020-7-1 18:33
你好,这个问题目前么有你对应的AR2的环境和版本升级跨度大,我在现有的版本上很难找到问题所在,建议对报 ...

谢谢回答。目前好像解决了。
解决方案:
1.追加方法:
    Private Sub rptSMsaiL09_DataInitialize(sender As Object, e As EventArgs) Handles Me.DataInitialize
        Fields.Add("出力区分group")
        Fields.Add("販売店コードgroup")
    End Sub
2.把GH_Hanbai.DataField的属性设置为【販売店コードgroup】
GH_Type.DataField 的属性设置为【出力区分group】
3.把
Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format方法名修改为
Private Sub rptSMsaiL09_FetchData(sender As Object, eArgs As FetchEventArgs) Handles Me.FetchData
4.把rptSMsaiL09_FetchData方法中的下面相关代码内容一下。,
GH_Hanbai.DataField 都改为 Fields("出力区分group").Value = "XX",
GH_Type.DataField 都改为 Fields("出力区分group").Value = "XX"

分析:V2.0中GH_Hanbai.GroupValue=“XX”,升级后按照理解改成了GH_Hanbai.DataField=“XX”,但真正的这个属性里面应该设字段的名称,而不是真正的字段的值。所以这样账票识别不出来group的分组变化了,group_format方法没法触发。改为上面的方法后可以了。
您再帮忙看看原理是不是这样?虽然改造出来了,还是有点疑惑。
比如1.是不是Detail_Format必须改为 rptSMsaiL09_FetchData等,我再实验一下。
2.这样做,好像group的newpage等部分属性都失效了一样,必须在source里控制。




回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-7-2 11:11:54
7#
问题解决了就好

评分

参与人数 1满意度 +5 收起 理由
zhangliklmyt + 5 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部