1Use cWebBusinessProcess.pkg
     2Use DataDict.pkg
     3Use cWebReport.pkg
     4Use VENDOR.DD
     5Use INVT.DD
     6Use CUSTOMER.DD
     7Use SALESP.DD
     8Use OrderHea.DD
     9Use OrderDtl.DD
    10
    11Object oOrderDtlReport is a cWebBusinessProcess
    12    Set pbAllowDelete to False
    13    Set pbAllowSaveEdit to False
    14    Set pbAllowSaveNew to False
    15    Set psDescription to "Order Detail For Order"
    16
    17    Object Vendor_DD is a Vendor_DataDictionary
    18        Send DefineAllExtendedFields
    19    End_Object    // Vendor_DD
    20
    21    Object Invt_DD is a Invt_DataDictionary
    22        Set DDO_Server to Vendor_DD
    23        Send DefineAllExtendedFields
    24    End_Object    // Invt_DD
    25
    26    Object Customer_DD is a Customer_DataDictionary
    27        Send DefineAllExtendedFields
    28    End_Object    // Customer_DD
    29
    30    Object SalesP_DD is a Salesp_DataDictionary
    31        Send DefineAllExtendedFields
    32    End_Object    // SalesP_DD
    33
    34    Object OrderHea_DD is a OrderHea_DataDictionary
    35        Set DDO_Server to Customer_DD
    36        Set DDO_Server to SalesP_DD
    37        Send DefineAllExtendedFields
    38    End_Object    // OrderHea_DD
    39
    40    Object OrderDtl_DD is a OrderDtl_DataDictionary
    41        Set DDO_Server to OrderHea_DD
    42        Set DDO_Server to Invt_DD
    43        Send DefineAllExtendedFields
    44    End_Object    // OrderDtl_DD
    45
    46    Set Main_DD to OrderDtl_DD
    47
    48    Object oReport is a cWebReport
    49
    50        Set piConstrainFile To OrderHea.File_Number
    51        Set priConstrainRowId To (NullRowId()) //  We will set this elsehwere
    52        Set piOrdering to 1
    53
    54        Function Break1 Returns String
    55            Number nNum
    56            Get ddValue "OrderHea.Order_Number" To nNum
    57            Function_Return nNum //  Break every time the parent record changes
    58        End_Function // Break1
    59
    60        Procedure OnInitBreakpoints
    61            Send RegisterBreakpoint get_Break1
    62        End_Procedure // OnInitBreakpoints
    63
    64        Procedure OnSubHeader1
    65            Number nOrderNumber nCustomerNumber
    66            String sDate sName sAddress sCity sState sZip sPhone sTerms
    67            String sVia sBy sSalespId sSalespName
    68
    69            Get ddValueEncode "OrderHea.Order_Number" To nOrderNumber
    70            Get ddValueEncode "OrderHea.Order_Date"   To sDate
    71            Get ddValueEncode "Customer.Customer_Number" To nCustomerNumber
    72            Get ddValueEncode "Customer.Name" To sName
    73            Get ddValueEncode "Customer.Address" To sAddress
    74            Get ddValueEncode "Customer.City" To sCity
    75            Get ddValueEncode "Customer.State" To sState
    76            Get ddValueEncode "Customer.Zip" To sZip
    77            Get ddValueEncode "Customer.Phone_Number" To sPhone
    78            Get ddValueEncode "OrderHea.Terms" To sTerms
    79            Get ddValueEncode "OrderHea.Ship_Via" To sVia
    80            Get ddValueEncode "OrderHea.Ordered_By" To sBy
    81            Get ddValueEncode "Salesp.Id" To sSalespId
    82            Get ddValueEncode "Salesp.Name" To sSalespName
    83
    84            Send WriteHtmlTableBegin 'border="0" width="50%" Class="ReportHdr1Table"'
    85
    86            Send WriteHtmlRowBegin
    87                Send WriteHtmlCellHeader 'Order Number' ' Class="Label"'
    88                Send WriteHtmlCell (FormatNumber(nOrderNumber,0)) ' Class="Data"'
    89            Send WriteHtmlRowEnd
    90            Send WriteHtmlRowBegin
    91                Send WriteHtmlCellHeader 'Order Date' ' Class="Label"'
    92                Send WriteHtmlCell sDate ' Class="Data"'
    93            Send WriteHtmlRowEnd
    94            Send WriteHtmlRowBegin
    95                Send WriteHtmlCellHeader 'Customer Number' ' Class="Label"'
    96                Send WriteHtmlCell (FormatNumber(nCustomerNumber,0)) ' Class="Data"'
    97            Send WriteHtmlRowEnd
    98            Send WriteHtmlRowBegin
    99                Send WriteHtmlCellHeader 'Customer Name' ' Class="Label"'
   100                Send WriteHtmlCell sName ' Class="Data"'
   101            Send WriteHtmlRowEnd
   102            Send WriteHtmlRowBegin
   103                Send WriteHtmlCellHeader 'Street Address' ' Class="Label"'
   104                Send WriteHtmlCell sAddress ' Class="Data"'
   105            Send WriteHtmlRowEnd
   106            Send WriteHtmlRowBegin
   107                Send WriteHtmlCellHeader 'City' ' Class="Label"'
   108                Send WriteHtmlCell sCity ' Class="Data"'
   109            Send WriteHtmlRowEnd
   110            Send WriteHtmlRowBegin
   111                Send WriteHtmlCellHeader 'State' ' Class="Label"'
   112                Send WriteHtmlCell sState ' Class="Data"'
   113            Send WriteHtmlRowEnd
   114            Send WriteHtmlRowBegin
   115                Send WriteHtmlCellHeader 'Zip/Postal Code' ' Class="Label"'
   116                Send WriteHtmlCell sZip ' Class="Data"'
   117            Send WriteHtmlRowEnd
   118            Send WriteHtmlRowBegin
   119                Send WriteHtmlCellHeader 'Phone Number' ' Class="Label"'
   120                Send WriteHtmlCell sPhone ' Class="Data"'
   121            Send WriteHtmlRowEnd
   122            Send WriteHtmlRowBegin
   123                Send WriteHtmlCellHeader 'Terms' ' Class="Label"'
   124                Send WriteHtmlCell sTerms ' Class="Data"'
   125            Send WriteHtmlRowEnd
   126            Send WriteHtmlRowBegin
   127                Send WriteHtmlCellHeader 'Ship Via' ' Class="Label"'
   128                Send WriteHtmlCell sVia ' Class="Data"'
   129            Send WriteHtmlRowEnd
   130            Send WriteHtmlRowBegin
   131                Send WriteHtmlCellHeader 'Ordered By' ' Class="Label"'
   132                Send WriteHtmlCell sBy ' Class="Data"'
   133            Send WriteHtmlRowEnd
   134            Send WriteHtmlRowBegin
   135                Send WriteHtmlCellHeader 'Sales Person ID' ' Class="Label"'
   136                Send WriteHtmlCell sSalespId ' Class="Data"'
   137            Send WriteHtmlRowEnd
   138            Send WriteHtmlRowBegin
   139                Send WriteHtmlCellHeader 'Sales Person Name' ' Class="Label"'
   140                Send WriteHtmlCell sSalespName ' Class="Data"'
   141            Send WriteHtmlRowEnd
   142
   143            Send WriteHtmlTableEnd
   144
   145            Send WriteHtml '
'
   146
   147            Send WriteHtmlTableBegin 'border="0" width="99%" Class="ReportTable"'
   148
   149            Send WriteHtmlRowBegin
   150                Send WriteHtmlCellHeader 'Item ID' 'Class="Header" Align="left"'
   151                Send WriteHtmlCellHeader 'Description' 'Class="Header" Align="left"'
   152                Send WriteHtmlCellHeader 'Quantity' 'Class="Header" Align="right"'
   153                Send WriteHtmlCellHeader 'Price' 'Class="Header" Align="right"'
   154                Send WriteHtmlCellHeader 'Total' 'Class="Header" Align="right"'
   155            Send WriteHtmlRowEnd
   156
   157        End_Procedure // OnSubHeader1
   158
   159        Procedure OnBody
   160            String sItemId sDesc
   161            Number nQty nPrice nExtended
   162
   163            Get ddValueEncode "Invt.Item_id" To sItemId
   164            Get ddValueEncode "Invt.Description" To sDesc
   165            Get ddValueEncode "OrderDtl.Qty_Ordered" To nQty
   166            Get ddValueEncode "OrderDtl.Price" To nPrice
   167            Get ddValueEncode "OrderDtl.Extended_Price" To nExtended
   168
   169            Send WriteHtmlRowBegin
   170                Send WriteHtmlCell sItemId 'Class="Data" Align="left"'
   171                Send WriteHtmlCell sDesc 'Class="Data" Align="left"'
   172                Send WriteHtmlCell (FormatNumber(nQty,0)) 'Class="Data" Align="right"'
   173                Send WriteHtmlCell (FormatNumber(nPrice,2)) 'Class="Data" Align="right"'
   174                Send WriteHtmlCell (FormatNumber(nExtended,2)) 'Class="Data" Align="right"'
   175            Send WriteHtmlRowEnd
   176            Send AddSubTotal 1 nExtended //  Subtotal of field
   177        End_Procedure // OnBody
   178
   179        Procedure OnSubTotal1
   180            Number nTotal
   181
   182            Send WriteHtmlCell "" 'colspan="4" Class="Header"'
   183            Get SubTotal 1 To nTotal
   184            Send WriteHtmlCell (FormatNumber(nTotal,2)) 'Class="Header" align="right" '
   185
   186            Send WriteHtmlTableEnd
   187        End_Procedure // OnSubTotal1
   188
   189        Function RunOrderDtlReport RowId riHdrRec Returns RowId
   190            RowId   riEnd
   191            Integer iStat
   192            Set piMaxCount        To 0
   193            Set priStartRowId     To (NullRowId())
   194            Set priConstrainRowId To riHdrRec
   195            Get DoRunReport       To iStat
   196            Function_Return (NullRowId())
   197        End_Function // RunOrderDtlReport
   198
   199        Function RunAllOrderDtlReport RowId riStart Integer iMax Returns RowId
   200            RowId   riEnd
   201            Integer iStat
   202
   203            Set piMaxCount           To iMax
   204            Set piMaxCountBreakLevel To 1
   205            Set priStartRowId        To riStart
   206            Set priConstrainRowId    To (NullRowId())
   207            Get DoRunReport          To iStat
   208            Get priLastRowId         To riEnd
   209            Function_Return riEnd
   210        End_Function // RunAllOrderDtlReport
   211
   212    End_Object    // oReport
   213
   214    { Published = True  }
   215    { Description = ""  }
   216    Procedure SetHRefName String sName
   217        Set psHRefname Of oReport To sName
   218    End_Procedure // SetHRefName
   219
   220    { Published = True  }
   221    { Description = ""  }
   222    Function RunOrderDtlReport String sHdrRec Returns string
   223        RowId riEnd
   224        Get RunOrderDtlReport Of oReport (DeSerializeRowId(sHdrRec)) To riEnd
   225        Function_Return (SerializeRowId(riEnd))
   226    End_Function // RunOrderDtlReport
   227
   228    { Published = True  }
   229    { Description = ""  }
   230    Function RunAllOrderDtlReport string sStart Integer iMax Returns string
   231        RowId riEnd
   232        Get RunAllOrderDtlReport Of oReport (DeserializeRowid(sStart)) iMax To riEnd
   233        Function_Return (SerializeRowId(riEnd))
   234    End_Function // RunAllOrderDtlReport
   235
   236End_Object    // oOrderDtlReport