mirror of
https://github.com/KeymonSoft/Salma_Picking.git
synced 2026-04-17 13:06:10 +00:00
23/9/23 - Commit inicial.
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
**/Objects
|
||||
**/AutoBackups
|
||||
103
B4A/B4XMainPage.bas
Normal file
103
B4A/B4XMainPage.bas
Normal file
@@ -0,0 +1,103 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=9.85
|
||||
@EndOfDesignText@
|
||||
#Region Shared Files
|
||||
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
|
||||
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
|
||||
#End Region
|
||||
|
||||
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
|
||||
|
||||
Sub Class_Globals
|
||||
Private Root As B4XView
|
||||
Private xui As XUI
|
||||
Dim seleccion As C_seleccion
|
||||
Dim picking As C_picking
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim paso1 As String
|
||||
Private Insesion As Button
|
||||
Private Contraseña As EditText
|
||||
Dim Usuario As EditText
|
||||
Dim ID_ALMACEN As String
|
||||
Dim user As String
|
||||
End Sub
|
||||
|
||||
Public Sub Initialize
|
||||
' B4XPages.GetManager.LogEvents = True
|
||||
End Sub
|
||||
|
||||
'This event will be called once, before the page becomes visible.
|
||||
Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
Root = Root1
|
||||
Root.LoadLayout("MainPage")
|
||||
seleccion.Initialize
|
||||
B4XPages.AddPage("seleccion",seleccion)
|
||||
picking.Initialize
|
||||
B4XPages.AddPage("picking",picking)
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
End Sub
|
||||
|
||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||
|
||||
|
||||
|
||||
Private Sub Insesion_Click
|
||||
|
||||
If Usuario.Text <> "" Then
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_usuario_picking_SALMA"
|
||||
cmd.Parameters = Array As Object(Usuario.Text, Contraseña.Text)
|
||||
reqManager.ExecuteQuery(cmd , 0, "usuario")
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Sub JobDone(Job As HttpJob)
|
||||
If Job.Success = False Then
|
||||
|
||||
ToastMessageShow("Error: " & Job.ErrorMessage, True)
|
||||
|
||||
Else
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "usuario" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
Dim name As String = records(result.Columns.Get("STATUS"))
|
||||
ID_ALMACEN = records(result.Columns.Get("CAT_LO_AGENCIA"))
|
||||
Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO"))
|
||||
user = records(result.Columns.Get("CAT_LO_USUARIO"))
|
||||
Log(user)
|
||||
Next
|
||||
paso1 = 1
|
||||
End If
|
||||
End If
|
||||
Job.Release
|
||||
|
||||
|
||||
|
||||
If paso1 = 1 Then
|
||||
If name = "OKActivo" Then
|
||||
' Starter.skmt.ExecNonQuery("delete from usuarioa")
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(Usuario.Text, Contraseña.Text))
|
||||
' Starter.skmt.ExecNonQuery("delete from cat_almacen")
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN))
|
||||
B4XPages.ShowPage ("Seleccion")
|
||||
Else If name = "OKExpirado" Then
|
||||
Msgbox("Usuario Expirado llamar al administrador","") 'ignore
|
||||
Else If name = "OKCancelado" Then
|
||||
Msgbox("Usuario Cancelado llamar al administrador","") 'ignore
|
||||
Else
|
||||
Msgbox("Usuario o password No validos","") 'ignore
|
||||
End If
|
||||
paso1 = 0
|
||||
End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
107
B4A/C_picking.bas
Normal file
107
B4A/C_picking.bas
Normal file
@@ -0,0 +1,107 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=11.8
|
||||
@EndOfDesignText@
|
||||
Sub Class_Globals
|
||||
Private Root As B4XView 'ignore
|
||||
Private xui As XUI 'ignore
|
||||
Private lb_folioselec As Label
|
||||
Dim c As Cursor
|
||||
Dim cl_picking As CustomListView
|
||||
Private l_nombre As Label
|
||||
Private l_codigo As Label
|
||||
Private l_inical As Label
|
||||
Private et_picking As EditText
|
||||
Private b_guardapicking As Button
|
||||
Dim cmd As DBCommand
|
||||
Dim reqManager As DBRequestManager
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
Public Sub Initialize As Object
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'This event will be called once, before the page becomes visible.
|
||||
Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
Root = Root1
|
||||
Root.LoadLayout("picking")
|
||||
'load the layout to Root
|
||||
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
cl_picking.Clear
|
||||
|
||||
End Sub
|
||||
|
||||
Sub B4XPage_Appear
|
||||
|
||||
lb_folioselec.Text = B4XPages.MainPage.seleccion.folioactual
|
||||
c = Starter.skmt.ExecQuery("SELECT CAT_DF_ID, CAT_DF_NOMBRE, CAT_DF_CANTINICIAL FROM CAT_DETALLEFOLIO")
|
||||
cl_picking.Clear
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
cl_picking.Add(CreateListItem(c.GetString("CAT_DF_ID"),c.GetString("CAT_DF_NOMBRE"),c.GetString("CAT_DF_CANTINICIAL")),i)
|
||||
Next
|
||||
c.Close
|
||||
|
||||
End Sub
|
||||
|
||||
Sub CreateListItem(id As String, nombre As String, cantidad As String) As Panel
|
||||
|
||||
Dim p As B4XView = xui.CreatePanel("")
|
||||
p.SetLayoutAnimated(0, 0, 0, 1, 115)
|
||||
p.LoadLayout("dpicking")
|
||||
p.Height= 60dip
|
||||
' p.Width = clv_orden.GetBase.Width
|
||||
l_codigo.Text = id
|
||||
l_nombre.Text = nombre
|
||||
l_inical.Text = cantidad
|
||||
et_picking.Text = cantidad
|
||||
' Log(p.Width)
|
||||
Return p
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub b_guardapicking_Click
|
||||
|
||||
Dim cuantospicking As Int = cl_picking.Size
|
||||
' Log (cuantospicking)
|
||||
|
||||
c = Starter.skmt.ExecQuery("SELECT DISTINCT CAT_DF_RUTA FROM CAT_DETALLEFOLIO")
|
||||
c.Position = 0
|
||||
For i=0 To cuantospicking-1
|
||||
|
||||
Dim pnl0 As B4XView = cl_picking.GetPanel(i)
|
||||
Dim pnl As B4XView = pnl0.GetView(0)
|
||||
Dim codigoproducto As B4XView = pnl.GetView(0)
|
||||
Dim cantidadescrita As B4XView = pnl.GetView(3)
|
||||
Log (codigoproducto.Text & " y " & cantidadescrita.Text)
|
||||
Starter.skmt.ExecNonQuery2("UPDATE CAT_DETALLEFOLIO SET CAT_DF_CANTIDADESCRITA=(?) WHERE CAT_DF_ID = (?) AND CAT_DF_RUTA = (?)",Array As Object(cantidadescrita.Text,codigoproducto.text,c.GetString("CAT_DF_RUTA")))
|
||||
'
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_picking2_SALMA"
|
||||
cmd.Parameters = Array As Object(cantidadescrita.text,codigoproducto.Text,c.GetString("CAT_DF_RUTA"), B4XPages.MainPage.seleccion.almacen)
|
||||
reqManager.ExecuteCommand(cmd, "update_picking2")
|
||||
|
||||
Next
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_picking3_SALMA"
|
||||
cmd.Parameters = Array As Object(B4XPages.MainPage.seleccion.folioactual,B4XPages.MainPage.seleccion.almacen,B4XPages.MainPage.seleccion.user)
|
||||
reqManager.ExecuteCommand(cmd, "update_picking3")
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_picking4_SALMA"
|
||||
cmd.Parameters = Array As Object(B4XPages.MainPage.seleccion.folioactual,B4XPages.MainPage.seleccion.almacen,B4XPages.MainPage.seleccion.user)
|
||||
reqManager.ExecuteCommand(cmd, "update_picking4")
|
||||
|
||||
B4XPages.ShowPage("seleccion")
|
||||
' B4XPages.MainPage.seleccion.b_cargar_Click
|
||||
' B4XPages.MainPage.seleccion.trabajos = 0
|
||||
' B4XPages.MainPage.seleccion.trabajo1 = 1
|
||||
' Log(B4XPages.MainPage.seleccion.trabajos)
|
||||
' Log(B4XPages.MainPage.seleccion.trabajo1)
|
||||
|
||||
End Sub
|
||||
314
B4A/C_seleccion.bas
Normal file
314
B4A/C_seleccion.bas
Normal file
@@ -0,0 +1,314 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=11.8
|
||||
@EndOfDesignText@
|
||||
Sub Class_Globals
|
||||
Private Root As B4XView 'ignore
|
||||
Private xui As XUI 'ignore
|
||||
Private b_cargar As Button
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim trabajos = 0 As Int
|
||||
Dim trabajo1 = 0 As Int
|
||||
Private cl_folios As CustomListView
|
||||
Dim c As Cursor
|
||||
Private lb_folio As Label
|
||||
Dim folioactual As String
|
||||
Dim user As String
|
||||
Dim almacen As String
|
||||
Dim cuenta As String
|
||||
Dim cuenta2 As String
|
||||
Dim cuenta3 As String
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
Public Sub Initialize As Object
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'This event will be called once, before the page becomes visible.
|
||||
Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
Root = Root1
|
||||
Root.LoadLayout("seleccion")
|
||||
'load the layout to Root
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
trabajos = 0
|
||||
trabajo1 = 0
|
||||
user = B4XPages.MainPage.user
|
||||
almacen = B4XPages.MainPage.ID_ALMACEN
|
||||
End Sub
|
||||
|
||||
Sub B4XPage_Appear
|
||||
|
||||
trabajos = 0
|
||||
trabajo1 = 1
|
||||
b_cargar_Click
|
||||
|
||||
End Sub
|
||||
|
||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||
|
||||
Sub b_cargar_Click
|
||||
|
||||
cl_folios.Clear
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_folios_SALMA"
|
||||
cmd.Parameters = Array As Object(B4XPages.MainPage.ID_ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "folios")
|
||||
trabajos = trabajos +1
|
||||
|
||||
|
||||
ProgressDialogShow ("Cargando")
|
||||
|
||||
Log(trabajos)
|
||||
Log(trabajo1)
|
||||
|
||||
' If trabajos = 0 And trabajo1 = 1 Then
|
||||
' ProgressDialogHide
|
||||
' End If
|
||||
End Sub
|
||||
|
||||
Sub CreateListItem(mostrar As String) As Panel
|
||||
|
||||
Dim p As B4XView = xui.CreatePanel("")
|
||||
p.SetLayoutAnimated(0, 0, 0, 1, 115)
|
||||
p.LoadLayout("folio")
|
||||
p.Height= 60dip
|
||||
' p.Width = clv_orden.GetBase.Width
|
||||
lb_folio.Height = p.Height *0.8
|
||||
lb_folio.Text = mostrar
|
||||
' Log(p.Width)
|
||||
Return p
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub lb_folio_Click
|
||||
folioactual = Sender.As(Label).Text
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_pickingtrabajo_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,almacen)
|
||||
reqManager.ExecuteQuery(cmd , 0, "pickingt")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_pickingtrabajo2_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,almacen,user)
|
||||
reqManager.ExecuteQuery(cmd , 0, "pickingt2")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_pickingtrabajo3_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,almacen)
|
||||
reqManager.ExecuteQuery(cmd , 0, "pickingt3")
|
||||
'
|
||||
' Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "select_detalle_folio_SALMA"
|
||||
' cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
|
||||
' reqManager.ExecuteQuery(cmd , 0, "detallefolio")
|
||||
' trabajo1 = trabajo1 + 1
|
||||
' ProgressDialogShow ("Cargando")
|
||||
|
||||
End Sub
|
||||
|
||||
Sub JobDone(Job As HttpJob)
|
||||
If Job.Success = False Then
|
||||
|
||||
ToastMessageShow("Error: " & Job.ErrorMessage, True)
|
||||
|
||||
Else
|
||||
|
||||
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green)
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "folios" Then 'query tag
|
||||
trabajos = trabajos - 1
|
||||
trabajo1 = 1
|
||||
Starter.skmt.ExecNonQuery("delete from CAT_FOLIOS")
|
||||
For Each records() As Object In result.Rows
|
||||
|
||||
Dim FOLIO As String = records(result.Columns.Get("FOLIO"))
|
||||
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_FOLIOS (CAT_FOLIO) VALUES (?)", Array As Object (FOLIO))
|
||||
|
||||
|
||||
Next
|
||||
|
||||
c = Starter.skmt.ExecQuery("SELECT CAT_FOLIO FROM CAT_FOLIOS")
|
||||
cl_folios.Clear
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
cl_folios.Add(CreateListItem(c.GetString("CAT_FOLIO")),i)
|
||||
Next
|
||||
c.Close
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "pickingt" Then 'query tag
|
||||
' B4XPages.MainPage.picking.cl_picking.Clear
|
||||
|
||||
|
||||
For Each records() As Object In result.Rows
|
||||
|
||||
cuenta = records(result.Columns.Get("COUNT(*)"))
|
||||
Log(cuenta)
|
||||
|
||||
Next
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "pickingt2" Then 'query tag
|
||||
' B4XPages.MainPage.picking.cl_picking.Clear
|
||||
|
||||
|
||||
For Each records() As Object In result.Rows
|
||||
|
||||
cuenta2 = records(result.Columns.Get("COUNT(*)"))
|
||||
Log(cuenta2)
|
||||
|
||||
|
||||
Next
|
||||
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "pickingt3" Then 'query tag
|
||||
' B4XPages.MainPage.picking.cl_picking.Clear
|
||||
|
||||
|
||||
For Each records() As Object In result.Rows
|
||||
|
||||
cuenta3 = records(result.Columns.Get("COUNT(*)"))
|
||||
Log(cuenta3)
|
||||
|
||||
Next
|
||||
|
||||
If cuenta = "1" Then
|
||||
Log("entre")
|
||||
If cuenta2 = "0" Then
|
||||
|
||||
MsgboxAsync("Ruta trabajada por otro ususario","Atención")
|
||||
|
||||
else if cuenta2 = "1" Then
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_detalle_folio_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
|
||||
trabajo1 = trabajo1 + 1
|
||||
ProgressDialogShow ("Cargando")
|
||||
|
||||
Else if cuenta3 = "1" Then
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_picking5_SALMA"
|
||||
cmd.Parameters = Array As Object(user,folioactual,almacen)
|
||||
reqManager.ExecuteCommand(cmd, "update_picking5")
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_picking6_SALMA"
|
||||
cmd.Parameters = Array As Object(user,folioactual,almacen)
|
||||
reqManager.ExecuteCommand(cmd, "update_picking6")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_detalle_folio_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
|
||||
trabajo1 = trabajo1 + 1
|
||||
ProgressDialogShow ("Cargando")
|
||||
|
||||
End If
|
||||
|
||||
Else if cuenta = "0" Then
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_PICKING_TRABAJO_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,almacen,user,user)
|
||||
reqManager.ExecuteCommand(cmd , "insert_PICKING_TRABAJO_SALMA")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_PICKING_TRABAJO_REP_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,almacen,user,user)
|
||||
reqManager.ExecuteCommand(cmd , "insert_PICKING_TRABAJO_REP_SALMA")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_picking2_SALMA"
|
||||
cmd.Parameters = Array As Object(user,folioactual,almacen,folioactual,almacen)
|
||||
reqManager.ExecuteCommand(cmd , "insert_picking2_SALMA")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_detalle_folio_SALMA"
|
||||
cmd.Parameters = Array As Object(folioactual,B4XPages.MainPage.ID_ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "detallefolio")
|
||||
trabajo1 = trabajo1 + 1
|
||||
ProgressDialogShow ("Cargando")
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "detallefolio" Then 'query tag
|
||||
trabajo1 = trabajo1 - 2
|
||||
' B4XPages.MainPage.picking.cl_picking.Clear
|
||||
Starter.skmt.ExecNonQuery("delete from CAT_DETALLEFOLIO")
|
||||
Log("Borre la tabla")
|
||||
For Each records() As Object In result.Rows
|
||||
|
||||
Dim ID As String = records(result.Columns.Get("ID"))
|
||||
Dim NOMBRE As String = records(result.Columns.Get("NOMBRE"))
|
||||
Dim CANTIDAD As String = records(result.Columns.Get("CANTIDAD"))
|
||||
Dim ruta As String = folioactual
|
||||
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_DETALLEFOLIO (CAT_DF_ID, CAT_DF_NOMBRE, CAT_DF_CANTINICIAL, CAT_DF_RUTA) VALUES (?,?,?,?)", Array As Object (ID,NOMBRE,CANTIDAD,ruta))
|
||||
|
||||
|
||||
Next
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If trabajos = 0 And trabajo1 = 1 Then
|
||||
ProgressDialogHide
|
||||
Else If trabajo1 = 0 And trabajos = 0 Then
|
||||
ProgressDialogHide
|
||||
B4XPages.ShowPage("picking")
|
||||
End If
|
||||
|
||||
' If trabajos = 0 Then
|
||||
' ProgressDialogHide
|
||||
' End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
272
B4A/DBRequestManager.bas
Normal file
272
B4A/DBRequestManager.bas
Normal file
@@ -0,0 +1,272 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=6.8
|
||||
@EndOfDesignText@
|
||||
''Class module
|
||||
|
||||
'' Requiere accesRandom File y requiere compressStrings, byte converter y okhhtputuils2
|
||||
Sub Class_Globals
|
||||
Private mTarget As Object
|
||||
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
||||
Type DBCommand (Name As String, Parameters() As Object)
|
||||
Private link As String
|
||||
Private bc As ByteConverter
|
||||
Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _
|
||||
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
|
||||
Private VERSION As Float = 0.9
|
||||
Private tempArray(1) As Object
|
||||
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
|
||||
End Sub
|
||||
|
||||
'Target - The module that handles JobDone (usually Me).
|
||||
'ConnectorLink - URL of the Java server.
|
||||
Public Sub Initialize (Target As Object, ConnectorLink As String)
|
||||
mTarget = Target
|
||||
link = ConnectorLink
|
||||
End Sub
|
||||
|
||||
'Sends a query request.
|
||||
'Command - Query name and parameters.
|
||||
'Limit - Maximum rows to return or 0 for no limit.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteInt(Limit, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||
End Sub
|
||||
|
||||
'Executes a batch of (non-select) commands.
|
||||
'ListOfCommands - List of the commands that will be executes.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
WriteInt(ListOfCommands.Size, out2)
|
||||
For Each Command As DBCommand In ListOfCommands
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
Next
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=batch", ms.ToBytesArray)
|
||||
End Sub
|
||||
|
||||
'Similar to ExecuteBatch. Sends a single command.
|
||||
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
|
||||
ExecuteBatch(Array As DBCommand(Command), Tag)
|
||||
End Sub
|
||||
|
||||
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
|
||||
j.Initialize("DBRequest", mTarget)
|
||||
j.Tag = Tag
|
||||
MemoryStream.InitializeToBytesArray(0)
|
||||
Dim compress As CompressedStreams
|
||||
Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip")
|
||||
WriteObject(VERSION, out)
|
||||
Return out
|
||||
End Sub
|
||||
|
||||
Private Sub WriteList(Parameters As List, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
If Parameters = Null Or Parameters.IsInitialized = False Then
|
||||
Dim Parameters As List
|
||||
Parameters.Initialize
|
||||
End If
|
||||
data = bc.IntsToBytes(Array As Int(Parameters.Size))
|
||||
out.WriteBytes(data, 0, data.Length)
|
||||
For Each o As Object In Parameters
|
||||
WriteObject(o, out)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub WriteObject(o As Object, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
tempArray(0) = o
|
||||
If tempArray(0) = Null Then
|
||||
out.WriteBytes(Array As Byte(T_NULL), 0, 1)
|
||||
Else If tempArray(0) Is Short Then
|
||||
out.WriteBytes(Array As Byte(T_SHORT), 0, 1)
|
||||
data = bc.ShortsToBytes(Array As Short(o))
|
||||
Else If tempArray(0) Is Int Then
|
||||
out.WriteBytes(Array As Byte(T_INT), 0, 1)
|
||||
data = bc.IntsToBytes(Array As Int(o))
|
||||
Else If tempArray(0) Is Float Then
|
||||
out.WriteBytes(Array As Byte(T_FLOAT), 0, 1)
|
||||
data = bc.FloatsToBytes(Array As Float(o))
|
||||
Else If tempArray(0) Is Double Then
|
||||
out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1)
|
||||
data = bc.DoublesToBytes(Array As Double(o))
|
||||
Else If tempArray(0) Is Long Then
|
||||
out.WriteBytes(Array As Byte(T_LONG), 0, 1)
|
||||
data = bc.LongsToBytes(Array As Long(o))
|
||||
Else If tempArray(0) Is Boolean Then
|
||||
out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1)
|
||||
Dim b As Boolean = 0
|
||||
Dim data(1) As Byte
|
||||
If b Then data(0) = 1 Else data(0) = 0
|
||||
Else If GetType(tempArray(0)) = "[B" Then
|
||||
data = o
|
||||
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
|
||||
WriteInt(data.Length, out)
|
||||
Else 'If o Is String Then (treat all other values as string)
|
||||
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
|
||||
data = bc.StringToBytes(o, "UTF8")
|
||||
WriteInt(data.Length, out)
|
||||
End If
|
||||
If data.Length > 0 Then out.WriteBytes(data, 0, data.Length)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadObject(In As InputStream) As Object
|
||||
Dim data(1) As Byte
|
||||
In.ReadBytes(data, 0, 1)
|
||||
Select data(0)
|
||||
Case T_NULL
|
||||
Return Null
|
||||
Case T_SHORT
|
||||
Dim data(2) As Byte
|
||||
Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_INT
|
||||
Dim data(4) As Byte
|
||||
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_LONG
|
||||
Dim data(8) As Byte
|
||||
Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_FLOAT
|
||||
Dim data(4) As Byte
|
||||
Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_DOUBLE
|
||||
Dim data(8) As Byte
|
||||
Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_BOOLEAN
|
||||
Dim b As Byte = ReadByte(In)
|
||||
Return b = 1
|
||||
Case T_BLOB
|
||||
Dim len As Int = ReadInt(In)
|
||||
Dim data(len) As Byte
|
||||
Return ReadBytesFully(In, data, data.Length)
|
||||
Case Else
|
||||
Dim len As Int = ReadInt(In)
|
||||
Dim data(len) As Byte
|
||||
ReadBytesFully(In, data, data.Length)
|
||||
Return BytesToString(data, 0, data.Length, "UTF8")
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte()
|
||||
Dim count = 0, read As Int
|
||||
Do While count < Len And read > -1
|
||||
read = In.ReadBytes(Data, count, Len - count)
|
||||
count = count + read
|
||||
Loop
|
||||
Return Data
|
||||
End Sub
|
||||
|
||||
Private Sub WriteInt(i As Int, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
data = bc.IntsToBytes(Array As Int(i))
|
||||
out.WriteBytes(data, 0, data.Length)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadInt(In As InputStream) As Int
|
||||
Dim data(4) As Byte
|
||||
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadByte(In As InputStream) As Byte
|
||||
Dim data(1) As Byte
|
||||
In.ReadBytes(data, 0, 1)
|
||||
Return data(0)
|
||||
End Sub
|
||||
|
||||
'Handles the Job result and returns a DBResult.
|
||||
Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||
Dim start As Long = DateTime.Now 'ignore
|
||||
Dim In As InputStream = Job.GetInputStream
|
||||
Dim cs As CompressedStreams
|
||||
In = cs.WrapInputStream(In, "gzip")
|
||||
Dim serverVersion As Float = ReadObject(In) 'ignore
|
||||
Dim method As String = ReadObject(In)
|
||||
Dim table As DBResult
|
||||
table.Initialize
|
||||
table.Columns.Initialize
|
||||
table.rows.Initialize
|
||||
table.Tag = Job.Tag
|
||||
If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109
|
||||
jobTagAnterior = Job.Tag 'Mod por CHV - 211109
|
||||
If method = "query" Then
|
||||
Dim numberOfColumns As Int = ReadInt(In)
|
||||
For i = 0 To numberOfColumns - 1
|
||||
table.Columns.Put(ReadObject(In), i)
|
||||
Next
|
||||
Do While ReadByte(In) = 1
|
||||
Dim rowObjects(numberOfColumns) As Object
|
||||
table.rows.Add(rowObjects)
|
||||
For col = 0 To numberOfColumns - 1
|
||||
Dim o As Object = ReadObject(In)
|
||||
rowObjects(col) = o
|
||||
Next
|
||||
Loop
|
||||
Else If method = "batch" Then
|
||||
table.Columns.Put("AffectedRows", 0)
|
||||
Dim rows As Int = ReadInt(In)
|
||||
For i = 0 To rows - 1
|
||||
table.rows.Add(Array As Object(ReadInt(In)))
|
||||
Next
|
||||
End If
|
||||
In.Close
|
||||
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
|
||||
Return table
|
||||
End Sub
|
||||
'Reads a file and returns the file as a bytes array.
|
||||
Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Dim In As InputStream = File.OpenInput(Dir, FileName)
|
||||
File.Copy2(In, out)
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
'Converts an image to a bytes array (for BLOB fields).
|
||||
Public Sub ImageToBytes(Image As Bitmap) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Image.WriteToStream(out, 100, "JPEG")
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
'Converts a bytes array to an image (for BLOB fields).
|
||||
Public Sub BytesToImage(bytes() As Byte) As Bitmap
|
||||
Dim In As InputStream
|
||||
In.InitializeFromBytesArray(bytes, 0, bytes.Length)
|
||||
Dim bmp As Bitmap
|
||||
bmp.Initialize2(In)
|
||||
Return bmp
|
||||
End Sub
|
||||
'Prints the table to the logs.
|
||||
Public Sub PrintTable(Table As DBResult)
|
||||
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each col In Table.Columns.Keys
|
||||
sb.Append(col).Append(TAB)
|
||||
Next
|
||||
Log(sb.ToString)
|
||||
For Each row() As Object In Table.Rows
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each record As Object In row
|
||||
sb.Append(record).Append(TAB)
|
||||
Next
|
||||
ToastMessageShow(sb.ToString, True)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
BIN
B4A/Files/dpicking.bal
Normal file
BIN
B4A/Files/dpicking.bal
Normal file
Binary file not shown.
BIN
B4A/Files/folio.bal
Normal file
BIN
B4A/Files/folio.bal
Normal file
Binary file not shown.
BIN
B4A/Files/kmt.db
Normal file
BIN
B4A/Files/kmt.db
Normal file
Binary file not shown.
BIN
B4A/Files/mainpage.bal
Normal file
BIN
B4A/Files/mainpage.bal
Normal file
Binary file not shown.
BIN
B4A/Files/picking.bal
Normal file
BIN
B4A/Files/picking.bal
Normal file
Binary file not shown.
BIN
B4A/Files/salma13.png
Normal file
BIN
B4A/Files/salma13.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
B4A/Files/seleccion.bal
Normal file
BIN
B4A/Files/seleccion.bal
Normal file
Binary file not shown.
113
B4A/Salma_picking.b4a
Normal file
113
B4A/Salma_picking.b4a
Normal file
@@ -0,0 +1,113 @@
|
||||
Build1=Default,salma_picking.keymon.com.mx
|
||||
File1=dpicking.bal
|
||||
File2=folio.bal
|
||||
File3=kmt.db
|
||||
File4=MainPage.bal
|
||||
File5=picking.bal
|
||||
File6=SALMA13.png
|
||||
File7=seleccion.bal
|
||||
FileGroup1=Default Group
|
||||
FileGroup2=Default Group
|
||||
FileGroup3=Default Group
|
||||
FileGroup4=Default Group
|
||||
FileGroup5=Default Group
|
||||
FileGroup6=Default Group
|
||||
FileGroup7=Default Group
|
||||
Group=Default Group
|
||||
Library1=accessibility
|
||||
Library10=randomaccessfile
|
||||
Library11=reflection
|
||||
Library12=runtimepermissions
|
||||
Library13=sql
|
||||
Library14=stringutils
|
||||
Library15=xcustomlistview
|
||||
Library16=xui
|
||||
Library17=xui views
|
||||
Library2=b4xpages
|
||||
Library3=bctoast
|
||||
Library4=byteconverter
|
||||
Library5=compressstrings
|
||||
Library6=core
|
||||
Library7=ime
|
||||
Library8=okhttputils2
|
||||
Library9=phone
|
||||
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="30"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~'End of default text.~\n~
|
||||
Module1=|relative|..\B4XMainPage
|
||||
Module2=C_picking
|
||||
Module3=C_seleccion
|
||||
Module4=DBRequestManager
|
||||
Module5=Starter
|
||||
Module6=Subs
|
||||
NumberOfFiles=7
|
||||
NumberOfLibraries=17
|
||||
NumberOfModules=6
|
||||
Version=12.2
|
||||
@EndOfDesignText@
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Salma-Picking
|
||||
#VersionCode: 1
|
||||
#VersionName:
|
||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
#End Region
|
||||
|
||||
#Region Activity Attributes
|
||||
#FullScreen: False
|
||||
#IncludeTitle: False
|
||||
#End Region
|
||||
|
||||
'#BridgeLogger: True
|
||||
|
||||
Sub Process_Globals
|
||||
Public ActionBarHomeClicked As Boolean
|
||||
End Sub
|
||||
|
||||
Sub Globals
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Activity_Create(FirstTime As Boolean)
|
||||
Dim pm As B4XPagesManager
|
||||
pm.Initialize(Activity)
|
||||
End Sub
|
||||
|
||||
'Template version: B4A-1.01
|
||||
#Region Delegates
|
||||
|
||||
Sub Activity_ActionBarHomeClick
|
||||
ActionBarHomeClicked = True
|
||||
B4XPages.Delegate.Activity_ActionBarHomeClick
|
||||
ActionBarHomeClicked = False
|
||||
End Sub
|
||||
|
||||
Sub Activity_KeyPress (KeyCode As Int) As Boolean
|
||||
Return B4XPages.Delegate.Activity_KeyPress(KeyCode)
|
||||
End Sub
|
||||
|
||||
Sub Activity_Resume
|
||||
B4XPages.Delegate.Activity_Resume
|
||||
End Sub
|
||||
|
||||
Sub Activity_Pause (UserClosed As Boolean)
|
||||
B4XPages.Delegate.Activity_Pause
|
||||
End Sub
|
||||
|
||||
Sub Activity_PermissionResult (Permission As String, Result As Boolean)
|
||||
B4XPages.Delegate.Activity_PermissionResult(Permission, Result)
|
||||
End Sub
|
||||
|
||||
Sub Create_Menu (Menu As Object)
|
||||
B4XPages.Delegate.Create_Menu(Menu)
|
||||
End Sub
|
||||
|
||||
#if Java
|
||||
public boolean _onCreateOptionsMenu(android.view.Menu menu) {
|
||||
processBA.raiseEvent(null, "create_menu", menu);
|
||||
return true;
|
||||
|
||||
}
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
'Program code should go into B4XMainPage and other pages.
|
||||
24
B4A/Salma_picking.b4a.meta
Normal file
24
B4A/Salma_picking.b4a.meta
Normal file
@@ -0,0 +1,24 @@
|
||||
ModuleBookmarks0=
|
||||
ModuleBookmarks1=
|
||||
ModuleBookmarks2=
|
||||
ModuleBookmarks3=
|
||||
ModuleBookmarks4=
|
||||
ModuleBookmarks5=
|
||||
ModuleBookmarks6=
|
||||
ModuleBreakpoints0=
|
||||
ModuleBreakpoints1=
|
||||
ModuleBreakpoints2=
|
||||
ModuleBreakpoints3=
|
||||
ModuleBreakpoints4=
|
||||
ModuleBreakpoints5=
|
||||
ModuleBreakpoints6=
|
||||
ModuleClosedNodes0=
|
||||
ModuleClosedNodes1=
|
||||
ModuleClosedNodes2=
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes4=
|
||||
ModuleClosedNodes5=1
|
||||
ModuleClosedNodes6=
|
||||
NavigationStack=Starter,Service_Create,19,0,B4XMainPage,Insesion_Click,40,0,C_picking,Class_Globals,0,0,C_seleccion,JobDone,251,6,C_picking,b_guardapicking_Click,83,6,Starter,Service_Destroy,44,0,Starter,Process_Globals,11,0,C_seleccion,Class_Globals,0,0,Subs,revisaBD,14,0,C_seleccion,b_cargar_Click,50,5
|
||||
SelectedBuild=0
|
||||
VisibleModules=5,1,3,2,4,6
|
||||
50
B4A/Starter.bas
Normal file
50
B4A/Starter.bas
Normal file
@@ -0,0 +1,50 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Service
|
||||
Version=9.85
|
||||
@EndOfDesignText@
|
||||
#Region Service Attributes
|
||||
#StartAtBoot: False
|
||||
#ExcludeFromLibrary: True
|
||||
#End Region
|
||||
|
||||
Sub Process_Globals
|
||||
'These global variables will be declared once when the application starts.
|
||||
'These variables can be accessed from all modules.
|
||||
|
||||
Public rp As RuntimePermissions
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim DBReqServer As String = "http://keymon.lat:1787" '"http://keymon.lat:1782" "http://10.0.0.205:1782" "http://keymon.lat:1783" "http://11.0.0.48:1783" ""' CAMBIAR HACIA AFUERA O DENTRO DE LA OFNA
|
||||
' Dim server As String = "http://10.0.0.205:1782"
|
||||
Dim rutaBD As String = File.DirInternal
|
||||
Dim skmt As SQL
|
||||
Dim almacen As String
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Service_Create
|
||||
'This is the program entry point.
|
||||
'This is a good place to load resources that are not specific to a single activity.
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Service_Start (StartingIntent As Intent)
|
||||
Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
|
||||
Subs.revisaBD
|
||||
reqManager.Initialize(Me, DBReqServer)
|
||||
If Not(skmt.IsInitialized) Then skmt.Initialize(rutaBD, "kmt.db", True)
|
||||
End Sub
|
||||
|
||||
Sub Service_TaskRemoved
|
||||
'This event will be raised when the user removes the app from the recent apps list.
|
||||
End Sub
|
||||
|
||||
'Return true to allow the OS default exceptions handler to handle the uncaught exception.
|
||||
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
|
||||
Return True
|
||||
End Sub
|
||||
|
||||
Sub Service_Destroy
|
||||
|
||||
End Sub
|
||||
23
B4A/Subs.bas
Normal file
23
B4A/Subs.bas
Normal file
@@ -0,0 +1,23 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=StaticCode
|
||||
Version=11.5
|
||||
@EndOfDesignText@
|
||||
'Code module
|
||||
'Subs in this code module will be accessible from all modules.
|
||||
Sub Process_Globals
|
||||
'These global variables will be declared once when the application starts.
|
||||
'These variables can be accessed from all modules.
|
||||
End Sub
|
||||
|
||||
'Revisa que exista la BD y si es necesario crea algunas tablas dentro de ella
|
||||
Sub revisaBD 'ignore
|
||||
If Not(File.Exists(Starter.rutaBD, "kmt.db")) Then File.Copy(File.DirAssets, "kmt.db", Starter.rutaBD, "kmt.db")
|
||||
If Not(Starter.skmt.IsInitialized) Then Starter.skmt.Initialize(Starter.rutaBD, "kmt.db", True)
|
||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_FOLIOS(CAT_FOLIO TEXT)")
|
||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_DETALLEFOLIO(CAT_DF_ID TEXT, CAT_DF_NOMBRE TEXT,CAT_DF_RUTA TEXT, CAT_DF_CANTINICIAL TEXT, CAT_DF_CANTIDADESCRITA TEXT)")
|
||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PICKING (CODIGO TEXT, RUTA TEXT, CANTIDAD_INICIAL TEXT, CANTIDAD_FINAL TEXT,CANTIDAD_ESCRITA TEXT)")
|
||||
' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS PICKING")
|
||||
' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_DETALLEFOLIO")
|
||||
End Sub
|
||||
1
gitpull.bat
Normal file
1
gitpull.bat
Normal file
@@ -0,0 +1 @@
|
||||
git pull
|
||||
BIN
logo-salma.jpg
Normal file
BIN
logo-salma.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 279 KiB |
Reference in New Issue
Block a user