调试函数断点时未调用

时间:2016-04-28 21:22:07

标签: debugging powerbuilder

我正在使用powerbuilder 11.2并且我有一个创建主屏幕的pbl。用户在文本框中输入订单号并按Enter键,它将填充屏幕底部的数据。我试图调试以在我的函数中找到一个断点,但它似乎忽略了断点。有没有办法闯入这个功能?我有一个我需要评估的变量,我似乎无法在运行时进入该函数。这是代码:

 Decimal{2} ld_total_hrs,ld_load_hrs,ld_unload_hrs
long            ll_stops_rowcount, ll_row, ll_type, ll_ord_number, ll_rd_rowcount
datetime        ldt_1st_stop, ldt_last_stop, ldt_start_time, ldt_end_time, ldt_deliver_time
string      ls_dest_id, ls_type, ls_pay_id, ls_ref_number, ls_pay_leg_config
boolean     lb_first_drop = TRUE

ld_load_hrs = 0
ld_unload_hrs = 0
SetNull(ldt_deliver_time)
ll_stops_rowcount = dw_trip.RowCount()

If ll_stops_rowcount < 1 then Return 0

For ll_row = 1 to ll_stops_rowcount
    If ll_row = 1 then
        ldt_1st_stop = dw_trip.GetItemDateTime ( 1, "stops_stp_arrivaldate" )
    End if

    If dw_trip.GetItemString(ll_row,"stops_stp_type") = "PUP" then
        ldt_start_time = dw_trip.GetItemDateTime(ll_row,"stops_stp_arrivaldate")
        ldt_end_time = dw_trip.GetItemDateTime(ll_row,"stops_stp_departuredate")
        ld_load_hrs = ld_load_hrs + (f_datetimediff(ldt_start_time,ldt_end_time)/60)/60
    End if

    If dw_trip.GetItemString(ll_row,"stops_stp_type") = "DRP" then
        ldt_start_time = dw_trip.GetItemDateTime(ll_row,"stops_stp_arrivaldate")
        ldt_end_time = dw_trip.GetItemDateTime(ll_row,"stops_stp_departuredate")
        ld_unload_hrs = ld_unload_hrs + (f_datetimediff(ldt_start_time,ldt_end_time)/60)/60
        // get the first drops info for the report if paylegaslane is true else get last drop

        ls_pay_leg_config = is_PayLegConfig

        If is_CompanyOverride=true then
             ls_pay_leg_config = "ByLeg"
        End if 
        //TGRIFFIT - PayLegConfig = 'ByLeg' in TMW is equivalent to 'PayLegAsLane = 'Y' in FSS
        if  Upper(ls_pay_leg_config) = 'BYLEG' then
            If lb_first_drop Then    
                ldt_deliver_time = ldt_end_time
                ls_dest_id = dw_trip.GetItemString(ll_row,"stops_cmp_id")
                ls_ref_number = dw_trip.GetItemString(ll_row,"stops_stp_refnum")
                lb_first_drop = FALSE
            End if
        else
            ldt_deliver_time = ldt_end_time
            ls_dest_id = dw_trip.GetItemString(ll_row,"stops_cmp_id")
            ls_ref_number = dw_trip.GetItemString(ll_row,"stops_stp_refnum")
        end if

    End if

Next

ldt_last_stop = dw_trip.GetItemDateTime ( ll_stops_rowcount, "stops_stp_departuredate" )
ld_total_hrs = (f_datetimediff(ldt_1st_stop,ldt_last_stop)/60)/60
ll_ord_number = long(dw_triptab.GetItemString(1,"ord_number"))

//If g_messlevel% < 1 Then
if gnv_app.ii_MessLevel < 1 Then
    ids_revdist.Reset()
End if  

//Load the datastore that stores all the revenue distribution values 
ll_rd_rowcount = ids_revdist.RowCount()
ids_revdist.InsertRow(0)
ll_rd_rowcount ++

ids_revdist.SetItem(ll_rd_rowcount,"mov_number",i_movenum%)
ids_revdist.SetItem(ll_rd_rowcount,"lgh_number",dw_trip.GetItemNumber(1,"stops_lgh_number"))
ids_revdist.SetItem(ll_rd_rowcount,"total_hours",ld_total_hrs)
ids_revdist.SetItem(ll_rd_rowcount,"load_hours",ld_load_hrs)
ids_revdist.SetItem(ll_rd_rowcount,"unload_hours",ld_unload_hrs)
ids_revdist.SetItem(ll_rd_rowcount,"deliver_date",ldt_deliver_time)
ids_revdist.SetItem(ll_rd_rowcount,"dest_code",ls_dest_id)
ids_revdist.SetItem(ll_rd_rowcount,"ref_number",ls_ref_number)

Return ids_revdist.RowCount() 

我需要专门评估这一行,并在此行设置一个断点:

ls_pay_leg_config =“ByLeg”

以及以下几行。它没有破裂。我在PowerBuilder上生锈了,可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

将断点放在循环的开头。

相关问题