home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 July / PCWorld_1999-07_cd.bin / 602 / WBPERSON / data1.cab / SDK_Files / Vbasic / PROG / MDIFORM1.FRM < prev    next >
Text File  |  1999-06-09  |  10KB  |  351 lines

  1. VERSION 4.00
  2. Begin VB.MDIForm MDIForm1 
  3.    BackColor       =   &H8000000C&
  4.    Caption         =   "Vzorovß aplikace WinBase602 ve Visual Basicu"
  5.    ClientHeight    =   5940
  6.    ClientLeft      =   1470
  7.    ClientTop       =   1815
  8.    ClientWidth     =   6690
  9.    Height          =   6630
  10.    Left            =   1410
  11.    LinkTopic       =   "MDIForm1"
  12.    Top             =   1185
  13.    Width           =   6810
  14.    Begin VB.Menu Open 
  15.       Caption         =   "O&tev°φt"
  16.       Begin VB.Menu Frm 
  17.          Caption         =   "&Okno VB"
  18.       End
  19.       Begin VB.Menu View 
  20.          Caption         =   "&Pohled WinBase"
  21.       End
  22.    End
  23.    Begin VB.Menu Data 
  24.       Caption         =   "&Data"
  25.       Begin VB.Menu ReadTable 
  26.          Caption         =   "╚t&enφ z tabulky"
  27.       End
  28.       Begin VB.Menu WriteTable 
  29.          Caption         =   "&Zßpis do tabulky"
  30.       End
  31.    End
  32.    Begin VB.Menu Window 
  33.       Caption         =   "&Okna"
  34.       WindowList      =   -1  'True
  35.       Begin VB.Menu Kask 
  36.          Caption         =   "&Kaskßda"
  37.       End
  38.       Begin VB.Menu Moza 
  39.          Caption         =   "&Mozaika"
  40.       End
  41.    End
  42.    Begin VB.Menu Help 
  43.       Caption         =   "&Nßpov∞da"
  44.       Begin VB.Menu Nap 
  45.          Caption         =   "Napovφdat se nemß"
  46.       End
  47.    End
  48.    Begin VB.Menu TheEnd 
  49.       Caption         =   "&Konec"
  50.    End
  51. End
  52. Attribute VB_Name = "MDIForm1"
  53. Attribute VB_Creatable = False
  54. Attribute VB_Exposed = False
  55.  
  56.  
  57. '
  58. ' OÜet°enφ p°φkazu "Okno" z menu Otev°φt
  59. ' ======================================
  60. '
  61. Private Sub Frm_Click()
  62.     Static i As Integer
  63.     Dim NewForm As New Form1   ' Otev°i nov² MDI child
  64.     i = i + 1
  65.     NewForm.caption = "MDI " + Str$(i)
  66. End Sub
  67.  
  68. '
  69. ' OÜet°enφ p°φkazu "Kaskßda" z menu Okna
  70. ' ======================================
  71. '
  72. Private Sub Kask_Click()
  73.     MDIForm1.Arrange 0
  74. End Sub
  75.  
  76.  
  77. '
  78. ' Aktivace hlavnφho okna aplikace
  79. ' ===============================
  80. '
  81. Private Sub MDIForm_Activate()
  82.     '
  83.     ' PrihlßÜenφ u₧ivatele
  84.     '
  85.     sts = Alogin(MDIForm1.hWnd)
  86.     If (sts = 0) Then
  87.         Unload MDIForm1
  88.         End
  89.     End If
  90.     '
  91.     ' Nastavenφ aplikace
  92.     '
  93.     sts = Set_application("VBasic")
  94.     If (sts <> 0) Then
  95.         MsgBox "Zadanß aplikace v databßzi nenφ!" + Chr$(13) + Chr$(10) + Chr$(10) + "          Je naimportovanß?", 16, "VBasic"
  96.         Unload MDIForm1
  97.         End
  98.     End If
  99. End Sub
  100.  
  101. '
  102. ' Zavedenφ hlavnφho okna aplikace
  103. ' ===============================
  104. '
  105. Private Sub MDIForm_Load()
  106.     '
  107.     ' Napojenφ na WinBaseFrameProc
  108.     '
  109.     ConWinBaseFrameProc hWnd, 1
  110.     '
  111.     ' Inicializace vnit°nφch struktur
  112.     '
  113.     cdp = cdp_init_vb()
  114.     '
  115.     ' SpuÜt∞nφ serveru
  116.     '
  117.     If (Command = "") Then
  118.         MsgBox "Na p°φkazovΘ °ßdce nenφ zadßn ₧ßdn² server", 16, "VBasic"
  119.         Unload MDIForm1
  120.         End
  121.     End If
  122.         
  123.     sts = link_kernel(Command, SW_MINIMIZE)
  124.     If (sts <> KSE_OK) Then
  125.         Kernel_error_box (sts)
  126.         Unload MDIForm1
  127.         End
  128.     End If
  129.     '
  130.     ' Inicializace spojenφ
  131.     '
  132.     sts = interf_init(cdp, 0)
  133.     If (sts <> KSE_OK) Then
  134.         MsgBox "Nejde inicializovat spojenφ s jßdrem databßze", 16, "VBasic"
  135.         Unload MDIForm1
  136.         End
  137.     End If
  138. End Sub
  139.  
  140. '
  141. ' Zavφrßnφ hlavnφho okna aplikace
  142. ' ===============================
  143. '
  144. Private Sub MDIForm_Unload(Cancel As Integer)
  145.     sts = Logout
  146.     If (sts <> KSE_OK) Then
  147.         MsgBox "Chyba p°i odlogovßnφ", 16, "VBasic"
  148.         End
  149.     End If
  150.     interf_close
  151.     unlink_kernel
  152. End Sub
  153.  
  154.  
  155. '
  156. ' OÜet°enφ p°φkazu "Mozaika" z menu Okna
  157. ' ======================================
  158. '
  159. Private Sub Moza_Click()
  160.     MDIForm1.Arrange 1
  161. End Sub
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168. '=========================================
  169. '      ╚tenφ z tabulky VBASIC
  170. '       v²stup do Debug okna
  171. '=========================================
  172. Private Sub ReadTable_Click()
  173.  
  174. Dim tabnum As Integer, curnum As Integer
  175. Dim pomstr As String * 12
  176. Dim poznstr As String * 2048
  177. Dim pomc As Long
  178. Dim pomr As Double
  179. Dim pomd As Date
  180. Dim pommd As Long
  181. Dim pocet As Long
  182. Dim vel As Long
  183. Dim pocb As Long
  184. Dim mm As Integer, dd As Integer, rr As Integer
  185. Dim pomb As Byte
  186. Dim pomznak As String * 1
  187. Dim pommon As monstr
  188. Dim pomcr As Double
  189.  
  190. Const atr_ret = 1
  191.       atr_cislo = 2
  192.       atr_rcislo = 3
  193.       atr_dat = 4
  194.       atr_pozn = 5
  195.       atr_bool = 6
  196.       atr_znak = 7
  197.       atr_pen = 8
  198.  
  199.  
  200. '=========================================
  201. ' 1. zp∙sob - Φtenφ z prom∞nnΘho kurzoru
  202. ' nemusφ se kontrolovat platnost zßznamu
  203. '=========================================
  204. If Open_cursor_direct("SELECT * FROM VBASIC", curnum) Then
  205.     Signalize
  206. Else
  207.    res = Rec_cnt(curnum, pocet)
  208.    Debug.Print "----------------------------------"
  209.    Debug.Print "Kurzor Φ. "; curnum
  210.    For i = 0 To pocet - 1
  211.        pomstr = ""
  212.        res = Read_ind_str(curnum, i, atr_ret, NO_INDEX, pomstr)  ' p°eΦtenφ °et∞zce dΘlky 12
  213.        If Asc(pomstr) = 0 Then pomstr = ""
  214.        res = Read_ind(curnum, i, atr_cislo, NO_INDEX, pomc)      ' p°eΦtenφ Φφsla
  215.        res = Read_ind(curnum, i, atr_rcislo, NO_INDEX, pomr)     ' p°eΦtenφ reßlnΘho Φφsla
  216.        res = Read_ind(curnum, i, atr_dat, NO_INDEX, pommd)       ' p°eΦtenφ 4 bytovΘho datumu
  217.        If pommd = NONEDATE Then
  218. '         pomd =
  219.        Else
  220.          dd = WBDay(pommd)                                         ' extrakce dne
  221.          mm = WBMonth(pommd)                                       ' extrakce m∞sφce
  222.          yy = WBYear(pommd)                                        ' extrakce roku
  223.          pomd = DateSerial(rr, mm, dd)                             ' vytvo°enφ datumu ve formßtu VB
  224.        End If
  225.        res = Read_len(curnum, i, atr_pozn, NO_INDEX, vel)        ' zjiÜt∞nφ dΘlky poznßmky
  226.        poznstr = ""
  227.        res = Read_var_str(curnum, i, atr_pozn, NO_INDEX, 0, vel, poznstr, pocb) ' p°eΦtenφ poznßmky do dΘlky 2048
  228.        res = Read_ind(curnum, i, atr_bool, NO_INDEX, pomb)        ' p°eΦtenφ logickΘ hodnoty
  229.        res = Read_ind_str(curnum, i, atr_znak, NO_INDEX, pomznak) ' p°eΦtenφ znaku
  230.        res = Read_ind(curnum, i, atr_pen, NO_INDEX, pommon)       ' p°eΦtenφ 6 bytoveho typu penize
  231.        pomcr = money2real(pommon)
  232.        Debug.Print i, pomstr, pomc, pomr, pomd, pomb, pomznak, pomcr
  233.        Debug.Print poznstr
  234.        Debug.Print "---"
  235.    Next i
  236.    res = Close_cursor(curnum)
  237. End If
  238.  
  239. '=========================================
  240. ' 2. zp∙sob - Φtenφ p°φmo z tabulky
  241. ' nutno testovat atr. DELETED
  242. '=========================================
  243.  
  244. If Find_object("VBASIC", CATEG_TABLE, tabnum) <> 0 Then
  245.    Signalize
  246. Else
  247.    res = Rec_cnt(tabnum, pocet)
  248.    Debug.Print "----------------------------------"
  249.    Debug.Print "Tabulka Φ. "; tabnum
  250.    For i = 0 To pocet - 1
  251.        pomstr = ""
  252.        res = Read_ind(tabnum, i, 0, NO_INDEX, pomb)
  253.        If pomb = 0 Then       ' test atributu DELETED, je-li zßznam platn²
  254.          res = Read_ind_str(tabnum, i, atr_ret, NO_INDEX, pomstr)  ' p°eΦtenφ °et∞zce dΘlky 12
  255.          If Asc(pomstr) = 0 Then pomstr = ""
  256. ' atd
  257.          Debug.Print i, pomstr
  258.        Else
  259.          Debug.Print i, "zßznam je zruÜen²"
  260.        End If
  261.        Debug.Print "---"
  262.    Next i
  263. End If
  264.  
  265. End Sub
  266.  
  267. Private Sub TheEnd_Click()
  268.     Unload MDIForm1
  269.     End
  270. End Sub
  271.  
  272. '
  273. ' OÜet°enφ p°φkazu "Pohled" z menu Otev°φt
  274. ' ========================================
  275. '
  276. Private Sub View_Click()
  277.     sts = Open_view("*VBasic", NO_REDIR, 0, 0, 0, 0, 0)
  278. End Sub                     ' Otev°i pohled
  279.  
  280.  
  281. '=========================================
  282. '      Zßpis do tabulky VBASIC
  283. '=========================================
  284. Private Sub WriteTable_Click()
  285.  
  286. Dim curnum As Integer
  287. Dim recnum As Long
  288. Dim pomstr As String * 12
  289. Dim pomc As Long
  290. Dim pomr As Double
  291. Dim pomd As Date
  292. Dim pommd As Long
  293. 'Dim mm As Long, dd As Long, rr As Long
  294. Dim mm As Integer, dd As Integer, rr As Integer
  295. Dim poznstr As String * 2048
  296.  
  297. Const atr_ret = 1
  298.       atr_cislo = 2
  299.       atr_rcislo = 3
  300.       atr_dat = 4
  301.       atr_pozn = 5
  302.       atr_bool = 6
  303.       atr_znak = 7
  304.       atr_pen = 8
  305.  
  306. If Open_cursor_direct("SELECT * FROM VBASIC", curnum) Then
  307.     Signalize
  308. Else
  309.    MsgBox ("Bude vlo₧en zßznam a zapsßny do n∞j n∞kterΘ hodnoty")
  310.    recnum = Insert(curnum)        ' vlo₧enφ zßznamu
  311.    If recnum = -1 Then
  312.      Signalize
  313.    Else
  314.      pomstr = "XXXXXXXXXX"
  315.      res = Write_ind_str(curnum, recnum, atr_ret, NO_INDEX, pomstr, Len(pomstr)) ' zßpis °et∞zce
  316.      If res = 1 Then Signalize
  317.      pomc = 123
  318.      res = Write_ind(curnum, recnum, atr_cislo, NO_INDEX, pomc, 4)               ' zßpis celΘho Φφsla
  319.      pomr = 123.123
  320.      res = Write_ind(curnum, recnum, atr_rcislo, NO_INDEX, pomr, 8)              ' zßpis reßlnΘho Φφsla
  321.      pomd = Date                         ' dneÜnφ datum
  322.      rr = Year(pomd)                     ' extrakce roku
  323.      mm = Month(pomd)                    ' extrakce m∞sφce
  324.      dd = Day(pomd)                      ' extrakce dne
  325.      pommd = Make_date(dd, mm, rr)       ' vytvo°enφ datumu ve formßtu WB (4 byty)
  326.      res = Write_ind(curnum, recnum, atr_dat, NO_INDEX, pommd, 4)            ' zßpis datumu
  327.      res = Write_ind(curnum, recnum, atr_bool, NO_INDEX, 1, 1)               ' zßpis logickΘ hodnoty (ANO)
  328.      res = Write_ind_str(curnum, recnum, atr_znak, NO_INDEX, "X", 1)         ' zßpis znaku
  329.      poznstr = "prvnφ °ßdek poznßmky" & Chr(13) & Chr(10) & "druh² °ßdek poznßmky"
  330.      res = Write_var_str(curnum, recnum, atr_pozn, NO_INDEX, 0, Len(poznstr), poznstr) ' zßpis dvou°ßdkovΘ poznßmky
  331.      If res = 1 Then Signalize
  332.      
  333.    End If
  334. End If
  335.  
  336. MsgBox ("Spus¥te si WinBase, abyste se p°esv∞dΦili, ₧e zßznam byl vlo₧en." & Chr(13) & Chr(10) & "V dalÜφm kroku bude zßznam op∞t zruÜen")
  337. res = Delete(curnum, recnum)             ' zruÜenφ zßznamu
  338. res = Close_cursor(curnum)               ' zav°enφ kurzoru
  339.  
  340. Dim tabnum As Integer
  341. If Find_object("VBASIC", CATEG_TABLE, tabnum) <> 0 Then
  342.    Signalize
  343. Else
  344.    res = Free_deleted(tabnum)
  345.    If res = 0 Then Signalize
  346. End If
  347.  
  348. End Sub
  349.  
  350.  
  351.