Jump to content

13ruce

Member
  • Posts

    19
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by 13ruce

  1. So the office folks have been enjoying the new app, so thanks again for doing the hard part for me. I would like to make an improvement, so I'm back to ask the pros. I would like to add check boxes to the initial prompt window (see image) to allow the user to choose which subfolders are generated. These subfolders include HSD, LFC, Press, Design and Database. My current code: <!-- 2013.02.14 Hta And Script By Gunsmokingman Aka Jake1Eye, then mangled by 13ruce --> <TITLE>AlphaGraphics Job Builder</TITLE> <HTA:APPLICATION ID="UserIn2" SCROLL="No" SCROLLFLAT ="No" SingleInstance="Yes" ShowInTaskbar="No" SysMenu="No" MaximizeButton="No" MinimizeButton="No" Border="Thin" BORDERSTYLE ="complex" INNERBORDER ="No" Caption="Yes" WindowState="Normal" APPLICATIONNAME="DmUserIn2" Icon="%SystemRoot%\explorer.exe"> <STYLE type="text/css"> Body { Font-Size:9.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; BackGround-Color:#EFE9E3; Text-Align:Center; Vertical-Align:Top; } TD { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } .Tbx { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } BUTTON { Height:15pt; width:60pt; Cursor:Hand; Font:8.05pt; Font-weight:bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:#404040; Text-Align:Center; Vertical-Align:Middle; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#E5E5E5',EndColorStr='#7D7D7D'); Margin:1; Margin-Top:15pt; Padding:2; Border-Left: 1px Transparent; Border-Right: 2px Transparent; Border-Top: 1px Transparent; Border-Bottom: 2px Transparent; } </STYLE> <script LANGUAGE='VBScript'> '-> Resize And Place In Approx Center Of Screen Dim Wth, Hht :Wth = int(475) :Hht = int(255) window.ResizeTo Wth, Hht MoveTo ((Screen.Width / 2) - (Wth / 2)),((Screen.Height / 2) - (Hht / 2)) Dim Tm1 '-> Function To Process The Submit Button Function MySubmit() If Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) >= 1 Then If Len(In2.value) = 5 Then Menu.style.visibility = "" In1a.value=In1.value In2a.value=In2.value In3a.value=In3.value Else alert("Error: Needs The Last Five Digits From Invoice Number : " & In2.value) End If Else alert("Error: Please complete all fields:") End If End Function '-> Process Varibles And Display Message Function JobBuilder() Dim Client, Invoice, Job Const RtPath = "X:\01 PC WIP\" Client = In1.value Invoice = In2.value Job = In3.value '->SPath = Series folder: The first three digits of the invoice number '->followed by "00 PC. IE.: 12300 PC (with Invoice value of 12345) SPath = RtPath & (Left(Invoice,3)) & "00 PC\" '->Cpath = Path to client folder within series CPath = Spath & Client & "\" '->Jpath = Path to Specific Job JPath = CPath & Invoice & " " & Job & "\" '->Mpath = Path to job's materials folder MPath = Jpath & "Materials\" '->Fpath = Path to generic files received folder. Date to be updated by user. FPath = MPath & "YYYY.MM.DD Files Received\" '->Dpath = Path to Design folder DPath = Jpath & "Design\" '->Hpath = Path to HSD folder HPath = Jpath & "HSD\" '->PPath = Path to Proof folder PPath = Jpath & "Proof\" set oFSO = CreateObject("Scripting.FileSystemObject") '->Check to see if series folder exists. If not, build everything. If Not oFSO.FolderExists(SPath) Then oFSO.CreateFolder SPath oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New Series Created") '-> Check to see if Client folder exists within Series Folder. If not, build the rest. ElseIf Not oFSO.FolderExists(CPath) Then oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("Client path created") '-> Check to see if Job folder exists. If not, build all job folders. ElseIf Not oFSO.FolderExists(JPath) Then oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New job folder created") '-> Check to see if a Materials folder exists. If not, build it and add a Files Received subfolder. ElseIf Not oFSO.FolderExists(MPath) Then oFSO.CreateFolder MPath oFSO.CreateFolder FPath alert("Job exists. Materials folder created.") '-> Check to see if a Files Received folder exists. If not, build it. ElseIf Not oFSO.FolderExists(FPath) Then oFSO.CreateFolder FPath alert("Job Exists. New Files Received folder created.") Else alert("Directory already exists: " & JPath) End If Const NORMAL_WINDOW = 1 Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "explorer.exe", JPath, , , NORMAL_WINDOW window.close End Function </SCRIPT> <BODY> <!-- Customer Name Area --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1' Class='Tbx' Size='40' MAXLENGTH='128'> <TD></TABLE> <!-- Two Textboxes Start --> <TABLE> <!-- Invoice Number Area --> <TD Style='width:100;'>Invoice Number</TD> <TD><INPUT Type='TextBox' ID='In2' Class='Tbx' Size='5' MAXLENGTH='5' Style='Margin-Right:15;' Title="Use Only The Last Five Digits Of The Invoice Number"></TD> <!-- Type Of Job Area --> <TD Style='width:89;'>Type Of Job</TD> <TD><INPUT Type='TextBox' ID='In3' Class='Tbx' Size='13' MAXLENGTH='128'><TD> </TABLE> <!-- Buttons Start --> <BUTTON ID='Bn1' OnClick='MySubmit()'>Submit</BUTTON> <BUTTON ID='Bn2' OnClick='window.close()'>Close</BUTTON> <!-- Text Display For Script Messages --> <DIV ID='Tx1' Style="visibility:hidden;Width:100%;Text-Align:Center;"> </DIV> <!-- Pop Up Dialog --> <DIV ID='Menu' Style="visibility:hidden;Position:Absolute; Top:9;Left:9;Width:425;Height:195;Text-Align:Left;Padding:3pt; Border-Left: 1px Solid; Border-Right: 2px Solid; Border-Top: 1px Solid; Border-Bottom: 2px Solid; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#EFEAE4',EndColorStr='#9E9E9E'); "> <!-- Textboxes Customer Name To Edit --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1a' Class='Tbx' Size='40' MAXLENGTH='128'> </TD></TABLE> <!-- Textboxes Invoice Number To Edit --> <TABLE><TD Style='width:101;'>Invoice Number</TD><TD> <INPUT Type='TextBox' ID='In2a' Class='Tbx' Size='5' MAXLENGTH='128'> </TD></TABLE> <!-- Textboxes Type Of Job To Edit --> <TABLE><TD Style='width:101;'>Type Of Job</TD><TD> <INPUT Type='TextBox' ID='In3a' Class='Tbx' Size='13' MAXLENGTH='16'> </TD></TABLE> <!-- Text Option For Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Left;Padding:3;'> Please verify the above information. Correct as necessary. </TD></TABLE> <!-- Button To Control Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Center;'> <BUTTON OnClick="In1.value='' :In2.value='' :In3.value='' :A=1 In1.value=In1a.value :In2.value=In2a.value :In3.value=In3a.value Menu.style.visibility = 'hidden' :JobBuilder()">Continue</BUTTON> <BUTTON OnClick='window.close()'>Cancel</BUTTON> </TD></TABLE> </DIV> </BODY>
  2. Here's what I used to terminate: End If Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "explorer.exe", JPath, , , 1 window.close End Function
  3. Nevermind. I added "window.close" at the end of the bit that invokes Windows Explorer and it closes everything perfectly.
  4. To clarify: I would like the first input window to vanish as the second window pops up, as it is no longer needed.
  5. I've added a bit of code that opens Explorer to the job folder: Const NORMAL_WINDOW = 1 Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "explorer.exe", JPath, , , NORMAL_WINDOW I've placed that just before JobBuilder's "End Function." How do I get the app to automatically close afterward?
  6. So here's what I've got so far, and it seems to work on my local drive. I'm going to update the RtPath to a mapped network share and test it a bit further. Please have a look and tell me what kinds of horrible mistakes I've made. <!-- February-06-13 Hta And Script By Gunsmokingman Aka Jake1Eye, then mangled by 13ruce --> <TITLE>Demo User Input2</TITLE> <HTA:APPLICATION ID="UserIn2" SCROLL="No" SCROLLFLAT ="No" SingleInstance="Yes" ShowInTaskbar="No" SysMenu="No" MaximizeButton="No" MinimizeButton="No" Border="Thin" BORDERSTYLE ="complex" INNERBORDER ="No" Caption="Yes" WindowState="Normal" APPLICATIONNAME="DmUserIn2" Icon="%SystemRoot%\explorer.exe"> <STYLE type="text/css"> Body { Font-Size:9.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; BackGround-Color:#EFE9E3; Text-Align:Center; Vertical-Align:Top; } TD { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } .Tbx { Font-Size:8.25pt; Font-Weight:Bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:Black; } BUTTON { Height:15pt; width:60pt; Cursor:Hand; Font:8.05pt; Font-weight:bold; Font-Family:Segoe Ui, Arial,Tahoma,Comic Sans MS; Color:#404040; Text-Align:Center; Vertical-Align:Middle; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#E5E5E5',EndColorStr='#7D7D7D'); Margin:1; Margin-Top:15pt; Padding:2; Border-Left: 1px Transparent; Border-Right: 2px Transparent; Border-Top: 1px Transparent; Border-Bottom: 2px Transparent; } </STYLE> <script LANGUAGE='VBScript'> '-> Resize And Place In Approx Center Of Screen Dim Wth, Hht :Wth = int(475) :Hht = int(255) window.ResizeTo Wth, Hht MoveTo ((Screen.Width / 2) - (Wth / 2)),((Screen.Height / 2) - (Hht / 2)) Dim Tm1 '-> Function To Process The Submit Button Function MySubmit() If Len(In1.value) >= 1 And Len(In2.value) >= 1 And Len(In3.value) >= 1 Then If Len(In2.value) = 5 Then Menu.style.visibility = "" In1a.value=In1.value In2a.value=In2.value In3a.value=In3.value Else alert("Error Needs The Last Five Digits From Invoice Number : " & In2.value) End If Else alert("Error: Please complete all fields:") End If End Function '-> Process Varibles And Display Message Function JobBuilder() Dim Client, Invoice, Job Const RtPath = "c:\temp\DirectoryTest\" Client = In1.value Invoice = In2.value Job = In3.value '->SPath = Series folder: The first three digits of the invoice number '->followed by "00 PC. IE.: 12300 PC (with Invoice value of 12345) SPath = RtPath & (Left(Invoice,3)) & "00 PC\" '->Cpath = Path to client folder within series CPath = Spath & Client & "\" '->Jpath = Path to Specific Job JPath = CPath & Invoice & " " & Job & "\" '->Mpath = Path to job's materials folder MPath = Jpath & "Materials\" '->Fpath = Path to generic files received folder. Date to be updated by user. FPath = MPath & "YYYY.MM.DD Files Received\" '->Dpath = Path to Design folder DPath = Jpath & "Design\" '->Hpath = Path to HSD folder HPath = Jpath & "HSD\" '->PPath = Path to Proof folder PPath = Jpath & "Proof\" set oFSO = CreateObject("Scripting.FileSystemObject") '->Check to see if series folder exists. If not, build everything. If Not oFSO.FolderExists(SPath) Then oFSO.CreateFolder SPath oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New Series Created") '-> Check to see if Client folder exists within Series Folder. If not, build the rest. ElseIf Not oFSO.FolderExists(CPath) Then oFSO.CreateFolder CPath oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("Client path created") '-> Check to see if Job folder exists. If not, build all job folders. ElseIf Not oFSO.FolderExists(JPath) Then oFSO.CreateFolder JPath oFSO.CreateFolder MPath oFSO.CreateFolder FPath oFSO.CreateFolder DPath oFSO.CreateFolder HPath oFSO.CreateFolder PPath alert("New job folder created") '-> Check to see if a Materials folder exists. If not, build it and add a Files Received subfolder. ElseIf Not oFSO.FolderExists(MPath) Then oFSO.CreateFolder MPath oFSO.CreateFolder FPath alert("Job exists. Materials folder created.") '-> Check to see if a Files Received folder exists. If not, build it. ElseIf Not oFSO.FolderExists(FPath) Then oFSO.CreateFolder FPath alert("Job Exists. New Files Received folder created.") Else alert("Directory already exists: " & JPath) End If End Function </SCRIPT> <BODY> <!-- Customer Name Area --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1' Class='Tbx' Size='40' MAXLENGTH='128'> <TD></TABLE> <!-- Two Textboxes Start --> <TABLE> <!-- Invoice Number Area --> <TD Style='width:100;'>Invoice Number</TD> <TD><INPUT Type='TextBox' ID='In2' Class='Tbx' Size='5' MAXLENGTH='5' Style='Margin-Right:15;' Title="Use Only The Last Five Digits Of The Invoice Number"></TD> <!-- Type Of Job Area --> <TD Style='width:89;'>Type Of Job</TD> <TD><INPUT Type='TextBox' ID='In3' Class='Tbx' Size='13' MAXLENGTH='128'><TD> </TABLE> <!-- Buttons Start --> <BUTTON ID='Bn1' OnClick='MySubmit()'>Submit</BUTTON> <BUTTON ID='Bn2' OnClick='window.close()'>Close</BUTTON> <!-- Text Display For Script Messages --> <DIV ID='Tx1' Style="visibility:hidden;Width:100%;Text-Align:Center;"> </DIV> <!-- Pop Up Dialog --> <DIV ID='Menu' Style="visibility:hidden;Position:Absolute; Top:9;Left:9;Width:425;Height:195;Text-Align:Left;Padding:3pt; Border-Left: 1px Solid; Border-Right: 2px Solid; Border-Top: 1px Solid; Border-Bottom: 2px Solid; filter:progid:DXImageTransform.Microsoft.Gradient (StartColorStr='#EFEAE4',EndColorStr='#9E9E9E'); "> <!-- Textboxes Customer Name To Edit --> <TABLE><TD Style='width:101;'>Customer Name</TD><TD> <INPUT Type='TextBox' ID='In1a' Class='Tbx' Size='40' MAXLENGTH='128'> </TD></TABLE> <!-- Textboxes Invoice Number To Edit --> <TABLE><TD Style='width:101;'>Invoice Number</TD><TD> <INPUT Type='TextBox' ID='In2a' Class='Tbx' Size='5' MAXLENGTH='128'> </TD></TABLE> <!-- Textboxes Type Of Job To Edit --> <TABLE><TD Style='width:101;'>Type Of Job</TD><TD> <INPUT Type='TextBox' ID='In3a' Class='Tbx' Size='13' MAXLENGTH='16'> </TD></TABLE> <!-- Text Option For Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Left;Padding:3;'> Please verify the above information. Correct as necessary. </TD></TABLE> <!-- Button To Control Dialog --> <TABLE Style='Width:100%;'><TD Style='Text-Align:Center;'> <BUTTON OnClick="In1.value='' :In2.value='' :In3.value='' :A=1 In1.value=In1a.value :In2.value=In2a.value :In3.value=In3a.value Menu.style.visibility = 'hidden' :JobBuilder()">Continue</BUTTON> <BUTTON OnClick='window.close()'>Cancel</BUTTON> </TD></TABLE> </DIV> </BODY>
  7. Thanks for the tip. Yes, I did try your updated HTA. That's what I meant by "Nice improvement!"
  8. I've added a couple more conditions to the function to ensure none of the fields are empty and cause an error. Is this the best way to accomplish it? If Len(In1.value) > 0 Then If Len(In3.value) > 0 Then If Len(In2.value) = 5 Then Dim A :A=MsgBox("Is this correct?" & vbCrlf & _ "TextBox 1 Information : " & In1.value & vbCrlf & _ "TextBox 2 Information : " & In2.value & vbCrlf & _ "TextBox 3 Information : " & In3.value & vbCrlf & vbCrlf & _ "Click OK to continue," & vbCrlf & "No to start over, or" & vbCrlf & _ "Cancel to exit",4131) If A = 6 Then alert("Script Place Holder For Yes Actions") ElseIf A = 7 Then In1.value="" :In2.value="" :In3.value="" : ElseIf A = 2 Then window.close() End If Else alert("Error: Please enter the last 5 digits of invoice number: " & In2.value) End If Else alert("Error: Please enter a job type (ie.: BC, Brochure, Flyer, etc.):") End If Else alert("Error: Please enter a client name:") End If
  9. I noticed this in your code: <!-- February-05-13 Hta And Script By Gunsmokingman Aka Jake1Eye --> My first order of business was to update that to: <!-- February-05-13 Hta And Script By Gunsmokingman Aka Jake1Eye Any horrible abberations herein are the fault of 13ruce and are in no way to be attributed to the excellent script stylings of Gunsmokingman Aka Jake1Eye --> You're welcome.
  10. Very nice! I plugged in the new code and it's much more like what I'm going for. Thank you so much!
  11. In our workflow, if the user gets that far, they have work to do in that folder. It can be inferred that the user isn't already viewing that folder (else they would not have invoked the app), so it makes sense to open that location as a convenience. Does that makes sense?
  12. Maybe instead of the current flow, the dialog could use a "back" option to allow text corrections to be made. Would that be better?
  13. Thanks for you input. There is only one Yes/No/Cancel (at the confirmation stage). The first choice is only Next or Cancel, and is available in case the user inadvertently invoked the app. I think having an "out" is appropriate in both stages of the process. The last choice is internal only, and checks to see if the folder already exists. Certainly we don't need to create an existing directory, so it seems appropriate to end the process there. However, maybe it would be a good idea to open the browser to that location if it does exist before ending.
  14. Jaclaz, I understand the concept of context. I wish I knew better how to covey the context I mean. It should be available within Windows Explorer, -the file browser window, in panes where the files and directories are listed. It's the same context within Windows Explorer wherein one would find; View, Group By, Sort By, Refresh, Properties, etc. Is there something I I'm not getting? I've worked up a flowchart to help me think through the logic of what needs to happen. Thoughts/suggestions welcome:
  15. Oh, HT(ML)A. I did see that in the list, but thought HTML must be wrong. Nope. Just me. (Here's what I figured he was talking about: http://en.wikipedia.org/wiki/Hierarchically_tiled_array) I would like to add this app to the right-click context menu of Windows Explorer in Win 7 (32 and 64). I suppose I shouldn't have assumed the batch file's function would have made that obvious. Here's the post I Googled that lead me here: Thanks. You've given me a lot of good info to look into. I really like the VB interface, so I will try to develop what Gunsmokingman has provided as well.
  16. Jaclaz, yes, the yyyy.mm.dd is literal. The date correlates to the date of files received, which may not be the day the script is run. I'm including it to show the proper format. Thanks so much for your suggestions. Now if I could just integrate it into the context shell somehow. I'm at a loss there. That other thread tells me that the potential is there, but I have no idea how to approach converting the syntax to registry entries. Gunskokingman, Wow, that's very nice, and looks like a much nicer way to present it. Unfortunately you lost me at HTA. I couldn't even find that on wikipedia. (I don't think you fully appreciate the breadth of my ignorance. ) It looks like a vbscript, which I've worked with a little in the past, but mostly by reverse engineering existing code. The demo works great. Now I just have to figure out how to make it do work with the input and integrate it into the context menu. Thanks for getting me started!
  17. First, I'm no programmer. I cobbled together this bat file that essentially creates a specific directory structure based on a parent "series" folder (12300, 12400, 12500, etc.). Nested within that folder will be a client folder. Inside the Client folder will be a specific job folder (12312 Brochure, 12317 Flyer, etc.) Inside the job folder will be HSD, Design, LFC, PROOF, and Materials. Inside the Materials folder will be a "yyyy.mm.dd Files received" folder. The series, client, and job folders are variable. I would like to add this functionality to the context menu for Win 7. I'm not sure how to go about doing this. I've seen another thread that leads a user through a similar process, but I have no idea how to convert my code to registry entries. Here is the code: @ECHO OFF :BEGIN CLS SET AGPath=X:\01 PC WIP\ SET /P Cust=Customer Name: SET /P InvNo=Invoice Number (Last 5 digits only): SET /P Job=Type of job: SET SERIES=%InvNo:~0,3%00 PC\ CLS echo Is this correct? echo %AGPath%%SERIES% echo %Cust%\ echo %InvNo% %Job% SET /P Appr=Y(yes) N(no) C(cancel): if '%Appr%' == 'y' goto Appr if '%Appr%' == 'n' goto BEGIN if '%Appr%' == 'c' goto Cancel :Appr mkdir "%AGPath%%SERIES%%Cust%\%InvNo% %Job%\materials\yyyy.mm.dd Files Received" mkdir "%AGPath%%SERIES%%Cust%\%InvNo% %Job%\HSD" mkdir "%AGPath%%SERIES%%Cust%\%InvNo% %Job%\Design" mkdir "%AGPath%%SERIES%%Cust%\%InvNo% %Job%\LFC" mkdir "%AGPath%%SERIES%%Cust%\%InvNo% %Job%\PROOF" CLS echo Process Complete Pause goto end :Cancel CLS echo Process canceled by user. Pause goto end :END I know my code is probably junk, but hey. Thanks for any help!
×
×
  • Create New...