Sign in to follow this  
Followers 0
leernest

Menu call

7 posts in this topic

I wrote a script making a menu to select the options. I tried both the option script alone, no problem has found. After I embedded the scripts to a main menu script, problem found when I called the option 2. What's wrong ?

; V2.64 to V3.0.93 (Version 1.0.4)

; Converted with AutoItV2toV3 [Version 1.0.5]

; © Copyright 2004 J-Paul Mesnage.

;***********************************************************************

;

; Description : This modification provides a menu to choose for date selection.

; q : to Exit

; 1 : Current date select

; 2 : Previous date select

;

;************************************************************************

do ; Check_date

$MyOption = InputBox ( 'TESTING OF MENU', 'Select 1 for current date and 2 for previous date ! q for QUIT !!!' )

if $MyOption = "1" then

MsgBox(0,"test","This is option 1")

#include "a_test.AU3"

elseif $MyOption = "2" then

MsgBox(0,"test","This is option 2")

#include "b_test.AU3"

endif

Until $MyOption = "q" or "1" or "2"

exit

-----------------------------------------------------------------------------

; V2.64 to V3.0.93 (Version 1.0.4)

; Converted with AutoItV2toV3 [Version 1.0.5]

; © Copyright 2004 J-Paul Mesnage.

;

; Program a_test.au3

MsgBox(0,"Test","Call on option 1")

Exit

----------------------------------------------------------------------------

; V2.64 to V3.0.93 (Version 1.0.4)

; Converted with AutoItV2toV3 [Version 1.0.5]

; © Copyright 2004 J-Paul Mesnage.

;

; Program b_test.au3

#include <date.au3>

$DateVar=_DateLastDay(@MDAY & "/" & @MON & "/" &@YEAR ,"/")

MsgBox(0,"TEST", "Inside the b_test" &$DateVar)

exit

;====================================================

;

; Description: Returns the previous day's date

; Syntax: _DateLastDay( $DateIn, $Delimiter )

; Parameter(s): $DateIn - Input date

; $Delimiter - Delimiter of Days, Month and Year

; Requirement(s): Date is in format DD/MM/YYYY, where "/" is a variable delimiter

; You need to include Date.au3 (#include <Date.au3>)

; Return Value(s): On Success - Returns the previous day's date

; On Failure - Returns 0 and sets @error = 1

; Author(s): Giuseppe Criaco <gcriaco@quipo.it>

;

;====================================================

Func _DateLastDay($DATEIN, $DELIMITER)

$ARRDATE = StringSplit($DATEIN, $DELIMITER)

$DD = $ARRDATE[1]

$MM = $ARRDATE[2]

$YYYY = $ARRDATE[3]

If $ARRDATE[0] <> 3 Then

SetError(1)

Return 0

Exit

EndIf

If _DateIsValidMonthNum ($MM) And _DateIsValidYear ($YYYY) Then

If $DD > 1 Then;Day > 1

$DD = $DD - 1

ElseIf $MM > 1 Then;Month > 1

$MM = $MM - 1

Select

Case $MM = 02

If _DateIsLeapYear($YYYY) = 1 Then

$DD = 29

Else

$DD = 28

EndIf

Case $MM = 04 Or $MM = 06 Or $MM = 09 Or $MM = 11

$DD = 30

Case Else

$DD = 31

EndSelect

Else

$DD = 31

$MM = 12

$YYYY = $YYYY - 1

EndIf

Else

SetError(1)

Return 0

Exit

EndIf

$DD = StringFormat( "%02d", $DD)

$MM = StringFormat( "%02d", $MM)

$DATEOUT = $YYYY & "" & $MM & "" & $DD

Return $DATEOUT

EndFunc ;==>_DateLastDay

Share this post


Link to post
Share on other sites



The reason for the " "Do" statement has no matching "Until" statement." error is that you have an #include<date.au3> inside and Do-Until loop.

The date.au3 contains functions (func-endfunc) which cannot be inside a Do-Untill.

Just move the #include<date.au3> statement to the top of your main program and comment it out in the b_test.au3.


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Hi JdeB,

I follow your suggestion and move the include statment into the main program and comment it on the b_test.au3, but the same error message still found. Any other suggestions ? Thanks !

Share this post


Link to post
Share on other sites

The following error message shown:

Line 21(File "C:\temp\b_test.au3");

Func _DateLastDay($DATEIN,$DELIMITER)

Error:"Do statement has no matching "Until" statement.

Share this post


Link to post
Share on other sites

Same issue as you had with the #include <date> .

You need to move all functions outside of the Do-Until loop.

So move the whole Func _DateLastDay top the bottom of you main pgm to fix this issue.


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Yup, it's ok right now after I moved all function outside the Do..Until loop. Thanks for your help !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0