WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Custom AskItemList



#DefineSubRoutine FindColor(color)
   ColorNameList = ""
   ColorNameList = StrCat(ColorNameList, "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse")
   ColorNameList = StrCat(ColorNameList, "|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|")
   ColorNameList = StrCat(ColorNameList, "darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|")
   ColorNameList = StrCat(ColorNameList, "deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|")
   ColorNameList = StrCat(ColorNameList, "honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|")
   ColorNameList = StrCat(ColorNameList, "lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|")
   ColorNameList = StrCat(ColorNameList, "lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen")
   ColorNameList = StrCat(ColorNameList, "|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|")
   ColorNameList = StrCat(ColorNameList, "orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue")
   ColorNameList = StrCat(ColorNameList, "|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|")
   ColorNameList = StrCat(ColorNameList, "tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen")
;
   ColorNumList = ""
   ColorNumList = StrCat(ColorNumList, "#F0F8FF|#FAEBD7|#00FFFF|#7FFFD4|#F0FFFF|#F5F5DC|#FFE4C4|#000000|#FFEBCD|#0000FF|#8A2BE2|#A52A2A|#DEB887|#5F9EA0|#7FFF00|#D2691E|#FF7F50|")
   ColorNumList = StrCat(ColorNumList, "#6495ED|#FFF8DC|#DC143C|#00FFFF|#00008B|#008B8B|#B8860B|#A9A9A9|#006400|#BDB76B|#8B008B|#556B2F|#FF8C00|#9932CC|#8B0000|#E9967A|#8FBC8B|")
   ColorNumList = StrCat(ColorNumList, "#483D8B|#2F4F4F|#00CED1|#9400D3|#FF1493|#00BFFF|#696969|#1E90FF|#B22222|#FFFAF0|#228B22|#FF00FF|#DCDCDC|#F8F8FF|#FFD700|#DAA520|#808080|")
   ColorNumList = StrCat(ColorNumList, "#008000|#ADFF2F|#F0FFF0|#FF69B4|#CD5C5C|#4B0082|#FFFFF0|#F0E68C|#E6E6FA|#FFF0F5|#7CFC00|#FFFACD|#ADD8E6|#F08080|#E0FFFF|#FAFAD2|#90EE90|")
   ColorNumList = StrCat(ColorNumList, "#D3D3D3|#FFB6C1|#FFA07A|#20B2AA|#87CEFA|#778899|#B0C4DE|#FFFFE0|#00FF00|#32CD32|#FAF0E6|#FF00FF|#800000|#66CDAA|#0000CD|#BA55D3|#9370DB|")
   ColorNumList = StrCat(ColorNumList, "#3CB371|#7B68EE|#00FA9A|#48D1CC|#C71585|#191970|#F5FFFA|#FFE4E1|#FFE4B5|#FFDEAD|#000080|#FDF5E6|#808000|#6B8E23|#FFA500|#FF4500|#DA70D6|")
   ColorNumList = StrCat(ColorNumList, "#EEE8AA|#98FB98|#AFEEEE|#DB7093|#FFEFD5|#FFDAB9|#CD853F|#FFC0CB|#DDA0DD|#B0E0E6|#800080|#FF0000|#BC8F8F|#4169E1|#8B4513|#FA8072|#F4A460|")
   ColorNumList = StrCat(ColorNumList, "#2E8B57|#FFF5EE|#A0522D|#C0C0C0|#87CEEB|#6A5ACD|#708090|#FFFAFA|#00FF7F|#4682B4|#D2B48C|#008080|#D8BFD8|#FF6347|#40E0D0|#EE82EE|#F5DEB3|")
   ColorNumList = StrCat(ColorNumList, "#FFFFFF|#F5F5F5|#FFFF00|#9ACD32")
   ColorNameList = StrLower(ColorNameList)
   ColorNumList  = StrLower(ColorNumList)
   Pos = ItemLocate(StrLower(color), ColorNameList, "|")
   CNum = ItemExtract(Pos, ColorNumList, "|")
   Return(CNum)
#EndSubRoutine

#DefineSubRoutine MultipleSelections()
   If objHtmlDoc.getElementById(objSource.id).bgColor == cellbg
      bgcolor =  SelectedColor
   Else
      bgcolor =  cellbg
   EndIf
   objHtmlDoc.getElementById(objSource.id).bgColor = bgcolor
   Return
#EndSubRoutine

#DefineSubRoutine SingleSelection()
   If objHtmlDoc.getElementById(objSource.id).bgColor == cellbg
      bgcolor =  SelectedColor
   Else
      bgcolor =  cellbg
   EndIf
   ForEach Cell In objHtmlDoc.getElementById("DisplayTable").getElementsByTagName("TD")
      If Cell.id == objSource.id
         If Cell.bgColor == SelectedColor
            bgcolor =  cellbg
         Else
            bgcolor =  SelectedColor
         EndIf
      Else
         bgcolor =  cellbg
      EndIf
      Cell.bgColor = bgcolor
   Next
   Return
#EndSubRoutine

#DefineSubRoutine FindSelected()
   SelectedList = ""
   ForEach Cell In objHtmlDoc.getElementById("DisplayTable").getElementsByTagName("TD")
      If Cell.bgColor == SelectedColor Then SelectedList = ItemInsert(Cell.innerText, -1, SelectedList, outdelim)
   Next
   Return(SelectedList)
#EndFunction

#DefineSubRoutine CreateDisplayTable(List)
   DTable = `<table id="DisplayTable" width="100%%" border="1" style="border-collapse:collapse">`
   For x = 1 To ItemCount(List, delim)
      ThisLine = ItemExtract(x, List, delim)
      DTable   = StrCat(DTable, `<tr><td id="%x%" class="msg" bgColor="%cellbg%">`, ThisLine, `</td></tr>`, @CRLF)
   Next
   DTable = StrCat(DTable, `</table>`)
   Return(DTable)
#EndSubRoutine

#DefineSubRoutine TableClick()

   Return
#EndSubRoutine

#DefineSubRoutine ExamProc(Exam_Handle,Exam_Message,Exam_ID, Exam_EventInfo, reserved)
   ;DialogprocOptions Constants
   MSG_INIT=0                ; The one-time initialization
   ; New options for DialogObject
   DLGOBJECT_ADDEVENT   = 1 ;DialogObject add event
   DLGOBJECT_REMOVEVENT = 2 ;DialogObject remove event
   DLGOBJECT_GETOBJECT  = 3 ;DialogObject get reference to object
   DLGOBJECT_GETPICTURE = 4 ;DialogObject get a picture object
   ; New callback message
   MSG_COMEVENT         = 14 ;COM control event fired
   ;
   Switch Exam_Message
   Case MSG_INIT
      ; Get the control's object
      objHtmlDoc = DialogObject(Exam_Handle, 001, DLGOBJECT_GETOBJECT)
      objHtmlDoc.open()
      objHtmlDoc.writeln(PageStyle)
      objHtmlDoc.writeln(CreateDisplayTable(WbtList))
      objHtmlDoc.close()
      ; Add an event
      DialogObject(Exam_Handle, 001, DLGOBJECT_ADDEVENT,  "onclick", 1)
      Return(-1)
      Break
   Case MSG_COMEVENT
      ; Test in case more events or COM controls are added later
      If Exam_EventInfo.identifier == 1 && Exam_ID  == 001
         ; Get event source object associated with the event
         objSource = objHtmlDoc.parentWindow.event.srcElement
         If objSource.tagName == "TD"
            ;message(strcat("Row", objSource.id), "Pushed")
            If SelectType == @SINGLE
               SingleSelection()
            Else
               MultipleSelections()
            EndIf
         EndIf
         Selected = FindSelected()
      EndIf
      Break
   EndSwitch       ; Exam_Message
   Return(-1)      ; Do default processing
#EndSubRoutine   ; End of Dialog Callback ExamProc

ExamFormat=`WWWDLGED,6.1`

ExamCaption=`Colored AskItemList Example`
ExamX=150
ExamY=058
ExamWidth=200
ExamHeight=177
ExamNumControls=003
ExamProcedure=`ExamProc`
ExamFont=`DEFAULT`
ExamTextColor=`DEFAULT`
ExamBackground=`DEFAULT,DEFAULT`
ExamConfig=0

Exam001=`009,003,178,144,COMCONTROL,DEFAULT,"mshtml:",DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Exam002=`021,153,060,012,PUSHBUTTON,DEFAULT,"OK",1,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
Exam003=`107,153,058,012,PUSHBUTTON,DEFAULT,"Cancel",2,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

WbtList = FileItemize("C:\*.*")  ;<-- just for testing on my end...

cellface      = "Tahoma"
cellfontcolor = "Navy"

cellbg        = "white"            ;<-- input bgcolor in english...
cellbg        = FindColor(cellbg)

SelectedColor = "powderblue"        ;<-- input selection bgcolor in english...
SelectedColor = FindColor(SelectedColor)

delim         = @TAB
outdelim      = @LF
SelectType    = @MULTIPLE            ;<-- change to suit...

PageStyle = ""
PageStyle = StrCat(PageStyle, `<style>`, @CRLF)
PageStyle = StrCat(PageStyle, `.msg {font-size: 9pt; color: %cellfontcolor%; font-face: %cellface%; cursor:hand}`, @CRLF)
PageStyle = StrCat(PageStyle, `</style>`, @CRLF)

ButtonPushed=Dialog("Exam")

If IsDefined(Selected) Then Message("Debug", Selected)

Exit

Article ID:   W16942
File Created: 2007:07:03:14:27:08
Last Updated: 2007:07:03:14:27:08