Avatar billede bfjmnemonic Nybegynder
30. september 2004 - 16:29 Der er 23 kommentarer og
1 løsning

VBS Menu

Hej eXperter.

Jeg er tit ude for at jeg skal lave scripts hvor det kunne være smart hvis brugerne kunne tage nogle valg.

Det jeg har brug for er valg som ikke lige kan tages med Ja & Nej popup boksen.

Er det muligt at lave. Jeg forestiller mig 2 forskellige typer

1) Et valg med Radio Bokse eller ligende hvor der kun kan vælges 1

2) En boks hvor der take checkes flere valg af.

Hvordan laver man lige det. Jeg forestiller mig man måske kan bruge Internet Explorer eller ligende til at presentere det, men ved ikke rigtigt hvordan.

PS: Det skal ikke bruges på en Webside.
Avatar billede bfjmnemonic Nybegynder
30. september 2004 - 16:30 #1
Hvis du svarer "Det er ikke muligt" eller ligende skla du ikke regne med at få points.
Avatar billede ldanielsen Nybegynder
30. september 2004 - 16:33 #2
Vi skal jo nok vide hvor det skal bruges. Var det i Visual Basic ville man lave en form, og åbne den i et modal vindue
Avatar billede medions Nybegynder
30. september 2004 - 18:11 #3
Hvis det skal laves til en hjemmeside, og det skal laves i VBScript, så er det ikke muligt.

Så skal du hen og udviklet et program, som i fx. Visual Basic, C# eller you name it...

Er er ikke muligt at lave en "brugerflade" i VBScript.

//>Rune
Avatar billede ldanielsen Nybegynder
30. september 2004 - 18:24 #4
Der er jeg ikke enig

På en hjemmeside kunne man let lave det i enten javascript eller VBScript
Avatar billede medions Nybegynder
01. oktober 2004 - 00:43 #5
Ja, men her har du ikke nogen muligheder for at bruge et Markup language eller noget Windows Forms lib, her er du blot på en skrabet version af VB hvis man kan kalde det det.

//>Rune
Avatar billede bfjmnemonic Nybegynder
06. oktober 2004 - 21:42 #6
Som sagt, så skal det ikke bruges på en WebSide, men jeg forestiller mig at man, som jeg allerede har skrevet, muligvis kunne presentere det i en Internet Explorer via. f.eks. forms. Men hvordan man umiddelbart får svarene tilbage i VBS scriptet fra Internet Explorer ved jeg ikke.
Avatar billede ldanielsen Nybegynder
07. oktober 2004 - 15:29 #7
Hvis du "præsenterer det i Internet Explorer", så er det en webside, uanset om det ligger på en server eller på din lokalmaskine.

Man hvis du vil have mere hjælp er du vist nødt til at afsløre hvad det er du laver. Gerne i detaljer.
Avatar billede bfjmnemonic Nybegynder
10. oktober 2004 - 00:24 #8
Ok .. Det er lidt ligemeget for mig hvordan du vil definere scriptet.

Nej det skal ikke ligge på en webserver. Ja det må gerne benytte I.E.

Hvad jeg laver er egentlig underordnet, men jeg kan da godt finde på et eksempel hvis du vil have det.


Ex:
Scriptet skal åbne en browser og give mig følgende valg:
Hvad vil du have til aftens mad?
Nedenstående valg er Enten eller valg, altså Radio Buttons
Radio_Valg 1: Fleskesteg
Radio_Valg 2: Hakkebøf
Radio_Valg 3: Pandekager

Hvilken slags tilbehør vil du have til?
Nedenstående valg er Både og Valg, altså CheckBokse
Chkbox_Valg 1: Ketchup
Chkbox_Valg 2: Kartofler

Scriptet skal herefter skrive:
Du valgte at få <VALG1> til aftensmad.
Du har bedt om følgende tilbehør <Chkbox_VALG1> & <Chkbox_Valg2>
.-------

Er opgaven defineret så den er til at forstå nu?
Avatar billede ldanielsen Nybegynder
11. oktober 2004 - 10:57 #9
OK, hvis dette er definitionen, så er løsningen nedenfor. Men du er nok ikke tilfreds for der mangler et par meget vigtige ting:

Scriptet skal åbne en browser ... Hvordan skal dette script afvikles?
Scriptet skal herefter skrive ... Hvor skal scriptet skrive det?

Men indholdet i popupp'en er ellers her:

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function DisplayChoice(f){
    strOut = "";
    for (i=0;i<f.radio1.length;i++){
        if (f.radio1[i].checked)strOut += "Du valgte at få " + f.radio1[i].value + " til aftensmad.";
        }
    if (f.Ketchup.checked || f.Kartofler.checked){
        strOut += "<br>Du har bedt om følgende tilbehør: "
        if (f.Ketchup.checked){
            strOut += "Ketchup";
            }
        if (f.Kartofler.checked){
            if (f.Ketchup.checked){
                strOut += " & kartofler";
            }else{
                strOut += "Kartofler";
                }
            }
        }
           
    document.getElementById("Display").innerHTML = strOut;
    }
//-->
</SCRIPT>

</HEAD>
<BODY>
<FORM>
<P>
<INPUT type=radio name=radio1 value=Flæskesteg>Flæskesteg
<BR><INPUT type=radio name=radio1 value=Hakkebøf>Hakkebøf
<BR><INPUT type=radio name=radio1 value=Pandekager>Pandekager
</P>
<P>
<INPUT type=checkbox name="Ketchup">Ketchup
<BR><INPUT type=checkbox name="Kartofler">Kartofler
</P>
<P>
<INPUT type=button value=Go! onclick="DisplayChoice(this.form);">
</P>
</FORM>
<DIV id="Display"></DIV>
</BODY>
</HTML>
Avatar billede bfjmnemonic Nybegynder
11. oktober 2004 - 17:22 #10
Øhh .. Ja .. Det jeg ikke kan finde ud af, er hvordan jeg får input værdierne tilbage ind i scriptet.
Avatar billede ldanielsen Nybegynder
11. oktober 2004 - 17:33 #11
Hvorfra køres scriptet?

Du har oprettet spørgsmålet i kategorien VBScript, hvilket ikke giver mange spor. VBScript bruges jo en del steder, bla. i Office-programmerne, som makrosprog, men det kan jo også være vbs-filer det drejer sig om.

Forstår du ikke mit spørgsmål, eller skal det være en hemmelighed? :o)
Avatar billede nielsrs Nybegynder
11. oktober 2004 - 18:28 #12
Du kan bruge en inputbox,



txt =  "Valg af brevtype:  Indtast valg:"

            txt = txt & chr(13) & "  s" & chr(9) & "Slet betalinger"
            txt = txt & chr(13) & "  o" & chr(9) & "overføres til anden konto"
            txt = txt & chr(13) & "  f" & chr(9) & "betalinger fortsætter uændret"
            txt = txt & chr(13) & "  v" & chr(9) & "vente på svar"
            txt = txt & chr(13) & "  m" & chr(9) & "manuel/intet brev" & chr(13)

            do
              valg = inputbox(txt,"Cpr.nr. " & cpr ,,1,1)
              select case valg
                  Case "s"
'til programmering
                  Case "f"
'til programmering   
                  Case "o"
'til programmering
                  Case "m"
'til programmering
                  Case "v"
'til programmering
                  Case ""
                    msgbox"Du har valg at annullere, intet er foretaget"
                    exit sub
                  Case else
'til programmering
              end select
            loop
Avatar billede ldanielsen Nybegynder
11. oktober 2004 - 19:00 #13
- nu tror jeg lige jeg tabte tråden
Avatar billede nielsrs Nybegynder
11. oktober 2004 - 21:40 #14
Måske er dette eksempel bedre

Opret en almindelig tekstfil.
Indsæt efterfølgende og gem som  test.vbs,
du har nu dannet et vbs-program som du kan starte ved at dobbeltklikke.



dim txt, emne


do

  txt = "Hvad skal medtages?"& chr(13) & "Indtast nr." & chr(13) & chr(13)
  txt = txt & " 1  ansøgning" & chr(13)
  txt = txt & " 2  blyant"& chr(13)
  txt = txt & " 3  kuglepen "& chr(13)
  txt = txt & " 4  godt humør "& chr(13)
  txt = txt & " 5  stige "& chr(13)
  txt = txt & "------------------------"& chr(13)
  txt = txt & "Du har valgt..."& chr(13)
  txt = txt & total_valg

valg = inputbox(txt,"Ved OK til tomslag går du videre")

if valg = "" then exit do

select case valg

  case "1"
      emne = "ansøgning"

  case "2"
      emne = "blyant"

  case "3"
      emne = "kuglepen"

  case "4"
      emne = "godt humør"

  case "5"
      emne = "stige"
end select



total_valg = total_valg & chr(13) & emne


loop

msgbox (total_valg)







do

  txt = "Hvad skal medtages?"& chr(13) & "Indtast nr." & chr(13) & chr(13)
  txt = txt & " 1  ansøgning" & chr(13)
  txt = txt & " 2  blyant"& chr(13)
  txt = txt & " 3  kuglepen "& chr(13)
  txt = txt & " 4  godt humør "& chr(13)
  txt = txt & " 5  stige "& chr(13)
  txt = txt & "------------------------"& chr(13)
  txt = txt & "Du har valgt..."& chr(13)
  txt = txt & total_valg

valg = inputbox(txt,"Ved OK til tomslag går du videre")

if valg = "" then exit do

select case valg

  case "1"
      emne = "ansøgning"

  case "2"
      emne = "blyant"

  case "3"
      emne = "kuglepen"

  case "4"
      emne = "godt humør"

  case "5"
      emne = "stige"
end select



total_valg = total_valg & chr(13) & emne


loop

msgbox (total_valg)
Avatar billede nielsrs Nybegynder
11. oktober 2004 - 21:41 #15
hov...det kom vist 2 gange
Avatar billede bfjmnemonic Nybegynder
13. oktober 2004 - 22:12 #16
ldanielsen: Ok .. Vi snakker nok bare lidt forbi hinanden. Det skal bare køre som et helt almindeligt VBS Script. Altså som en fil f.eks. script.vbs (At dobbeltklikke)

nielsrs: Hmm Det er ikek tosset, jeg ville nu hellere have det i en browser, da det så er lidt mere fleksibelt, og man kan gøre det lidt pænere grafiks.
Avatar billede ldanielsen Nybegynder
13. oktober 2004 - 22:59 #17
OK, hvad med en hta-fil?

Gem dette med hta-extension. Prøv de to forskellige outputmetoder, den sidste rydder vinduet.

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=vbscript>

function DisplayChoice()
    set f = document.forms(0)
    set objRadio = f.elements("radio1")
    strOut = ""
   
    for each r in objRadio
        if r.checked then
            strOut = strOut & "Du valgte at få " & r.value & " til aftensmad."
        end if
    next
    if f.Ketchup.checked or f.Kartofler.checked then
        strOut = strOut & "<br>Du har bedt om følgende tilbehør: "
        if f.Ketchup.checked then
            strOut = strOut & "Ketchup"
        end if
        if f.Kartofler.checked then
            if f.Ketchup.checked then
                strOut = strOut & " & kartofler"
            else
                strOut = strOut & "Kartofler"
            end if
        end if
    end if
    'document.getElementById("Display").innerHTML = strOut
    document.write(strOut)
end function

</SCRIPT>

</HEAD>
<BODY>
<FORM ID="Form1">
<P>
<INPUT type=radio name=radio1 value=Flæskesteg ID="Radio1">Flæskesteg
<BR><INPUT type=radio name=radio1 value=Hakkebøf ID="Radio2">Hakkebøf
<BR><INPUT type=radio name=radio1 value=Pandekager ID="Radio3">Pandekager
</P>
<P>
<INPUT type=checkbox name="Ketchup" ID="Checkbox1">Ketchup
<BR><INPUT type=checkbox name="Kartofler" ID="Checkbox2">Kartofler
</P>
<P>
<INPUT type=button value=Go! onclick="DisplayChoice()" ID="Button1" NAME="Button1">
</P>
</FORM>
<DIV id="Display"></DIV>
</BODY>
</HTML>
Avatar billede nielsrs Nybegynder
14. oktober 2004 - 07:51 #18
Jeg bruger selv i visse tilfælde et browservindue til at præsentere oplysninger.
Du kan få et brudstykke af mit program. Jeg har dog ikke teknikken til at indsætte valgbokse eller lignende i selve browservinduet og kombinerer derfor browservinduet med en inputboks.
Det hele er i et VBscript program.


Set objExplorer2 = CreateObject("InternetExplorer.Application")

            objExplorer2.navigate "About:Blank"
            objExplorer2.ToolBar = 0
            objExplorer2.StatusBar = 0
            objExplorer2.Width=650
            objExplorer2.Height = 160
            objExplorer2.Left = 1
            objExplorer2.Top = 1
            objExplorer2.Visible = 1
            Do while objExplorer2.busy
            loop
            objExplorer2.document.open
            objExplorer2.document.WriteLn "<HTML><HEAD>"
            objExplorer2.document.WriteLn "<TITLE>"
            objExplorer2.document.WriteLn "PBS-aftalenr.: " & pbs_aftale_nr
            objExplorer2.document.WriteLn "</TITLE></HEAD>"
            objExplorer2.document.WriteLn "<BODY>"
            for z = 1 to 4
              objExplorer2.document.WriteLn titel(z) & " " & lin(z)
              for x = 1 to (15-len(trim(lin(z))))
                  objExplorer2.document.WriteLn "&nbsp;"
              next
              objExplorer2.document.WriteLn "&nbsp;&nbsp;" & tekst(z)
              objExplorer2.document.WriteLn "<br>"
            next
            objExplorer2.document.WriteLn "</BODY>"
            objExplorer2.document.WriteLn "</HTML>"
            autECLSession.autECLOIA.WaitForInputReady
            txt = "1    Slet IK ; fremtidige betalinger behandles" & chr(13)
            txt = txt & "2    Godkendelse uden sletning" & chr(13) & chr(13)
            txt = txt & "9    Intet foretages !! " & chr(13)
            txt = txt & "        - posten godkendes ikke " & chr(13)
            txt = txt & "        - makro går til næste post " & chr(13)
            txt = txt & "        - udskriv evt. oplysningerne om posten og kør makroen igen senere " & chr(13)
            do
              valg_del1 = inputbox("Indtast valg ( 1, 2 eller 9)" & chr(13) & chr(13) & txt,"PBS knr " & pbs_kundenr,,9800,100)
              if valg_del1 = "1" then exit do
              if valg_del1 = "2" or valg_del1 = "9" then
                  skift = 2
                  exit do
              end if
              if valg_del1 = "" then
                  valg = msgbox ("Du har valgt at afslutte makroen, er det korrekt !!!!!",36)
                  if valg = 6 then
                    set styr = fso.CreateTextFile("c:\dobb.txt", True)
                    styr.writeLine "slut"
                    styr.close
                    exit sub
                  end if
              end if
            loop
Avatar billede nielsrs Nybegynder
14. oktober 2004 - 07:52 #19
Linien

autECLSession.autECLOIA.WaitForInputReady

skal du lige fjerne !!
Avatar billede bfjmnemonic Nybegynder
18. oktober 2004 - 14:06 #20
nielsrs: Jeg tror du er inde på noget med det sidste indlæg der, men jeg kan ikke få det til at spille. Der kommer en mængde fejl, bl.a. brokker den sig over følgende linie

objExplorer2.document.WriteLn "Hejsa " & titel(z) & " " & lin(z)

Den skriver TYPE mismatch.
Avatar billede nielsrs Nybegynder
18. oktober 2004 - 15:55 #21
I starten af programmet skal du have en "dim", jeg tror det er årsagen til denne fejlmelding.

dim titel(100), lin(100)
Avatar billede bfjmnemonic Nybegynder
18. oktober 2004 - 22:05 #22
Så kommer der rigtigt nok en boks op men et skrivefelt og et IE vindue, men der sker ikke noget i IE vinduet.
Avatar billede nielsrs Nybegynder
19. oktober 2004 - 09:12 #23
De indekserede variabler  titel(z) og lin(z) skal jo indeholde værdier

titel(z) indeholder en beskrivelse
og lin(z) indeholder data

f.eks.

titel(1) = "Kontonummer"
lin(1) = "2464624678"
titel(2) = "Navn"
lin(2) = "Peter jensen"

o.s.v.

Hvis variablerne er tomme vil ie-vinduet være tomt.
Avatar billede bfjmnemonic Nybegynder
13. december 2004 - 12:22 #24
Tak for alle jeres svar.

Jeg har valgt at køre med det andet svar fra nielsrs. Det kører 100%. Det er ikke browser integreret, men det løser opgaven.

Tak for det..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester