Example #1
0
 def __init__(self,
              PaperSize=QPrinter.A4,
              Orientation=QPrinter.Orientation(1)):
     super().__init__(PaperSize=QPrinter.A4,
                      Orientation=QPrinter.Orientation(1))
     self.title = 'Inventory Warning List 低库存产品信息表'
     self.sql = """
Example #2
0
    def __init__(self,
                 PaperSize=QPrinter.A5,
                 Orientation=QPrinter.Orientation(1)):
        super().__init__(PaperSize, Orientation)
        self.SetMargins(30, 60, 30, 20)
        self.CopyInfo = JPPub().getCopysInfo('BillCopys_PrintingOrder')
        self.Copys = len(self.CopyInfo)
        self.logo = JPPub().MainForm.logoPixmap
        #self.logo = QPixmap(getcwd() + "\\res\\tmLogo100.png")
        self.FillColor = JPPub().getConfigData(
        )['PrintHighlightBackgroundColor']

        self.font_Algerian = QFont("Algerian")
        self.font_Algerian_11 = QFont(self.font_Algerian)
        self.font_Algerian_12 = QFont(self.font_Algerian)
        self.font_Algerian_11.setPointSize(11)
        self.font_Algerian_12.setPointSize(12)

        self.font_YaHei = QFont("微软雅黑")
        self.font_YaHei_8 = QFont(self.font_YaHei)
        self.font_YaHei_8.setPointSize(8)

        self.font_YaHei_10 = QFont(self.font_YaHei)
        self.font_YaHei_10.setPointSize(10)
        self.font_YaHei_10.setBold(True)

        self.Arial_Black = QFont("Arial Black")
        self.Arial_Black.setPointSize(8)
        self.Arial_Black.setBold(True)
Example #3
0
    def __printPreviewImage(self):
        """
        Private slot to handle the Print Preview menu action.
        """
        from PyQt5.QtPrintSupport import QPrintPreviewDialog

        if self.mainWidget is None:
            E5MessageBox.critical(self, self.tr("Print Preview"),
                                  self.tr("""There is no UI file loaded."""))
            return

        settings = Preferences.Prefs.settings
        printer = QPrinter(QPrinter.HighResolution)
        printer.setFullPage(True)

        printerName = Preferences.getPrinter("UIPreviewer/printername")
        if printerName:
            printer.setPrinterName(printerName)
        printer.setPageSize(
            QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize"))))
        printer.setPageOrder(
            QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder"))))
        printer.setOrientation(
            QPrinter.Orientation(int(
                settings.value("UIPreviewer/orientation"))))
        printer.setColorMode(
            QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))

        preview = QPrintPreviewDialog(printer, self)
        preview.paintRequested.connect(self.__print)
        preview.exec_()
    def __init__(self,
                 PaperSize=QPrinter.A5,
                 Orientation=QPrinter.Orientation(1)):
        super().__init__(PaperSize, Orientation)

        self.SetMargins(30, 60, 30, 30)
        self.CopyInfo = JPPub().getCopysInfo('BillCopys_WarehouseRreceipt')
        self.Copys = len(self.CopyInfo)
        self.logo = JPPub().MainForm.logoPixmap
        self.FillColor = JPPub().getConfigData(
        )['PrintHighlightBackgroundColor']

        self.font_Algerian = QFont("Algerian")
        self.font_Algerian_11 = QFont(self.font_Algerian)
        self.font_Algerian_12 = QFont(self.font_Algerian)
        self.font_Algerian_11.setPointSize(11)
        self.font_Algerian_12.setPointSize(12)

        self.font_YaHei = QFont("微软雅黑")
        self.font_YaHei_8 = QFont(self.font_YaHei)
        self.font_YaHei_8.setPointSize(8)

        self.font_YaHei_10 = QFont(self.font_YaHei)
        self.font_YaHei_10.setPointSize(10)
        self.font_YaHei_10.setBold(True)
Example #5
0
 def __init__(self,
              PaperSize=QPrinter.A4,
              Orientation=QPrinter.Orientation(0),
              db=QtSql.QSqlDatabase()):
     self.TotalPagesCalculated = False
     self.PaperSize = PaperSize
     self.Orientation = Orientation
     self.BoolString = ['是', '否']
     self.Margins: QMargins = QMargins(0, 0, 0, 0)
     self.ReportHeader = _jpSectionReportHeader(self)
     self.ReportFooter = _jpSectionReportFooter(self)
     self.PageHeader = _jpSectionPageHeader(self)
     self.PageFooter = _jpSectionPageFooter(self)
     self.Detail = _jpSectionDetail(self)
     self._Copys = 1
     self._CurrentPage = 0
     self._CurrentCopys = 0
     self.__PageCount = 0
     self.__DataSource = []
     self.__Errors = []
     self.__Printer: typing.Any = None
     self.__PageHeight = 0
     self.__Calculated = False
     self.__Reseted = False
     self.__SectionPrintBeginY = 0
     self.__ExecNewPageTimes = 0
     self.__db: QtSql.QSqlDatabase = db
     self.__FieldTypes = {}
     self._GroupLinkList = _GroupLinkList(self)
     self.DataSourceRecord: QSql.QSqlRecord = None
Example #6
0
    def __init__(self,
                 PaperSize=QPrinter.A4,
                 Orientation=QPrinter.Orientation(1)):
        super().__init__(PaperSize, Orientation)
        self.configData = JPPub().getConfigData()
        self.font_YaHei = QFont("Microsoft YaHei")
        self.font_YaHei_8 = QFont(self.font_YaHei)
        self.font_YaHei_8.setPointSize(8)
        self.font_YaHei_10 = QFont(self.font_YaHei)
        self.font_YaHei_10.setPointSize(20)
        self.font_YaHei_10.setBold(True)
        self.BackColor = JPPub().getConfigData(
        )['PrintHighlightBackgroundColor']

        self.title_detail = [
            '序号\nID', '产品名称\nProductName', '规格\nSpesc', '宽\nWidth',
            '长\nLength', '计量单位\nUint', '剩余库存\nCurrentQuantity',
            '预警库存\nMinimumStock', '备注\nNote'
        ]

        self.fns = [
            'fID', 'fProductName', 'fSpesc', 'fWidth', 'fLength', 'fUint',
            'fNote', 'fCurrentQuantity', 'fMinimumStock'
        ]
        self.sql = """
        select fID,fProductName,fSpesc,fWidth,fLength,fUint,fNote,
        fCurrentQuantity,fMinimumStock 
        from t_product_information 
        where fCancel=0       
        order by fID
        """
        self.logo = JPPub().MainForm.logoPixmap
        self.title = 'Product Information List 产品信息明细表'
Example #7
0
 def __init__(self,
              PaperSize=QPrinter.A4,
              Orientation=QPrinter.Orientation(0)):
     super().__init__(PaperSize, Orientation)
     self.configData = JPPub().getConfigData()
     self.font_YaHei = QFont("Microsoft YaHei")
     self.font_YaHei_8 = QFont(self.font_YaHei)
     self.font_YaHei_8.setPointSize(8)
     self.font_YaHei_12 = QFont(self.font_YaHei)
     self.font_YaHei_12.setPointSize(12)
     self.font_YaHei_10 = QFont(self.font_YaHei)
     self.font_YaHei_10.setPointSize(20)
     self.font_YaHei_10.setBold(True)
     self.BackColor = JPPub().getConfigData(
     )['PrintHighlightBackgroundColor']
     self.title_detail = [
         '序号\nNO', '日期\nOrderDate', '单据号码\nOrderID', '客商\nMerchants',
         '入库\nIn', '出库\nOut'
     ]
     self.fns = [
         'fOrderDate', '日期Date', '单据号码OrderID', '客商Merchants', '入库In',
         '出库Out'
     ]
     self.logo = JPPub().MainForm.logoPixmap
     self.title = 'Warehouse in/out Details\n出入库明细表'
     self.beginDate = None
     self.endDate = None
Example #8
0
 def __init__(self,
              PaperSize=QPrinter.A4,
              Orientation=QPrinter.Orientation(0)):
     super().__init__(PaperSize, Orientation)
     self.configData = JPPub().getConfigData()
     self.font_YaHei = QFont("Microsoft YaHei")
     self.font_YaHei_8 = QFont(self.font_YaHei)
     self.font_YaHei_8.setPointSize(8)
     self.font_YaHei_12 = QFont(self.font_YaHei)
     self.font_YaHei_12.setPointSize(12)
     self.font_YaHei_10 = QFont(self.font_YaHei)
     self.font_YaHei_10.setPointSize(20)
     self.font_YaHei_10.setBold(True)
     self.BackColor = JPPub().getConfigData(
     )['PrintHighlightBackgroundColor']
     self.title_detail = [
         ' ', '产品名称ProductName', '入库In', '出库Out', '结余库存\nCurQua',
         '销售笔数\nBillCount'
     ]
     self.fns = [
         '序号ID', '产品名称ProductName', '入库数量In', '出库数量Out',
         '结余库存CurrentQuantity', '销售笔数BillCount'
     ]
     self.logo = JPPub().MainForm.logoPixmap
     self.title = 'Warehouse in/out Details\n出入库明细表'
     self.beginDate = None
     self.endDate = None
Example #9
0
 def PrintCurrentReport(self, pixmap: str):
     p = QPrinter()
     p.setPaperSize(QPrinter.A4)
     p.setOrientation(QPrinter.Orientation(0))
     self.SetMargins(0, 0, 0, 0)
     rect = p.pageRect()
     self.ReportHeader.AddItem(2, 0, 0, rect.width(), rect.height(), pixmap)
     super().BeginPrint()
Example #10
0
 def PrintCurrentReport(self, OrderID: str):
     self.init_data(OrderID)
     self.init_ReportHeader_title(
         title1="报价单Cotação", title2="(ESTE DOCUMENTO É DO USO INTERNO)")
     self.init_ReportHeader()
     self.init_ReportHeader_Individualization()
     self.init_PageHeader()
     self.init_Detail()
     self.init_ReportFooter()
     # 大于6行自动更改纸型
     if len(self.DataSource) > 6:
         self.PaperSize = QPrinter.A4
         self.Orientation = QPrinter.Orientation(0)
     super().BeginPrint()
Example #11
0
 def __printImage(self):
     """
     Private slot to handle the Print Image menu action.
     """
     if self.mainWidget is None:
         E5MessageBox.critical(
             self,
             self.tr("Print Image"),
             self.tr("""There is no UI file loaded."""))
         return
     
     settings = Preferences.Prefs.settings
     printer = QPrinter(QPrinter.HighResolution)
     printer.setFullPage(True)
     
     printerName = Preferences.getPrinter("UIPreviewer/printername")
     if printerName:
         printer.setPrinterName(printerName)
     printer.setPageSize(
         QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize"))))
     printer.setPageOrder(
         QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder"))))
     printer.setOrientation(QPrinter.Orientation(
         int(settings.value("UIPreviewer/orientation"))))
     printer.setColorMode(
         QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_() == QDialog.Accepted:
         self.statusBar().showMessage(self.tr("Printing the image..."))
         self.__print(printer)
         
         settings.setValue("UIPreviewer/printername", printer.printerName())
         settings.setValue("UIPreviewer/pagesize", printer.pageSize())
         settings.setValue("UIPreviewer/pageorder", printer.pageOrder())
         settings.setValue("UIPreviewer/orientation", printer.orientation())
         settings.setValue("UIPreviewer/colormode", printer.colorMode())
     
     self.statusBar().showMessage(
         self.tr("Image sent to printer..."), 2000)
Example #12
0
    def __init__(self,
                 flds,
                 myyear,
                 baseon,
                 PaperSize=QPrinter.A3,
                 Orientation=QPrinter.Orientation(1)):
        super().__init__(PaperSize, Orientation)

        self.font_YaHei = QFont("微软雅黑")
        self.font_YaHei_8 = QFont(self.font_YaHei)
        self.font_YaHei_8.setPointSize(8)
        self.font_YaHei_10 = QFont(self.font_YaHei)
        self.font_YaHei_10.setPointSize(20)
        self.font_YaHei_10.setBold(True)
        rpt = self
        rpt.logo = JPPub().MainForm.logoPixmap
        rpt.ReportHeader.AddItemRect(2, (0, 0, 274, 50), rpt.logo)
        rpt.ReportHeader.AddItemRect(1, (274, 0, 110 * 13 - 274, 40),
                                     'Year Report 收款年报表',
                                     Bolder=False,
                                     AlignmentFlag=(Qt.AlignCenter),
                                     Font=self.font_YaHei_10)
        self.ReportHeader.AddItemRect(
            1, (274, 30, 110 * 13 - 274, 20),
            '基于Base on: {baseon}  年度Year: {myyear}'.format(baseon=baseon,
                                                           myyear=myyear),
            Bolder=False,
            AlignmentFlag=(Qt.AlignRight))

        title = [fld.Title for fld in flds]
        fns = [fld.FieldName for fld in flds]
        cols = len(flds)
        al_c = Qt.AlignCenter
        al_r = (Qt.AlignVCenter | Qt.AlignRight)
        rpt.SetMargins(30, 60, 30, 30)
        rpt.ReportHeader.AddPrintLables(0,
                                        60,
                                        50,
                                        Texts=title,
                                        Widths=[110] * cols,
                                        Aligns=[al_c] * cols)
        rpt.Detail.AddPrintFields(0,
                                  0,
                                  25,
                                  FieldNames=[fns[0]],
                                  Widths=[110],
                                  Aligns=[al_c])
        for i in range(1, cols):
            rpt.Detail.AddItemRect(3, (i * 110, 0, 110, 25),
                                   fns[i],
                                   Font=QFont('Times New Roman', 12),
                                   AlignmentFlag=al_r,
                                   FormatString='{:,.2f} ')
        self.PageFooter.AddItemRect(4, (10, 0, 110, 20),
                                    '',
                                    FormatString='Page: {Page}/{Pages}',
                                    Bolder=False,
                                    AlignmentFlag=(Qt.AlignLeft
                                                   | Qt.AlignVCenter),
                                    Font=self.font_YaHei_8)
        self.PageFooter.AddItemRect(
            5, (110 * 10, 0, 110 * 3, 20),
            '',
            FormatString="PrintTime: %Y-%m-%d %H:%M:%S",
            Bolder=False,
            AlignmentFlag=Qt.AlignRight,
            Font=self.font_YaHei_8)
Example #13
0
 def __init__(self,
              PaperSize=QPrinter.A4,
              Orientation=QPrinter.Orientation(0)):
     super().__init__(PaperSize, Orientation)
 def BeginPrint(self):
     # 大于9行自动更改纸型
     if len(self.DataSource) > 9:
         self.PaperSize = QPrinter.A4
         self.Orientation = QPrinter.Orientation(0)
     return super().BeginPrint()
Example #15
0
    def __init__(self,
                 curdate,
                 cur_tab,
                 tongji_tab,
                 dateString,
                 PaperSize=QPrinter.A4,
                 Orientation=QPrinter.Orientation(0)):
        super().__init__(PaperSize, Orientation)
        self.configData = JPPub().getConfigData()
        self.font_YaHei = QFont("Microsoft YaHei")
        self.font_YaHei_8 = QFont(self.font_YaHei)
        self.font_YaHei_8.setPointSize(8)
        self.font_YaHei_10 = QFont(self.font_YaHei)
        self.font_YaHei_10.setPointSize(20)
        self.font_YaHei_10.setBold(True)
        self.BackColor = JPPub().getConfigData(
        )['PrintHighlightBackgroundColor']
        rpt = self

        rpt.logo = JPPub().MainForm.logoPixmap
        rpt.ReportHeader.AddItemRect(2, (0, 0, 274, 50), rpt.logo)
        rpt.ReportHeader.AddItemRect(1, (274, 0, 446, 60),
                                     'de vendas diárias 收款日报表',
                                     Bolder=False,
                                     AlignmentFlag=(Qt.AlignCenter),
                                     Font=self.font_YaHei_10)

        rpt.ReportHeader.AddItemRect(1, (0, 50, 720, 20),
                                     'Date:{}'.format(curdate),
                                     Bolder=False,
                                     AlignmentFlag=(Qt.AlignRight),
                                     Font=self.font_YaHei_8)

        title = [
            '序号\nID', '客户名\nCliente', '收款额\nAmount', '收款人\nfPayee',
            '收款方式\nModoPago', '单据号\nOrderID', '备注\nNote'
        ]

        fns = [
            'fID', 'fCustomerName', 'fAmountCollected', 'fPayee',
            'fPaymentMethod', 'fOrderID', 'fNote'
        ]
        cols = 7
        al_c = Qt.AlignCenter
        al_r = (Qt.AlignVCenter | Qt.AlignRight)
        al_l = (Qt.AlignVCenter | Qt.AlignLeft)
        rpt.SetMargins(30, 30, 30, 30)
        rpt.ReportHeader.AddPrintLables(0,
                                        72,
                                        40,
                                        Texts=title,
                                        Widths=[40, 210, 80, 80, 100, 120, 90],
                                        Aligns=[al_c] * cols)
        rpt.Detail.addPrintRowCountItem(0,
                                        0,
                                        40,
                                        20,
                                        AlignmentFlag=al_c,
                                        Font=self.font_YaHei_8)
        rpt.Detail.AddItem(
            3,
            40,
            0,
            210,
            20,
            fns[1],
            FormatString=' {}',
            AlignmentFlag=al_l,
            # 超出长度省略
            AutoShrinkFont=self.configData['AutoShrinkFonts'],
            AutoEllipsis=self.configData['AutoEllipsis'],
            Font=self.font_YaHei_8)
        rpt.Detail.AddItemRect(3, (250, 0, 80, 20),
                               fns[2],
                               AlignmentFlag=al_r,
                               FormatString='{:,.2f} ',
                               Font=self.font_YaHei_8)
        rpt.Detail.AddItemRect(3, (330, 0, 80, 20),
                               fns[3],
                               AlignmentFlag=al_c,
                               Font=self.font_YaHei_8)
        rpt.Detail.AddItemRect(3, (410, 0, 100, 20),
                               fns[4],
                               AlignmentFlag=al_c,
                               Font=self.font_YaHei_8)
        rpt.Detail.AddItemRect(3, (510, 0, 120, 20),
                               fns[5],
                               AlignmentFlag=al_l,
                               FormatString=' {}',
                               Font=self.font_YaHei_8)
        rpt.Detail.AddItemRect(3, (630, 0, 90, 20),
                               fns[6],
                               AlignmentFlag=al_l,
                               FormatString=' {}',
                               Font=self.font_YaHei_8)

        sum_j = 0
        for i in range(len(cur_tab)):
            sum_j += cur_tab.getOnlyData([i, 4])

        rpt.ReportFooter.AddPrintLables(
            0,
            0,
            20,
            Texts=["合计Sum", JPGetDisplayText(sum_j), " "],
            Widths=[250, 80, 390],
            Aligns=[al_c, al_r, al_c],
            FillColor=self.BackColor,
            Font=self.font_YaHei_8)

        sql_payable = f"""
            SELECT SUM(fPayable) AS sumPayable, 
                COUNT(fOrderID) AS countOrderID
            FROM v_all_sales
            WHERE (fOrderDate = STR_TO_DATE('{dateString}', '%Y-%m-%d'))
        """
        sql_SKFS = f"""
        select if(isnull(Q.fPaymentMethod),'Sum合计',Q.fPaymentMethod) as skfs,
            Q.今日收款,Q.今日收款笔数,Q.DIBOTO,Q.DIBOTO笔数,Q.Prepaid,Q.Prepaid笔数,Q.小计Subtotal,Q.笔数小计Subcount
            from (
            SELECT fPaymentMethod
                , SUM(if(fOrderID = 'DIBOTO' or fOrderID = 'Prepaid', NULL, fAmountCollected)) AS 今日收款
                , COUNT(if(fOrderID = 'DIBOTO' or fOrderID = 'Prepaid', NULL, fAmountCollected)) AS 今日收款笔数
                , SUM(if(fOrderID = 'DIBOTO', fAmountCollected, NULL)) AS DIBOTO
                , COUNT(if(fOrderID = 'DIBOTO', fAmountCollected, NULL)) AS DIBOTO笔数
                , SUM(if(fOrderID = 'Prepaid', fAmountCollected, NULL)) AS Prepaid
                , COUNT(if(fOrderID = 'Prepaid', fAmountCollected, NULL)) AS Prepaid笔数
                , SUM(fAmountCollected) AS 小计Subtotal, COUNT(fAmountCollected) AS 笔数小计Subcount
            FROM v_receivables
            WHERE fReceiptDate=STR_TO_DATE('{dateString}', '%Y-%m-%d')
            GROUP BY fPaymentMethod WITH ROLLUP) as Q        
        """
        title_height = 20
        rpt.ReportFooter.AddItem(1,
                                 0,
                                 title_height,
                                 720,
                                 30,
                                 "本日结算方式统计Today's settlement statistics",
                                 Bolder=False,
                                 AlignmentFlag=al_c)
        title_height += 30
        title = [
            '方式PM', "收当日订单Today's Order Rec", '收欠款DIBOTO', '预付款Prepaid',
            '小计SubTotle'
        ]
        rpt.ReportFooter.AddPrintLables(0,
                                        title_height,
                                        25,
                                        title,
                                        Widths=[120, 150, 150, 150, 150],
                                        Aligns=[al_c] * 5,
                                        Font=self.font_YaHei_8)
        tongji_tab = JPQueryFieldInfo(sql_SKFS)
        title_height += 25
        for r in range(len(tongji_tab)):
            FillColor = QColor(255, 255,
                               255) if r < (len(tongji_tab) - 1) else QColor(
                                   194, 194, 194)
            rpt.ReportFooter.AddItem(1,
                                     0,
                                     title_height + r * 20,
                                     120,
                                     20,
                                     tongji_tab.getDispText([r, 0]),
                                     FormatString=' {}',
                                     AlignmentFlag=al_l,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     120,
                                     title_height + r * 20,
                                     100,
                                     20,
                                     tongji_tab.getDispText([r, 1]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     220,
                                     title_height + r * 20,
                                     50,
                                     20,
                                     tongji_tab.getDispText([r, 2]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     270,
                                     title_height + r * 20,
                                     100,
                                     20,
                                     tongji_tab.getDispText([r, 3]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     370,
                                     title_height + r * 20,
                                     50,
                                     20,
                                     tongji_tab.getDispText([r, 4]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     420,
                                     title_height + r * 20,
                                     100,
                                     20,
                                     tongji_tab.getDispText([r, 5]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     520,
                                     title_height + r * 20,
                                     50,
                                     20,
                                     tongji_tab.getDispText([r, 6]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     570,
                                     title_height + r * 20,
                                     100,
                                     20,
                                     tongji_tab.getDispText([r, 7]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)
            rpt.ReportFooter.AddItem(1,
                                     670,
                                     title_height + r * 20,
                                     50,
                                     20,
                                     tongji_tab.getDispText([r, 8]),
                                     FormatString='{} ',
                                     AlignmentFlag=al_r,
                                     Font=self.font_YaHei_8,
                                     FillColor=self.BackColor)

        # 总结部分
        title_height += (len(tongji_tab) - 1) * 20
        title_height += 40
        title = [
            "当日订单应付Today's Order Payable",
            "收当日订单Today's Order Rec",
            '欠款Arrears',
        ]
        rpt.ReportFooter.AddPrintLables(120,
                                        title_height,
                                        25,
                                        title,
                                        Widths=[200, 200, 200],
                                        Aligns=[al_c] * 3,
                                        Font=self.font_YaHei_8)
        rpt.ReportFooter.AddItem(1,
                                 0,
                                 title_height,
                                 120,
                                 45,
                                 '总结\nsummary',
                                 FormatString='{} ',
                                 AlignmentFlag=al_c,
                                 Font=self.font_YaHei_8,
                                 FillColor=self.BackColor)

        title_height += 25
        payable_tab = JPQueryFieldInfo(sql_payable)
        v1 = payable_tab.getOnlyData([0, 0])
        v2 = tongji_tab.getOnlyData([len(tongji_tab) - 1, 1])
        v3 = '{:,.2f}'.format((v1 if v1 else 0) - (v2 if v2 else 0))
        ShouDangRiDingDan = tongji_tab.getDispText([len(tongji_tab) - 1, 1
                                                    ]) + " " if v2 else "0 "
        txt = [
            payable_tab.getDispText([0, 0]) + " ",
            JPGetDisplayText(len(payable_tab), str) + " ", ShouDangRiDingDan,
            tongji_tab.getDispText([len(tongji_tab) - 1, 2]) + " ", v3 + " "
        ]
        rpt.ReportFooter.AddPrintLables(120,
                                        title_height,
                                        20,
                                        txt,
                                        Widths=[150, 50, 150, 50, 200],
                                        Aligns=[al_r] * 5,
                                        Font=self.font_YaHei_8,
                                        FillColor=self.BackColor)

        # 页脚
        self.PageFooter.AddItemRect(4, (10, 0, 100, 20),
                                    '',
                                    FormatString='Page: {Page}/{Pages}',
                                    Bolder=False,
                                    AlignmentFlag=Qt.AlignLeft,
                                    Font=self.font_YaHei_8)
        self.PageFooter.AddItemRect(
            5, (0, 0, 720, 20),
            '',
            FormatString="PrintTime: %Y-%m-%d %H:%M:%S",
            Bolder=False,
            AlignmentFlag=Qt.AlignRight,
            Font=self.font_YaHei_8)
        self.DataSource = [
            cur_tab.getRowValueDict(i) for i in range(len(cur_tab))
        ]