Code: Select all | Expand
#Include "Fivewin.ch"#include "xbrowse.ch"//-----------------------------------------------------------------------//---- Classe DB_slbdaces//----//---- Luiz Antonio de Oliveira//---- Data : 23/06/2016 Hora : 22:52:14//-----------------------------------------------------------------------*************************************************************************CLASS DB_slbdaces FROM TDolphinQry************************************************************************* Data cTableName INIT "slbdaces" Data cTpBanco INIT "GRUPO" Data aStruct, aIdx Data cDbname Data oSetup Data oServer Data cQuery Data aColumns Data cWhere Data cOrder Data cLimit METHOD New() CONSTRUCTOR METHOD Connect(aColumns,cWhere,cOrder,cLimit) CONSTRUCTOR METHOD End() METHOD NewCod() METHOD NewCodRun(oDlg,cCodigo) METHOD NewCodTest()ENDCLASS*************************************************************************METHOD New() Class DB_slbdaces************************************************************************* ::aStruct := {} ::aIdx := {} // I=INDEX KEY U=UNIQUE KEY P=PRIMARY KEY AADD( ::aIdx , { "ID_ACES" ,"P"}) AADD( ::aIdx , { "C01" ,"I"}) AADD( ::aIdx , { "C02" ,"I"}) AADD( ::aIdx , { "C03" ,"I"})//------------------------------------------------------- AADD( ::aStruct , { "ID_ACES" ,"+",010,00}) AADD( ::aStruct , { "C01" ,"C",002,00}) AADD( ::aStruct , { "C02" ,"C",004,00}) AADD( ::aStruct , { "C03" ,"C",005,00}) AADD( ::aStruct , { "C04" ,"C",040,00}) AADD( ::aStruct , { "C05" ,"C",010,00}) AADD( ::aStruct , { "CTDOR" ,"N",006,00}) AADD( ::aStruct , { "USUARIO" ,"C",010,00}) AADD( ::aStruct , { "DT_OPER" ,"D",004,00}) AADD( ::aStruct , { "HR_OPER" ,"C",008,00}) AADD( ::aStruct , { "DT_CADA" ,"D",004,00}) AADD( ::aStruct , { "GRAVADO" ,"C",001,00}) AADD( ::aStruct , { "ENVCARGA" ,"L",001,00}) AADD( ::aStruct , { "EXPORTA" ,"C",008,00})//-------------------------------------------------------Return Self*************************************************************************METHOD End() Class DB_slbdaces*************************************************************************::super:end()Return Nil*************************************************************************METHOD Connect(aColumns,cWhere,cOrder,cLimit) Class DB_slbdaces*************************************************************************default aColumns := "*" ::oSetup := Setup_Get() ::oServer := ::oSetup:oServer ::aColumns := aColumns ::cWhere := cWhere ::cOrder := cOrder ::cLimit := cLimit ::cDbname := ::oSetup:VarBd:get(::cTableName) if valtype(::aColumns) == "C" ::aColumns := HB_ATokens(::aColumns, "," ) ENDIF ::cQuery := BuildQuery(::aColumns,{::cDbname}, ::cWhere,,,::cOrder,::cLimit)return ::Super:New(::cQuery,::oServer)*************************************************************************METHOD NewCod() Class DB_slbdaces*************************************************************************local cCodigo := ""MsgRun("", PAD("Atenção",50),{|odlg|cCodigo := ::NewCodRun(oDlg) } )return cCodigo*************************************************************************METHOD NewCodRun(oDlg,cCodigo) Class DB_slbdaces************************************************************************* local aCodigo odlg:cmsg := 'Vericando Contador de Códigos !!!' odlg:REFRESH() SYSREFRESH() oDlg:REFRESH() GrupoVerificaContador("PRODUTO") do while .t. aCodigo := GrupoContadorAdd("PRODUTO",::oSetup:IpNum,SQLDateTime()) if alltrim(aCodigo[2]) == alltrim(::oSetup:IpNum) cCodigo := strzero(aCodigo[1],5) if aCodigo[1] > 99999 GrupoContadorNew("PRODUTO") odlg:cmsg := 'Contador de Codigo Será Iniciado !!!' odlg:REFRESH() SYSREFRESH() syswait(1) loop endif if ::NewCodTest(cCodigo) exit endif odlg:cmsg := 'Codigo : '+cCodigo+' Já Existe Nova tentativa Será iniciada !!!' odlg:REFRESH() SYSREFRESH() loop endif odlg:cmsg := 'Codigo : '+cCodigo+' Pertence a Outro Usuário Nova tentativa Será iniciada !!!' odlg:REFRESH() SYSREFRESH() enddoRETURN CCODIGO*************************************************************************METHOD NewCodTest(f_codigo) Class DB_slbdaces*************************************************************************local oDb := tConecta():new("select produto from _TABLE_ where produto = _FIELD_") oDb:DsBD( "_TABLE_",::cTableName) oDb:DsADDVar("_FIELD_",f_codigo ) oDb:dsExecute() if oDb:lastrec() > 0 oDb:end() return .f. endif oDb:end()return .t.