Jump to content
Sign in to follow this  
asakust

Subtraction Causing Extra Decimal Places - SOLVED

Recommended Posts

Having some issues here... I'm trying to pull two numbers from a .tab text file, and one from an internal control inside another program. The only field I can access is the static text control that the program, and when I'm trying to subtract the two to double-check my numbers, I'm getting extra decimals added in. I'm not sure where they're coming from.

I've tried using Round() to drop it down to 2 places, in the current iteration I'm trying to use StringFormat to cut it down to 2 places, but every time I try it out, an extra 0.000000001 or so is added to the $vDifference variable. Here's my code (it's sloppy, forgive me - first attempt at GUIs as well).

 

UPDATE: Solved. Melba is a genius, and I have no idea how to syntax.

 

#include <File.au3>
#include <FileConstants.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

;~ Declare Variables
Global $vSourcePlanName
Global $vSourceRxNum
Global $vSourceRxPaid
Global $vIsolatedRxDate
Global $vIsolatedRxNum
Global $vIsolatedRxPaid
Global $vRunningTotal
Global $aTextArray
Global $vSourceArrayLine
Global $aPlanArray
Global $vPlanName
Global $vPlan
Global $vNocTotal
Global $vTabFile = "C:\Users\Owner\Downloads\EPIC_PaymentReport.tab"
Global $vPioneerClass = "0.2804c64"
Global $pButton = "[CLASS:WindowsForms10.BUTTON.app."
Global $pEdit = "[CLASS:WindowsForms10.EDIT.app."

;~ Create array from payment .tab file
Func CreatePaymentArray()
   _FileReadToArray ($vTabFile, $aTextArray, Default, @TAB)

;~ Create Result Array to be filled with data
Global $aResultArray[0][4]

;~ Check if $aTextArray is valid and pull variables from it
   If IsArray($aTextArray) Then
      $iMax = UBound($aTextArray)
      For $i = 0 to $iMax -1;

;~ Save Plan Name to Variable
         $vSourcePlanName = $aTextArray[$i][1]

;~ Save Rx Date to Variable
         $vSourceRxDate = $aTextArray[$i][2]
         Local $vSourceRxDateYear = StringRight($vSourceRxDate,4)
         $vSourceRxDate = StringReplace($vSourceRxDate,"/","")
         $vSourceRxDate = $vSourceRxDateYear & StringTrimRight($vSourceRxDate,4)

;~ Save Rx Number to Variable, Strip White Space, and - if no text - change to Number
         $vSourceRxNum = $aTextArray[$i][3]
         $vSourceRxNum = StringStripWS($vSourceRxNum, $STR_STRIPALL)
         If StringIsDigit($vSourceRxNum) Then
            $vSourceRxNum = Number($vSourceRxNum)
         EndIf


;~ Save Rx Paid Amount to Variable and change to Number
         $vSourceRxPaid = $aTextArray[$i][5]
         $vSourceRxPaid = StringStripWS($vSourceRxPaid, $STR_STRIPALL)
         If StringIsDigit($vSourceRxPaid) Then
            $vSourceRxPaid = Number($vSourceRxPaid)
         EndIf

;~ Add Payment Data to $aResultArray
         $vSourceArrayLine = $vSourcePlanName & "|" & $vSourceRxDate & "|" & $vSourceRxNum & "|" & $vSourceRxPaid
         _ArrayAdd($aResultArray, $vSourceArrayLine)
      Next

;~    _ArrayDisplay($aResultArray, "Result Array", Default, 8)
   EndIf


;~ Create $aPlanArray - an Array of Plan Names
   $aPlanArray = _ArrayUnique($aResultArray)
;~ _ArrayDisplay($aPlanArray)
   Global $iPlanMax = UBound($aPlanArray)
EndFunc


;~ Create GUI
Func CreateWindow()
   Local $hGUI = GUICreate("Apply Payments", 285, 250, 550, 300, -1)
   Local $idComboBox = GUICtrlCreateCombo("Choose Insurance Plan",10,10,230)
   Local $vPaymentDateLabel = GUICtrlCreateLabel("Payment Date:",10,152)
   Local $vPaymentDateInput = GUICtrlCreateInput("mm/dd/yyyy",85,149,75)
   Local $vEpicDateLabel = GUICtrlCreateLabel("EPIC Date:",10,175)
   Local $vEpicDateInput = GUICtrlCreateInput("mm/dd/yyyy",85,171,75)
   Local $idOkButton = GUICtrlCreateButton("OK",250,8,25,25)
   Local $idOpenButton = GUICtrlCreateButton("Open...",10,215,50)
   Local $idContinueButton = GUICtrlCreateButton("Continue",120,215,75)
   GUICtrlSetState($idContinueButton,$GUI_DISABLE)
   Local $idCancelButton = GUICtrlCreateButton("Cancel",200,215,75)
   Local $vPlanLabel = GUICtrlCreateLabel("Insurance Plan Selected: ", 10, 40)
   Local $vPlanSelect = GUICtrlCreateLabel("None", 135, 40, 120)
   Local $vNocLabel = GUICtrlCreateLabel("Number of Claims: ", 10, 60)
   Local $vNoc = GUICtrlCreateLabel(0,100,60,20)
   Local $vTotalPayLabel = GUICtrlCreateLabel("Total Payment Amount: ", 10, 80)
   Local $vTotalPayAmt = GUICtrlCreateLabel(0,125,80,75)
   Local $vMinDateLabel = GUICtrlCreateLabel("Date Range - From ", 10, 100)
   Local $vMinDate = GUICtrlCreateLabel("yyyyMMdd", 105, 100)
   Local $vMaxDateLabel = GUICtrlCreateLabel("To ", 87, 120)
   Local $vMaxDate = GUICtrlCreateLabel("yyyyMMdd", 105, 120)



   GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; to allow drag and dropping
   GUISetState(@SW_SHOW)

   If IsArray($aPlanArray) Then
      For $i = 3 to $iPlanMax -1;
         $vPlanName = $aPlanArray[$i]
         GUICtrlSetData($idComboBox,$vPlanName)
      Next
   EndIf

    ; Loop until the user exits.
    While 1
        Switch GUIGetMsg()
        Case $idOkButton
            $vPlan = GUICtrlRead($idComboBox)

            If Not($vPlan == "Choose Insurance Plan") Then
;~              Search $aResultArray for all entries with Plan Name
               Global $aPlanSearch = _ArrayFindAll($aResultArray, $vPlan, Default, Default, Default, Default, 0)
               If IsArray($aPlanSearch) Then
                  $vRunningTotal = 0
                  $jMax = UBound($aPlanSearch)
                  For $j = 0 to $jMax -1;
                     $vIsolatedRxDate = $aResultArray[$aPlanSearch[$j]][1]
                     $vIsolatedRxNum = $aResultArray[$aPlanSearch[$j]][2]
                     $vIsolatedRxPaid = $aResultArray[$aPlanSearch[$j]][3]
;~                   MsgBox($MB_OK,"",$vIsolatedRxDate & "|" & $vIsolatedRxNum & "|" & $vIsolatedRxPaid,3)
                     $vRunningTotal += $vIsolatedRxPaid
                  Next
               EndIf
               GUICtrlSetData($vNoc,UBound($aPlanSearch))
               GUICtrlSetData($vTotalPayAmt, $vRunningTotal)
               Global $vMaxRange = UBound($aPlanSearch)
               $vMaxRange -= 1
               Local $vMinDateUnformatted = _ArrayMin($aResultArray, 1, $aPlanSearch[0], $aPlanSearch[$vMaxRange], 1)
               Local $vMinDateYear = StringLeft($vMinDateUnformatted,4)
               $vMinDateUnformatted = StringTrimLeft($vMinDateUnformatted,4) & $vMinDateYear
               GUICtrlSetData($vMinDate, $vMinDateUnformatted)
               Local $vMaxDateUnformatted = _ArrayMax($aResultArray, 1, $aPlanSearch[0], $aPlanSearch[$vMaxRange], 1)
               Local $vMaxDateYear = StringLeft($vMaxDateUnformatted,4)
               $vMaxDateUnformatted = StringTrimLeft($vMaxDateUnformatted,4) & $vMaxDateYear
               GUICtrlSetData($vMaxDate, $vMaxDateUnformatted)
               Global $vPaymentDate = GUICtrlRead($vPaymentDateInput)
               Global $vEpicDate = GUICtrlRead($vEpicDateInput)
               If ($vPaymentDate == "mm/dd/yyyy") OR ($vEpicDate == "mm/dd/yyyy") Then
                  MsgBox($MB_ICONERROR,"Invalid Selection","Date(s) Entered Invalid.")
               Else
                  GUICtrlSetState($idContinueButton, $GUI_ENABLE)
               EndIf
            Else
               MsgBox($MB_ICONERROR,"Invalid Selection","No Insurance Plan Selected.")
            EndIf


         Case $idOpenButton
            OpenFile()
            ExitLoop

         Case $idContinueButton
            Global $vContinuePaidTotal = 0
            $vContinuePaidTotal = Number($vContinuePaidTotal)

            If WinExists("Reconcile Payment") Then
               Local $vContinueMin = $aPlanSearch[0]
               Local $vContinueMax = $aPlanSearch[$vMaxRange]
               Global $vReconciledAmt
;~              _ArrayDisplay($aResultArray,"Result Array", $vContinueMin & ":" & $vContinueMax)
               For $i = $vContinueMin to $vContinueMax
;~                 Send Rx Number to Reconcile Payment Screen
                  ControlFocus("Reconcile Payment","",$pEdit & $vPioneerClass & "; INSTANCE:1]")
                  ControlSend("Reconcile Payment","",$pEdit & $vPioneerClass & "; INSTANCE:1]",$aResultArray[$i][2])
                  ControlFocus("Reconcile Payment","",$pButton & $vPioneerClass & "; INSTANCE:1]")
                  ControlClick("Reconcile Payment","",$pButton & $vPioneerClass & "; INSTANCE:1]")

                  Local $vContineRxNum = $aResultArray[$i][2]
                  Local $vContinueRxDate = $aResultArray[$i][1]
                  Local $vContinueRxPaidAmt = Number($aResultArray[$i][3])
                  $vContinueRxPaidAmt = StringFormat($vContinueRxPaidAmt, "%.2f")
                  Local $vDifference = 0

                  $vReconciledAmt = ControlGetText("Reconcile Payment","","[CLASS:WindowsForms10.STATIC.app." & $vPioneerClass & "; INSTANCE:36]")
                  $vReconciledAmt = Number(StringTrimLeft($vReconciledAmt, 1))
                  $vReconciledAmt = StringFormat($vReconciledAmt, "%.2f")
                  $vContinuePaidTotal = StringFormat($vContinuePaidTotal,"%.2f")
                  $vContinueRxPaidAmt = StringFormat($vContinueRxPaidAmt, "%.2f")
                  $vContinuePaidTotal = $vContinuePaidTotal + $vContinueRxPaidAmt
                  $vContinuePaidTotal = StringFormat($vContinuePaidTotal, "%.2f")
                  $vDifference = $vContinuePaidTotal - $vReconciledAmt
                  $vDifference = StringFormat($vDifference, "%.2f")

                  MsgBox($MB_OK,"",$vReconciledAmt & @CRLF & $vContinuePaidTotal & @CRLF & @CRLF & "Difference: " & $vDifference)

                  If $vReconciledAmt = $vContinuePaidTotal Then
                     MsgBox($MB_OK,"","Amounts Match.")
                  Else
                     MsgBox($MB_OK,"","Amounts Do Not Match.")
                     $vContinuePaidTotal = StringFormat($vContinuePaidTotal, "%.2f")
                     $vDifference = StringFormat($vDifference, "%.2f")
                     $vContinuePaidTotal = $vContinuePaidTotal - $vDifference
                     $vContinuePaidTotal = StringFormat($vContinuePaidTotal, "%.2f")
                     $vDifference = StringFormat($vDifference, "%.2f")
                  EndIf





               Next
            Else
               MsgBox($MB_ICONERROR,"Invalid Selection","Reconcile Payment Screen not found.")
            EndIf


         Case $idCancelButton, $GUI_EVENT_CLOSE
            ExitLoop
        EndSwitch
    WEnd



EndFunc

;~ Open File
Func OpenFile()
   Local $sFileOpenDialog = FileOpenDialog("Select Payment Data to Import","C:\Users\Owner\Downloads\","Payment Files (*.xls;*.tab)", $FD_FILEMUSTEXIST)
   If @error Then
      MsgBox($MB_SYSTEMMODAL,"","No file was selected.")
   Else
      $vTabFile = $sFileOpenDialog
   EndIf
   CreatePaymentArray()
   CreateWindow()
EndFunc

;~ Set up Payments in Pioneer - UNFINISHED
Func SetupPioneer()
   If WinExists("PioneerRx Quinlans Pharmacy") Then
      WinActivate("PioneerRx Quinlans Pharmacy")
      Send("{ESC 3}")
      Send("!{S}")
      Send("{P 2}")
      WinWait("Save Rx?","",1)

      If WinExists("Save Rx?") Then
         Send("{N}")
         Sleep(200)
         WinActivate("PioneerRx Quinlans Pharmacy")
         ControlClick("PioneerRx Quinlans Pharmacy","", $pButton & $vPioneerClass & "; INSTANCE:8]")
      Else
         WinActivate("PioneerRx Quinlans Pharmacy")
      EndIf

      ControlClick("PioneerRx Quinlans Pharmacy","", $pButton & $vPioneerClass & "; INSTANCE:8]")
      WinWait("Action Menu")
      ControlClick("Action Menu","", $pButton & $vPioneerClass & "; INSTANCE:5]")
      WinWait("Add Third Party Payment")
      ControlSend("Add Third Party Payment", "", $pEdit & $vPioneerClass & "; INSTANCE:4]", StringLeft($vPlan,5))
      Send("{ENTER 2}")
      Sleep(100)
      ControlClick("Add Third Party Payment","","[CLASS:WindowsForms10.COMBOBOX.app." & $vPioneerClass & "; INSTANCE:1]")
      Send("{DOWN}")
      ControlFocus("Add Third Party Payment","",$pEdit & $vPioneerClass & "; INSTANCE:3]")
      ControlSend("Add Third Party Payment","",$pEdit & $vPioneerClass & "; INSTANCE:3]", $vPaymentDate)
      ControlFocus("Add Third Party Payment","",$pEdit & $vPioneerClass & "; INSTANCE:2]")
      ControlSend("Add Third Party Payment","",$pEdit & $vPioneerClass & "; INSTANCE:2]", "EPIC " & $vEpicDate & " Automated")
;~    ControlClick("Add Third Party Payment","",$pButton & $vPioneerClass & "; INSTANCE:4]")





   Else
      MsgBox ($MB_ICONERROR,"Window Test", "PioneerRx Quinlans Pharmacy Window Does Not Exist")
   EndIf

EndFunc


CreatePaymentArray()

CreateWindow()

 

Edited by asakust
Solved

Share this post


Link to post
Share on other sites

asakust,

Go and look up "floating point arithmetic" - or search the forum because it has been discussed I do not know how many times.  And before you ask, this is NOT an Autoit problem - it affects all computers regardless of language unless they use special arithmetic routines.

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Go and look up "floating point arithmetic" - or search the forum because it has been discussed I do not know how many times.

​Good deal, I'll look into it. Thanks for giving me the name of something to look for, I had no idea where to even start - I tried searching for "extra decimal places," "math extra decimals," and anything else I could think of, but since I had no idea what to look for, I couldn't find anything to start from. I'll update when I get somewhere. 

 

Thanks, M!

Edited by asakust

Share this post


Link to post
Share on other sites

Actually, I still have issues with this... I'm trying to use StringFormat to force the numbers to truncate anyway, and it's still coming out with the extra decimals. Code snippet below.

$vContinuePaidTotal = StringFormat($vContinuePaidTotal, "%.2f")
    $vDifference = StringFormat($vDifference, "%.2f")
    $vContinuePaidTotal = $vContinuePaidTotal - $vDifference
    $vContinuePaidTotal = StringFormat($vContinuePaidTotal, "%.2f")

I'm assuming I'm using the StringFormat correctly, but even after repeatedly trying to force it into 2 decimal places (yes, I'm working with money) the $vContinuePaidTotal variable always returns with added decimal places. I have tried the same thing I'm doing here with Round(), am I missing something? Should I be formatting the string and/or rounding it as I'm trying to return the value?

MsgBox($MB_OK,"Total Amount","ContinuePaidTotal = " & Round($vContinuePaidTotal,2))

;~ OR

MsgBox($MB_OK,"Total Amount","ContinuePaidTotal = " & StringFormat($vContinuePaidTotal, "%.2f")

Something like this?

I understand the floating point issue is not one with AutoIt, but I'm just confused as to where I'm going wrong in attempting to format the resulting values.

Share this post


Link to post
Share on other sites

asakust,

I'm assuming I'm using the StringFormat correctly

Check the order of the parameters for StringFormat - you might find it works better if you get them the right way round.

But you might get .99999999999 returned and so I would not recommend that method.

If you are working with cash, why not convert everything to cents/pence/lowest and do all the maths on integers, reconverting at the end?

M23

Edited by Melba23
Wrong button too soon

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Melba - 

I got stuck in the reference with this PrintFormat Function. Thanks for that.

PrintFormat($iInt_Unsigned, "%.2f", "floating point with 2 digits after decimal point", 1) ; 43951789.00

The only reason I haven't switched everything into cents and reconverted is that... Well, I figured it would be more difficult and take more time - but with the issues I'm having on the floating-point nonsense, that may be the easier route.

 

Thanks again, I'll try it again later on and update you!

Share this post


Link to post
Share on other sites

asakust,

Glad I could help.

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Atrax27
      I have a webpage that I would like to Focus the Input on a particular field, which is not automatically set as the initial input.
       
      Website:
      https://fiscaloffice.summitoh.net/PropertyTaxValues/PayTaxCC.htm
       
      I want to just simply use the Send(“154xxx”) into the “Parcel” field, then Send(“{ENTER}”) without cycling through tab presses each time before getting to the correct inputbox, where number of tab press numbers might change depending on a few things (using either IE, chrome, etc). On most websites I try this with, the “Login ID” field is the first one that the cursor jumps to so all I do is just start a Send command, but here I can’t do that since it’s not the initial cursor location.
       
      I’ve read a few things on the forums about “_WinAPI_SetFocus” but that appears to work on AutoIT generated form fields only (see below code), I don’t know how to translate it for website use, thanks for any help!
       
      #include <GUIConstantsEx.au3> #Include <WinAPI.au3>   $hGUI = GUICreate("Test", 500, 500) $hInput = GUICtrlCreateInput("", 10, 10, 400, 20) GUICtrlCreateButton("Test", 10, 100, 80, 30) GUICtrlSetState(-1, $GUI_FOCUS)   GUISetState() Sleep(5000) _WinAPI_SetFocus(ControlGetHandle("Test", "", $hInput)) While 1     Switch GUIGetMsg()         Case $GUI_EVENT_CLOSE             Exit     EndSwitch WEnd  
         
    • By paradox109
      Hello, 
      I have A simple question about http request. What would be the fastest way to send mupltiple http request at the same time with autoit? The only way i figured  out was to to start multiple processes. This way works fine but its not really a good way. What user would like to see 15 processes running in the background at the same time. I know multithread is also not available in autoit.
    • By undcover
      Hello, I'm automating part of the note taking ability of my old bad POS, I managed to do much of the heavy lifting in the past weeks, I can finally do everything i want and more.
      Now I have a form with two buttons that expand the form to show a note taking beast that can lets us escape the hell of the one way editing the POS actually support (no cursor just delete. want to change the time on that order better delete everything and start the note from scratch, well not anymore)
      Now i'm stuck, my form shows up as two buttons over the POS window, however I need it to go away when I minimized the POS or switch to a different page or application, I was able to do so by doing a while loop, it worked badly as it will repeat the show command infinitely and if i break the loop then there's no way to restart the loop if the user didn't interact with the buttons directly.
      I have many ways I could know when controls are visible and it worked, I just don't have a way of constantly checking for this without straining the CPU, I know if I work it somehow I could do a while loop that can work, but it'll be CPU intensive. (Bad POS entails BAD PC)
      Should I make another form that does the loop? can I make the loop slower ?
      I'm using  VB.net VS 2017 with AutoitX dll.
      EDIT: Hello anyone who searched for this, if you're and idiot like me and forgot that Timers exist then this will jog your memory
       
      Add a timer to your form, set the timer for 1 sec intervals (dealers choice)
      start your timer (within form load or manually)
      Timer1.start()
      then double click the timer to create a Timer tick (for my case the control visibility test i want to make each second)
      it should look something like this :
          Private Sub timer1_Tick(sender As Object, e As EventArgs) Handles timer1.Tick         dim visibleform = ait.ControlCommand("my app", "", "[NAME:wacontact]", "IsVisible", "")         If visibleform = 0 Then             Me.Hide() ElseIf visibleform = 1 And Me.Visible = False Then ' to prevent the timer ticks from interupting any sendkeys or something we put two conditions. Me.Show() End If     End Sub remarks: ait. is the call I set for Autoit DLL.
       
       
       
    • By BlueSkyMemory
      Hello guys! I'm a rookie in AutoIt lol.
      I've tried to looking up in MSDN and the UDFs, but it can only get the GUID of a usual partition and with the GUID to control it. Now I have no ways😥.
      Thanks a lot for your help!
    • By Zaoka
      Hi guys,
      i have simple report in PowerPivot that shows Orders (Values) by Regions (Row) and Weeks (Columns). In Filter field is WeekDAYS (Monday,Tuesday,Wednesday,Thursday etc )
      how to filter WeekDAYS Filed on WEEKDAYYesterday with autoit ?
      my junky try
      #include <Date.au3> #include <Excel.au3> Local $sWEEKDAYYesterday = _DateDayOfWeek(@WDAY-1) Global $oExcel = _Excel_Open() Global $oWorkbook = _Excel_BookOpen($oExcel, "C:\Users\.......\Orders.xlsb") Sleep (5000) $oExcel.ActiveWorkbook.RefreshAll Sleep (5000) $oExcel.Application.Sheets("Sheet1").PivotTables("PivotTable1").PivotFields("WeekDAYS").PivotFilters($sWEEKDAYYesterday)  
      Error result
      $oExcel.Application.Sheets("PivotTable1").PivotTables("PivotTable1").PivotFields("WeekDAYS").PivotFilters($sWEEKDAYYesterday) $oExcel.Application^ ERROR  
×
×
  • Create New...