-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.ahk
77 lines (64 loc) · 1.76 KB
/
search.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;Start
FileDelete *.txt
;Open PS xlsx------------------------------------------------------------------
#ps_file = %A_ScriptDir%\ps.xlsx
FileSelectFile, ps_file,,c:\users\jthobbs\downloads\,,*.xlsx
xl := ComObjCreate("Excel.Application")
xl.Visible := False
book := xl.Workbooks.Open(ps_file)
;Save as plain-text
save_path = %A_ScriptDir%\_ps.txt
book.SaveAs(save_path, -4158) ;Tab-delmited file
;Close XLS file
book.Close(savechanges := False)
xl.Quit
;Search database
FileRead, data, _ps.txt
Search:
Inputbox, q, InvoiceID, %display_row%
If q =
{
exit
}
q := RegExReplace(q, "Unique.*", "")
q := RegExReplace(q, "Invoice.*", "")
display_row = Not found. ;Default value
if q contains amount=
{
search_type = amount
}
else
{
search_type = keyword
}
;Query database
Loop, parse, data, `n
{
row := A_LoopField
Stringsplit, r, row, `t
invoiceID := r9
vendor := r8
documentID := r7
desc := r13
amount := r14
if search_type = keyword
{
If row contains %q%
{
display_row = Vendor: %vendor%`nInvoiceID: %invoiceID%`nDocumentID: %documentID%`nDescr: %desc%`nAmount: %amount%
clipboard := documentID
continue
}
}
if search_type = amount
{
StringReplace, amount, amount, amount=,,All
If amount = %q%
{
display_row = Vendor: %vendor%`nInvoiceID: %invoiceID%`nDocumentID: %documentID%`nDescr: %desc%`nAmount: %amount%
clipboard := documentID
continue
}
}
}
goto Search