admin 發表於 2018-3-10 13:39:45

HOW TO PUT IFS REPORT ON CLIENT APL

以"登錄到貨" RMB 列印驗收紀錄單為例
登錄到貨 tbwPurchaseOrderArrival
tbwPurchaseOrderArrival(PurchaseReceipt.apl)
1) Named Menu
Menu: menuTbwMethods
      Resource Id: 8640
      Title: &Operations
      Description:
      Enabled when:
      Status Text:
.....
      Menu Separator
      Menu Item: &Print Order Receipt Form...
                Resource Id: 10951
                Keyboard Accelerator: (none)
                Status Text: Print purchase Requisition
                Menu Settings
                        Enabled when: SalSendMsg(hWndForm, PM_UserMethod, METHOD_Inquire, SalHStringToNumber('PrintReceipt'))
                        Checked when:
                Menu Actions
                        Call PostMessage(hWndForm, PM_UserMethod, METHOD_Execute, 'PrintReceipt')

2)Function: UserMethod
Function: UserMethod
      Description:
      Returns
                Boolean:
      Parameters
                Number: nWhat
                String: sMethod
      Static Variables
      Local variables
                Number: nRow
                String: sRecState
      Actions
                Select Case nWhat
                        Case METHOD_Inquire
                              Set sRecState =colsObjState
....
                              Else If sMethod = 'PrintReceipt'
                                        Return PrintPurchaseReceipt(nWhat)
                              Return FALSE

3).Function:PrintPurchaseReceipt

Function: PrintPurchaseReceipt
      Description:
      Returns
      Parameters
                Number: nWhat
      Static Variables
      Local variables
                Number: nPrintJobId
                String: sReqNumber
                Long String: lsParamAttr
                Long String: lsReportAttr
                Long String: lsInstanceAttr
      Actions
                If nWhat = METHOD_Inquire
                        Return Security.IsViewAvailable('NTCH_PURCHASE_RECEIPT_REP')
                Else If nWhat = METHOD_Execute
                        Set lsInfo = strNULL
                        Set sReqNumber = colsOrderNo
                        Set lsReportAttr = InfoService.ItemValueCreate( 'REPORT_ID', 'NTCH_PURCHASE_RECEIPT_REP' )
                        Set lsParamAttr = lsParamAttr || InfoService.ItemValueCreate( 'PO_NO', sReqNumber )
                        ! ! Print report for all received lines

                        If InfoService.ReportExecute( nPrintJobId, lsReportAttr, lsParamAttr, strNULL )=FALSE
                              If InfoService._IsError()
                                        Return FALSE
                              Else
                                        Set lsInstanceAttr[ 0] = InfoService.ItemValueCreate( 'RESULT_KEY', PalAttrFormatNumber( nPrintJobId ))
                                        Return InfoService.ReportListPrint( strNULL, lsInstanceAttr )
                        Else
                              Set lsInstanceAttr[ 0] = InfoService.ItemValueCreate( 'RESULT_KEY', PalAttrFormatNumber( nPrintJobId ))
                              Return InfoService.ReportListPrint( strNULL, lsInstanceAttr )


頁: [1]
查看完整版本: HOW TO PUT IFS REPORT ON CLIENT APL