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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
| Dim mHeader1 As StringDim mHeader2 As StringDim mHeader3 As StringDim mFooter As StringDim mTanggal As StringDim mNomor As StringDim mSales As StringDim mItem() As RowFieldDim mItemCount As IntegerDim mPrinterName As StringDim mDiskonPersen As StringDim mDiskonNilai As StringDim mPPNPersen As StringDim mPPNNilai As StringDim mSubTotal As StringDim mTotal As StringPrivate Type RowField NamaBarang As String Qty As String HargaSatuan As String HargaTotal As StringEnd TypePrivate Sub Class_Initialize() mDiskonPersen = "0%" mDiskonNilai = "0" mPPNPersen = "0%" mPPNNilai = "0"End SubPublic Property Let Header1(ByVal param As String) mHeader1 = paramEnd PropertyPublic Property Let Header2(ByVal param As String) mHeader2 = paramEnd PropertyPublic Property Let Header3(ByVal param As String) mHeader3 = paramEnd PropertyPublic Property Let Footer(ByVal param As String) mFooter = paramEnd PropertyPublic Property Let Tanggal(ByVal param As String) mTanggal = paramEnd PropertyPublic Property Let Nomor(ByVal param As String) mNomor = paramEnd PropertyPublic Property Let Sales(ByVal param As String) mSales = paramEnd PropertyPublic Property Get ItemCount() As Integer ItemCount = mItemCountEnd PropertyPublic Property Let PrinterName(param As String) mPrinterName = paramEnd PropertyPublic Sub SetDiskon(ByVal persen As String, ByVal nilai As String) mDiskonPersen = persen mDiskonNilai = nilaiEnd SubPublic Sub SetPPN(ByVal persen As String, ByVal nilai As String) mPPNPersen = persen mPPNNilai = nilaiEnd SubPublic Property Let SubTotal(ByVal param As String) mSubTotal = paramEnd PropertyPublic Property Let Total(ByVal param As String) mTotal = paramEnd PropertyPublic Sub AddItem(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String, ByVal param4 As String) ReDim Preserve mItem(mItemCount) mItem(mItemCount).NamaBarang = param1 mItem(mItemCount).Qty = param2 mItem(mItemCount).HargaSatuan = param3 mItem(mItemCount).HargaTotal = param4 mItemCount = mItemCount + 1End SubPublic Sub PrintNota() Const PAPER_WIDTH As Integer = 40 Const RIGHT_MARGIN As Integer = 37 Const LEFT_MARGIN As Integer = 0 Const CENTER_MARGIN As Integer = 20 Dim GARIS1 As String Dim GARIS2 As String Dim GARIS_PLUS As String Dim GARIS_MINUS As String Dim Qty As String Dim i As Integer GARIS1 = String$(PAPER_WIDTH, "-") GARIS2 = String$(PAPER_WIDTH, "=") GARIS_PLUS = String$(PAPER_WIDTH - 4, "-") & " (+)" GARIS_MINUS = String$(PAPER_WIDTH - 4, "-") & " (-)" On Error GoTo errH Open mPrinterName For Output As #1 'Begin print Print #1, Chr$(&H1B); "@"; Print #1, Tab((PAPER_WIDTH - Len(mHeader1)) / 2); mHeader1 Print #1, Tab((PAPER_WIDTH - Len(mHeader2)) / 2); mHeader2 Print #1, Tab((PAPER_WIDTH - Len(mHeader3)) / 2); mHeader3 Print #1, GARIS2 Print #1, Tab(LEFT_MARGIN); "Tanggal : "; mTanggal Print #1, Tab(LEFT_MARGIN); "Nomor : "; mNomor Print #1, Tab(LEFT_MARGIN); "Sales : "; mSales Print #1, GARIS1 For i = 0 To mItemCount - 1 Qty = mItem(i).Qty & " x " & mItem(i).HargaSatuan Print #1, Tab(LEFT_MARGIN); Left$(mItem(i).NamaBarang, RIGHT_MARGIN - LEFT_MARGIN) Print #1, Tab(CENTER_MARGIN - (Len(Qty)) 2); Qty; Print #1, Tab(RIGHT_MARGIN - Len(mItem(i).HargaTotal)); mItem(i).HargaTotal Next i Print #1, GARIS_PLUS Print #1, Tab(LEFT_MARGIN); "SUB TOTAL"; Tab(RIGHT_MARGIN - Len(mSubTotal)); mSubTotal Print #1, Tab(LEFT_MARGIN); "DISKON(" & mDiskonPersen & ")"; Tab(RIGHT_MARGIN - Len(mDiskonNilai)); mDiskonNilai Print #1, Tab(LEFT_MARGIN); "PPN(" & mPPNPersen & ")"; Tab(RIGHT_MARGIN - Len(mPPNNilai)); mPPNNilai Print #1, GARIS_PLUS Print #1, Tab(LEFT_MARGIN); "TOTAL"; Tab(RIGHT_MARGIN - Len(mTotal)); mTotal Print #1, GARIS2 Print #1, Tab((PAPER_WIDTH - Len(mFooter)) / 2); mFooter; Print #1, Chr$(&HA); Print #1, Chr$(&H1D); "V"; Chr$(66); Chr$(0); Close #1 Exit SuberrH: 'MsgBox Err.Description Dim jwb As Integer jwb = MsgBox("Printer ERROR!" & vbCrLf & "Betulkan printer, lalu klik OK", vbOKCancel, "Printer Error") If jwb = vbOK Then Resume End IfEnd Sub |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| Private Sub PrintNota() Dim oPrint As New clsPrintNota oPrint.PrinterName = "LPT1" oPrint.Header1 = "Nama perusahaan" oPrint.Header2 = "Alamat" oPrint.Header3 = "Telp" oPrint.Footer = ".:Terimakasih:." oPrint.Nomor = "001" oPrint.Tanggal = "20-01-2009" oPrint.Sales = "ARL" oPrint.SetDiskon "10%", "-35.000" oPrint.SetPPN "10%", "31.500" oPrint.SubTotal = "350.000" oPrint.Total = "346.500" oPrint.AddItem "HP Nokia 3310", "1", "150.000", "150.000" oPrint.AddItem "HP Nokia 3315", "1", "200.000", "200.000" oPrint.PrintNotaEnd SubCall PrintNota() |
[My-Blogs] |
0 Komentar