123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680 |
- $PBExportHeader$w_extr_query.srw
- forward
- global type w_extr_query from window
- end type
- type cb_4 from commandbutton within w_extr_query
- end type
- type cb_3 from commandbutton within w_extr_query
- end type
- type cb_check from commandbutton within w_extr_query
- end type
- type cb_1 from commandbutton within w_extr_query
- end type
- type st_1 from statictext within w_extr_query
- end type
- type cbx_case_sensitive from checkbox within w_extr_query
- end type
- type cb_find from commandbutton within w_extr_query
- end type
- type dw_criteria from u_dw within w_extr_query
- end type
- end forward
- global type w_extr_query from window
- integer x = 553
- integer y = 248
- integer width = 2363
- integer height = 1256
- boolean titlebar = true
- boolean controlmenu = true
- windowtype windowtype = response!
- long backcolor = 134217739
- toolbaralignment toolbaralignment = alignatleft!
- cb_4 cb_4
- cb_3 cb_3
- cb_check cb_check
- cb_1 cb_1
- st_1 st_1
- cbx_case_sensitive cbx_case_sensitive
- cb_find cb_find
- dw_criteria dw_criteria
- end type
- global w_extr_query w_extr_query
- type variables
- Long i_lRow
- String i_aszTypes[]
- DataWindow i_dwToActOn
- datastore ls_ds
- s_extrtriequery_tran s_dbdw
- blob blob_dw
- STRING RT_STR=' '
- end variables
- forward prototypes
- private function string wf_escapechars (string a_szvalue)
- private subroutine wf_resetfind ()
- private function long wf_find (long a_lstartrow)
- end prototypes
- private function string wf_escapechars (string a_szvalue);//WF_ESCAPECHARS
- Char cChar
- Integer nLength, nPos
- nLength = Len( a_szValue)
- For nPos = nLength To 1 Step -1
- cChar = Mid( a_szValue, nPos, 1)
- Choose Case cChar
- Case "~t", "~r", "~n", '"', "'", "~~"
- a_szValue = Replace( a_szValue, nPos, 1, "~~" + cChar)
- End Choose
- Next
- Return Trim( a_szValue)
- end function
- private subroutine wf_resetfind ();i_lRow = 0
- cb_find.Text = "查询(&S)"
- end subroutine
- private function long wf_find (long a_lstartrow);//Long lNoOfCriteria, lRow, lColumnNo
- //Integer nPos
- //String szFind,szFind1, szColumn, szOperator, szValue, szExpression, szJoin, szFormat, szValue1, szValue2, szValue3
- //szfind1 = i_dwtoacton.describe("datawindow.table.select")
- //lNoOfCriteria = dw_criteria.RowCount()
- //
- //For lRow = 1 To lNoOfCriteria
- // lColumnNo = dw_criteria.GetItemNumber( lRow, "column_number")
- //
- // szColumn = i_dwToActOn.Describe( "#" + String( lColumnNo) + ".dbName")
- // szJoin = dw_criteria.GetItemString( lRow, "join_operator")
- // If IsNull( szJoin) Then szJoin = ""
- // szValue = wf_escapechars( dw_criteria.GetItemString( lRow, "value"))
- //If IsNull( dw_criteria.GetItemNumber( 1, "column_number")) Then
- // Return 1
- //End If
- //
- // Choose Case Left( i_aszTypes[ lColumnNo], 5)
- // Case "char("
- // If IsNull( szValue) Then
- // szExpression = szColumn
- // Else
- // szOperator = ( dw_criteria.GetItemString( lRow, "string_operators"))
- // If Right( szOperator, 4) = "LIKE" Then
- // If Pos( szValue, "%") = 0 Then
- // szValue = "%"+ szValue + "%"
- // End If
- // End If
- // szExpression = szOperator + " '" + szValue + "' "
- //
- // If cbx_case_sensitive.Checked Then
- // szExpression = szColumn + " " + szExpression
- // Else
- // szExpression = "( " + szColumn + ") " + ( szExpression)
- // End If
- // End If
- // Case "date", "time"
- // If IsNull( szValue) Then
- // szExpression = szColumn
- // Else
- // szOperator = ( dw_criteria.GetItemString( lRow, "datetime_operators"))
- // If Right( szOperator, 7) = "BETWEEN" Then
- // nPos = Pos( ( szValue), " AND ")
- // If nPos > 0 Then
- // szValue1 = Left( szValue, nPos - 1)
- // szValue2 = Mid( szValue, nPos + 5)
- // End If
- // Else
- // nPos = 0
- // End If
- //
- // If i_aszTypes[ lColumnNo] = "date" Then
- // szFormat = "yyyymmdd"
- // szValue = String( Date( szValue), szFormat)
- // szValue1 = String( Date( szValue1), szFormat)
- // szValue2 = String( Date( szValue2), szFormat)
- // ElseIf i_aszTypes[ lColumnNo] = "time" Then
- // szFormat = "hhmmss"
- // szValue = String( Time( szValue), szFormat)
- // szValue1 = String( Time( szValue1), szFormat)
- // szValue2 = String( Time( szValue2), szFormat)
- // End If
- //
- // If nPos = 0 Then
- // szExpression = "Long( String( " + szColumn + ", '" + szFormat + "')) " + szOperator + szValue
- // Else
- // szExpression = "Long( String( " + szColumn + ", '" + szFormat + "')) " + szOperator + &
- // " " + szValue1 + " AND " + szValue2
- // End If
- // End If
- // Case Else
- // If IsNull( szValue) Then
- // szExpression = szColumn
- // Else
- // szOperator = ( dw_criteria.GetItemString( lRow, "numeric_operators"))
- // If szOperator = "IN" Or szOperator = "NOT IN" Then
- // szExpression = szColumn + " " + szOperator + " (" + szValue + ") "
- // Else
- // szExpression = szColumn + " " + szOperator + " " + szValue + " "
- // End If
- // End If
- // End Choose
- //
- // szFind = szFind + " ( " + Trim( szExpression) + ") " + szJoin
- //
- //
- //Next
- //
- // szfind=szfind1+" where "+szfind
- // i_dwToActON.Modify("datawindow.table.select=~""+szfind+"~"")
- // i_dwToActon.retrieve()
- // i_dwtoacton.Modify("datawindow.table.select=~""+szfind1+"~"")
- //
- //
- //Return lRow
- return 0
- end function
- event open;environment exerun_env
- GetEnvironment(exerun_env )
- this.Move ( (PixelsToUnits(exerun_env.screenwidth, XPixelsToUnits!) - this.Width)/2,&
- (PixelsToUnits(exerun_env.screenheight, XPixelsToUnits!) - this.Height - 300 )/2)
-
- //
- Integer nColumnCount, nColumnIndex
- String szColumn
- Long lRow
- DataWindowChild dwcColumns
- string des_1,des_2
- s_dbdw= Message.PowerObjectParm
- //s_dbdw.ptn_ds.sharedata(dw_criteria)
- s_dbdw.ptn_ds.GetFullState(blob_dw)
- dw_criteria.setfullState(blob_dw)
- ls_ds=create datastore
- i_dwToActOn =s_dbdw.query_dw
- ls_ds.dataobject=s_dbdw.query_dw.dataobject
- i_lRow = 0
- IF i_dwToActOn.DATAOBJECT='' THEN RETURN
- nColumnCount = Integer( i_dwToActOn.Object.DataWindow.Column.Count)
- dw_criteria.GetChild( "column_number", dwcColumns)
- i_aszTypes[ nColumnCount] = ""
- For nColumnIndex = 1 To nColumnCount
- des_1= ls_ds.Describe( "#" + String(nColumnIndex) + ".Name")
- des_2= ls_ds.describe(des_1+ "_t.Text")
- szColumn = f_strip( ls_ds.Describe( ls_ds.Describe( "#" + String(nColumnIndex) + ".Name") + "_t.Text"))
- If szColumn <> "!" Then
- lRow = dwcColumns.InsertRow( 0)
- dwcColumns.SetItem( lRow, "column_name", szColumn)
- dwcColumns.SetItem( lRow, "column_number", nColumnIndex)
- i_aszTypes[ nColumnIndex] = ls_ds.Describe( "#" + String(nColumnIndex) + ".ColType")
- End If
- Next
- dw_criteria.TriggerEvent( "NewlastRow")
- CB_3.ENABLED= dw_criteria.rowCOUNT()=0
- //if dw_criteria.rowcount()=0 then dw_criteria.TriggerEvent( "NewRow")
- end event
- on w_extr_query.create
- this.cb_4=create cb_4
- this.cb_3=create cb_3
- this.cb_check=create cb_check
- this.cb_1=create cb_1
- this.st_1=create st_1
- this.cbx_case_sensitive=create cbx_case_sensitive
- this.cb_find=create cb_find
- this.dw_criteria=create dw_criteria
- this.Control[]={this.cb_4,&
- this.cb_3,&
- this.cb_check,&
- this.cb_1,&
- this.st_1,&
- this.cbx_case_sensitive,&
- this.cb_find,&
- this.dw_criteria}
- end on
- on w_extr_query.destroy
- destroy(this.cb_4)
- destroy(this.cb_3)
- destroy(this.cb_check)
- destroy(this.cb_1)
- destroy(this.st_1)
- destroy(this.cbx_case_sensitive)
- destroy(this.cb_find)
- destroy(this.dw_criteria)
- end on
- event close;CLOSEWITHRETURN(THIS,RT_STR)
- end event
- type cb_4 from commandbutton within w_extr_query
- integer x = 2107
- integer y = 16
- integer width = 219
- integer height = 96
- integer taborder = 60
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "删除行"
- end type
- event clicked;IF dw_criteria.GETROW()<=0 THEN
- MESSAGEBOX('','请指定目标行!')
- RETURN
- END IF
- dw_criteria.deleterow(dw_criteria.GETROW())
- CB_3.ENABLED= dw_criteria.rowCOUNT()=0
- end event
- type cb_3 from commandbutton within w_extr_query
- integer x = 1723
- integer y = 16
- integer width = 325
- integer height = 96
- integer taborder = 10
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "增加行"
- end type
- event clicked;//INT LS_ROW
- //LS_ROW=dw_criteria.INSERTrow(dw_criteria.GETROW())
- //dw_criteria.SETrow(LS_ROW)
- //dw_criteria.ScrollToRow(LS_ROW)
- dw_criteria.TriggerEvent( "NewlastRow")
- THIS.ENABLED=FALSE
- end event
- type cb_check from commandbutton within w_extr_query
- integer x = 32
- integer y = 1016
- integer width = 315
- integer height = 96
- integer taborder = 50
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "语法检查"
- end type
- event clicked;Long lNoOfCriteria, lRow, lColumnNo,lLen
- Integer nPos,LEFT_ICLNO=0,RIGHT_ICLNO=0
- String szFind,szFind1, szColumn, szOperator, szValue, szExpression, szJoin, szFormat, szValue1, szValue2, szValue3
- szfind1 = Lower(i_dwtoacton.describe("datawindow.table.select"))
- lNoOfCriteria = dw_criteria.RowCount()
- STRING LS_not_operator='',LS_left_icl='',LS_RIGHT_icl=''
- For lRow = 1 To lNoOfCriteria
- If IsNull( dw_criteria.GetItemNumber( lrow, "column_number")) Then
- MESSAGEBOX('发现错误','发现空比较列!')
- RETURN
- End If
- IF dw_criteria.OBJECT.LEFT_ICL[lRow]='(' THEN LEFT_ICLNO=LEFT_ICLNO+1
- IF dw_criteria.OBJECT.RIGHT_ICL[lRow]=')' THEN RIGHT_ICLNO=RIGHT_ICLNO+1
- Next
- IF RIGHT_ICLNO<>LEFT_ICLNO THEN
- MESSAGEBOX('发现错误','左右括号不配对!')
- RETURN
- END IF
- For lRow = 1 To lNoOfCriteria
- lColumnNo = dw_criteria.GetItemNumber( lRow, "column_number")
- szColumn = ls_ds.Describe( "#" + String( lColumnNo) + ".dbName")
- szJoin = dw_criteria.GetItemString( lRow, "join_operator")
- If IsNull( szJoin) Then szJoin = ""
- szValue = wf_escapechars( dw_criteria.GetItemString( lRow, "value"))
- if isnull(szValue) then szValue=''
- szValue1 = string(dw_criteria.getitemdatetime(lrow,"datetime_value"),"yyyy-mm-dd")
-
- LS_not_operator=dw_criteria.GetItemString( lRow, "not_operator")
- LS_left_icl=dw_criteria.GetItemString( lRow, "left_icl")
- LS_RIGHT_icl=dw_criteria.GetItemString( lRow, "RIGHT_icl")
-
-
- If IsNull( dw_criteria.GetItemNumber( lrow, "column_number")) Then
- exit
- End If
- STRING GG
- GG=Left( i_aszTypes[ lColumnNo], 5)
-
- Choose Case Left( i_aszTypes[ lColumnNo], 5)
- Case "char("
- szOperator = ( dw_criteria.GetItemString( lRow, "string_operators"))
- If Right( szOperator, 4) = "LIKE" Then
- If Pos( szValue, "%") = 0 Then
- szValue = "%"+ szValue + "%"
- End If
- End If
-
- szExpression =szColumn +" "+ szOperator + " '" + szValue + "' "
- Case "datet"
- szOperator = ( dw_criteria.GetItemString( lRow, "datetime_operators"))
- szExpression =szColumn + szOperator + "'"+szValue1+"' "
- Case Else
- szOperator = ( dw_criteria.GetItemString( lRow, "numeric_operators"))
- If szOperator = "IN" Or szOperator = "NOT IN" Then
- szExpression = szColumn + " " + szOperator + " (" + szValue + ") "
- Else
- szExpression = szColumn + " " + szOperator + " " + szValue + " "
- End If
- End Choose
- szFind = szFind + ' '+LS_not_operator+' '+LS_left_icl+' '+ Trim( szExpression) +' '+LS_RIGHT_icl+' ' + szJoin
- setnull(szValue)
- setnull(szValue1)
- LS_not_operator=''
- LS_left_icl=''
- LS_RIGHT_icl=''
- Next
- IF ISNULL(szFind) THEN
- MESSAGEBOX('错误','语法错误!')
- RETURN
- END IF
- MESSAGEBOX('成功','通过语法检查!')
- end event
- type cb_1 from commandbutton within w_extr_query
- integer x = 1874
- integer y = 1016
- integer width = 329
- integer height = 96
- integer taborder = 40
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "取消"
- boolean cancel = true
- end type
- event clicked;close(parent)
- end event
- type st_1 from statictext within w_extr_query
- integer x = 55
- integer y = 32
- integer width = 571
- integer height = 76
- integer textsize = -11
- integer weight = 700
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- boolean enabled = false
- string text = "查询条件编辑"
- boolean focusrectangle = false
- end type
- type cbx_case_sensitive from checkbox within w_extr_query
- boolean visible = false
- integer x = 366
- integer y = 1024
- integer width = 681
- integer height = 72
- integer textsize = -8
- integer weight = 400
- fontpitch fontpitch = variable!
- fontfamily fontfamily = swiss!
- string facename = "Arial"
- long textcolor = 33554432
- long backcolor = 134217739
- string text = "Case &Sensitive Search"
- end type
- event clicked;wf_ResetFind()
- end event
- type cb_find from commandbutton within w_extr_query
- event key pbm_keydown
- integer x = 1486
- integer y = 1016
- integer width = 329
- integer height = 96
- integer taborder = 30
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- string text = "确定"
- end type
- event key;If key = KeyEnter! Then //
- THIS.POSTEVENT(CLICKED!)
- End If
- Return 0
- end event
- event clicked;Long lNoOfCriteria, lRow, lColumnNo,lLen
- Integer nPos,LEFT_ICLNO=0,RIGHT_ICLNO=0
- String szFind,szFind1, szColumn, szOperator, szValue, szExpression, szJoin, szFormat, szValue1, szValue2, szValue3
- //szfind1 = Lower(i_dwtoacton.describe("datawindow.table.select"))
- szfind1 = Lower(s_dbdw.query_oldselect) //新的
- lNoOfCriteria = dw_criteria.RowCount()
- STRING LS_not_operator='',LS_left_icl='',LS_RIGHT_icl=''
- For lRow = 1 To lNoOfCriteria
- If IsNull( dw_criteria.GetItemNumber( lrow, "column_number")) Then
- MESSAGEBOX('发现错误','发现空比较列!')
- RETURN
- End If
- IF dw_criteria.OBJECT.LEFT_ICL[lRow]='(' THEN LEFT_ICLNO=LEFT_ICLNO+1
- IF dw_criteria.OBJECT.RIGHT_ICL[lRow]=')' THEN RIGHT_ICLNO=RIGHT_ICLNO+1
- Next
- IF RIGHT_ICLNO<>LEFT_ICLNO THEN
- MESSAGEBOX('发现错误','左右括号不配对!')
- RETURN
- END IF
- For lRow = 1 To lNoOfCriteria
- lColumnNo = dw_criteria.GetItemNumber( lRow, "column_number")
- szColumn = ls_ds.Describe( "#" + String( lColumnNo) + ".dbName")
- szJoin = dw_criteria.GetItemString( lRow, "join_operator")
- If IsNull( szJoin) Then szJoin = ""
- szValue = wf_escapechars( dw_criteria.GetItemString( lRow, "value"))
- if isnull(szValue) then szValue=''
- szValue1 = string(dw_criteria.getitemdatetime(lrow,"datetime_value"),"yyyy-mm-dd")
-
- LS_not_operator=dw_criteria.GetItemString( lRow, "not_operator")
- LS_left_icl=dw_criteria.GetItemString( lRow, "left_icl")
- LS_RIGHT_icl=dw_criteria.GetItemString( lRow, "RIGHT_icl")
-
- If IsNull( dw_criteria.GetItemNumber( lrow, "column_number")) Then
- exit
- End If
- STRING GG
- GG=Left( i_aszTypes[ lColumnNo], 5)
- Choose Case Left( i_aszTypes[ lColumnNo], 5)
- Case "char("
- szOperator = ( dw_criteria.GetItemString( lRow, "string_operators"))
- If Right( szOperator, 4) = "LIKE" Then
- If Pos( szValue, "%") = 0 Then
- szValue = "%"+ szValue + "%"
- End If
- End If
- szExpression =szColumn +" "+ szOperator + " '" + szValue + "' "
- Case "datet"
- szOperator = ( dw_criteria.GetItemString( lRow, "datetime_operators"))
- szExpression =szColumn + szOperator + "'"+szValue1+"' "
- Case Else
- szOperator = ( dw_criteria.GetItemString( lRow, "numeric_operators"))
- If szOperator = "IN" Or szOperator = "NOT IN" Then
- szExpression = szColumn + " " + szOperator + " (" + szValue + ") "
- Else
- szExpression = szColumn + " " + szOperator + " " + szValue + " "
- End If
- End Choose
- szFind = szFind + ' '+LS_not_operator+' '+LS_left_icl+' '+ Trim( szExpression) +' '+LS_RIGHT_icl+' ' + szJoin
- setnull(szValue)
- setnull(szValue1)
- LS_not_operator=''
- LS_left_icl=''
- LS_RIGHT_icl=''
- Next
- if szfind='' or isnull(szfind) then
- szfind = szfind1
- else
- if Pos(szFind1," where ") <> 0 then
- szfind=szfind1+" AND ("+szfind+')'
- else
- szfind = szfind1+" where ("+szfind+')'
- end if
- end if
- SZFIND=trim(SZFIND)
- if UPPER(right(SZFIND,3))=' OR' THEN
- SZFIND=LEFT(SZFIND,LEN(SZFIND) - 3)
- ELSEIF UPPER(right(SZFIND,4))=' OR)' THEN
- SZFIND=LEFT(SZFIND,LEN(SZFIND) - 4) +')'
- ELSEIF UPPER(right(SZFIND,4))=' AND' THEN
- SZFIND=LEFT(SZFIND,LEN(SZFIND) - 4)
- ELSEIF UPPER(right(SZFIND,5))=' AND)' THEN
- SZFIND=LEFT(SZFIND,LEN(SZFIND) - 5) +')'
- END IF
- dw_criteria.GetfullState(blob_dw)
- s_dbdw.ptn_ds.setFullState(blob_dw)
- //messagebox('',SZFIND)
- //Closewithreturn(parent,szfind)
- rt_str=szfind
- close(parent)
- end event
- type dw_criteria from u_dw within w_extr_query
- event key pbm_dwnkey
- integer x = 27
- integer y = 128
- integer width = 2295
- integer height = 872
- integer taborder = 20
- string dataobject = "d_extr_find"
- boolean vscrollbar = true
- end type
- event key;If key = KeyEnter! Then //
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- Return 1
- End If
- end event
- event itemchanged;Long lRow, lTotalRows, lIndex, lReturn = 0
- String szValue
- string szcolumn,szvalues,szstyle,szdisp,szdata,szdacol,szdiscol
- long lcolumnno,l_count,l_curr
- datawindowchild dwc_query
- lRow = this.GetRow()
- lTotalRows = this.RowCount()
- szValue = this.GetText()
- this.accepttext()
- Choose Case this.GetcolumnName()
- Case "column_number"
- lIndex = Long( szValue)
- If lIndex > 0 Then
- If i_aszTypes[ lIndex] <> "" Then
- this.modify("value.values="+"'"+"~t"+"'")
- this.SetItem( lRow, "column_datatype", i_aszTypes[ lIndex])
- lColumnNo = dw_criteria.GetItemNumber( lRow, "column_number")
- szColumn = i_dwToActOn.Describe( "#" + String( lColumnNo) + ".Name")
- szvalues = i_dwToActOn.Describe(szColumn+".values")
- if szvalues = "?" then
- else
- this.modify("value.values="+"'"+szvalues+"'")
- end if
- if i_dwToActOn.Describe(szColumn+".Edit.Style") = "dddw" then
- szdacol = i_dwToActon.Describe(szColumn+".dddw.Datacolumn")
- szdiscol = i_dwToActOn.Describe(szColumn+".dddw.DisplayColumn")
- i_dwToActOn.GetChild(szColumn,dwc_query)
- l_count = dwc_query.rowcount()
- szvalues = ''
- for l_curr = 1 to l_count
- szdata = dwc_query.getitemstring(l_curr,szdacol)
- szdisp = dwc_query.getitemstring(l_curr,szdiscol)
- szvalues = szvalues + szdisp + "~t" +szdata + "/"
- next
- this.modify("value.values="+"'"+szvalues+"'")
- end if
- End If
- End If
- Case "value"
- If Trim( szValue) <> "" Then
- Choose Case Lower( this.GetItemString( lRow, "column_datatype"))
- Case "date"
- If Not IsDate( szValue) Then
- lReturn = 1
- End If
- Case "time"
- If Not IsTime( szValue) Then
- lReturn = 1
- End If
- Case "long", "ulong", "real"
- If Not IsNumber( szValue) Then
- lReturn = 1
- End If
- End Choose
- End If
- Case "join_operator"
- If lRow = lTotalRows And Not IsNull( this.GetItemNumber( lRow, "column_number")) Then
- this.TriggerEvent( "NewRow")
- ElseIf Trim( szValue) = "" And lTotalRows > 1 And lRow <> lTotalRows Then
- dw_criteria.SetRow( lRow + 1)
- dw_criteria.TriggerEvent( "DeleteRow")
- End If
- End Choose
- return lReturn
- end event
- event newfirstrow;call super::newfirstrow;if dw_criteria.getrow()>0 then
- //dw_criteria.object.rptid[dw_criteria.getrow()]=s_dbdw.rptid
- CB_3.ENABLED= dw_criteria.rowCOUNT()=0
- end if
- end event
- event newlastrow;call super::newlastrow;if dw_criteria.getrow()>0 then
- //dw_criteria.object.rptid[dw_criteria.getrow()]=s_dbdw.rptid
- //dw_criteria.object.modelcode[dw_criteria.getrow()]=s_dbdw.modelcode
- CB_3.ENABLED= dw_criteria.rowCOUNT()=0
- end if
- end event
- event newrow;call super::newrow;if dw_criteria.getrow()>0 then
- //dw_criteria.object.rptid[dw_criteria.getrow()]=s_dbdw.rptid
- CB_3.ENABLED= dw_criteria.rowCOUNT()=0
- end if
- end event
|