PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → EXEMPLO DE BUSCA COM CHAVE COMPOSTA COM INCLUSAO E ALTERAÇÃO
EXEMPLO DE BUSCA COM CHAVE COMPOSTA COM INCLUSAO E ALTERAÇÃO
Iniciado por BOLLER, jan., 29 2020 3:22 PM - Sem resposta
Membro registado
3.655 mensagems
Popularité : +175 (223 votes)
Publicado em janeiro, 29 2020 - 3:22 PM
-- Create table
create table F031_SALDO_LOTE
(
f031_id NUMBER(19) default 0,
f031_id_produto FLOAT default 0,
f031_numero_lote VARCHAR2(20),
f031_validade_lote DATE,
f031_und_prod_nfe VARCHAR2(20),
f031_qtde_saldo NUMBER(38,6) default 0,
f031_codigo_barras VARCHAR2(30),
f031_id_centrocusto VARCHAR2(20)
)
tablespace MAS_DADOS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
)
nologging;
-- Create/Recreate indexes
create index WDIDX_F031_SALDO_LOTE_F0300000 on F031_SALDO_LOTE (F031_ID_PRODUTO)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300001 on F031_SALDO_LOTE (F031_NUMERO_LOTE)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300002 on F031_SALDO_LOTE (F031_VALIDADE_LOTE)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300003 on F031_SALDO_LOTE (F031_UND_PROD_NFE)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300004 on F031_SALDO_LOTE (F031_QTDE_SALDO)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300005 on F031_SALDO_LOTE (F031_CODIGO_BARRAS)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index WDIDX_F031_SALDO_LOTE_F0300006 on F031_SALDO_LOTE (F031_ID_CENTROCUSTO)
tablespace MAS_DADOS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);



//GRAVA O SALDO DO LOTE

OK is boolean = False

IF SQlF008_TEMP.F008_NUMERO_LOTE <> "" AND SQlF008_TEMP.F008_VALIDADE_LOTE <> ""
ACHOU is boolean
HReset(F031_SALDO_LOTE)
BUFBUSCA is Buffer = HBuildKeyValue(F031_SALDO_LOTE,F031_UNICA, SQlF008_TEMP.F008_ID_PRODUTO,
SQlF008_TEMP.F008_ID_CENTROCUSTO,
SQlF008_TEMP.F008_NUMERO_LOTE,
SQlF008_TEMP.F008_VALIDADE_LOTE,
SQlF008_TEMP.F008_UND_PROD_ESTOQUE)
IF HReadSeek(F031_SALDO_LOTE,F031_UNICA,BUFBUSCA,hIdentical) = True THEN
ACHOU = True
ELSE
ACHOU = False
F031_SALDO_LOTE.F031_ID = GET_SEQ("F031_SALDO_LOTE")
END
F031_SALDO_LOTE.F031_CODIGO_BARRAS = SQlF008_TEMP.F008_CODIGO_BARRAS
F031_SALDO_LOTE.F031_ID_PRODUTO = SQlF008_TEMP.F008_ID_PRODUTO
F031_SALDO_LOTE.F031_ID_CENTROCUSTO = SQlF008_TEMP.F008_ID_CENTROCUSTO
F031_SALDO_LOTE.F031_NUMERO_LOTE = SQlF008_TEMP.F008_NUMERO_LOTE
F031_SALDO_LOTE.F031_VALIDADE_LOTE = SQlF008_TEMP.F008_VALIDADE_LOTE
F031_SALDO_LOTE.F031_UND_PROD_NFE = SQlF008_TEMP.F008_UND_PROD_ESTOQUE
F031_SALDO_LOTE.F031_QTDE_SALDO += SQlF008_TEMP.F008_QTDE_PROD_ESTOQUE
IF ACHOU = False THEN
OK = HAdd(F031_SALDO_LOTE)
ELSE
OK = HModify(F031_SALDO_LOTE)
END
END
IF OK = True
Info("GRAVOU")
ELSE
Info(ErrorInfo())
END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, janeiro, 29 2020 - 3:24 PM