0

我需要在 A4 大小的页面中打印以下数据网格。它不适合页面大小,并且 dataprovider 不适用于 printdatagrid。请纠正我。

在此处输入图像描述

当前输出为:

在此处输入图像描述

我的数据网格:

<mx:DataGrid id="dashboardList" width="100%" height="95%"
                                             alternatingItemColors="[0x373737, 0x373737]"
                                             borderColor="#FFFFFF" borderStyle="inset"
                                             chromeColor="#295A7D" contentBackgroundColor="#373737"
                                             dataProvider="{allTrancList}" fontWeight="normal"
                                             horizontalGridLineColor="#858585" click="productDatagrid_clickHandler(event)"
                                             horizontalGridLines="true" variableRowHeight="true"
                                             wordWrap="true">
                                    <mx:columns>
                                        <mx:DataGridColumn width="60" headerText="S.No"
                                                           labelFunction="serialNoLabelFunc2"/>                                 
                                        <mx:DataGridColumn width="60" dataField="trancCode"
                                                           headerText="Order ID"/>
                                        <mx:DataGridColumn dataField="date" headerText=" Date"
                                                           labelFunction="getDateLabel"/>
                                        <mx:DataGridColumn dataField="clientName"
                                                           headerText="Client name"/>
                                        <mx:DataGridColumn width="90" dataField="clientCode"
                                                           headerText="Client code"/>
                                        <mx:DataGridColumn dataField="itemType"
                                                           headerText="Work/Product"/>
                                        <mx:DataGridColumn width="60" dataField="itemNumbers"
                                                           headerText="Count"/> 

                                        <mx:DataGridColumn dataField="cost" headerText="Cost"/>

                                        <mx:DataGridColumn dataField="discountAmount"
                                                           headerText="Discount"/>
                                        <mx:DataGridColumn dataField="tax" headerText="Tax"/>

                                        <mx:DataGridColumn dataField="total" headerText="Total"/>

                                        <mx:DataGridColumn dataField="paymondmode"
                                                           headerText="Payment mode"/>
                                    </mx:columns>
                                </mx:DataGrid>

我的 printData 网格:

<mx:PrintDataGrid id="myDataGrid" width="99%" height="100%">
        <mx:columns>

            <mx:DataGridColumn width="60" dataField="trancCode"
                               headerText="Order ID"/>

            <mx:DataGridColumn dataField="clientName"
                               headerText="Client"/>
            <mx:DataGridColumn width="90" dataField="clientCode"
                               headerText="Client code"/>
            <mx:DataGridColumn dataField="itemType"
                               headerText="Type"/>
            <mx:DataGridColumn width="60" dataField="itemNumbers"
                               headerText="Count"/> 

            <mx:DataGridColumn dataField="cost" headerText="Cost"/>

            <mx:DataGridColumn dataField="discountAmount"
                               headerText="Discount"/>
            <mx:DataGridColumn dataField="tax" headerText="Tax"/>

            <mx:DataGridColumn dataField="total" headerText="Total"/>

            <mx:DataGridColumn dataField="paymondmode"
                               headerText="Payment mode"/>
        </mx:columns>
    </mx:PrintDataGrid>

我的打印代码:

var thePrintView:FormPrintView = new FormPrintView();
                    addElement(thePrintView);

                    // Set the print view properties.
                    thePrintView.width=printJob.pageWidth;
                    thePrintView.height=printJob.pageHeight;
                    thePrintView.prodTotal = prodTotal;

                    // Set the data provider of the FormPrintView 
                    // component's DataGrid to be the data provider of 
                    // the displayed DataGrid.
                //  thePrintView.myDataGrid=PrintDataGrid(dashboardList);
                    thePrintView.myDataGrid.dataProvider =allTrancList;
4

1 回答 1

2

您可以寻找AlivePDFPurePDF,这两个选项都将为您提供更多的空间来展开您的翅膀,并有很多可能性,并且可以满足不断变化的需求。

请在下面找到代码(此代码只是关于您的要求的可能性的见解,您可以从 purePDF 站点 [上面链接] 找到整个测试文件库)-

package
{
import flash.events.Event;

import org.purepdf.colors.RGBColor;
import org.purepdf.elements.Paragraph;
import org.purepdf.elements.RectangleElement;
import org.purepdf.pdf.PdfPCell;
import org.purepdf.pdf.PdfPTable;

public class PdfPTableColors extends DefaultBasicExample
{
    public function PdfPTableColors(d_list:Array=null)
    {
        super(["Customize border and background color","of table cells"]);
    }

    override protected function execute(event:Event=null):void
    {
        super.execute();
        createDocument();
        document.open();

        registerDefaultFont();

        var table: PdfPTable = new PdfPTable(4);
        table.widthPercentage = 100;
        var cell: PdfPCell;
        cell = PdfPCell.fromPhrase(new Paragraph("test colors:"));
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("red / no borders"));
        cell.border = RectangleElement.NO_BORDER;
        cell.backgroundColor = RGBColor.RED;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("green / magenta bottom border"));
        cell.border = RectangleElement.BOTTOM;
        cell.borderColorBottom = RGBColor.MAGENTA;
        cell.borderWidthBottom = 10;
        cell.backgroundColor = RGBColor.GREEN;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("blue / cyan top border + padding"));
        cell.border = RectangleElement.TOP;
        cell.useBorderPadding = true;
        cell.borderWidthTop = 5;
        cell.borderColorTop = RGBColor.CYAN;
        cell.backgroundColor = RGBColor.BLUE;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("test GrayFill:"));
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("0.25"));
        cell.border = RectangleElement.NO_BORDER;
        cell.grayFill = 0.25;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("0.5"));
        cell.border = RectangleElement.NO_BORDER;
        cell.grayFill = 0.5;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("0.75"));
        cell.border = RectangleElement.NO_BORDER;
        cell.grayFill = 0.75;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("test bordercolors:"));
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("different borders"));
        cell.borderWidthLeft = 6;
        cell.borderWidthBottom = 5;
        cell.borderWidthRight = 4;
        cell.borderWidthTop = 2;
        cell.borderColorLeft = RGBColor.RED;
        cell.borderColorBottom = RGBColor.ORANGE;
        cell.borderColorRight = RGBColor.YELLOW;
        cell.borderColorTop = RGBColor.GREEN;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("with correct padding"));
        cell.useBorderPadding = true;
        cell.borderWidthLeft = 6;
        cell.borderWidthBottom = 5;
        cell.borderWidthRight = 4;
        cell.borderWidthTop = 2;
        cell.borderColorLeft = RGBColor.RED;
        cell.borderColorBottom = RGBColor.ORANGE;
        cell.borderColorRight = RGBColor.YELLOW;
        cell.borderColorTop = RGBColor.GREEN;
        table.addCell(cell);

        cell = PdfPCell.fromPhrase(new Paragraph("orange border"));
        cell.borderWidth = 6;
        cell.borderColor = RGBColor.ORANGE;
        table.addCell(cell);

        document.add(table);
        document.close();
        save();
    }
}
}
于 2013-02-12T06:21:07.357 回答