<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundAlpha="0" xmlns="*" initialize="srv.send()" > <mx:Script> <![CDATA[ import mx.printing.FlexPrintJob; import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; [Bindable] public var cardTypeOpt:Array = [{label: "MasterCard", data: "mc"}, {label: "VISA", data: "visa"}, {label: "MAESTRO", data: "maestro"}]; [Bindable] public var ord:uint = 14564; [Bindable] public var prodTotal:Number = 0; public var formPrintView:FormPrintView; public function srvResult(event : ResultEvent):void { var products : Array = event.result.catalog.product; myDataGrid.dataProvider = new ArrayCollection(); for (var i : int = 1 ; i < 100 ; i++) { var index : int = Math.round(Math.random() * (products.length - 1)); var product : Object = {}; product.idx = i; product.name = products[index].name; product.price = products[index].price; product.qty = (Math.round(Math.random() * 5) + 1); product.totalPrice = Math.round((parseFloat(products[index].price) * product.qty) * 100) / 100; ArrayCollection(myDataGrid.dataProvider).addItem(product); prodTotal += product.totalPrice; } } public function doPrintForm():void { var pj:FlexPrintJob = new FlexPrintJob(); if(pj.start()) { var order:Object = {}; order.orderid=ord; order.name=name1.text; order.address=address.text; order.city=city.text; order.state=state.text; order.zip=zip.text; order.email=email.text; order.cardType=cardType.selectedItem.label; order.cardNumber=cardNumber.text; order.cardHolder=cardHolder.text; order.cardExpMonth=cardExpMonth.value; order.cardExpYear=cardExpYear.value; var numRows:uint = myDataGrid.dataProvider ? myDataGrid.dataProvider.length : 0; formPrintView = new FormPrintView(); formPrintView.width=pj.pageWidth; formPrintView.height=pj.pageHeight; addChild(formPrintView); formPrintView.myDataGrid.dataProvider = myDataGrid.dataProvider; formPrintView.order = order; formPrintView.prodTotal = prodTotal; formPrintView.showPage("single"); var headerShift:int = formPrintView.myDataGrid.showHeaders ? 1 : 0; if((formPrintView.myDataGrid.verticalScrollPosition + (formPrintView.myDataGrid.rowCount - headerShift)) >= numRows) { pj.addObject(formPrintView); } else { formPrintView.showPage("first"); pj.addObject(formPrintView); formPrintView.pageNumber++; while(true) { formPrintView.myDataGrid.nextPage(); formPrintView.showPage("last"); if((formPrintView.myDataGrid.verticalScrollPosition + (formPrintView.myDataGrid.rowCount - headerShift)) >= numRows) { if(formPrintView.myDataGrid.verticalScrollPosition >= numRows) { formPrintView.myDataGrid.height = 0; formPrintView.myDataGrid.visible = false; } pj.addObject(formPrintView); break; } else { formPrintView.showPage("middle"); pj.addObject(formPrintView); formPrintView.pageNumber++; } } } pj.send(); removeChild(formPrintView); } //delete pj; } ]]> </mx:Script> <mx:HTTPService id="srv" url="../assets/catalog.xml" useProxy="false" result="srvResult(event)"/> <mx:TabNavigator width="100%" creationPolicy="all"> <mx:Form id="myForm" label="Personal Info"> <mx:VBox> <mx:HBox> <mx:FormItem label="Identification Number: " > <mx:Label id="orderid" width="200" text="{String(ord)}" fontWeight="bold"/> </mx:FormItem> </mx:HBox> <mx:HBox> <mx:FormItem label="Name: " > <mx:TextInput id="name1" width="200" text="John Doe" fontWeight="bold"/> </mx:FormItem> <mx:FormItem label="Email: " > <mx:TextInput id="email" width="200" text="jdoe@ficticious.com" fontWeight="bold"/> </mx:FormItem> </mx:HBox> <mx:HBox> <mx:FormItem label="Address: " > <mx:TextInput id="address" width="200" text="123 Main Street" fontWeight="bold"/> </mx:FormItem> <mx:FormItem label="City: " > <mx:TextInput id="city" width="200" text="Some Town" fontWeight="bold"/> </mx:FormItem> </mx:HBox> <mx:HBox> <mx:FormItem label="State: " > <mx:TextInput id="state" width="200" text="California" fontWeight="bold"/> </mx:FormItem> <mx:FormItem label="Zip: " > <mx:TextInput id="zip" width="200" text="91234" fontWeight="bold"/> </mx:FormItem> </mx:HBox> </mx:VBox> </mx:Form> <mx:Form label="Payment Info"> <mx:HBox> <mx:VBox > <mx:HBox> <mx:FormItem label="Card Type: " > <mx:ComboBox id="cardType" themeColor="#CC9999" dataProvider="{cardTypeOpt}" width="200" fontWeight="bold"/> </mx:FormItem> <mx:FormItem label="Card Number: " > <mx:TextInput id="cardNumber" width="200" text="5434545545554555" fontWeight="bold"/> </mx:FormItem> </mx:HBox> <mx:HBox> <mx:FormItem label="Card Holder: " > <mx:TextInput id="cardHolder" width="200" text="John Doe" fontWeight="bold"/> </mx:FormItem> <mx:FormItem label="Card Expiry Month: " > <mx:NumericStepper id="cardExpMonth" themeColor="#66FF99" width="200" minimum="1" maximum="12" value="1" stepSize="1" fontWeight="bold"/> </mx:FormItem> </mx:HBox> <mx:HBox> <mx:FormItem label="Card Expiry Year: " > <mx:NumericStepper id="cardExpYear" themeColor="#00CCCC" width="200" minimum="2004" maximum="2016" value="2006" stepSize="1" fontWeight="bold"/> </mx:FormItem> </mx:HBox> </mx:VBox> </mx:HBox> </mx:Form> </mx:TabNavigator> <mx:DataGrid id="myDataGrid" width="100%" > <mx:columns> <mx:Array> <mx:DataGridColumn dataField="idx" headerText="Line Item #"/> <mx:DataGridColumn dataField="name" headerText="Name"/> <mx:DataGridColumn dataField="price" headerText="Price"/> <mx:DataGridColumn dataField="qty" headerText="Quantity"/> <mx:DataGridColumn dataField="totalPrice" headerText="Total Price"/> </mx:Array> </mx:columns> </mx:DataGrid> <FormPrintFooter id="footer" prodTotal="{prodTotal}"/> <mx:HBox> <mx:Button id="btnPrintForm" label="Print Form" click="doPrintForm()" /> </mx:HBox> </mx:Application>
|