Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - crisoof

#1
Buenas tardes comunidad!,

nuevamente recurro a ustedes al encontrarme en un callejón sin salida, e investigado un monton y no me a resultado nada de lo que he intentado, les comento.

Estoy generando el timbre electronico de una guia de despacho, para esto genero unas instrucciones en cmd.exe, al generalas desde el cmd no tengo problemas, cuando lo hago desde visual studio me genera problemas, no me muestra errores solo indica que el archivo no se encuentra siendo que la instrucción que crea el archivo se ejecuto o al menos no aparecen errores que me indiquen que no se creo el archivo, aunque este no se crea.
He intentado de hacerlo con power shell ise 2.0 pero no tengo forma alguna de ejecutarlo desde visual studio, no tengo idea de como ejecutar el powershell, por temas de elevación de permisos solucione el problema llamando a un powershell normal sin elevación y este ejecuta un nuevo powershell con permisos elevados, si me pueden ayudar con cualquiera de estas 2 formas se los agradecería muchísimo

ya sea ayudarme y quitando la nebulosa de como ejecutar un script power shell desde visual studio 2017 o ayudándome a saber como elevar permisos desde un bat, sin que se tenga que hacer el acceso directo e indicarle al acceso directo que se ejecute en modo administrador.

Muchas gracias por su ayuda de antemano
Saludos
#2
encontre la solucion, no la entiendo del todo pero lo encontre, luego de intentar con los eventos, darle commit, el celldirty state changed, endedit, etc no me funciono ni uno seguramente era lo forma en la que estaba realizando las llamdas a estos eventos porque segun lo que lei y la solucion a mis problemas fue utilizar el AcceptChanges() al dataTable al que estaba enlazado el dgv, segun lei esto implicitamente llama al endedit, pero como yo llamaba al enedit de las grillas y no a los datatables, quizas por eso no me tomaba los cambios, pero que se yo, lo pude lograr gracias a quienes se tomaron el tiempo en leer

Saludos
#3
Buenas tardes, intentare de ser lo mas claro posible para que me puedan ayudar.
El lenguaje es Visual Basic

tengo un dgv (datagridview) al cual el usuario realizara una modificacion de una celda en particular ingresando solo numeros, una vez que el usuario termine de realizar la modificacion en la celda toda la fila de este dgv sera agregado a un nuevo Dgv, el tema es que cuando el usuario realiza la modificacion se envia a la nueva grilla pero la celda no esta modificada, he leido bastante y al parecer tengo que controlar el evento cell dirty state change y dar el commit para que los datos en cache sean guardado, el tema es que cuando depuro la aplicacion los datos en la nueva fila se muestran cambiados pero no se ven reflajados en la grilla nueva  adjunto el codigo

' aqui estoy manejando que ingrese a la celda "Porcentaje"
Private Sub DgvTempo_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellContentClick
        Dim i As Integer
        Dim row As DataGridViewRow = DgvTempo.CurrentRow
        Dim Vusuario, Vestacion As String

        With DgvTempo
            If e.RowIndex >= 0 Then

                i = .CurrentRow.Index

                If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex Then

                    .Rows(i).Cells("Porcentaje").ReadOnly = False
                    CType(.Columns("Porcentaje"), DataGridViewTextBoxColumn).MaxInputLength = 2
                    Vusuario = CLLibreria.VgUsuarioCodigo
                    Vestacion = CLLibreria.VgEstacion
                    DTTemporada.Rows(i)("Usuario") = Vusuario
                    DTTemporada.Rows(i)("Estacion") = Vestacion

                Else
                    .Rows(i).ReadOnly = True
                End If
            End If

        End With
    End Sub

' aqui se supone que el cambio ya fue realizado y debe agregar la fila con los datos ya
' cambiados y agregarlos a la nueva grilla, estoy trabajando con los dataTable de las grillas
Private Sub DgvTempo_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellValidated
        Dim i As Integer
        Dim fila As DataRow
        Dim nvalor As Integer
        Dim nvalor2 As String
        Dim Vusuario, Vestacion As String

        nvalor = DgvTempo.CurrentRow.Cells("Porcentaje").Value
        nvalor2 = DTTemporada.Rows(e.RowIndex).Item("Porcentaje").ToString

        'MsgBox(CStr(nvalor) & " / " & nvalor2)

        With DgvTempo
            i = .CurrentRow.Index

            If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex And .Rows(i).Cells("Porcentaje").Value > 0 Then

                fila = DTTemporada.Rows(i)
                fila("Porcentaje") = .CurrentRow.Cells("porcentaje").Value
                DTtempo.ImportRow(fila)
                Vusuario = CLLibreria.VgUsuarioCodigo
                Vestacion = CLLibreria.VgEstacion
                DTtempo.Rows(i)("Usuario") = Vusuario
                DTTemporada.Rows(i)("Estacion") = Vestacion
                DgvTemporada.DataSource = DTtempo

                DgvTemporada.Columns("Id_PreTemp").Visible = False
                DgvTemporada.Columns("Cod_tienda").Visible = False
                DgvTemporada.Columns("Cod_Temporada").Visible = False
                DgvTemporada.Columns("Cod_Marca").Visible = False
                DgvTemporada.Columns("Usuario").Visible = False
                DgvTemporada.Columns("Estacion").Visible = False
                DgvTemporada.AllowUserToAddRows = False
                DgvTemporada.RowHeadersVisible = False
                DTTemporada.Rows.RemoveAt(i)

                If DgvTemporada.Rows.Count > 0 Then

                    If Not VBtnCreado Then

                        CreaBtnEliminar()
                    End If
                End If
            End If
        End With

    End Sub


en la nueva grilla me meustra la fila agregada pero con la columna porcentaje con los valores en 0...

Llevo 2 dias atorado espero alguno me pueda ayudar

Saludos
#4
Buenas gente,

Dudo que el procedimiento les pueda servir pero quizas parte del codigo,

el problema esta en que el delete estaba haciendo algo que no queria y ademas movi el delete a un if por separado les copio el codigo algo de ahi quizas puedan reciclar


USE [Gestion]
GO
/****** Object:  StoredProcedure [dbo].[GES_Pre_Tienda_Guardar]    Script Date: 6/8/2019 12:10:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Cristofer Martinez
-- Create date: 05-08-2019
-- Description: Guarda GPC, Temporada y el ID log
-- =============================================
ALTER PROCEDURE [dbo].[GES_Pre_Tienda_Guardar]
@Cod_Tienda As Varchar(50),
@Ges_Pre_GPCTienda As Ges_Pre_GPCTienda Readonly,
@Ges_Pre_PorcTemporada As Ges_Pre_PorcTemporada Readonly,
@Status    As Integer OutPut
AS
BEGIN

SET NOCOUNT ON;

Declare @Error VarChar(500)
Declare @Id Varchar(50)
Begin Try
Begin Transaction
If not Exists( Select 1
From Gestion.dbo.Ges_Pre_PresupuestoTiendaGpc gpc With(Nolock)
Inner Join  @Ges_Pre_GPCTienda pre
On gpc.Id_PreTieGpc = pre.Id_PreTieGpc)
Begin
--Insert GPC
print ('insert gpc')
Insert Into Ges_Pre_PresupuestoTiendaGpc
(
Id_PreTieGpc, Cod_Tienda, Cod_Gpc, Presupuesto, Utilizado, Stock, Usuario, Fecha_Creacion, Estacion
)
Select gpc.Id_PreTieGpc, gpc.Cod_Tienda, gpc.Cod_Gpc, gpc.Presupuesto,0, gpc.Stock, gpc.Usuario,getdate(), gpc.Estacion
From @Ges_Pre_GPCTienda gpc
Where gpc.nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
End
Else
Begin
--- Actualiza GPC
print('Update GPC')
UPDATE Ges_Pre_PresupuestoTiendaGpc
SET stock = gpc.Stock, Presupuesto = gpc.Presupuesto,
Fecha_Creacion = GETDATE(), Usuario = gpc.Usuario, Estacion = gpc.Estacion
FROM Ges_Pre_PresupuestoTiendaGpc c
INNER JOIN @Ges_Pre_GPCTienda gpc
ON c.Id_PreTieGpc = gpc.Id_PreTieGpc
Where gpc.nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End

If Not Exists( Select tem.Id_PreTemp
From Gestion.dbo.Ges_Pre_PorcentajeTemporada tem With(Nolock)
Inner Join  @Ges_Pre_PorcTemporada pre
On tem.Id_PreTemp = pre.Id_PreTemp)
Begin
---Insert temporada
print ('Insert temporada')
Insert into Gestion.dbo.Ges_Pre_PorcentajeTemporada
(
Id_PreTemp, Cod_Tienda,Cod_PreTemporada, Cod_PreAnual, Cod_Temporada, Porcentaje, Usuario, Fecha_Creacion, Estacion
)

Select Id_PreTemp, Cod_tienda, Cod_Pretemporada, Cod_PreAnual, Cod_Temporada, Descuento,  Usuario, GETDATE(), Estacion
From @Ges_Pre_PorcTemporada
Where Nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End
End
Else
Begin

--- actualiza temporada
Print('Update Temporada')
Update temp
Set Porcentaje = pre.Descuento
From Gestion.dbo.Ges_Pre_PorcentajeTemporada Temp
Inner join @Ges_Pre_PorcTemporada pre
On Temp.Id_PreTemp = pre.Id_PreTemp
Where pre.Nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End
If 0< (Select Count(1)
From [dbo].[Ges_Pre_PorcentajeTemporada] t
Where t.Cod_tienda = @Cod_Tienda
And Not Exists (Select 1
From @Ges_Pre_PorcTemporada tmp
Where tmp.Id_PreTemp = t.Id_PreTemp))
Begin
--- Borra temporada
print ('delete temporada')
Delete tt From Ges_Pre_PorcentajeTemporada tt
Where tt.Cod_tienda = @Cod_Tienda
And Not Exists (Select 1
From @Ges_Pre_PorcTemporada tmp
Where tmp.Id_PreTemp = tt.Id_PreTemp
And tmp.Nuevo = 'N')


If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
End
Print ('Insert ID')
--Insert Validacion Usuario
Insert into Ges_pre_log (Cod_tienda)
Values
(
@Cod_Tienda
)

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End


Commit Transaction
SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
RETURN @Status
End Try
Begin Catch
If @@TRANCOUNT > 0
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Rollback Transaction
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
END
Else
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
End
End Catch   
END


Saludos
#5
Buenas tardes amiguetes!!

solicito su ayuda, tengo un error en un procedimiento almacenado en sql server, la falla radica en que no esta entranddo a realizar los insert, realiza los update y delete pero no los insert, porfavor si alguno me puede ayudar se lo agradeceria muchisimo, le he dado muchas vueltas y no tengo solucion

USE [Gestion]
GO
/****** Object:  StoredProcedure [dbo].[GES_Pre_Tienda_Guardar]    Script Date: 6/8/2019 12:10:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Cristofer Martinez
-- Create date: 05-08-2019
-- Description: Guarda GPC, Temporada y el ID log
-- =============================================
ALTER PROCEDURE [dbo].[GES_Pre_Tienda_Guardar]
@Cod_Tienda As Varchar(50),
@Ges_Pre_GPCTienda As Ges_Pre_GPCTienda Readonly,
@Ges_Pre_PorcTemporada As Ges_Pre_PorcTemporada Readonly,
@Status    As Integer OutPut
AS
BEGIN

SET NOCOUNT ON;

Declare @Error VarChar(500)
Declare @Id Varchar(50)
Begin Try
Begin Transaction
If not Exists( Select 1
From Gestion.dbo.Ges_Pre_PresupuestoTiendaGpc gpc With(Nolock)
Inner Join  @Ges_Pre_GPCTienda pre
On gpc.Id_PreTieGpc = pre.Id_PreTieGpc)
Begin
--Insert GPC
print ('insert gpc')
Insert Into Ges_Pre_PresupuestoTiendaGpc
(
Id_PreTieGpc, Cod_Tienda, Cod_Gpc, Presupuesto, Utilizado, Stock, Usuario, Fecha_Creacion, Estacion
)
Select gpc.Id_PreTieGpc, gpc.Cod_Tienda, gpc.Cod_Gpc, gpc.Presupuesto,0, gpc.Stock, gpc.Usuario,getdate(), gpc.Estacion
From @Ges_Pre_GPCTienda gpc
Where gpc.nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
End
Else
Begin
--- Actualiza GPC
print('Update GPC')
UPDATE Ges_Pre_PresupuestoTiendaGpc
SET stock = gpc.Stock, Presupuesto = gpc.Presupuesto,
Fecha_Creacion = GETDATE(), Usuario = gpc.Usuario, Estacion = gpc.Estacion
FROM Ges_Pre_PresupuestoTiendaGpc c
INNER JOIN @Ges_Pre_GPCTienda gpc
ON c.Id_PreTieGpc = gpc.Id_PreTieGpc
Where gpc.nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End

If Not Exists( Select tem.Id_PreTemp
From Gestion.dbo.Ges_Pre_PorcentajeTemporada tem With(Nolock)
Inner Join  @Ges_Pre_PorcTemporada pre
On tem.Id_PreTemp = pre.Id_PreTemp)
Begin
---Insert temporada
print ('Insert temporada')
Insert into Gestion.dbo.Ges_Pre_PorcentajeTemporada
(
Id_PreTemp, Cod_Tienda,Cod_PreTemporada, Cod_PreAnual, Cod_Temporada, Porcentaje, Usuario, Fecha_Creacion, Estacion
)

Select Id_PreTemp, Cod_tienda, Cod_Pretemporada, Cod_PreAnual, Cod_Temporada, Descuento,  Usuario, GETDATE(), Estacion
From @Ges_Pre_PorcTemporada
Where Nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End
End
Else
Begin
--- Borra temporada
print ('delete temporada')
Delete temp
From Gestion.dbo.Ges_Pre_PorcentajeTemporada temp
Left join @Ges_Pre_PorcTemporada pre
On temp.Id_PreTemp = pre.Id_PreTemp
Where pre.Id_PreTemp = null
And pre.Nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

--- actualiza temporada
Print('Update Temporada')
Update temp
Set Porcentaje = pre.Descuento
From Gestion.dbo.Ges_Pre_PorcentajeTemporada Temp
Inner join @Ges_Pre_PorcTemporada pre
On Temp.Id_PreTemp = pre.Id_PreTemp
Where pre.Nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End
Print ('Insert ID')
--Insert Validacion Usuario
Insert into Ges_pre_log (Cod_tienda)
Values
(
@Cod_Tienda
)

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

Commit Transaction
SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
RETURN @Status
End Try
Begin Catch
If @@TRANCOUNT > 0
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Rollback Transaction
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
END
Else
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
End
End Catch   
END



Muchas gracias por su ayuda
#6
Amigo Crisoof yo te voy a responder como hacerlo xD....

Na para el que busque como hacer esto es algo muy facil ,solo es necesario usar un cross join



Select  T2.campo1, T2.campo2, T2.campo3, T1.Campo1, T2.Campo5, T1.campo6
From Table1 T1
Cross join Table2 T2



Saludos espero les sirva perdi todo el dia en algo muy facil xD
#7
Bases de Datos / Re: Nuevo en BASES DE DATOS
1 Agosto 2019, 19:51 PM
Me sumo a lo que dicen mas arriba, muestra tu codigo y te ayudaremos pero no lo haremos por ti

Saludos
#8
Amigo en realidad filtrando por el codigo 1 ya las tienes ordenadas, ahora si tuvieras mas filas con el codigo 1 la ordenacion seria algo asi




Select N_folio, Fecha, Cod
From Tabla t
Where Fecha = (Select Min(Fecha)
                        From Tabla T2
                        where t.N_folio = t2.N_folio
                         And Cod = 1)
and Cod = 1


Saludos
#9
Buenas tardes.

Tengo la siguiente duda, quizas sea muy facil estoy un poco bloqueado,

tengo una tabla
Tabla 1
Registro1,
Registro2,
Registro 3
Registro4



y por otro lado tengo un otra tabla que tiene un parametro que me indica que debo usar los 4 registros de la tabla 1

Tabla 2

1,1,1,Registro 1,1,
2,1,1, Registro 2,1,
3,1,1, Todos, 1


cuando tenga el registro Todos, debería crear 4 filas y hacer esto


1,1,1,Registro 1,1,
2,1,1, Registro 2,1,
3,1,1, Registro1,1,
3,1,1, Registro2,1,
3,1,1, Registro3,1,
3,1,1, Registro4,1


Como la tabla 1 tiene pocos registros se que puedo usar un case y decirle que haga el insert normal pero cuando encuentre el Todos cree los 4 registros manuales, pero mi idea es saber como hacerlo mas automatizado para cuando me tope con una tabla mas grande no tener que hacer los insert manuales


Saludos gracias por su ayuda, espero haber sido claro
#10
Foro Libre / Bitcoin
14 Noviembre 2017, 16:13 PM
Buenos dias o tardes,
Dependiendo de que parte del globo me leen, me gustaría pedirles ayuda quiero incursionar en el mundo del bitcoin, estoy googleando y buscando información para entender lo necesario, por que les pido ayuda a ud, porque seguramente sabrán algo que me costara un poco de tiempo aprender, quizás algún consejo, ayuda para minar desde nube, es lo que mas me interesa, si alguno me puede hechar una mano con información para poder leer sobre esto, se los agradecería

Saludos  ;-)