Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

frcosilva

TabMestre + TabDetalhes

Recommended Posts

icon_minipost.gifEnviada: Ter Mai 13, 2014 6:45 pm Assunto: icon_quote.gif

Att. pessoal:

Uso Delphi c/ BD IBExpert + FireBird - componente IBTable c/ dbEdit.

TabMestre

5 Fields - 1ºturno-8horas/dia / 2ºturno-8horas/dia / 3ºturno-6horas/dia / TurnoNormal-8horas/dias - TurnoEspecial-12 horas/dia e mais 2 fields que informo 22 dias úteis e 12 dias úteis no mês.

TabDetalhes (DBGrid)

Cabeçalho (Títulos)

qtde. de Colaboradores / Turno / Total horas mês

Gostaria que qdo. informasse o Turno (1-2-3-N-E) na TabDetalhes puxasse da TabMestre a carga horária do Turno ao qual se refere e nultiplicasse pela Qtde. Colab da TabDetalhes (Ex.: no Turno informo N de TurnoNormal=8horas/dia x 22 dias úteis x a qtde. de Colab da TabDetalhes.

Só a TabDetalhes identiificando o Total de Horas diárias da TabMESTRE de acordo com o caractere que eu informar já me ajuda o resto sei como fazer.

Grato.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei resolver assim:
"procedure TDM.Custo_Min_Prod_TabBeforePost(DataSet: TDataSet);
begin
If DM.Custo_Min_Producao.State in [dsinsert, dsedit] then
begin
{Bloco de comandos executados se a condição for verdadeira}
DM.Custo_Min_Prod_TabTURNO.Value := '1';
DM.Custo_Min_Prod_TabHORAS_MES.Value := ((DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value
* DM.Custo_Min_ProducaoTURNO1.Value * DM.Custo_Min_ProducaoDIAS_DISP_MES.Value)
* (1-(DM.Custo_Min_ProducaoPERDA_MOD.Value/100))) * (1-(DM.Custo_Min_ProducaoPERDA_PROCESSO.Value / 100));
DM.Custo_Min_Prod_TabTOTAL_SAL_FAIXA.Value := DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value * DM.Custo_Min_Prod_TabSALARIO_FAIXA.Value ;

{Bloco de comandos executados se a condição for verdadeira}
DM.Custo_Min_Prod_TabTURNO.Value := '2';
DM.Custo_Min_Prod_TabHORAS_MES.Value := ((DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value
* DM.Custo_Min_ProducaoTURNO2.Value * DM.Custo_Min_ProducaoDIAS_DISP_MES.Value)
* (1 - (DM.Custo_Min_ProducaoPERDA_MOD.Value / 100))) * (1 - (DM.Custo_Min_ProducaoPERDA_PROCESSO.Value / 100));
DM.Custo_Min_Prod_TabTOTAL_SAL_FAIXA.Value := DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value * DM.Custo_Min_Prod_TabSALARIO_FAIXA.Value;

{Bloco de comandos executados se a condição for verdadeira}
DM.Custo_Min_Prod_TabTURNO.Value := '3';
DM.Custo_Min_Prod_TabHORAS_MES.Value := ((DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value
* DM.Custo_Min_ProducaoTURNO3.Value * DM.Custo_Min_ProducaoDIAS_DISP_MES.Value)
* (1 - (DM.Custo_Min_ProducaoPERDA_MOD.Value / 100))) * (1 - (DM.Custo_Min_ProducaoPERDA_PROCESSO.Value / 100));
DM.Custo_Min_Prod_TabTOTAL_SAL_FAIXA.Value := DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value * DM.Custo_Min_Prod_TabSALARIO_FAIXA.Value;

{Bloco de comandos executados se a condição for verdadeira}
DM.Custo_Min_Prod_TabTURNO.Value := 'N';
DM.Custo_Min_Prod_TabHORAS_MES.Value := ((DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value
* DM.Custo_Min_ProducaoTURNO_NORMAL.Value * DM.Custo_Min_ProducaoDIAS_DISP_MES.Value)
* (1 - (DM.Custo_Min_ProducaoPERDA_MOD.Value / 100))) * (1 - (DM.Custo_Min_ProducaoPERDA_PROCESSO.Value / 100));
DM.Custo_Min_Prod_TabTOTAL_SAL_FAIXA.Value := DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value * DM.Custo_Min_Prod_TabSALARIO_FAIXA.Value;
end
else
begin
{Bloco de comandos executados se a condição for falsa}
DM.Custo_Min_Prod_TabTURNO.Value := 'E';
DM.Custo_Min_Prod_TabHORAS_MES.Value := ((DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value
* DM.Custo_Min_ProducaoTURNO_ESPECIAL.Value * DM.Custo_Min_ProducaoDIAS_DISP_MES.Value)
* (1 - (DM.Custo_Min_ProducaoPERDA_MOD.Value / 100))) * (1 - (DM.Custo_Min_ProducaoPERDA_PROCESSO.Value / 100));
DM.Custo_Min_Prod_TabTOTAL_SAL_FAIXA.Value := DM.Custo_Min_Prod_TabQTDE_OPERADORES.Value * DM.Custo_Min_Prod_TabSALARIO_FAIXA.Value
end;
end; "

Mas não está muito confiável p/ digitação.
Agradeço se alguém puder me ajudar a corrigir e definir exceções.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.