$PBExportHeader$uo_kms_set.sru
forward
global type uo_kms_set from nonvisualobject
end type
end forward

global type uo_kms_set from nonvisualobject
end type
global uo_kms_set uo_kms_set

type variables
datastore ins_ds
end variables

forward prototypes
public subroutine addmsg (string msgid)
public subroutine addmsg (string msgid, string arg0)
public subroutine addmsg (string msgid, string arg0, string arg1)
public subroutine addmsg (string msgid, string arg0, string arg1, string arg2)
public subroutine addmsg (string msgid, string arg0, string arg1, string arg2, string arg3)
public subroutine addmsg (string msgid, string arg0, string arg1, string arg2, string arg3, string arg4)
public function long count ()
end prototypes

public subroutine addmsg (string msgid);addmsg(msgid,"","","","","")
end subroutine

public subroutine addmsg (string msgid, string arg0);addmsg(msgid,arg0,"","","","")
end subroutine

public subroutine addmsg (string msgid, string arg0, string arg1);addmsg(msgid,arg0,arg1,"","","")
end subroutine

public subroutine addmsg (string msgid, string arg0, string arg1, string arg2);addmsg(msgid,arg0,arg1,arg2,"","")
end subroutine

public subroutine addmsg (string msgid, string arg0, string arg1, string arg2, string arg3);addmsg(msgid,arg0,arg1,arg2,arg3,"")
end subroutine

public subroutine addmsg (string msgid, string arg0, string arg1, string arg2, string arg3, string arg4);IF IsNull(msgid) THEN RETURN
msgid = Trim(msgid)
IF msgid = "" THEN RETURN
Long ll_row
IF ins_ds.RowCount() > 0 THEN
	ll_row = ins_ds.Find("msgid = '"+msgid+"'", 1, ins_ds.RowCount())
END IF
IF ll_row = 0 THEN
	ll_row = ins_ds.InsertRow(0)
	ins_ds.Object.msgid[ll_row] = msgid
END IF

string arr_arg[], arr_col[], ls_tmp
arr_arg = {arg0, arg1, arg2, arg3, arg4}
arr_col = {"arg0", "arg1", "arg2", "arg3", "arg4"}
Int li_i
FOR li_i = 1 TO UpperBound(arr_arg)
	IF IsNull(arr_arg[li_i]) THEN CONTINUE
	IF Trim(arr_arg[li_i]) = "" THEN CONTINUE
	ls_tmp = ins_ds.GetItemString(ll_row, arr_col[li_i])
	IF Len(ls_tmp) > 0 THEN
		IF POS("," + ls_tmp + ",", "," + arr_arg[li_i] + ",") > 0 THEN
			CONTINUE
		END IF
	END IF
	ins_ds.SetItem(ll_row, arr_col[li_i], ls_tmp + "," + arr_arg[li_i])
NEXT
end subroutine

public function long count ();return ins_ds.RowCount()
end function

on uo_kms_set.create
call super::create
TriggerEvent( this, "constructor" )
end on

on uo_kms_set.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on

event constructor;ins_ds = CREATE datastore
ins_ds.DataObject = "dw_kms_set"
end event

