frcosilva 0 Denunciar post Postado Maio 16, 2014 Enviada: Ter Mai 13, 2014 6:45 pm Assunto: 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
frcosilva 0 Denunciar post Postado Maio 25, 2014 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